fix(i18n): translate the Street Level and Draw panels

Both panels landed after the original string extraction, so they rendered
English in every locale. Mark their markup and runtime text (status, SINCE
stops, provider tooltips, coverage meta, viewer captions, draw hints and
colours), the layer-list names kept in PANEL_LABELS, and add 90 es and ru
entries. Street Level is «Уличные снимки» / «A pie de calle».

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
German KhokhlovandClaude Opus 5.5 committed 2026-10-12 18:32:28 +04:00
1 parent eee905e787
commit 6ff7afcc8b
13 files changed
+378 -98

No files matched your search

+108 -2
View File
@@ -847,7 +847,7 @@
"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} — 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",
"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 A pie de calle. 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}",
@@ -873,5 +873,111 @@
"Scanlines": "Líneas de barrido",
"Sensitivity": "Sensibilidad",
"WHOT/BHOT": "WHOT/BHOT",
"Ironbow": "Ironbow"
"Ironbow": "Ironbow",
"Pick a shape, then click the map.": "Elige una forma y haz clic en el mapa.",
"Enter to place the pin, Esc to cancel.": "Enter para colocar el pin, Esc para cancelar.",
"Click where the pin goes.": "Haz clic donde va el pin.",
"Click {count} more points.": {
"one": "Haz clic en {count} punto más.",
"many": "Haz clic en {count} de puntos más.",
"other": "Haz clic en {count} puntos más."
},
"Those points are in a line — move one off it to enclose an area.": "Esos puntos están en línea: mueve uno fuera de ella para cerrar un área.",
"That line has no length — click somewhere further away.": "Esa línea no tiene longitud: haz clic más lejos.",
" · {max}-point limit reached": " · límite de {max} puntos alcanzado",
"{measure} · double-click or Enter to finish, Backspace undoes, Esc cancels.{full}": "{measure} · doble clic o Enter para terminar, Backspace deshace, Esc cancela.{full}",
"That point is off the globe — click on the world.": "Ese punto está fuera del globo: haz clic sobre el mundo.",
"That shape could not be placed.": "No se pudo colocar esa forma.",
"Board cleared.": "Tablero borrado.",
"Draw on the world — click vertices, double-click or Enter to finish, Esc to cancel": "Dibuja sobre el mundo: haz clic en los vértices, doble clic o Enter para terminar, Esc para cancelar",
"Draw": "Dibujo",
"Shape": "Forma",
"Shape to draw": "Forma a dibujar",
"Area": "Área",
"Line": "Línea",
"Pin": "Pin",
"Label (optional)": "Etiqueta (opcional)",
"Label for the drawn shape": "Etiqueta de la forma dibujada",
"Colour of the drawn shape": "Color de la forma dibujada",
"Primary": "Principal",
"Amber": "Ámbar",
"Cyan": "Cian",
"Green": "Verde",
"Red": "Rojo",
"Clear": "Borrar",
"Remove every mark from the board": "Quitar todas las marcas del tablero",
"Point the camera at the globe for street-level coverage": "Apunta la cámara al globo para ver la cobertura a pie de calle",
"No street-level imagery providers configured": "No hay proveedores de imágenes a pie de calle configurados",
"Selected": "Seleccionada",
"Live Vessels": "Buques en vivo",
"Bike Share": "Bicis compartidas",
"Cameras": "Cámaras",
"Street Level": "A pie de calle",
"Mapped ALPR Cameras": "Cámaras ALPR cartografiadas",
"Data Centers": "Centros de datos",
"Active Fires": "Incendios activos",
"Street Level could not start": "No se pudo iniciar A pie de calle",
"Street Level toggle failed": "No se pudo cambiar A pie de calle",
"Street-level image": "Imagen a pie de calle",
"SHRINK": "REDUCIR",
"EXPAND": "AMPLIAR",
"Shrink": "Reducir",
"Expand": "Ampliar",
"ANY DATE": "CUALQUIER FECHA",
"LAST 10 YEARS": "ÚLTIMOS 10 AÑOS",
"LAST 5 YEARS": "ÚLTIMOS 5 AÑOS",
"LAST 3 YEARS": "ÚLTIMOS 3 AÑOS",
"LAST 2 YEARS": "ÚLTIMOS 2 AÑOS",
"LAST YEAR": "ÚLTIMO AÑO",
"LAST 6 MONTHS": "ÚLTIMOS 6 MESES",
"LAST 3 MONTHS": "ÚLTIMOS 3 MESES",
"LAST MONTH": "ÚLTIMO MES",
"LAST {count} DAYS": {
"one": "ÚLTIMO {count} DÍA",
"many": "ÚLTIMOS {count} DE DÍAS",
"other": "ÚLTIMOS {count} DÍAS"
},
"{window} · SINCE {date}": "{window} · DESDE {date}",
"Turn Street Level off": "Desactivar A pie de calle",
"Turn Street Level on": "Activar A pie de calle",
"KEY REJECTED": "CLAVE RECHAZADA",
"{name} imagery on": "Imágenes de {name} activadas",
"{name} imagery off": "Imágenes de {name} desactivadas",
"Image by {creator}": "Imagen de {creator}",
"Camera follows view: move the globe camera wherever the street-level view looks": "La cámara sigue la vista: mueve la cámara del globo hacia donde mira la vista a pie de calle",
"Camera follow needs the Google 3D map: choose Google 3D under MAP SOURCE": "Seguir con la cámara requiere el mapa Google 3D: elige Google 3D en FUENTE DEL MAPA",
"Switch a provider on to draw its coverage.": "Activa un proveedor para dibujar su cobertura.",
"Loading this sequence…": "Cargando esta secuencia…",
"{n} images in this sequence · Esc clears": {
"one": "{n} imagen en esta secuencia · Esc la quita",
"many": "{n} de imágenes en esta secuencia · Esc la quita",
"other": "{n} imágenes en esta secuencia · Esc la quita"
},
"{n} sequences in view · click a line for its photos": {
"one": "{n} secuencia a la vista · haz clic en una línea para ver sus fotos",
"many": "{n} de secuencias a la vista · haz clic en una línea para ver sus fotos",
"other": "{n} secuencias a la vista · haz clic en una línea para ver sus fotos"
},
"STREET LEVEL": "A PIE DE CALLE",
"Expand the street-level view (Esc shrinks it)": "Ampliar la vista a pie de calle (Esc la reduce)",
"Image fit": "Ajuste de la imagen",
"FIT": "AJUSTAR",
"Fit: show the whole photo, with dark bars where its shape differs from the frame": "Ajustar: muestra la foto entera, con barras oscuras donde su forma no coincide con el marco",
"FILL": "RELLENAR",
"Fill: fill the frame edge to edge, cropping the photo": "Rellenar: llena el marco de borde a borde, recortando la foto",
"Camera follows view": "La cámara sigue la vista",
"FOLLOW": "SEGUIR",
"Close the image and deselect it on the map": "Cerrar la imagen y quitar la selección en el mapa",
"Close the street-level image": "Cerrar la imagen a pie de calle",
"Street-level viewer": "Visor a pie de calle",
"Open this image on the provider's site": "Abrir esta imagen en el sitio del proveedor",
"Imagery providers": "Proveedores de imágenes",
"PROVIDERS": "PROVEEDORES",
"Imagery filters": "Filtros de imágenes",
"IMAGERY": "IMÁGENES",
"Panorama filter": "Filtro de panoramas",
"ALL": "TODAS",
"FLAT": "PLANAS",
"SINCE": "DESDE",
"Coverage colours": "Colores de cobertura"
}