mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 10:53:59 +00:00
i18n: fix the final pre-merge review findings
Fixes the P1 and the confirmed P2 findings of the final review of the
i18n branch.
- CI: the air-quality model no longer imports i18n (portable module),
so check:boundaries passes again.
- Air quality layer: named in the layer panel, HUD and voice; its
Weather card, bands and errors translate. A test keeps the layer-name
table in step with the layer registry.
- Layer statuses that still reached ru/es in English: GNSS, CelesTrak,
Transit loading and feed errors, launches, perimeters, ALPR, ECCC,
wind "field unavailable", Local ADS-B streaming lines.
- Voice and HUD: preset ids show city names ("Fly to San Francisco"),
the HUD city translates, cockpit refusals cover frame, aircraft and
satellite; empty Transit notes translate on the analyst card.
- tn() keeps a caller's formatted count ("12,345 map objects").
- Cyber HUD: the language button no longer covers the bottom-right
card or the cockpit position readout.
- CCTV buttons wrap only in non-English locales; English layout matches
main again.
- Switching language asks first when Provider Settings holds unsaved
keys.
Catalogs: es/ru 2611 messages each, complete.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
fada8b161b
commit
3adce33cc6
43 files changed
+1350
-97
No files matched your search
@@ -14,6 +14,8 @@ export const NAVIGATION_AUTHORITY_EVENT = 'gev:navigation-authority-taken';
|
||||
// The Cockpit refusal per destination noun. Nouns are English identifiers
|
||||
// from the callers ('camera', 'location', 'photo'…); a noun without its own
|
||||
// sentence falls back to the template with the noun as given.
|
||||
// navigationPolicyFrame.test.mjs collects every noun the callers pass and
|
||||
// fails when one has no sentence here.
|
||||
const COCKPIT_REFUSALS = Object.freeze({
|
||||
camera: msg('Exit cockpit to fly to a camera'),
|
||||
location: msg('Exit cockpit to fly to a location'),
|
||||
@@ -29,8 +31,18 @@ const COCKPIT_REFUSALS = Object.freeze({
|
||||
// «View coverage» button); the cyclone layer flies to the selected storm.
|
||||
weather: msg('Exit cockpit to view weather coverage'),
|
||||
cyclone: msg('Exit cockpit to fly to a cyclone'),
|
||||
// Voice track_entity (TRACKABLE_FAMILIES kinds in gevActions.js) and
|
||||
// frame_overhead, which frames the contacts around the current view.
|
||||
aircraft: msg('Exit cockpit to fly to an aircraft'),
|
||||
satellite: msg('Exit cockpit to fly to a satellite'),
|
||||
frame: msg('Exit cockpit to frame contacts'),
|
||||
});
|
||||
|
||||
/** The destination nouns with their own Cockpit refusal (for tests). */
|
||||
export const COCKPIT_REFUSAL_NOUNS = Object.freeze(
|
||||
Object.keys(COCKPIT_REFUSALS),
|
||||
);
|
||||
|
||||
function cockpitRefusal(noun) {
|
||||
const ready = COCKPIT_REFUSALS[noun];
|
||||
return ready ? t(ready) : t('Exit cockpit to fly to a {noun}', { noun });
|
||||
|
||||
Reference in new issue
Block a user