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:
German KhokhlovandClaude Opus 5.5 committed 2026-10-16 02:03:17 +04:00
1 parent 7fd1dd867f
commit 6031c95a81
21 files changed
+1381 -139

No files matched your search

+2 -1
View File
@@ -8,7 +8,8 @@ export const LOCALE_STORAGE_KEY = 'gev:locale:v1';
export const DEFAULT_LOCALE = 'en';
/**
* Shipped locales, in selector order. Adding one: locales/<code>.json, an
* Shipped locales. The picker (src/ui/localePicker.js) lists the active one
* first and the rest by LOCALE_NAMES. Adding one: locales/<code>.json, an
* import in index.js, and an entry here (see docs/TRANSLATORS.md).
*/
export const LOCALES = Object.freeze(['en', 'es', 'ru']);
+5 -1
View File
@@ -22,7 +22,11 @@
"Globe actions": "Acciones del globo",
"Reset camera and return to full globe view": "Restablecer la cámara y volver a la vista del globo completo",
"loading frames": "cargando fotogramas",
"Language": "Idioma",
"Language: {language}": "Idioma: {language}",
"Change the interface language": "Cambiar el idioma de la interfaz",
"Interface language": "Idioma de la interfaz",
"Search languages": "Buscar idioma",
"No matching languages": "No hay idiomas que coincidan",
"Loading Google 3D Tiles...": "Cargando Google 3D Tiles...",
"Loading the keyless globe...": "Cargando el globo sin clave...",
"Initializing systems...": "Inicializando sistemas...",
+5 -1
View File
@@ -688,7 +688,11 @@
"Keep location tray open": "Держать панель места открытой",
"Search any location": "Поиск любого места",
"Navigation, voice, and visual preset controls": "Управление навигацией, голосом и визуальными пресетами",
"Language": "Язык",
"Language: {language}": "Язык: {language}",
"Change the interface language": "Сменить язык интерфейса",
"Interface language": "Язык интерфейса",
"Search languages": "Поиск языка",
"No matching languages": "Подходящих языков нет",
"Search location by name or coordinates": "Поиск места по названию или координатам",
"Search any location...": "Поиск любого места...",
"Normal": "Обычный",