mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 10:53:59 +00:00
docs(i18n): Arabic language notes and right-to-left guidance
- docs/translations/ar.md: style, Western digits and direction, units, the six plural forms and the glossary. - TRANSLATORS.md and CURRENT-STATE.md list Arabic and say how a right-to-left language mirrors the chrome. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
06370d8676
commit
33985138ef
3 files changed
+105
-5
No files matched your search
+10
-2
@@ -3733,7 +3733,7 @@ test:track` 43 tracking invariants · headless QA harnesses under
|
||||
|
||||
### Interface localization (October 2026)
|
||||
|
||||
Shipped locales: **en** (source and fallback), **es**, **ru**, **zh-CN** and **zh-Hant**. The code lives in
|
||||
Shipped locales: **en** (source and fallback), **ar**, **es**, **ru**, **zh-CN** and **zh-Hant**. The code lives in
|
||||
`src/i18n/`. How to mark UI text: [`docs/I18N.md`](./I18N.md); translator workflow:
|
||||
[`docs/TRANSLATORS.md`](./TRANSLATORS.md).
|
||||
|
||||
@@ -3747,11 +3747,19 @@ Shipped locales: **en** (source and fallback), **es**, **ru**, **zh-CN** and **z
|
||||
`navigator.languages` → English. Chinese tags default to `zh-CN`; Traditional Chinese tags
|
||||
select `zh-Hant`. Explicit `Hans` selects `zh-CN` regardless of region. `?lang=` is not stored, and share links drop
|
||||
it, so a recipient keeps their own language. The globe picker in the
|
||||
bottom-right corner (`src/ui/localePicker.js`) stores the choice, drops
|
||||
bottom-right corner (bottom-left in Arabic) (`src/ui/localePicker.js`) stores the choice, drops
|
||||
`?lang=` (keeps it only when storage is blocked) and reloads. It asks first
|
||||
when the reload would lose work registered with `registerUnsavedWork`:
|
||||
unsaved keys or CCTV calibration, Draw marks, imported map files, the open
|
||||
cockpit, a voice session.
|
||||
- **Right to left.** Arabic (`ar`) is in `RTL_LOCALES`, so `<html dir="rtl">`:
|
||||
the title, style indicator and both rails swap sides through logical
|
||||
properties (`inset-inline-*`, `margin-inline-*`), the dock and corner row
|
||||
reverse their order, and `src/ui/styles/rtl.css` holds the rest: no
|
||||
letter-spacing on Arabic text, Noto Sans Arabic in the font stacks, the intel
|
||||
HUD kept as a left-to-right instrument overlay, media transport and the radio
|
||||
dial kept left to right. Intl formatters get `ar-u-nu-latn`, so numbers and
|
||||
dates keep Western digits.
|
||||
- **Gate.** `npm run i18n` (and `src/i18n/catalog.test.mjs` under `npm test`)
|
||||
extracts every message and fails on missing, empty, unused,
|
||||
placeholder-mismatched, still-English (plural forms included) or
|
||||
|
||||
Reference in new issue
Block a user