mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 10:53:59 +00:00
feat(i18n): translate the whole interface
Mark every UI string the unmarked-text check reported (534) plus text it cannot see (helpers, joined labels, runtime-built panels), and translate the result to Spanish and Russian: 1,679 messages each. - Kept on purpose, with the reason where the text lives: provider and product names, place and camera names, codes and units, dB values, the HUD terminal readouts, demo shot titles that saved projects look up by title, and text for AI tools and the voice model. - Modules shared with the server or AI tools stay free of the i18n import (local msg); the wind reading and voice session stay English and are translated where the page shows them. - npm test now runs the unmarked-text check. - Fixes on the way: a duplicated radio privacy paragraph, the contact panel toggle saying Expand while open, the CSS filter mistaking & for CSS. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
ee72133574
commit
3129e531e6
99 files changed
+4670
-1294
No files matched your search
+10
-10
@@ -39,7 +39,7 @@ const msg = (text) => text;
|
||||
export const KEY_SETUP_KEYS = Object.freeze([
|
||||
Object.freeze({
|
||||
id: 'google-maps',
|
||||
title: 'GOOGLE MAPS',
|
||||
title: 'GOOGLE MAPS', // i18n-ignore: provider product name
|
||||
unlocks: msg('The photorealistic 3D planet + place search'),
|
||||
getUrl: 'https://developers.google.com/maps/documentation/tile/get-api-key',
|
||||
envVars: Object.freeze(['GOOGLE_MAPS_API_KEY']),
|
||||
@@ -48,7 +48,7 @@ export const KEY_SETUP_KEYS = Object.freeze([
|
||||
}),
|
||||
Object.freeze({
|
||||
id: 'google-maps-server',
|
||||
title: 'GOOGLE MAPS — SERVER',
|
||||
title: 'GOOGLE MAPS — SERVER', // i18n-ignore: provider product name; row is hidden
|
||||
unlocks: msg(
|
||||
'Places context + Street View fallback; optional separate key',
|
||||
),
|
||||
@@ -60,7 +60,7 @@ export const KEY_SETUP_KEYS = Object.freeze([
|
||||
}),
|
||||
Object.freeze({
|
||||
id: 'openai',
|
||||
title: 'OPENAI',
|
||||
title: 'OPENAI', // i18n-ignore: provider product name
|
||||
unlocks: msg('Voice control — API key or ChatGPT OAuth'),
|
||||
getUrl: 'https://platform.openai.com/api-keys',
|
||||
envVars: Object.freeze(['OPENAI_API_KEY']),
|
||||
@@ -68,7 +68,7 @@ export const KEY_SETUP_KEYS = Object.freeze([
|
||||
}),
|
||||
Object.freeze({
|
||||
id: 'aisstream',
|
||||
title: 'AISSTREAM',
|
||||
title: 'AISSTREAM', // i18n-ignore: provider product name
|
||||
unlocks: msg('Live ships, worldwide'),
|
||||
getUrl: 'https://aisstream.io',
|
||||
envVars: Object.freeze(['AISSTREAM_API_KEY']),
|
||||
@@ -76,7 +76,7 @@ export const KEY_SETUP_KEYS = Object.freeze([
|
||||
}),
|
||||
Object.freeze({
|
||||
id: 'firms',
|
||||
title: 'NASA FIRMS',
|
||||
title: 'NASA FIRMS', // i18n-ignore: provider product name
|
||||
unlocks: msg('Live active-fire detections'),
|
||||
getUrl: 'https://firms.modaps.eosdis.nasa.gov/api/map_key/',
|
||||
envVars: Object.freeze(['FIRMS_MAP_KEY']),
|
||||
@@ -84,7 +84,7 @@ export const KEY_SETUP_KEYS = Object.freeze([
|
||||
}),
|
||||
Object.freeze({
|
||||
id: 'tomtom',
|
||||
title: 'TOMTOM',
|
||||
title: 'TOMTOM', // i18n-ignore: provider product name
|
||||
unlocks: msg('Real live traffic (keyless runs a simulation)'),
|
||||
getUrl: 'https://my.tomtom.com/keys',
|
||||
envVars: Object.freeze(['TOMTOM_API_KEY']),
|
||||
@@ -92,7 +92,7 @@ export const KEY_SETUP_KEYS = Object.freeze([
|
||||
}),
|
||||
Object.freeze({
|
||||
id: 'cesium-ion',
|
||||
title: 'CESIUM ION',
|
||||
title: 'CESIUM ION', // i18n-ignore: provider product name
|
||||
unlocks: msg('Bing imagery map stacks + world terrain'),
|
||||
getUrl: 'https://ion.cesium.com/tokens',
|
||||
envVars: Object.freeze(['CESIUM_ION_TOKEN']),
|
||||
@@ -101,7 +101,7 @@ export const KEY_SETUP_KEYS = Object.freeze([
|
||||
}),
|
||||
Object.freeze({
|
||||
id: 'opensky',
|
||||
title: 'OPENSKY',
|
||||
title: 'OPENSKY', // i18n-ignore: provider product name
|
||||
unlocks: msg('More flight-polling credits (anonymous works without)'),
|
||||
getUrl: 'https://opensky-network.org',
|
||||
envVars: Object.freeze(['OPENSKY_CLIENT_ID', 'OPENSKY_CLIENT_SECRET']),
|
||||
@@ -109,7 +109,7 @@ export const KEY_SETUP_KEYS = Object.freeze([
|
||||
}),
|
||||
Object.freeze({
|
||||
id: 'mapillary',
|
||||
title: 'MAPILLARY',
|
||||
title: 'MAPILLARY', // i18n-ignore: provider product name
|
||||
unlocks: msg(
|
||||
'Street-level imagery and coverage in the Street Level layer. Free: register an app in the Mapillary developer dashboard and paste its Client Token',
|
||||
),
|
||||
@@ -120,7 +120,7 @@ export const KEY_SETUP_KEYS = Object.freeze([
|
||||
}),
|
||||
Object.freeze({
|
||||
id: 'launch-library',
|
||||
title: 'LAUNCH LIBRARY',
|
||||
title: 'LAUNCH LIBRARY', // i18n-ignore: provider product name
|
||||
unlocks: msg('Higher space-missions request allowance'),
|
||||
getUrl: 'https://thespacedevs.com',
|
||||
envVars: Object.freeze(['LL2_API_TOKEN']),
|
||||
|
||||
Reference in new issue
Block a user