mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 19:04:02 +00:00
feat(i18n): ship Spanish
Register es next to ru (selector shows EN | ES | RU) and complete the catalog against the current English: the 13 messages added since #602, the "many" plural form Intl.PluralRules('es') selects for exact millions, and fixes where the English had changed (e.g. "hace hace" in LIVE · updated, minutes written as metres). Terminology made consistent (buque, aeronave, incendio activo); key names stay in English. Meir's wording is kept everywhere else. Adds docs/translations/es.md. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
47cfdb823e
commit
70936b58b9
9 files changed
+180
-51
No files matched your search
+2
-1
@@ -15,9 +15,10 @@ import {
|
||||
normalizeLocale,
|
||||
writeStoredLocale,
|
||||
} from './locale.js';
|
||||
import es from './locales/es.json' with { type: 'json' };
|
||||
import ru from './locales/ru.json' with { type: 'json' };
|
||||
|
||||
const CATALOGS = Object.freeze({ ru });
|
||||
const CATALOGS = Object.freeze({ es, ru });
|
||||
|
||||
let currentLocale = DEFAULT_LOCALE;
|
||||
|
||||
|
||||
+6
-2
@@ -11,10 +11,14 @@ export const DEFAULT_LOCALE = 'en';
|
||||
* Shipped locales, in selector order. Adding one: locales/<code>.json, an
|
||||
* import in index.js, and an entry here (see docs/TRANSLATORS.md).
|
||||
*/
|
||||
export const LOCALES = Object.freeze(['en', 'ru']);
|
||||
export const LOCALES = Object.freeze(['en', 'es', 'ru']);
|
||||
|
||||
/** Each locale named in its own language, for the selector. */
|
||||
export const LOCALE_NAMES = Object.freeze({ en: 'English', ru: 'Русский' });
|
||||
export const LOCALE_NAMES = Object.freeze({
|
||||
en: 'English',
|
||||
es: 'Español',
|
||||
ru: 'Русский',
|
||||
});
|
||||
|
||||
/** Right-to-left locales. */
|
||||
const RTL_LOCALES = Object.freeze([]);
|
||||
|
||||
+61
-41
@@ -123,14 +123,14 @@
|
||||
"LIVE TRACK · COURSE ALIGNED": "RASTREO EN VIVO · RUMBO ALINEADO",
|
||||
"Cockpit vision style": "Estilo de visión de la cabina",
|
||||
"Current aircraft heading": "Rumbo actual de la aeronave",
|
||||
"GROUND SPEED · KTS": "VEL. SUELO · KTS",
|
||||
"GROUND SPEED · KTS": "VEL. SUELO · KN",
|
||||
"ALTITUDE · FT": "ALTITUD · FT",
|
||||
"PREV": "ANT",
|
||||
"PREV": "ANT.",
|
||||
"Previous cockpit vision style": "Estilo de visión de cabina anterior",
|
||||
"Previous vision style": "Estilo de visión anterior",
|
||||
"Current cockpit vision style: NORMAL. Activate for next style.": "Estilo de visión de cabina actual: NORMAL. Actívalo para pasar al siguiente estilo.",
|
||||
"Current style: NORMAL — click for next": "Estilo actual: NORMAL — haz clic para el siguiente",
|
||||
"NEXT": "SIG",
|
||||
"NEXT": "SIG.",
|
||||
"Next cockpit vision style": "Siguiente estilo de visión de cabina",
|
||||
"Next vision style": "Siguiente estilo de visión",
|
||||
"View switcher": "Selector de vistas",
|
||||
@@ -180,7 +180,7 @@
|
||||
"Expand panel": "Expandir panel",
|
||||
"Context mode": "Modo de contexto",
|
||||
"CONTACTS": "CONTACTOS",
|
||||
"Cycles the nearest contacts of whatever type you select — planes, vessels, installations. Satellites track independently.": "Ronda por los contactos más cercanos del tipo que elijas — aeronaves, embarcaciones, instalaciones. Los satélites se rastrean por separado.",
|
||||
"Cycles the nearest contacts of whatever type you select — planes, vessels, installations. Satellites track independently.": "Recorre los contactos más cercanos del tipo que elijas — aeronaves, buques, instalaciones. Los satélites se rastrean por separado.",
|
||||
"SPACE MISSIONS": "MISIONES ESPACIALES",
|
||||
"SELECT CONTEXT": "SELECCIONAR CONTEXTO",
|
||||
"Contact Context actions": "Acciones de contexto de contacto",
|
||||
@@ -243,6 +243,7 @@
|
||||
"DISTANCE UNKNOWN": "DISTANCIA DESCONOCIDA",
|
||||
"{count} INPUTS UNKNOWN": {
|
||||
"one": "{count} DATO DESCONOCIDO",
|
||||
"many": "{count} DE DATOS DESCONOCIDOS",
|
||||
"other": "{count} DATOS DESCONOCIDOS"
|
||||
},
|
||||
"SOURCE STATUS UNAVAILABLE": "ESTADO DE FUENTE NO DISPONIBLE",
|
||||
@@ -259,6 +260,7 @@
|
||||
"CONTACT LOST · LAST KNOWN READOUT · NOT AN ALL-CLEAR": "CONTACTO PERDIDO · ÚLTIMA LECTURA CONOCIDA · NO IMPLICA TODO DESPEJADO",
|
||||
"{count} INPUTS UNKNOWN · NOT AN ALL-CLEAR": {
|
||||
"one": "{count} DATO DESCONOCIDO · NO IMPLICA TODO DESPEJADO",
|
||||
"many": "{count} DE DATOS DESCONOCIDOS · NO IMPLICA TODO DESPEJADO",
|
||||
"other": "{count} DATOS DESCONOCIDOS · NO IMPLICA TODO DESPEJADO"
|
||||
},
|
||||
"AVAILABLE INPUTS CURRENT · NOT AN ALL-CLEAR": "DATOS DISPONIBLES ACTUALIZADOS · NO IMPLICA TODO DESPEJADO",
|
||||
@@ -288,7 +290,7 @@
|
||||
"{domain} · {age}": "{domain} · {age}",
|
||||
"{source} · LOCATION QUERY": "{source} · CONSULTA POR UBICACIÓN",
|
||||
"TIME UNKNOWN": "HORA DESCONOCIDA",
|
||||
"{count}M AGO": "HACE {count} M",
|
||||
"{count}M AGO": "HACE {count} MIN",
|
||||
"{count}H AGO": "HACE {count} H",
|
||||
"{count}D AGO": "HACE {count} D",
|
||||
"DIR UNKNOWN": "DIR DESCONOCIDA",
|
||||
@@ -304,7 +306,7 @@
|
||||
"Selected data layers could not be cleared": "No se pudieron limpiar las capas de datos seleccionadas",
|
||||
"ACQUIRING": "OBTENIENDO",
|
||||
"entity": "entidad",
|
||||
"SHARED {subject}": "{subject} COMPARTIDA",
|
||||
"SHARED {subject}": "{subject} COMPARTIDO",
|
||||
"Shared {subject} follow expired": "El seguimiento de {subject} compartido ha caducado",
|
||||
"Shared {subject} could not be restored — feed unavailable": "No se pudo restaurar {subject} compartido — fuente no disponible",
|
||||
"Shared {subject} is unavailable": "{subject} compartido no está disponible",
|
||||
@@ -318,7 +320,7 @@
|
||||
"Zoom in to search mapped installations": "Haz zoom para buscar instalaciones mapeadas",
|
||||
"Nearby installations refreshed": "Instalaciones cercanas actualizadas",
|
||||
"That layer is unavailable in the current Context mode": "Esa capa no está disponible en el modo de contexto actual",
|
||||
"start": "iniciar",
|
||||
"start": "iniciarse",
|
||||
"stop": "detenerse",
|
||||
"{layerId} could not {action} cleanly": "{layerId} no pudo {action} correctamente",
|
||||
"Radio could not {action} cleanly": "Radio no pudo {action} correctamente",
|
||||
@@ -327,7 +329,7 @@
|
||||
"CCTV calibration reset": "Calibración de CCTV restablecida",
|
||||
"CCTV layer unavailable": "Capa de CCTV no disponible",
|
||||
"MAP": "MAPA",
|
||||
"CONTACTS — nearest planes · vessels · sites": "CONTACTOS — aeronaves · embarcaciones · sitios más cercanos",
|
||||
"CONTACTS — nearest planes · vessels · sites": "CONTACTOS — aeronaves · buques · sitios más cercanos",
|
||||
"SPACE MISSIONS — launches & orbital assets": "MISIONES ESPACIALES — lanzamientos y activos orbitales",
|
||||
"Space Missions cancellation could not restore the previous layer state": "La cancelación de Misiones espaciales no pudo restaurar el estado previo de las capas",
|
||||
"Collapse Cockpit display options": "Contraer las opciones de visualización de la cabina",
|
||||
@@ -348,7 +350,7 @@
|
||||
"SYNCING DIRECTORY": "SINCRONIZANDO DIRECTORIO",
|
||||
"SYNCING": "SINCRONIZANDO",
|
||||
"station": "emisora",
|
||||
"Ready": "Lista",
|
||||
"Ready": "Listo",
|
||||
"VIEWSHED ON": "ÁREA VISIBLE ACTIVADA",
|
||||
"FRAME · LOADING": "FOTOGRAMA · CARGANDO",
|
||||
"FRAME · UNAVAILABLE": "FOTOGRAMA · NO DISPONIBLE",
|
||||
@@ -358,13 +360,15 @@
|
||||
"CURATED": "CURADA",
|
||||
"RAW PRIOR": "PREVIA SIN PROCESAR",
|
||||
"MONITOR": "MONITOR",
|
||||
"{city} · HDG {heading} · FOV {fov} · RANGE {range}m · {projection}{calBadge} · {provider}{status}": "{city} · HDG {heading} · FOV {fov} · ALCANCE {range}m · {projection}{calBadge} · {provider}{status}",
|
||||
"{city} · HDG {heading} · FOV {fov} · RANGE {range}m · {projection}{calBadge} · {provider}{status}": "{city} · HDG {heading} · FOV {fov} · RANGE {range}m · {projection}{calBadge} · {provider}{status}",
|
||||
"{count} cameras loaded · click a camera to activate": {
|
||||
"one": "{count} cámara cargada · haz clic en una cámara para activarla",
|
||||
"many": "{count} de cámaras cargadas · haz clic en una cámara para activarla",
|
||||
"other": "{count} cámaras cargadas · haz clic en una cámara para activarla"
|
||||
},
|
||||
"{count} cameras loaded · enable CCTV to activate": {
|
||||
"one": "{count} cámara cargada · activa CCTV para activarla",
|
||||
"many": "{count} de cámaras cargadas · activa CCTV para activarlas",
|
||||
"other": "{count} cámaras cargadas · activa CCTV para activarlas"
|
||||
},
|
||||
"No summary available.": "No hay resumen disponible.",
|
||||
@@ -373,14 +377,14 @@
|
||||
"Detection overlay: off": "Superposición de detección: desactivada",
|
||||
"SPARSE": "DISPERSA",
|
||||
"BALANCED": "EQUILIBRADA",
|
||||
"DENSE": "DENSA",
|
||||
"DENSE": "DENSO",
|
||||
"Resetting to full globe view": "Restableciendo la vista de globo completo",
|
||||
"Resetting cockpit to full globe view": "Restableciendo la cabina a la vista de globo completo",
|
||||
"ORBIT": "ÓRBITA",
|
||||
"SUMMARY": "RESUMEN",
|
||||
"Awaiting telemetry...": "Esperando telemetría...",
|
||||
"REC": "REC",
|
||||
"Scope edge feather": "Suavizado del borde de la mirilla",
|
||||
"Scope edge feather": "Difuminado del borde de la mirilla",
|
||||
"Bloom intensity": "Intensidad del bloom",
|
||||
"Sharpen intensity": "Intensidad de la nitidez",
|
||||
"Search location by name or coordinates": "Buscar ubicación por nombre o coordenadas",
|
||||
@@ -391,10 +395,12 @@
|
||||
"No selected data layers": "No hay capas de datos seleccionadas",
|
||||
"Cleared {count} data layers": {
|
||||
"one": "Se limpió {count} capa de datos",
|
||||
"many": "Se limpiaron {count} de capas de datos",
|
||||
"other": "Se limpiaron {count} capas de datos"
|
||||
},
|
||||
"{count} data layers could not be cleared": {
|
||||
"one": "No se pudo limpiar {count} capa de datos",
|
||||
"many": "No se pudieron limpiar {count} de capas de datos",
|
||||
"other": "No se pudieron limpiar {count} capas de datos"
|
||||
},
|
||||
"Visible map targets": "Objetivos visibles en el mapa",
|
||||
@@ -406,11 +412,11 @@
|
||||
"CCTV camera": "Cámara CCTV",
|
||||
"FOCUS": "ENFOCAR",
|
||||
"COVERAGE OFF": "COBERTURA DESACTIVADA",
|
||||
"AUTO HOP OFF": "AUTO HOP DESACTIVADO",
|
||||
"AUTO HOP OFF": "AUTOSALTO DESACTIVADO",
|
||||
"PROJECTION ON": "PROYECCIÓN ACTIVADA",
|
||||
"CALIBRATION": "CALIBRACIÓN",
|
||||
"ADJUST": "AJUSTAR",
|
||||
"Drag the camera in the world: rings rotate, arrows move, handles set range/FOV": "Arrastra la cámara en el mundo: los anillos rotan, las flechas se mueven, los tiradores ajustan alcance/FOV",
|
||||
"Drag the camera in the world: rings rotate, arrows move, handles set range/FOV": "Arrastra la cámara en el mundo: los anillos la giran, las flechas la mueven, los tiradores ajustan alcance/FOV",
|
||||
"Camera pose — click a value to type": "Pose de la cámara — clic en un valor para escribirlo",
|
||||
"Heading (compass °) — click to type": "Rumbo (° brújula) — clic para escribir",
|
||||
"Pitch (° up/down) — click to type": "Inclinación (° arriba/abajo) — clic para escribir",
|
||||
@@ -468,8 +474,8 @@
|
||||
"FIRMS Active Fires": "Incendios activos FIRMS",
|
||||
"just now": "justo ahora",
|
||||
"{count}s ago": "hace {count}s",
|
||||
"{count}m ago": "hace {count}m",
|
||||
"{count}h ago": "hace {count}h",
|
||||
"{count}m ago": "hace {count} min",
|
||||
"{count}h ago": "hace {count} h",
|
||||
"never": "nunca",
|
||||
"loading...": "cargando...",
|
||||
"UNCERTAIN · {source} · lifecycle state requires reconciliation": "INCIERTO · {source} · el estado del ciclo de vida requiere reconciliación",
|
||||
@@ -499,7 +505,7 @@
|
||||
"TUG": "REMOLCADOR",
|
||||
"PORT TENDER": "AUXILIAR DE PUERTO",
|
||||
"ANTI-POLLUTION": "ANTICONTAMINACIÓN",
|
||||
"LAW ENFORCE": "APLICACIÓN DE LA LEY",
|
||||
"LAW ENFORCE": "POLICÍA",
|
||||
"MEDICAL": "MÉDICO",
|
||||
"HIGH-SPEED": "ALTA VELOCIDAD",
|
||||
"PASSENGER": "PASAJEROS",
|
||||
@@ -515,7 +521,7 @@
|
||||
"awaiting first AIS position…": "esperando la primera posición AIS…",
|
||||
"CCTV ON": "CCTV ACTIVADO",
|
||||
"COVERAGE ON": "COBERTURA ACTIVADA",
|
||||
"AUTO HOP ON": "AUTO HOP ACTIVADO",
|
||||
"AUTO HOP ON": "AUTOSALTO ACTIVADO",
|
||||
"PROJECTION OFF": "PROYECCIÓN DESACTIVADA",
|
||||
"ADJUST ON": "AJUSTE ACTIVADO",
|
||||
"{count} CAMERAS STANDING BY · NO CAMERA SELECTED · CLICK A CAMERA TO ACTIVATE": "{count} CÁMARAS EN ESPERA · NINGUNA CÁMARA SELECCIONADA · CLIC EN UNA CÁMARA PARA ACTIVARLA",
|
||||
@@ -524,21 +530,21 @@
|
||||
"HDG {value}°": "HDG {value}°",
|
||||
"HDG {value}° (ESTIMATED)": "HDG {value}° (ESTIMADO)",
|
||||
"FOV {value}°": "FOV {value}°",
|
||||
"COVERAGE {value}km²": "COBERTURA {value}km²",
|
||||
"OVERLAP {count} cams": "SOLAPE {count} cáms",
|
||||
"COVERAGE {value}km²": "COBERTURA {value} KM²",
|
||||
"OVERLAP {count} cams": "SOLAPE {count} cám.",
|
||||
"ISOLATED VIEW": "VISTA AISLADA",
|
||||
"PROJ MONITOR": "PROY MONITOR",
|
||||
"PROJ OFF": "PROY DESACT",
|
||||
"VIEWSHED": "ÁREA VISIBLE",
|
||||
"CAL {value}": "CAL {value}",
|
||||
"SRC {value}": "SRC {value}",
|
||||
"{value} CONTEXT": "{value} CONTEXTO",
|
||||
"{value} CONTEXT": "CONTEXTO {value}",
|
||||
"News": "Noticias",
|
||||
"Talk": "Debate",
|
||||
"Talk": "Tertulia",
|
||||
"Weather / Emergency": "Clima / Emergencias",
|
||||
"Public Safety": "Seguridad pública",
|
||||
"Aviation / Marine": "Aviación / Marítima",
|
||||
"Traffic / Transit": "Tráfico / Tránsito",
|
||||
"Aviation / Marine": "Aviación / Marina",
|
||||
"Traffic / Transit": "Tráfico / Transporte",
|
||||
"Music": "Música",
|
||||
"Other": "Otros",
|
||||
"NO STATION AVAILABLE": "NINGUNA EMISORA DISPONIBLE",
|
||||
@@ -555,7 +561,7 @@
|
||||
"Connecting directly to broadcaster…": "Conectando directamente con la emisora…",
|
||||
"Buffering broadcaster stream…": "Almacenando en búfer el flujo de la emisora…",
|
||||
"Playing {station}": "Reproduciendo {station}",
|
||||
"Paused {station}": "En pausa {station}",
|
||||
"Paused {station}": "{station} en pausa",
|
||||
"Broadcaster stream unavailable": "Flujo de la emisora no disponible",
|
||||
" · degraded directory": " · directorio degradado",
|
||||
" · stale directory": " · directorio desactualizado",
|
||||
@@ -640,19 +646,19 @@
|
||||
"Showing the full Starlink shell — click for the core catalog only": "Mostrando la capa completa de Starlink — clic para ver solo el catálogo principal",
|
||||
"STATION": "ESTACIÓN",
|
||||
"Crewed stations and their visiting vehicles": "Estaciones tripuladas y sus vehículos de visita",
|
||||
"NAV": "NAVEGACIÓN",
|
||||
"NAV": "NAV",
|
||||
"GNSS navigation — GPS, GLONASS, Galileo": "Navegación GNSS — GPS, GLONASS, Galileo",
|
||||
"GEO": "GEO",
|
||||
"Geostationary belt — comms and weather, fixed over the equator": "Cinturón geoestacionario — comunicaciones y meteorología, fijos sobre el ecuador",
|
||||
"VISUAL": "VISUAL",
|
||||
"Brightest naked-eye objects — CelesTrak visual group": "Objetos más brillantes a simple vista — grupo visual de CelesTrak",
|
||||
"COMMS": "COMUNICACIONES",
|
||||
"COMMS": "TELECOM",
|
||||
"Broadband constellation shell — shown only in DENSE mode": "Capa de constelación de banda ancha — visible solo en modo DENSO",
|
||||
"refreshing...": "actualizando...",
|
||||
"KEY REQUIRED": "CLAVE REQUERIDA",
|
||||
"STALE · cached {age}": "DESACTUALIZADO · en caché hace {age}",
|
||||
"LIVE · updated {age}": "EN VIVO · actualizado hace {age}",
|
||||
"<1m ago": "hace <1m",
|
||||
"LIVE · updated {age}": "EN VIVO · actualizado {age}",
|
||||
"<1m ago": "hace <1 min",
|
||||
"FIRE · {frp} MW": "INCENDIO · {frp} MW",
|
||||
"▲ {frp} MW": "▲ {frp} MW",
|
||||
"FIRE": "INCENDIO",
|
||||
@@ -700,7 +706,7 @@
|
||||
"Military flights": "Vuelos militares",
|
||||
"AIS vessels": "Buques AIS",
|
||||
"Mapped installations": "Instalaciones mapeadas",
|
||||
"CURRENT VIEWPORT ONLY": "SOLO LA VENTANA VISIBLE ACTUAL",
|
||||
"CURRENT VIEWPORT ONLY": "SOLO LA VISTA ACTUAL",
|
||||
"BRG {value}°": "BRG {value}°",
|
||||
"CRS {value}°": "CRS {value}°",
|
||||
"feed unavailable": "fuente no disponible",
|
||||
@@ -719,7 +725,7 @@
|
||||
"SNOW SHOWERS": "CHUBASCOS DE NIEVE",
|
||||
"THUNDERSTORM": "TORMENTA",
|
||||
"MIXED CONDITIONS": "CONDICIONES MIXTAS",
|
||||
"TAB PREVIEWS · ENTER / SPACE SELECTS": "TAB VISTAS PREVIAS · INTRO / ESPACIO SELECCIONA",
|
||||
"TAB PREVIEWS · ENTER / SPACE SELECTS": "TAB VISTA PREVIA · ENTER / SPACE SELECCIONA",
|
||||
"awaiting usable AIS positions…": "esperando posiciones AIS utilizables…",
|
||||
"awaiting first AIS message…": "esperando el primer mensaje AIS…",
|
||||
"EST. DOWNRANGE": "DIST. ESTIMADA",
|
||||
@@ -733,12 +739,12 @@
|
||||
"SAVE KEYS": "GUARDAR CLAVES",
|
||||
"Saving…": "Guardando…",
|
||||
"It feels like a forbidden cockpit—then you realize the sources are public and the data is real.": "Parece una cabina prohibida—hasta que descubres que las fuentes son públicas y los datos son reales.",
|
||||
"Aircraft, vessels and nearby intelligence": "Aviones, barcos e inteligencia cercana",
|
||||
"Aircraft, vessels and nearby intelligence": "Aeronaves, buques e inteligencia cercana",
|
||||
"Launches, spacecraft and orbital context": "Lanzamientos, naves y contexto orbital",
|
||||
"EXPLORE MANUALLY": "EXPLORAR MANUALMENTE",
|
||||
"Begin with a clean globe": "Empieza con un globo limpio",
|
||||
"ESC to dismiss": "ESC para cerrar",
|
||||
"Tip: the GEV MIC button in the dock lets you talk to the map.": "Consejo: el botón MIC de GEV en el dock te permite hablar con el mapa.",
|
||||
"Tip: the GEV MIC button in the dock lets you talk to the map.": "Consejo: el botón GEV MIC del dock te permite hablar con el mapa.",
|
||||
"Close key setup": "Cerrar la configuración de claves",
|
||||
"The globe already flies keyless. Every key below switches on another real feed — paste one and it's saved into this app's local configuration, then the server restarts itself. Server-side keys stay on this machine; Google Maps and Cesium ion run in the browser and must be provider-restricted. Keys you configured elsewhere are shown but never touched.": "El globo ya vuela sin claves. Cada clave de abajo activa otra fuente real — pega una y queda guardada en la configuración local de esta app, y luego el servidor se reinicia solo. Las claves del servidor se quedan en esta máquina; Google Maps y Cesium ion funcionan en el navegador y sus claves deben estar restringidas por el proveedor. Las claves que configuraste en otro lugar se muestran, pero nunca se modifican.",
|
||||
"ESC to close": "ESC para cerrar",
|
||||
@@ -759,12 +765,13 @@
|
||||
"Working…": "Trabajando…",
|
||||
"Could not open that mission{detail}. Retry or explore manually.": "No se pudo abrir esa misión{detail}. Reintenta o explora manualmente.",
|
||||
"This browser is blocking storage, so that could not be saved.": "Este navegador bloquea el almacenamiento, así que no se pudo guardar.",
|
||||
"Live earthquakes and active fires, from USGS and NASA": "Terremotos en vivo y fuegos activos, de USGS y NASA",
|
||||
"Live earthquakes and active fires, from USGS and NASA": "Terremotos en vivo e incendios activos, de USGS y NASA",
|
||||
"ENVIRONMENTAL": "MEDIO AMBIENTE",
|
||||
"EARTH WATCH": "VIGILANCIA TERRESTRE",
|
||||
"ACTIVE EVENTS": "EVENTOS ACTIVOS",
|
||||
"POWER UP · {count} KEYS WAITING": {
|
||||
"one": "ENCENDER · {count} CLAVE EN ESPERA",
|
||||
"many": "ENCENDER · {count} DE CLAVES EN ESPERA",
|
||||
"other": "ENCENDER · {count} CLAVES EN ESPERA"
|
||||
},
|
||||
"POWERED UP": "ENCENDIDO",
|
||||
@@ -794,13 +801,13 @@
|
||||
"VOICE UNAVAILABLE": "VOZ NO DISPONIBLE",
|
||||
"WebRTC microphone support unavailable": "Compatibilidad con micrófono WebRTC no disponible",
|
||||
"Requesting microphone": "Solicitando micrófono",
|
||||
"Hold Space to talk": "Mantén Espacio para hablar",
|
||||
"Release Space to send": "Suelta la barra espaciadora para enviar",
|
||||
"Hold Space to talk": "Mantén pulsado Space para hablar",
|
||||
"Release Space to send": "Suelta Space para enviar",
|
||||
"Ask or command": "Pregunta o ordena",
|
||||
"Voice off": "Voz desactivada",
|
||||
"Running command": "Ejecutando comando",
|
||||
"Radio did not start": "La radio no se inició",
|
||||
"Hold Space to speak · tap Space to activate focused controls": "Mantén presionada la barra espaciadora para hablar · púlsala brevemente para activar los controles enfocados",
|
||||
"Hold Space to speak · tap Space to activate focused controls": "Mantén pulsado Space para hablar · pulsa Space brevemente para activar el control enfocado",
|
||||
"Voice session could not be started.": "No se pudo iniciar la sesión de voz.",
|
||||
"VOICE SYSTEM ERROR": "ERROR DEL SISTEMA DE VOZ",
|
||||
"DISMISS": "CERRAR",
|
||||
@@ -810,7 +817,7 @@
|
||||
"{tier} applies next session": "{tier} se aplica en la próxima sesión",
|
||||
"Voice model tier — applies next session": "Nivel del modelo de voz — se aplica en la próxima sesión",
|
||||
"Estimated session cost": "Costo estimado de la sesión",
|
||||
"Voice control — activate to toggle voice; hold Space to speak": "Control de voz — actívalo para conectar o cortar la voz; mantén presionada la barra espaciadora para hablar",
|
||||
"Voice control — activate to toggle voice; hold Space to speak": "Control de voz — actívalo para conectar o cortar la voz; mantén pulsado Space para hablar",
|
||||
"Cannot capture shot: camera not ready": "No se puede capturar el plano: la cámara no está lista",
|
||||
"Shot {n}": "Plano {n}",
|
||||
"Captured: {scene} / {shot}": "Capturado: {scene} / {shot}",
|
||||
@@ -829,7 +836,7 @@
|
||||
"Needs {envVars} — add it in Provider Settings": "Necesita {envVars} — añádela en Ajustes de proveedores",
|
||||
"The photorealistic 3D planet + place search": "El planeta 3D fotorrealista + búsqueda de lugares",
|
||||
"Places context + Street View fallback; optional separate key": "Contexto de Places + respaldo de Street View; clave separada opcional",
|
||||
"Live ships, worldwide": "Barcos en vivo, en todo el mundo",
|
||||
"Live ships, worldwide": "Buques en vivo, en todo el mundo",
|
||||
"Live active-fire detections": "Detecciones de incendios activos en vivo",
|
||||
"Real live traffic (keyless runs a simulation)": "Tráfico real en vivo (sin clave usa una simulación)",
|
||||
"Bing imagery map stacks + world terrain": "Conjuntos de mapas Bing imagery + terreno mundial",
|
||||
@@ -838,6 +845,19 @@
|
||||
"Scene action failed": "La acción de escena falló",
|
||||
"Project exported": "Proyecto exportado",
|
||||
"Next session: {pendingId} — this session stays on {modelId}": "Sesión siguiente: {pendingId} — esta sesión sigue en {modelId}",
|
||||
"Voice model: {pendingId} — click to switch to {target}; applies next session": "Modelo de voz: {pendingId} — toca para cambiar a {target}; se aplica en la próxima sesión",
|
||||
"Estimated session cost on {modelId} — {responses} response(s). Warns at {warn}, ends the session at {cap}.": "Coste de sesión estimado en {modelId} — {responses} respuesta(s). Avisa a {warn} y cierra la sesión a {cap}."
|
||||
"Voice model: {pendingId} — click to switch to {target}; applies next session": "Modelo de voz: {pendingId} — haz clic para cambiar a {target}; se aplica en la próxima sesión",
|
||||
"Estimated session cost on {modelId} — {responses} response(s). Warns at {warn}, ends the session at {cap}.": "Costo de sesión estimado en {modelId} — {responses} respuesta(s). Avisa a {warn} y cierra la sesión a {cap}.",
|
||||
"Street-level imagery and coverage in the Street Level layer. Free: register an app in the Mapillary developer dashboard and paste its Client Token": "Imágenes y cobertura a nivel de calle en la capa Street Level. Gratis: registra una app en el panel de desarrolladores de Mapillary y pega su Client Token",
|
||||
"Voice control — API key or ChatGPT OAuth": "Control de voz — clave de API u OAuth de ChatGPT",
|
||||
"WITHIN {km} KM": "A MENOS DE {km} KM",
|
||||
"Syncing flow · Roads: {source}": "Sincronizando flujo · Vías: {source}",
|
||||
"LIVE · Roads: {source} · Roads without flow hidden": "EN VIVO · Vías: {source} · Vías sin flujo ocultas",
|
||||
"LIVE · Roads: {source} · No flow roads in view": "EN VIVO · Vías: {source} · Sin vías con flujo a la vista",
|
||||
"LIVE · Roads: {source} · Flow {percent}%": "EN VIVO · Vías: {source} · Flujo {percent}%",
|
||||
"SIMULATED · Roads: {source} · Flow {percent}%": "SIMULADO · Vías: {source} · Flujo {percent}%",
|
||||
"Syncing flow · Roads: OpenStreetMap · Flow: TomTom · Unmatched: simulated": "Sincronizando flujo · Vías: OpenStreetMap · Flujo: TomTom · Sin coincidencia: simulado",
|
||||
"LIVE · Roads: OpenStreetMap · Flow: TomTom · {percent}% cov · Unmatched: simulated": "EN VIVO · Vías: OpenStreetMap · Flujo: TomTom · {percent}% cob. · Sin coincidencia: simulado",
|
||||
"LIVE · Roads: OpenStreetMap · Flow: TomTom · {percent}% cov": "EN VIVO · Vías: OpenStreetMap · Flujo: TomTom · {percent}% cob.",
|
||||
"SIMULATED · Roads: OpenStreetMap · Flow: TomTom (no matches)": "SIMULADO · Vías: OpenStreetMap · Flujo: TomTom (sin coincidencias)",
|
||||
"Data source unavailable": "Fuente de datos no disponible"
|
||||
}
|
||||
Reference in new issue
Block a user