mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 19:04:02 +00:00
i18n: language picker in the bottom-right corner
Replaces the EN/ES/RU buttons in the Visual Presets dock with a picker that scales to many languages: a globe button with the current code next to the POWER UP chip, opening a list of languages named in their own language with their codes, the current one first and checked. A search field appears past 8 languages. Keyboard: arrows, Home/End, Enter/Space, Esc, type-ahead; keys stay in the list while it is open. Choosing a language still asks before dropping unsaved work, then reloads. Phones get the globe alone and a full-width sheet; the layout uses logical properties for right-to-left languages. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
7fd1dd867f
commit
6031c95a81
21 files changed
+1381
-139
No files matched your search
@@ -3139,8 +3139,8 @@ Shipped locales: **en** (source and fallback), **es** and **ru**. The code lives
|
||||
- **Locale choice.** `?lang=` → stored choice (`gev:locale:v1`) →
|
||||
`navigator.languages` → English. `?lang=` is not stored: it applies while it
|
||||
stays in the address, and the copied share link drops it, so a recipient keeps
|
||||
their own language. The language switch in the Visual Presets dock stores the
|
||||
choice, removes `?lang=` (keeps it only where storage is blocked) and reloads,
|
||||
their own language. The language picker in the bottom-right corner (a globe
|
||||
button beside POWER UP, `src/ui/localePicker.js`) stores the choice, removes `?lang=` (keeps it only where storage is blocked) and reloads,
|
||||
so nothing re-renders live; it asks first when the reload would lose work
|
||||
(unsaved CCTV calibration, the open cockpit, Draw marks on the board,
|
||||
imported map files, an active voice session — each registered through
|
||||
|
||||
Reference in new issue
Block a user