doxa-maps/library/i18n/locales/ar/messages.json
Doxa Maps 03839179b7 Speak the reader's language on the UPG-100 map, its wall and the print HUD
The legend's region sections, its Deaf row and its one-country zones, the
wall's card names, the print progress and error messages, the map's status
badge and the Population column all rendered English in every locale. None
of them was visible to check:hardcoded-english: they were single words, .js
modules, Error() arguments, library components or number formatting.

- Legend: region rows through one REGION_KEY table shared with the wall
  (poster.region_*, new region_deaf); zones through zoneTitle (tier A by
  country, the Deaf row by its bloc name); node ids stay English-derived.
- Wall: card labels through zoneTitle, so the Show-on-map name, alt text,
  tooltip, HUD title and printed title agree with the legend and packet.
- Errors a reader sees are keyedError(key, English, params);
  errorText(e, t) shows them translated, and an unkeyed error still shows
  its own message. Developer detail for a failed data load goes to the
  console; the badge says upgMap.mapDataFailed.
- Population: Intl compact notation in the app's locale, same precision.
- Country Posters: the unsupported card's reason is
  messages.countryPosterTooMany, not the data file's English note.
- Strings only the UPG-100 map shows move to a new upgMap area, so other
  bundles do not carry them (country-posters 1,490,907 bytes).
- check:hardcoded-english judges keyedError's English as a fallback
  (quiet when the key resolves everywhere, a finding when it does not);
  check:label-key-coverage follows REGION_KEY to legend-tree.js and covers
  the legend's table and its regionFor producer. Both self-tests two-sided.
2026-09-29 08:33:43 +00:00

45 lines
4 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"menuComingSoon": "القائمة قادمة قريباً",
"pinHint": {
"tapDot": "اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"
},
"upg100WallHeading": "قائمتي UPG 100 — قوائم صلاة وملصقات",
"upg100WallTag": "تعبئة للصلاة",
"upg100WallIntroA": "كيف تُطعم جمعًا من خمسة آلاف؟ أجلسهم يسوع جماعاتٍ من خمسين ومن مئة، فصار المستحيل قابلًا للمشاركة (لوقا ٩:١٤). فعلنا المثل مع ٢١٠٦ شعوب غير مبلَّغة: ٢٧ قائمة من نحو خمسين إلى مئة. تُطبع كل قائمة حزمةَ صلاة وملصقًا، ليحمل ٢٧ تلميذًا أو كنيسة أو قائدًا محليًا كلٌّ واحدة — مصلّين لأجلهم ",
"upg100WallIntroEmph": "باسم شعبهم",
"upg100WallIntroB": ".",
"loadingNamed": "جارٍ تحميل {name}…",
"couldNotLoadNamed": "تعذّر تحميل {name}.",
"engineMissing": "لم يتم تحميل محرك الخرائط {engine}.",
"packetFailed": "فشل إنشاء الكُتيّب: {reason}",
"selectionPacketFailed": "فشل إنشاء كُتيّب التحديد: {reason}",
"posterOneTerritory": "الملصق يطبع منطقة واحدة في كل مرة — {count} محددة.",
"selectionPosterFailed": "فشل إنشاء ملصق التحديد: {reason}",
"mapUnavailable": "الخريطة غير متاحة",
"copied": "تم النسخ!",
"copyFailed": "فشل النسخ — اضغط Ctrl/Cmd-C",
"engineNotLoaded": "لم يتم تحميل محرك الخريطة",
"engineNotLoadedDetail": "لم يتم تحميل محرك الخريطة {engine}. القائمة ووسيلة الإيضاح غير متأثرتين.",
"viewLoadFailed": "تعذّر تحميل هذا العرض.",
"retry": "إعادة المحاولة",
"noMapboxToken": "لا يوجد رمز Mapbox",
"noMapboxTokenDetail": "لم يُضبط أي رمز Mapbox. القائمة ووسيلة الإيضاح غير متأثرتين.",
"loadingBoundaries": "جارٍ تحميل الحدود…",
"fetchingUupgs": "جارٍ جلب {n} من UUPG…",
"mapStatusCounts": "المساحات: {polys} · المناطق: {zones}/{total} · الدبابيس: {pins}",
"tapTerritoriesHint": "انقر على الأقاليم في الخريطة أو صفوف وسيلة الإيضاح لإضافتها · انقر مجددًا لإزالتها",
"territoriesSelected": "الأقاليم: {count}",
"bandInRange": "✓ النطاق 50–100",
"bandOutOfRange": "النطاق 50–100",
"mapContextLost": "تم إلغاء تحميل هذه الخريطة لتحرير ذاكرة الرسوميات.",
"nOfTotal": "{n} من {total}",
"mapInitFailed": "تعذّر تهيئة الخريطة — تحقّق من الرمز والحاوية",
"countryWallIntroA": "ملصق لكل دولة، جاهز للصلاة والطباعة والتعليق على الحائط — نصلّي لأجلهم ",
"countryWallIntroB": ". رُتّبت المناطق والدول بحسب عدد الشعوب غير المبلَّغة فيها، لتتقدّم الحاجة الأكبر.",
"countryWallSoon": "قريبًا: ستُنشأ قائمة صلاة لكل دولة، تسمّي كل شعب غير مبلَّغ فيها.",
"countryWallHeading": "ملصقات الدول — قوائم صلاة وملصقات",
"largerScreenNotice": "هذه الخريطة التجريبية مُعدّة للشاشات الكبيرة. تُفتح هنا، لكن بعض أجزائها قد لا يتّسع أو لا يعمل جيدًا على الهاتف.",
"desktopOnlyNotice": "{label} يعمل على الحاسوب فقط — افتح هذه الصفحة على حاسوب لاستخدامه.",
"noticeDismiss": "إغلاق",
"countryPosterTooMany": "عدد الشعوب أكبر من أن يتّسع له ملصق واحد بوضوح — ونعمل على حلّ لذلك."
}