mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-06 03:14:00 +00:00
fix(i18n): fix Russian layouts and the gaps the screenshot review found
A review of the Russian UI screenshots found ~90 places where longer words
broke the layout or text was still English. Fixed so they hold for any
language, then shortened where a control is short by design.
- Layout: label columns that size to their text (weather and wind settings,
Recent Imagery slots and opacity, style sliders, display panel), layer
list names and icons, buttons that wrap instead of overflowing (CCTV,
scenes, Bhote Koshi), voice header that always shows the cost, styled
EN | ES | RU chips, voice error tray above the dock.
- t() context: t('CLEAR', { context: 'action' }) is «СБРОСИТЬ» while the sky
stays «ЯСНО»; also used for radio categories, voice states and directions.
- Units and dates follow the locale through src/ui/unitLabels.js
(formatQuantity: localized number, translated unit, non-breaking space):
wind, pressure, cyclones, directions, CCTV, SDR gain, scene timing, flight
tooltip, Recent Imagery dates and resolution.
- Newly translated: directions turn-by-turn steps (built from the maneuver;
English matches the server word for word), HUD mode and summary, voice
card states, radio categories on the globe, CCTV status, layer source
lines, scene dialogs (Cancel, file pickers), Bhote Koshi statuses, titles,
comparison dates and caveat, Recent Imagery notices. Stored data and text
for AI tools stay English.
- es and ru: 1,885 messages each.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
3129e531e6
commit
2b6ccad732
71 files changed
+2435
-370
No files matched your search
@@ -130,6 +130,12 @@ test('tn() picks English and Russian plural forms', () => {
|
||||
assert.match(label(21), / 21 КЛЮЧ(?![А-ЯЁ])/);
|
||||
});
|
||||
|
||||
test('t() context separates identical English with different meanings', () => {
|
||||
assert.equal(t('CLEAR', { context: 'action' }), 'CLEAR');
|
||||
setLocale('ru');
|
||||
assert.notEqual(t('CLEAR', { context: 'action' }), t('CLEAR'));
|
||||
});
|
||||
|
||||
test('msg() returns its text unchanged', () => {
|
||||
assert.equal(msg('Live Flights'), 'Live Flights');
|
||||
});
|
||||
|
||||
+5
-2
@@ -3,6 +3,7 @@
|
||||
// t('Save keys') → 'Сохранить ключи'
|
||||
// t('Cleared {name}', { name }) → named interpolation
|
||||
// tn(count, '{count} camera', '{count} cameras') → plural by Intl.PluralRules
|
||||
// t('CLEAR', { context: 'action' }) → same English, own entry
|
||||
// msg('Live Flights') → marks a string kept in data
|
||||
// for a later t(); returns it as is
|
||||
//
|
||||
@@ -76,11 +77,13 @@ function lookup(text) {
|
||||
/**
|
||||
* Translate English source text into the active locale.
|
||||
* @param {string} text English text, e.g. 'Hold Space to talk'
|
||||
* @param {object} [values] Named interpolation values
|
||||
* @param {object} [values] Named interpolation values. `context` tells
|
||||
* apart identical English with different meanings: t('CLEAR', { context:
|
||||
* 'action' }) is the catalog entry "action|CLEAR"; English is unchanged.
|
||||
* @returns {string}
|
||||
*/
|
||||
export function t(text, values) {
|
||||
const entry = lookup(text);
|
||||
const entry = lookup(values?.context ? `${values.context}|${text}` : text);
|
||||
return interpolate(typeof entry === 'string' ? entry : text, values);
|
||||
}
|
||||
|
||||
|
||||
+228
-18
@@ -275,13 +275,13 @@
|
||||
"Expand contact panel": "Expandir el panel de contacto",
|
||||
"Expand cockpit briefing panel": "Expandir el panel de información de la cabina",
|
||||
"Expand briefing panel": "Expandir el panel de información",
|
||||
"CYCLE ON": "CICLO ACTIVADO",
|
||||
"CYCLE OFF": "CICLO DESACTIVADO",
|
||||
"CYCLE ON": "CICLO: SÍ",
|
||||
"CYCLE OFF": "CICLO: NO",
|
||||
"Stop automatic page cycling. Previous, Next, and the SIG/NEWS/LOCAL tabs stay available.": "Detén el cambio automático de páginas. Anterior, Siguiente y las pestañas SIG/NEWS/LOCAL siguen disponibles.",
|
||||
"REGIONAL NEWS": "NOTICIAS REGIONALES",
|
||||
"LOCAL INFO": "INFORMACIÓN LOCAL",
|
||||
"LATEST LOCATION-MATCHED REPORTING": "ÚLTIMOS REPORTES SEGÚN UBICACIÓN",
|
||||
"PLACE / CONDITIONS / POSITION": "LUGAR / CONDICIONES / POSICIÓN",
|
||||
"PLACE / CONDITIONS / POSITION": "LUGAR / CLIMA / POSICIÓN",
|
||||
"POSITION UNAVAILABLE": "POSICIÓN NO DISPONIBLE",
|
||||
"REGIONAL NEWS UNAVAILABLE": "NOTICIAS REGIONALES NO DISPONIBLES",
|
||||
"REGION UNAVAILABLE": "REGIÓN NO DISPONIBLE",
|
||||
@@ -360,7 +360,7 @@
|
||||
"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} · RANGE {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",
|
||||
@@ -442,7 +442,7 @@
|
||||
"SNAPS TO AVAILABLE STATIONS": "SE AJUSTA A EMISORAS DISPONIBLES",
|
||||
"Radio playback": "Reproducción de Radio",
|
||||
"Previous filtered station": "Emisora filtrada anterior",
|
||||
"PLAY": "REPRODUCIR",
|
||||
"PLAY": "ESCUCHAR",
|
||||
"Play selected station": "Reproducir la emisora seleccionada",
|
||||
"Next filtered station": "Siguiente emisora filtrada",
|
||||
"STOP": "DETENER",
|
||||
@@ -792,8 +792,6 @@
|
||||
"City Overload": "Sobrecarga urbana",
|
||||
"Omniscience Pullback": "Alejamiento omnisciente",
|
||||
"CONNECTING": "CONECTANDO",
|
||||
"LISTENING": "ESCUCHANDO",
|
||||
"EXECUTING": "EJECUTANDO",
|
||||
"ERROR": "ERROR",
|
||||
"Session ended — cost cap {cost}": "Sesión finalizada — límite de costo {cost}",
|
||||
"VOICE STANDBY": "VOZ EN ESPERA",
|
||||
@@ -801,7 +799,7 @@
|
||||
"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 pulsado Space para hablar",
|
||||
"Hold Space to talk": "Mantén Space y habla",
|
||||
"Release Space to send": "Suelta Space para enviar",
|
||||
"Ask or command": "Pregunta o ordena",
|
||||
"Voice off": "Voz desactivada",
|
||||
@@ -839,7 +837,7 @@
|
||||
"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",
|
||||
"Bing imagery map stacks + world terrain": "Imágenes de Bing + terreno mundial",
|
||||
"More flight-polling credits (anonymous works without)": "Más créditos de consulta de vuelos (sin clave funciona el modo anónimo)",
|
||||
"Higher space-missions request allowance": "Mayor límite de peticiones para misiones espaciales",
|
||||
"Scene action failed": "La acción de escena falló",
|
||||
@@ -847,7 +845,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 A pie de calle. 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 token de cliente (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}",
|
||||
@@ -988,7 +986,7 @@
|
||||
"{provider} · EMBEDDED SOURCE": "{provider} · FUENTE INSERTADA",
|
||||
"OPEN ORIGINAL ↗": "ABRIR ORIGINAL ↗",
|
||||
"{provider} media: {source}": "Contenido de {provider}: {source}",
|
||||
"{provider} · PROVIDER CONTROLS": "{provider} · CONTROLES DEL PROVEEDOR",
|
||||
"{provider} · PROVIDER CONTROLS": "{provider} · CONTROLES NATIVOS",
|
||||
"YOUTUBE {state} · OPEN ORIGINAL": "YOUTUBE {state} · ABRE EL ORIGINAL",
|
||||
"Facebook player API did not initialize.": "La API del reproductor de Facebook no se inicializó.",
|
||||
"Facebook player API could not load.": "No se pudo cargar la API del reproductor de Facebook.",
|
||||
@@ -1002,10 +1000,10 @@
|
||||
"Preloading {provider} media": "Precargando contenido de {provider}",
|
||||
"LOADING X POST…": "CARGANDO PUBLICACIÓN DE X…",
|
||||
"The X post is unavailable or cannot be embedded.": "La publicación de X no está disponible o no se puede insertar.",
|
||||
"X POST · PROVIDER CONTROLS": "PUBLICACIÓN DE X · CONTROLES DEL PROVEEDOR",
|
||||
"X POST · PROVIDER CONTROLS": "PUBLICACIÓN DE X · CONTROLES NATIVOS",
|
||||
"{reason} OPEN ORIGINAL.": "{reason} ABRE EL ORIGINAL.",
|
||||
"X embed unavailable": "Inserción de X no disponible",
|
||||
"FACEBOOK · PROVIDER CONTROLS": "FACEBOOK · CONTROLES DEL PROVEEDOR",
|
||||
"FACEBOOK · PROVIDER CONTROLS": "FACEBOOK · CONTROLES NATIVOS",
|
||||
"Facebook embed unavailable": "Inserción de Facebook no disponible",
|
||||
"AUTOPLAY BLOCKED · USE PROVIDER CONTROLS": "REPRODUCCIÓN AUTOMÁTICA BLOQUEADA · USA LOS CONTROLES DEL PROVEEDOR",
|
||||
"Embedded {provider} media for {source}": "Contenido de {provider} insertado para {source}",
|
||||
@@ -1519,13 +1517,13 @@
|
||||
"Mode": "Modo",
|
||||
"Imagery on Esri · Google 3D returns when cleared": "Imágenes sobre Esri · Google 3D vuelve al borrarlas",
|
||||
"Imagery opacity": "Opacidad de las imágenes",
|
||||
"SWAP": "INTERCAMBIAR",
|
||||
"SWAP": "CAMBIO",
|
||||
"VS BASEMAP": "VS MAPA BASE",
|
||||
"Trade the two sides of the divider": "Intercambiar los dos lados del divisor",
|
||||
"A / B": "A / B",
|
||||
"Newest low-cloud day for this box · scene cloud, not box cloud": "Día más reciente con pocas nubes para este recuadro · nubes de la escena, no del recuadro",
|
||||
"Newest day covering this box · cloudier than 20%": "Día más reciente que cubre este recuadro · más de un 20% de nubes",
|
||||
"SELECT BOX": "SELECCIONAR RECUADRO",
|
||||
"SELECT BOX": "SELECCIONAR",
|
||||
"Drag a box on the map (Esc cancels)": "Arrastra un recuadro en el mapa (Esc cancela)",
|
||||
"Newest day with imagery for this box · partial coverage": "Día más reciente con imágenes para este recuadro · cobertura parcial",
|
||||
"USE VIEW": "USAR VISTA",
|
||||
@@ -1559,7 +1557,7 @@
|
||||
"Source off": "Fuente desactivada",
|
||||
"Unpin {slot}": "Desfijar {slot}",
|
||||
"Unpin the image": "Desfijar la imagen",
|
||||
"EXPORT {slot}": "EXPORTAR {slot}",
|
||||
"EXPORT {slot}": "EXP. {slot}",
|
||||
"EXPORT": "EXPORTAR",
|
||||
"Download {slot} as a PNG": "Descargar {slot} como PNG",
|
||||
"Download the image as a PNG": "Descargar la imagen como PNG",
|
||||
@@ -1597,7 +1595,7 @@
|
||||
"Select a box or use the view": "Selecciona un recuadro o usa la vista",
|
||||
"Searching the last 30 days": "Buscando en los últimos 30 días",
|
||||
"No days to show for this box": "No hay días que mostrar para este recuadro",
|
||||
"Drag the divider · SWAP trades sides": "Arrastra el divisor · INTERCAMBIAR cambia los lados",
|
||||
"Drag the divider · SWAP trades sides": "Arrastra el divisor · CAMBIO invierte los lados",
|
||||
"Export failed · {error}": "La exportación falló · {error}",
|
||||
"← → preview · A or B pins the focused day": "← → vista previa · A o B fija el día enfocado",
|
||||
"← → preview the other side · A or B pins it": "← → vista previa del otro lado · A o B lo fija",
|
||||
@@ -1801,5 +1799,217 @@
|
||||
"Referenced items": "Elementos citados",
|
||||
"NOTES & SOURCES": "NOTAS Y FUENTES",
|
||||
"ΔN": "ΔN",
|
||||
"ΔE": "ΔE"
|
||||
"ΔE": "ΔE",
|
||||
"action|CLEAR": "BORRAR",
|
||||
"ALPR Cameras": "Cámaras ALPR",
|
||||
"Military aircraft": "Aeronaves militares",
|
||||
"Vessels": "Buques",
|
||||
"CCTV + Street View fallback": "CCTV + respaldo de Street View",
|
||||
"OpenStreetMap + optional Google Maps Places": "OpenStreetMap + Google Maps Places opcional",
|
||||
"GFS / ECMWF IFS · FORECAST": "GFS / ECMWF IFS · PRONÓSTICO",
|
||||
"NOAA nowCOAST · OBSERVED": "NOAA nowCOAST · OBSERVADO",
|
||||
"NASA FIRMS · LIVE": "NASA FIRMS · EN VIVO",
|
||||
"data source|Local": "Datos locales",
|
||||
"overview": "vista general",
|
||||
"{percent}% scene cloud": "{percent}% de nubes en la escena",
|
||||
"{min}–{max}% scene cloud": "{min}–{max}% de nubes en la escena",
|
||||
"Sentinel-2 via HLS": "Sentinel-2 vía HLS",
|
||||
"Landsat 8/9 via HLS": "Landsat 8/9 vía HLS",
|
||||
"coverage|full": "completa",
|
||||
"coverage|partial": "parcial",
|
||||
"m": "m",
|
||||
"km/h": "km/h",
|
||||
"m/s": "m/s",
|
||||
"mph": "mph",
|
||||
"hPa": "hPa",
|
||||
"kt": "kn",
|
||||
"km": "km",
|
||||
"h": "h",
|
||||
"min": "min",
|
||||
"s": "s",
|
||||
"direction|left": "a la izquierda",
|
||||
"direction|right": "a la derecha",
|
||||
"direction|slightly left": "ligeramente a la izquierda",
|
||||
"direction|slightly right": "ligeramente a la derecha",
|
||||
"direction|sharply left": "bruscamente a la izquierda",
|
||||
"direction|sharply right": "bruscamente a la derecha",
|
||||
"direction|straight": "recto",
|
||||
"direction|around": "en sentido contrario",
|
||||
"ordinal|{number}st": "{number}.ª",
|
||||
"ordinal|{number}nd": "{number}.ª",
|
||||
"ordinal|{number}rd": "{number}.ª",
|
||||
"ordinal|{number}th": "{number}.ª",
|
||||
"Head out on {road}": "Sal por {road}",
|
||||
"Head out": "Sal",
|
||||
"Arrive at your destination": "Has llegado a tu destino",
|
||||
"Arrive at your destination, on the left": "Tu destino está a la izquierda",
|
||||
"Arrive at your destination, on the right": "Tu destino está a la derecha",
|
||||
"Make a U-turn": "Da la vuelta",
|
||||
"Make a U-turn onto {road}": "Da la vuelta hacia {road}",
|
||||
"Continue straight": "Sigue recto",
|
||||
"Continue straight onto {road}": "Sigue recto por {road}",
|
||||
"Turn {direction}": "Gira {direction}",
|
||||
"Turn {direction} onto {road}": "Gira {direction} hacia {road}",
|
||||
"maneuver|Turn": "Gira",
|
||||
"Turn onto {road}": "Gira hacia {road}",
|
||||
"Continue {direction}": "Sigue {direction}",
|
||||
"Continue {direction} onto {road}": "Sigue {direction} por {road}",
|
||||
"maneuver|Continue": "Continúa",
|
||||
"Continue onto {road}": "Continúa por {road}",
|
||||
"At the end of the road, turn {direction}": "Al final de la vía, gira {direction}",
|
||||
"At the end of the road, turn {direction} onto {road}": "Al final de la vía, gira {direction} hacia {road}",
|
||||
"At the end of the road, continue": "Al final de la vía, continúa",
|
||||
"At the end of the road, continue onto {road}": "Al final de la vía, continúa por {road}",
|
||||
"Keep {direction} at the fork": "En la bifurcación, mantente {direction}",
|
||||
"Keep {direction} at the fork onto {road}": "En la bifurcación, mantente {direction} hacia {road}",
|
||||
"Continue at the fork": "En la bifurcación, continúa",
|
||||
"Continue at the fork onto {road}": "En la bifurcación, continúa por {road}",
|
||||
"Merge {direction}": "Incorpórate {direction}",
|
||||
"Merge {direction} onto {road}": "Incorpórate {direction} a {road}",
|
||||
"maneuver|Merge": "Incorpórate",
|
||||
"Merge onto {road}": "Incorpórate a {road}",
|
||||
"Take the ramp on the {direction}": "Toma la rampa {direction}",
|
||||
"Take the ramp on the {direction} onto {road}": "Toma la rampa {direction} hacia {road}",
|
||||
"Take the ramp": "Toma la rampa",
|
||||
"Take the ramp onto {road}": "Toma la rampa hacia {road}",
|
||||
"Take the exit on the {direction}": "Toma la salida {direction}",
|
||||
"Take the exit on the {direction} onto {road}": "Toma la salida {direction} hacia {road}",
|
||||
"Take the exit": "Toma la salida",
|
||||
"Take the exit onto {road}": "Toma la salida hacia {road}",
|
||||
"At the roundabout, take the {exit} exit": "En la rotonda, toma la {exit} salida",
|
||||
"At the roundabout, take the {exit} exit onto {road}": "En la rotonda, toma la {exit} salida hacia {road}",
|
||||
"Enter the roundabout": "Entra en la rotonda",
|
||||
"Enter the roundabout onto {road}": "Entra en la rotonda hacia {road}",
|
||||
"At the roundabout, turn {direction}": "En la rotonda, gira {direction}",
|
||||
"At the roundabout, turn {direction} onto {road}": "En la rotonda, gira {direction} hacia {road}",
|
||||
"At the roundabout, continue": "En la rotonda, continúa",
|
||||
"At the roundabout, continue onto {road}": "En la rotonda, continúa por {road}",
|
||||
"Exit the roundabout": "Sal de la rotonda",
|
||||
"Exit the roundabout onto {road}": "Sal de la rotonda hacia {road}",
|
||||
"Use the {direction} lane": "Usa el carril {direction}",
|
||||
"Use the {direction} lane onto {road}": "Usa el carril {direction} hacia {road}",
|
||||
"voice|OFF": "APAG.",
|
||||
"voice|CONNECTING": "CONEX…",
|
||||
"voice|LISTENING": "OYENDO",
|
||||
"voice|EXECUTING": "ACCIÓN",
|
||||
"voice|ERROR": "ERROR",
|
||||
"MIC": "MIC",
|
||||
"WORKING": "EN CURSO",
|
||||
"DONE": "LISTO",
|
||||
"Outline traced": "Contorno trazado",
|
||||
"Outline unavailable": "Contorno no disponible",
|
||||
"in progress": "en curso",
|
||||
"done": "listo",
|
||||
"failed": "falló",
|
||||
"cancelled": "cancelado",
|
||||
"view band|STREET": "CALLE",
|
||||
"view band|CITY": "CIUDAD",
|
||||
"view band|METRO": "METRÓPOLI",
|
||||
"view band|REGIONAL": "REGIÓN",
|
||||
"view band|GLOBAL": "GLOBAL",
|
||||
"NEAR {poi} ({city}) {distance}": "CERCA DE {poi} ({city}) {distance}",
|
||||
"SECTOR {lat} {lon}": "SECTOR {lat} {lon}",
|
||||
"ARCTIC": "ÁRTICO",
|
||||
"ANTARCTIC": "ANTÁRTIDA",
|
||||
"NORTH AMERICA": "NORTEAMÉRICA",
|
||||
"SOUTH AMERICA": "SUDAMÉRICA",
|
||||
"EUROPE": "EUROPA",
|
||||
"AFRICA": "ÁFRICA",
|
||||
"ASIA": "ASIA",
|
||||
"OCEANIA": "OCEANÍA",
|
||||
"NORTHERN OCEANIC GRID": "CUADRÍCULA OCEÁNICA NORTE",
|
||||
"SOUTHERN OCEANIC GRID": "CUADRÍCULA OCEÁNICA SUR",
|
||||
"N/A": "N/D",
|
||||
"{mode} {band} {locality} | {region} | ALT {alt} | WINDOW {window} | SUN {sun}° | ONA {ona}° | {zone}": "{mode} {band} {locality} | {region} | ALT {alt} | VENTANA {window} | SUN {sun}° | ONA {ona}° | {zone}",
|
||||
"{label} · {radius} AIR/SEA WINDOW": "{label} · VENTANA AIRE/MAR {radius}",
|
||||
"{scope} · INSTALLATIONS {coverage}": "{scope} · INSTALACIONES: {coverage}",
|
||||
"{source} · LOCATION QUERY · RECENT": "{source} · CONSULTA POR UBICACIÓN · RECIENTE",
|
||||
"ft": "ft",
|
||||
"kts": "kn",
|
||||
"PAUSE": "PAUSA",
|
||||
"RESUME": "REANUDAR",
|
||||
"dB": "dB",
|
||||
"radio|NEWS": "NOTICIAS",
|
||||
"radio|TALK": "TERTULIA",
|
||||
"radio|WEATHER": "CLIMA",
|
||||
"radio|SAFETY": "SEGURIDAD",
|
||||
"radio|AIR / SEA": "AIRE / MAR",
|
||||
"radio|TRANSIT": "TRANSPORTE",
|
||||
"radio|MUSIC": "MÚSICA",
|
||||
"radio|OTHER": "OTROS",
|
||||
"SNAPSHOT": "INSTANTÁNEA",
|
||||
"LIVE": "EN VIVO",
|
||||
"UPSTREAM": "ORIGEN",
|
||||
"SYNTHETIC": "SINTÉTICO",
|
||||
"CONFIGURED": "CONFIGURADO",
|
||||
"SEED": "CATÁLOGO",
|
||||
"Live HLS connected": "HLS en vivo conectado",
|
||||
"Live HLS unavailable": "HLS en vivo no disponible",
|
||||
"No stream URL configured": "No hay URL de transmisión configurada",
|
||||
"Live stream connected": "Transmisión en vivo conectada",
|
||||
"Snapshot feed connected": "Fuente de instantáneas conectada",
|
||||
"Media fetch failed": "Error al obtener el contenido multimedia",
|
||||
"Upstream snapshot active": "Instantánea de origen activa",
|
||||
"Fallback Street View frame": "Fotograma de respaldo de Street View",
|
||||
"Upstream unavailable": "Origen no disponible",
|
||||
"No source configured": "No hay fuente configurada",
|
||||
"Upstream HTTP {status}": "Origen: HTTP {status}",
|
||||
"Unexpected media type {type}": "Tipo de contenido inesperado: {type}",
|
||||
"Configured source": "Fuente configurada",
|
||||
"Synthetic fallback": "Respaldo sintético",
|
||||
"Cancel": "Cancelar",
|
||||
"Choose files": "Elegir archivos",
|
||||
"No file chosen": "Ningún archivo seleccionado",
|
||||
"{count} files selected": {
|
||||
"one": "{count} archivo seleccionado",
|
||||
"many": "{count} de archivos seleccionados",
|
||||
"other": "{count} archivos seleccionados"
|
||||
},
|
||||
"Rasuwagadhi witness video": "Video del testigo de Rasuwagadhi",
|
||||
"Bhote Koshi valley footage": "Imágenes del valle del Bhote Koshi",
|
||||
"Flood footage": "Imágenes de la inundación",
|
||||
"Compilation and casualty claims": "Recopilación y afirmaciones sobre víctimas",
|
||||
"SOURCE GEOCONFIRMED · WORLD-PINNED": "FUENTE GEOCONFIRMADA · FIJADA EN EL MAPA",
|
||||
"SOURCE CREDITED · LOCATION UNRESOLVED": "FUENTE ACREDITADA · UBICACIÓN SIN RESOLVER",
|
||||
"REFERENCE ONLY · CLAIMS UNVERIFIED": "SOLO REFERENCIA · AFIRMACIONES SIN VERIFICAR",
|
||||
"SOURCE GEOCONFIRMED": "FUENTE GEOCONFIRMADA",
|
||||
"2021 historical reference versus 2026 post-event imagery; changes are cumulative and include the July 2025 Rasuwagadhi flood. Schematic downstream progression, not modeled arrival time; not an official hazard model.": "Referencia histórica de 2021 frente a imágenes posteriores al evento de 2026; los cambios son acumulativos e incluyen la inundación de Rasuwagadhi de julio de 2025. Avance esquemático aguas abajo, no un tiempo de llegada modelado; no es un modelo oficial de peligro.",
|
||||
"Immediate collapse viewpoint": "Punto de vista junto al colapso",
|
||||
"Collapse viewpoint": "Vista del colapso",
|
||||
"Debris-dammed lake": "Lago represado por escombros",
|
||||
"Dammed lake": "Lago represado",
|
||||
"Second landslide": "Segundo deslizamiento",
|
||||
"Gyirong border gate": "Paso fronterizo de Gyirong",
|
||||
"Border gate": "Paso fronterizo",
|
||||
"Timure evidence cluster": "Grupo de evidencias de Timure",
|
||||
"Mailung / Upper Trishuli bridge": "Mailung / puente de Upper Trishuli",
|
||||
"Dandagaun viewpoint restaurant": "Restaurante mirador de Dandagaun",
|
||||
"Dandagaun viewpoint": "Mirador de Dandagaun",
|
||||
"Bidur - Trishuli bridge": "Puente Bidur - Trishuli",
|
||||
"Bidur bridge": "Puente de Bidur",
|
||||
"Devighat / Taadi Khola Bridge": "Devighat / puente de Taadi Khola",
|
||||
"Devighat bridge": "Puente de Devighat",
|
||||
"Global Incident Context": "Contexto global del incidente",
|
||||
"Nepal-Focused Globe Rotation": "Rotación del globo hacia Nepal",
|
||||
"Bhote Koshi Regional Approach": "Aproximación regional al Bhote Koshi",
|
||||
"Bhote Koshi Nearby Cities": "Ciudades cercanas al Bhote Koshi",
|
||||
"Bhote Koshi Incident Corridor": "Corredor del incidente del Bhote Koshi",
|
||||
"Bhote Koshi Flood Path": "Trayectoria de la inundación del Bhote Koshi",
|
||||
"Bhote Koshi Corridor Overview": "Vista general del corredor del Bhote Koshi",
|
||||
"Bhote Koshi Upper Valley": "Valle alto del Bhote Koshi",
|
||||
"Upper Valley Collapse": "Colapso en el valle alto",
|
||||
"Debris-Dammed Lake": "Lago represado por escombros",
|
||||
"Nepal-China Border Gate": "Paso fronterizo Nepal-China",
|
||||
"Timure Evidence Cluster": "Grupo de evidencias de Timure",
|
||||
"Syabru Besi Passage": "Paso por Syabru Besi",
|
||||
"Bidur / Trishuli Consequence": "Consecuencias en Bidur / Trishuli",
|
||||
"Final view": "Vista final",
|
||||
"{year} HISTORICAL REFERENCE": "REFERENCIA HISTÓRICA {year}",
|
||||
"{year} POST-EVENT": "POSTERIOR AL EVENTO {year}",
|
||||
"Esri map unavailable · no swipe": "Mapa Esri no disponible · sin comparación",
|
||||
"Swipe needs a globe map": "La comparación necesita un mapa de globo",
|
||||
"Imagery stays on Esri · CLEAR to use Google 3D": "Las imágenes siguen en Esri · BORRAR para usar Google 3D",
|
||||
"Box and images cleared": "Recuadro e imágenes borrados",
|
||||
"Box is {size} wide · limit {limit}": "El recuadro mide {size} · límite {limit}",
|
||||
"View is {size} wide · limit {limit}": "La vista mide {size} · límite {limit}"
|
||||
}
|
||||
+247
-36
@@ -73,7 +73,7 @@
|
||||
"Remove this key from your saved configuration?": "Удалить этот ключ из сохранённой конфигурации?",
|
||||
"Removed from {store}. Restarting — this page reloads itself.": "Удалено: {store}. Перезапуск — страница перезагрузится сама.",
|
||||
"More flight-polling credits (anonymous works without)": "Больше кредитов на опрос рейсов (анонимно работает и без ключа)",
|
||||
"Street-level imagery and coverage in the Street Level layer. Free: register an app in the Mapillary developer dashboard and paste its Client Token": "Уличные снимки и покрытие в слое «Уличные снимки». Бесплатно: зарегистрируйте приложение в панели разработчика Mapillary и вставьте его 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": "Уличные снимки и покрытие в слое «Уличные снимки». Бесплатно: зарегистрируйте приложение в панели разработчика Mapillary и вставьте его клиентский токен (Client Token)",
|
||||
"Higher space-missions request allowance": "Повышенный лимит запросов для космических миссий",
|
||||
"The photorealistic 3D planet + place search": "Фотореалистичная 3D-планета + поиск мест",
|
||||
"Places context + Street View fallback; optional separate key": "Контекст Places + резервный Street View; отдельный ключ — по желанию",
|
||||
@@ -81,7 +81,7 @@
|
||||
"Live ships, worldwide": "Суда в реальном времени по всему миру",
|
||||
"Live active-fire detections": "Обнаружение активных пожаров в реальном времени",
|
||||
"Real live traffic (keyless runs a simulation)": "Реальные пробки в реальном времени (без ключа — симуляция)",
|
||||
"Bing imagery map stacks + world terrain": "Наборы карт Bing imagery + рельеф мира",
|
||||
"Bing imagery map stacks + world terrain": "Снимки Bing + рельеф мира",
|
||||
"Global Context navigation": "Навигация глобального контекста",
|
||||
"Previous — prior visited contact in the 250 km window": "Назад — предыдущий посещённый контакт в радиусе 250 км",
|
||||
"PREVIOUS": "ПРЕД.",
|
||||
@@ -295,7 +295,7 @@
|
||||
"CCTV layer unavailable": "Слой CCTV недоступен",
|
||||
"Link copied!": "Ссылка скопирована!",
|
||||
"Copy failed": "Не удалось скопировать",
|
||||
"VISUAL PRESETS": "ВИЗУАЛЬНЫЕ ПРЕСЕТЫ",
|
||||
"VISUAL PRESETS": "ПРЕСЕТЫ",
|
||||
"LOCATION": "МЕСТО",
|
||||
"DISPLAY": "ЭКРАН",
|
||||
"CONTACT": "КОНТАКТ",
|
||||
@@ -315,8 +315,8 @@
|
||||
"COVERAGE ON": "ОХВАТ ВКЛ",
|
||||
"COVERAGE OFF": "ОХВАТ ВЫКЛ",
|
||||
"RAW PRIOR": "ИСХОДНАЯ ОЦЕНКА",
|
||||
"AUTO HOP ON": "АВТОПЕРЕХОД ВКЛ",
|
||||
"AUTO HOP OFF": "АВТОПЕРЕХОД ВЫКЛ",
|
||||
"AUTO HOP ON": "АВТОСМЕНА ВКЛ",
|
||||
"AUTO HOP OFF": "АВТОСМЕНА ВЫКЛ",
|
||||
"PROJECTION ON": "ПРОЕКЦИЯ ВКЛ",
|
||||
"PROJECTION OFF": "ПРОЕКЦИЯ ВЫКЛ",
|
||||
"CAL · EDITED (UNSAVED)": "КАЛИБР. · ИЗМЕНЕНО (НЕ СОХР.)",
|
||||
@@ -369,9 +369,9 @@
|
||||
"CLOUD UNKNOWN": "ОБЛАЧНОСТЬ НЕИЗВЕСТНА",
|
||||
"MIXED CONDITIONS": "СМЕШАННЫЕ УСЛОВИЯ",
|
||||
"{source} · LOCATION QUERY": "{source} · ЗАПРОС ПО МЕСТУ",
|
||||
"REGIONAL NEWS": "РЕГИОНАЛЬНЫЕ НОВОСТИ",
|
||||
"CYCLE ON": "АВТОЛИСТАНИЕ ВКЛ",
|
||||
"CYCLE OFF": "АВТОЛИСТАНИЕ ВЫКЛ",
|
||||
"REGIONAL NEWS": "НОВОСТИ РЕГИОНА",
|
||||
"CYCLE ON": "АВТО: ВКЛ",
|
||||
"CYCLE OFF": "АВТО: ВЫКЛ",
|
||||
"Stop automatic page cycling. Previous, Next, and the SIG/NEWS/LOCAL tabs stay available.": "Остановить автоматическое листание страниц. Кнопки ПРЕД./СЛЕД. и вкладки СИГН./НОВОСТИ/МЕСТН. остаются доступны.",
|
||||
"Cycle briefing pages automatically every 9 seconds (Signals → News → Local). Pauses while you hover or focus the panel. Live signal data refreshes continuously either way.": "Автоматически листать страницы брифинга каждые 9 секунд (Сигналы → Новости → Местное). При наведении или фокусе на панели листание приостанавливается. Данные сигналов в реальном времени в любом случае обновляются непрерывно.",
|
||||
"{cohort}, Unavailable": "{cohort}, недоступно",
|
||||
@@ -423,10 +423,10 @@
|
||||
"Collapse briefing panel": "Свернуть панель брифинга",
|
||||
"Expand briefing panel": "Развернуть панель брифинга",
|
||||
"OBSERVED / MAPPED PINGS": "НАБЛЮДАЕМЫЕ / НАНЕСЁННЫЕ ПИНГИ",
|
||||
"SOURCE-BACKED EVENTS · NO SYNTHETIC NEWS": "СОБЫТИЯ С ИСТОЧНИКАМИ · БЕЗ СИНТЕТИЧЕСКИХ НОВОСТЕЙ",
|
||||
"SOURCE-BACKED EVENTS · NO SYNTHETIC NEWS": "СОБЫТИЯ ИЗ ИСТОЧНИКОВ · БЕЗ ВЫМЫСЛА",
|
||||
"LATEST LOCATION-MATCHED REPORTING": "СВЕЖИЕ НОВОСТИ ПО МЕСТУ",
|
||||
"LOCAL INFO": "МЕСТНЫЕ ДАННЫЕ",
|
||||
"PLACE / CONDITIONS / POSITION": "МЕСТО / УСЛОВИЯ / ПОЗИЦИЯ",
|
||||
"PLACE / CONDITIONS / POSITION": "МЕСТО / ПОГОДА / КООРД.",
|
||||
"TIME UNKNOWN": "ВРЕМЯ НЕИЗВЕСТНО",
|
||||
"{count}M AGO": "{count} МИН НАЗАД",
|
||||
"{count}H AGO": "{count} Ч НАЗАД",
|
||||
@@ -480,16 +480,16 @@
|
||||
"DEGRADED": "ПЕРЕБОИ",
|
||||
"PARTIAL": "ЧАСТИЧНО",
|
||||
"FALLBACK": "РЕЗЕРВ",
|
||||
"Live Flights": "Рейсы в реальном времени",
|
||||
"Live Flights": "Рейсы онлайн",
|
||||
"Military Flights": "Военные рейсы",
|
||||
"Earthquakes (24h)": "Землетрясения (24 ч)",
|
||||
"Earthquakes (24h)": "Землетрясения (24 ч)",
|
||||
"Satellites": "Спутники",
|
||||
"Space Missions (30d)": "Космические миссии (30 дн.)",
|
||||
"Space Missions (30d)": "Космические миссии (30 дн.)",
|
||||
"Street Traffic": "Уличный трафик",
|
||||
"CCTV": "CCTV",
|
||||
"Radio": "Радио",
|
||||
"Bikeshare": "Велошеринг",
|
||||
"Live AIS Vessels": "Суда AIS в реальном времени",
|
||||
"Live AIS Vessels": "Суда AIS онлайн",
|
||||
"Mapped Installations": "Объекты на карте",
|
||||
"Global Context": "Глобальный контекст",
|
||||
"Datacenters": "Дата-центры",
|
||||
@@ -821,7 +821,7 @@
|
||||
"NO PLACE LEFT BEHIND": "НИ ОДНА ТОЧКА НЕ ОСТАНЕТСЯ ПОЗАДИ",
|
||||
"ACTIVE STYLE": "АКТИВНЫЙ СТИЛЬ",
|
||||
"Choose your first view": "Выберите первый вид",
|
||||
"Tip: the GEV MIC button in the dock lets you talk to the map.": "Совет: кнопка GEV MIC в доке позволяет говорить с картой.",
|
||||
"Tip: the GEV MIC button in the dock lets you talk to the map.": "Совет: кнопка «МИК» в доке позволяет говорить с картой.",
|
||||
"Aircraft, vessels and nearby intelligence": "Самолёты, суда и разведданные поблизости",
|
||||
"Launches, spacecraft and orbital context": "Пуски, космические аппараты и орбитальный контекст",
|
||||
"Begin with a clean globe": "Начните с чистого глобуса",
|
||||
@@ -847,8 +847,8 @@
|
||||
"VOICE SYSTEM ERROR": "ОШИБКА ГОЛОСОВОЙ СИСТЕМЫ",
|
||||
"DISMISS": "СКРЫТЬ",
|
||||
"Check microphone permission and network access, then try again.": "Проверьте разрешение на микрофон и доступ к сети, затем попробуйте снова.",
|
||||
"Release Space to send": "Отпустите Space, чтобы отправить",
|
||||
"Hold Space to talk": "Удерживайте Space, чтобы говорить",
|
||||
"Release Space to send": "Отпустите Space для отправки",
|
||||
"Hold Space to talk": "Держите Space и говорите",
|
||||
"Ask or command": "Спросите или дайте команду",
|
||||
"WebRTC microphone support unavailable": "Поддержка микрофона WebRTC недоступна",
|
||||
"Requesting microphone": "Запрос доступа к микрофону",
|
||||
@@ -857,8 +857,6 @@
|
||||
"VOICE ACTIVE": "ГОЛОС АКТИВЕН",
|
||||
"Voice session could not be started.": "Не удалось запустить голосовую сессию.",
|
||||
"CONNECTING": "ПОДКЛЮЧЕНИЕ",
|
||||
"LISTENING": "СЛУШАЮ",
|
||||
"EXECUTING": "ВЫПОЛНЕНИЕ",
|
||||
"ERROR": "ОШИБКА",
|
||||
"{tier} applies next session": "{tier} вступит в силу со следующей сессии",
|
||||
"Session ended — cost cap {cost}": "Сессия завершена — лимит стоимости {cost}",
|
||||
@@ -917,7 +915,7 @@
|
||||
"Point the camera at the globe for street-level coverage": "Наведите камеру на глобус, чтобы увидеть покрытие уличных снимков",
|
||||
"No street-level imagery providers configured": "Источники уличных снимков не настроены",
|
||||
"Selected": "Выбранная",
|
||||
"Live Vessels": "Суда в реальном времени",
|
||||
"Live Vessels": "Суда онлайн",
|
||||
"Bike Share": "Прокат велосипедов",
|
||||
"Cameras": "Камеры",
|
||||
"Street Level": "Уличные снимки",
|
||||
@@ -999,7 +997,7 @@
|
||||
"{provider} · EMBEDDED SOURCE": "{provider} · ВСТРОЕННЫЙ ИСТОЧНИК",
|
||||
"OPEN ORIGINAL ↗": "ОТКРЫТЬ ОРИГИНАЛ ↗",
|
||||
"{provider} media: {source}": "Медиа {provider}: {source}",
|
||||
"{provider} · PROVIDER CONTROLS": "{provider} · УПРАВЛЕНИЕ ПРОВАЙДЕРА",
|
||||
"{provider} · PROVIDER CONTROLS": "{provider} · ПЛЕЕР ПРОВАЙДЕРА",
|
||||
"YOUTUBE {state} · OPEN ORIGINAL": "YOUTUBE {state} · ОТКРЫТЬ ОРИГИНАЛ",
|
||||
"Facebook player API did not initialize.": "API плеера Facebook не инициализировался.",
|
||||
"Facebook player API could not load.": "Не удалось загрузить API плеера Facebook.",
|
||||
@@ -1013,10 +1011,10 @@
|
||||
"Preloading {provider} media": "Предзагрузка медиа {provider}",
|
||||
"LOADING X POST…": "ЗАГРУЗКА ПОСТА X…",
|
||||
"The X post is unavailable or cannot be embedded.": "Пост X недоступен или не может быть встроен.",
|
||||
"X POST · PROVIDER CONTROLS": "ПОСТ X · УПРАВЛЕНИЕ ПРОВАЙДЕРА",
|
||||
"X POST · PROVIDER CONTROLS": "ПОСТ X · ВИДЖЕТ ПРОВАЙДЕРА",
|
||||
"{reason} OPEN ORIGINAL.": "{reason} ОТКРОЙТЕ ОРИГИНАЛ.",
|
||||
"X embed unavailable": "Встраивание X недоступно",
|
||||
"FACEBOOK · PROVIDER CONTROLS": "FACEBOOK · УПРАВЛЕНИЕ ПРОВАЙДЕРА",
|
||||
"FACEBOOK · PROVIDER CONTROLS": "FACEBOOK · ПЛЕЕР ПРОВАЙДЕРА",
|
||||
"Facebook embed unavailable": "Встраивание Facebook недоступно",
|
||||
"AUTOPLAY BLOCKED · USE PROVIDER CONTROLS": "АВТОВОСПРОИЗВЕДЕНИЕ ЗАБЛОКИРОВАНО · ИСПОЛЬЗУЙТЕ УПРАВЛЕНИЕ ПРОВАЙДЕРА",
|
||||
"Embedded {provider} media for {source}": "Встроенное медиа {provider}: {source}",
|
||||
@@ -1094,7 +1092,7 @@
|
||||
"▶ PLAY SCENE": "▶ ПУСК СЦЕНЫ",
|
||||
"◉ CINEMATIC": "◉ КИНОРЕЖИМ",
|
||||
"↺ FULL STORY": "↺ ВСЯ ИСТОРИЯ",
|
||||
"↗ OPEN ORIGINAL": "↗ ОТКРЫТЬ ОРИГИНАЛ",
|
||||
"↗ OPEN ORIGINAL": "↗ ОРИГИНАЛ",
|
||||
"⌖ LOWER GORGE": "⌖ НИЖНЕЕ УЩЕЛЬЕ",
|
||||
"FIELD REPORTS · {count}": "СООБЩЕНИЯ С МЕСТА · {count}",
|
||||
"GEOLOCATIONS · {credit}": "ГЕОЛОКАЦИИ · {credit}",
|
||||
@@ -1146,10 +1144,10 @@
|
||||
"Camera badges": "Значки камер",
|
||||
"Cyan cameras turn coral when selected. Wedges illustrate mapped direction, not measured coverage. Nearby cameras may be outside the screen.": "Голубые камеры при выборе становятся коралловыми. Секторы показывают направление по карте, а не измеренное покрытие. Ближайшие камеры могут быть за пределами экрана.",
|
||||
"{count} nearby · {onScreen} on screen": {
|
||||
"one": "рядом: {count} · на экране: {onScreen}",
|
||||
"few": "рядом: {count} · на экране: {onScreen}",
|
||||
"many": "рядом: {count} · на экране: {onScreen}",
|
||||
"other": "рядом: {count} · на экране: {onScreen}"
|
||||
"one": "{count} рядом · {onScreen} видно",
|
||||
"few": "{count} рядом · {onScreen} видно",
|
||||
"many": "{count} рядом · {onScreen} видно",
|
||||
"other": "{count} рядом · {onScreen} видно"
|
||||
},
|
||||
"{count} nearby": {
|
||||
"one": "рядом: {count}",
|
||||
@@ -1319,7 +1317,7 @@
|
||||
"NOAA MRMS radar echoes indicate precipitation patterns, not rain rate, a storm warning or a future forecast. Native source approximately 1 km; display is limited to level 6. Frames use exact advertised observation times.": "Радиолокационные эхосигналы NOAA MRMS показывают картину осадков, а не их интенсивность, штормовое предупреждение или прогноз. Исходное разрешение около 1 км; отображение ограничено уровнем 6. Кадры используют точное заявленное время наблюдений.",
|
||||
"GOES-19/18 longwave infrared Band 14 regional; NESDIS global longwave mosaic. Clouds only dims everything but bright, cold cloud tops; a brightness filter, not a cloud mask. Coverage and freshness differ by region.": "Региональный длинноволновый ИК-канал 14 GOES-19/18; глобальная длинноволновая мозаика NESDIS. Режим «Только облака» затемняет всё, кроме ярких холодных вершин облаков; это фильтр яркости, а не маска облачности. Покрытие и актуальность различаются по регионам.",
|
||||
"REGION": "РЕГИОН",
|
||||
"IMAGE": "ИЗОБРАЖЕНИЕ",
|
||||
"IMAGE": "СНИМОК",
|
||||
"OPACITY": "НЕПРОЗРАЧНОСТЬ",
|
||||
"Forecast · does not follow history": "Прогноз · не следует за историей",
|
||||
"Wind motion": "Движение ветра",
|
||||
@@ -1543,13 +1541,13 @@
|
||||
"Mode": "Режим",
|
||||
"Imagery on Esri · Google 3D returns when cleared": "Снимки поверх Esri · после очистки вернётся Google 3D",
|
||||
"Imagery opacity": "Непрозрачность снимков",
|
||||
"SWAP": "ПОМЕНЯТЬ",
|
||||
"SWAP": "СМЕНА",
|
||||
"VS BASEMAP": "VS ПОДЛОЖКА",
|
||||
"Trade the two sides of the divider": "Поменять местами стороны разделителя",
|
||||
"A / B": "A / B",
|
||||
"Newest low-cloud day for this box · scene cloud, not box cloud": "Самый свежий малооблачный день для этой области · облачность всей сцены, а не области",
|
||||
"Newest day covering this box · cloudier than 20%": "Самый свежий день с покрытием этой области · облачность выше 20%",
|
||||
"SELECT BOX": "ВЫБРАТЬ ОБЛАСТЬ",
|
||||
"SELECT BOX": "ВЫДЕЛИТЬ",
|
||||
"Drag a box on the map (Esc cancels)": "Выделите область на карте (Esc — отмена)",
|
||||
"Newest day with imagery for this box · partial coverage": "Самый свежий день со снимками этой области · частичное покрытие",
|
||||
"USE VIEW": "ПО ВИДУ",
|
||||
@@ -1583,7 +1581,7 @@
|
||||
"Source off": "Источник выключен",
|
||||
"Unpin {slot}": "Открепить {slot}",
|
||||
"Unpin the image": "Открепить снимок",
|
||||
"EXPORT {slot}": "ЭКСПОРТ {slot}",
|
||||
"EXPORT {slot}": "ЭКСП. {slot}",
|
||||
"EXPORT": "ЭКСПОРТ",
|
||||
"Download {slot} as a PNG": "Скачать {slot} в PNG",
|
||||
"Download the image as a PNG": "Скачать снимок в PNG",
|
||||
@@ -1622,7 +1620,7 @@
|
||||
"Select a box or use the view": "Выделите область или используйте текущий вид",
|
||||
"Searching the last 30 days": "Поиск за последние 30 дней",
|
||||
"No days to show for this box": "Для этой области нет дней для показа",
|
||||
"Drag the divider · SWAP trades sides": "Перетащите разделитель · ПОМЕНЯТЬ меняет стороны",
|
||||
"Drag the divider · SWAP trades sides": "Перетащите разделитель · СМЕНА меняет стороны",
|
||||
"Export failed · {error}": "Ошибка экспорта · {error}",
|
||||
"← → preview · A or B pins the focused day": "← → просмотр · A или B закрепляет выбранный день",
|
||||
"← → preview the other side · A or B pins it": "← → просмотр другой стороны · A или B закрепляет её",
|
||||
@@ -1662,7 +1660,7 @@
|
||||
"GAIN": "УСИЛЕНИЕ",
|
||||
"FM MHZ": "FM МГЦ",
|
||||
"AUTO": "АВТО",
|
||||
"Chrome/Edge · WebUSB · one local tuner shared by FM and the Local ADS-B layer.": "Chrome/Edge · WebUSB · один локальный тюнер для FM и слоя Local ADS-B.",
|
||||
"Chrome/Edge · WebUSB · one local tuner shared by FM and the Local ADS-B layer.": "Chrome/Edge · WebUSB · один локальный тюнер для FM и слоя «Локальный ADS-B».",
|
||||
"RTL-SDR tuner gain for the current mode": "Усиление тюнера RTL-SDR для текущего режима",
|
||||
"WEATHER": "ПОГОДА",
|
||||
"Active weather products": "Активные погодные продукты",
|
||||
@@ -1699,7 +1697,7 @@
|
||||
"Forecast · valid {valid}": "Прогноз · действует на {valid}",
|
||||
"{time} · {minutes} min ago": "{time} · {minutes} мин назад",
|
||||
"Active weather": "Активная погода",
|
||||
"MINI": "MINI",
|
||||
"MINI": "МИНИ",
|
||||
"STD": "СТД",
|
||||
"standard": "стандартную",
|
||||
"mini": "mini",
|
||||
@@ -1832,5 +1830,218 @@
|
||||
"Referenced items": "Упомянутые объекты",
|
||||
"NOTES & SOURCES": "ЗАМЕТКИ И ИСТОЧНИКИ",
|
||||
"ΔN": "ΔС",
|
||||
"ΔE": "ΔВ"
|
||||
"ΔE": "ΔВ",
|
||||
"action|CLEAR": "СБРОСИТЬ",
|
||||
"ALPR Cameras": "Камеры ALPR",
|
||||
"Military aircraft": "Военные самолёты",
|
||||
"Vessels": "Суда",
|
||||
"CCTV + Street View fallback": "CCTV + резервный Street View",
|
||||
"OpenStreetMap + optional Google Maps Places": "OpenStreetMap + Google Maps Places (опц.)",
|
||||
"GFS / ECMWF IFS · FORECAST": "GFS / ECMWF IFS · ПРОГНОЗ",
|
||||
"NOAA nowCOAST · OBSERVED": "NOAA nowCOAST · НАБЛЮДЕНИЕ",
|
||||
"NASA FIRMS · LIVE": "NASA FIRMS · ОНЛАЙН",
|
||||
"data source|Local": "Локальные данные",
|
||||
"overview": "обзор",
|
||||
"{percent}% scene cloud": "облачность сцены {percent}%",
|
||||
"{min}–{max}% scene cloud": "облачность сцены {min}–{max}%",
|
||||
"Sentinel-2 via HLS": "Sentinel-2 через HLS",
|
||||
"Landsat 8/9 via HLS": "Landsat 8/9 через HLS",
|
||||
"coverage|full": "полное",
|
||||
"coverage|partial": "частичное",
|
||||
"m": "м",
|
||||
"km/h": "км/ч",
|
||||
"m/s": "м/с",
|
||||
"mph": "миль/ч",
|
||||
"hPa": "гПа",
|
||||
"kt": "уз",
|
||||
"km": "км",
|
||||
"h": "ч",
|
||||
"min": "мин",
|
||||
"s": "с",
|
||||
"direction|left": "налево",
|
||||
"direction|right": "направо",
|
||||
"direction|slightly left": "плавно налево",
|
||||
"direction|slightly right": "плавно направо",
|
||||
"direction|sharply left": "резко налево",
|
||||
"direction|sharply right": "резко направо",
|
||||
"direction|straight": "прямо",
|
||||
"direction|around": "в обратную сторону",
|
||||
"ordinal|{number}st": "{number}-й",
|
||||
"ordinal|{number}nd": "{number}-й",
|
||||
"ordinal|{number}rd": "{number}-й",
|
||||
"ordinal|{number}th": "{number}-й",
|
||||
"Head out on {road}": "Начните движение по {road}",
|
||||
"Head out": "Начните движение",
|
||||
"Arrive at your destination": "Вы прибыли в пункт назначения",
|
||||
"Arrive at your destination, on the left": "Пункт назначения слева",
|
||||
"Arrive at your destination, on the right": "Пункт назначения справа",
|
||||
"Make a U-turn": "Развернитесь",
|
||||
"Make a U-turn onto {road}": "Развернитесь на {road}",
|
||||
"Continue straight": "Продолжайте прямо",
|
||||
"Continue straight onto {road}": "Продолжайте прямо на {road}",
|
||||
"Turn {direction}": "Поверните {direction}",
|
||||
"Turn {direction} onto {road}": "Поверните {direction} на {road}",
|
||||
"maneuver|Turn": "Поверните",
|
||||
"Turn onto {road}": "Поверните на {road}",
|
||||
"Continue {direction}": "Продолжайте движение {direction}",
|
||||
"Continue {direction} onto {road}": "Продолжайте движение {direction} на {road}",
|
||||
"maneuver|Continue": "Продолжайте движение",
|
||||
"Continue onto {road}": "Продолжайте движение по {road}",
|
||||
"At the end of the road, turn {direction}": "В конце дороги поверните {direction}",
|
||||
"At the end of the road, turn {direction} onto {road}": "В конце дороги поверните {direction} на {road}",
|
||||
"At the end of the road, continue": "В конце дороги продолжайте движение",
|
||||
"At the end of the road, continue onto {road}": "В конце дороги продолжайте движение по {road}",
|
||||
"Keep {direction} at the fork": "На развилке держитесь {direction}",
|
||||
"Keep {direction} at the fork onto {road}": "На развилке держитесь {direction} на {road}",
|
||||
"Continue at the fork": "На развилке продолжайте движение",
|
||||
"Continue at the fork onto {road}": "На развилке продолжайте движение по {road}",
|
||||
"Merge {direction}": "Перестройтесь {direction}",
|
||||
"Merge {direction} onto {road}": "Перестройтесь {direction} на {road}",
|
||||
"maneuver|Merge": "Перестройтесь",
|
||||
"Merge onto {road}": "Въезжайте на {road}",
|
||||
"Take the ramp on the {direction}": "Въезжайте на съезд {direction}",
|
||||
"Take the ramp on the {direction} onto {road}": "Въезжайте по съезду {direction} на {road}",
|
||||
"Take the ramp": "Въезжайте на съезд",
|
||||
"Take the ramp onto {road}": "Въезжайте по съезду на {road}",
|
||||
"Take the exit on the {direction}": "Сверните на съезд {direction}",
|
||||
"Take the exit on the {direction} onto {road}": "Сверните на съезд {direction} на {road}",
|
||||
"Take the exit": "Сверните на съезд",
|
||||
"Take the exit onto {road}": "Сверните на съезд на {road}",
|
||||
"At the roundabout, take the {exit} exit": "На кольце сверните на {exit} съезд",
|
||||
"At the roundabout, take the {exit} exit onto {road}": "На кольце сверните на {exit} съезд на {road}",
|
||||
"Enter the roundabout": "Въезжайте на кольцо",
|
||||
"Enter the roundabout onto {road}": "Въезжайте на кольцо, выезд на {road}",
|
||||
"At the roundabout, turn {direction}": "На кольце поверните {direction}",
|
||||
"At the roundabout, turn {direction} onto {road}": "На кольце поверните {direction} на {road}",
|
||||
"At the roundabout, continue": "На кольце продолжайте движение",
|
||||
"At the roundabout, continue onto {road}": "На кольце продолжайте движение на {road}",
|
||||
"Exit the roundabout": "Съезжайте с кольца",
|
||||
"Exit the roundabout onto {road}": "Съезжайте с кольца на {road}",
|
||||
"Use the {direction} lane": "Займите полосу для движения {direction}",
|
||||
"Use the {direction} lane onto {road}": "Займите полосу для движения {direction} на {road}",
|
||||
"voice|OFF": "ВЫКЛ",
|
||||
"voice|CONNECTING": "СВЯЗЬ…",
|
||||
"voice|LISTENING": "СЛУШАЮ",
|
||||
"voice|EXECUTING": "ДЕЛАЮ",
|
||||
"voice|ERROR": "ОШИБКА",
|
||||
"MIC": "МИК",
|
||||
"WORKING": "В РАБОТЕ",
|
||||
"DONE": "ГОТОВО",
|
||||
"Outline traced": "Контур построен",
|
||||
"Outline unavailable": "Контур недоступен",
|
||||
"in progress": "выполняется",
|
||||
"done": "готово",
|
||||
"failed": "ошибка",
|
||||
"cancelled": "отменено",
|
||||
"view band|STREET": "УЛИЦА",
|
||||
"view band|CITY": "ГОРОД",
|
||||
"view band|METRO": "АГЛОМЕРАЦИЯ",
|
||||
"view band|REGIONAL": "РЕГИОН",
|
||||
"view band|GLOBAL": "ПЛАНЕТА",
|
||||
"NEAR {poi} ({city}) {distance}": "РЯДОМ: {poi} ({city}) {distance}",
|
||||
"SECTOR {lat} {lon}": "СЕКТОР {lat} {lon}",
|
||||
"ARCTIC": "АРКТИКА",
|
||||
"ANTARCTIC": "АНТАРКТИКА",
|
||||
"NORTH AMERICA": "СЕВЕРНАЯ АМЕРИКА",
|
||||
"SOUTH AMERICA": "ЮЖНАЯ АМЕРИКА",
|
||||
"EUROPE": "ЕВРОПА",
|
||||
"AFRICA": "АФРИКА",
|
||||
"ASIA": "АЗИЯ",
|
||||
"OCEANIA": "ОКЕАНИЯ",
|
||||
"NORTHERN OCEANIC GRID": "СЕВЕРНАЯ ОКЕАНСКАЯ СЕТКА",
|
||||
"SOUTHERN OCEANIC GRID": "ЮЖНАЯ ОКЕАНСКАЯ СЕТКА",
|
||||
"N/A": "Н/Д",
|
||||
"{mode} {band} {locality} | {region} | ALT {alt} | WINDOW {window} | SUN {sun}° | ONA {ona}° | {zone}": "{mode} {band} {locality} | {region} | ALT {alt} | ОКНО {window} | SUN {sun}° | ONA {ona}° | {zone}",
|
||||
"{label} · {radius} AIR/SEA WINDOW": "{label} · ОКНО ВОЗДУХ/МОРЕ {radius}",
|
||||
"{scope} · INSTALLATIONS {coverage}": "{scope} · ОБЪЕКТЫ: {coverage}",
|
||||
"{source} · LOCATION QUERY · RECENT": "{source} · ЗАПРОС ПО МЕСТУ · СВЕЖЕЕ",
|
||||
"ft": "фт",
|
||||
"kts": "уз",
|
||||
"PAUSE": "ПАУЗА",
|
||||
"RESUME": "ПРОДОЛЖ.",
|
||||
"dB": "дБ",
|
||||
"radio|NEWS": "НОВОСТИ",
|
||||
"radio|TALK": "ТОК-РАДИО",
|
||||
"radio|WEATHER": "ПОГОДА",
|
||||
"radio|SAFETY": "БЕЗОПАСНОСТЬ",
|
||||
"radio|AIR / SEA": "АВИА / МОРЕ",
|
||||
"radio|TRANSIT": "ТРАНСПОРТ",
|
||||
"radio|MUSIC": "МУЗЫКА",
|
||||
"radio|OTHER": "ДРУГОЕ",
|
||||
"SNAPSHOT": "СНИМОК",
|
||||
"LIVE": "ОНЛАЙН",
|
||||
"UPSTREAM": "ИСТОЧНИК",
|
||||
"SYNTHETIC": "СИНТЕТИКА",
|
||||
"CONFIGURED": "НАСТРОЕН",
|
||||
"SEED": "КАТАЛОГ",
|
||||
"Live HLS connected": "Поток HLS подключён",
|
||||
"Live HLS unavailable": "Поток HLS недоступен",
|
||||
"No stream URL configured": "URL потока не настроен",
|
||||
"Live stream connected": "Прямой поток подключён",
|
||||
"Snapshot feed connected": "Поток снимков подключён",
|
||||
"Media fetch failed": "Не удалось получить медиа",
|
||||
"Upstream snapshot active": "Снимок с источника активен",
|
||||
"Fallback Street View frame": "Резервный кадр Street View",
|
||||
"Upstream unavailable": "Источник недоступен",
|
||||
"No source configured": "Источник не настроен",
|
||||
"Upstream HTTP {status}": "Источник: HTTP {status}",
|
||||
"Unexpected media type {type}": "Неожиданный тип медиа: {type}",
|
||||
"Configured source": "Настроенный источник",
|
||||
"Synthetic fallback": "Синтетический резерв",
|
||||
"Cancel": "Отмена",
|
||||
"Choose files": "Выбрать файлы",
|
||||
"No file chosen": "Файлы не выбраны",
|
||||
"{count} files selected": {
|
||||
"one": "Выбрано файлов: {count}",
|
||||
"few": "Выбрано файлов: {count}",
|
||||
"many": "Выбрано файлов: {count}",
|
||||
"other": "Выбрано файлов: {count}"
|
||||
},
|
||||
"Rasuwagadhi witness video": "Видео очевидца в Rasuwagadhi",
|
||||
"Bhote Koshi valley footage": "Съёмка долины Bhote Koshi",
|
||||
"Flood footage": "Съёмка паводка",
|
||||
"Compilation and casualty claims": "Подборка и заявления о жертвах",
|
||||
"SOURCE GEOCONFIRMED · WORLD-PINNED": "ИСТОЧНИК ГЕОПОДТВЕРЖДЁН · ОТМЕЧЕН НА КАРТЕ",
|
||||
"SOURCE CREDITED · LOCATION UNRESOLVED": "АВТОР УКАЗАН · МЕСТО НЕ УСТАНОВЛЕНО",
|
||||
"REFERENCE ONLY · CLAIMS UNVERIFIED": "ТОЛЬКО ДЛЯ СПРАВКИ · ЗАЯВЛЕНИЯ НЕ ПРОВЕРЕНЫ",
|
||||
"SOURCE GEOCONFIRMED": "ИСТОЧНИК ГЕОПОДТВЕРЖДЁН",
|
||||
"2021 historical reference versus 2026 post-event imagery; changes are cumulative and include the July 2025 Rasuwagadhi flood. Schematic downstream progression, not modeled arrival time; not an official hazard model.": "Исторический снимок 2021 года в сравнении со снимками 2026 года после события; изменения накопительные и включают паводок в Rasuwagadhi в июле 2025 года. Схематическое продвижение вниз по течению, а не смоделированное время прихода; не официальная модель опасности.",
|
||||
"Immediate collapse viewpoint": "Точка обзора у места обрушения",
|
||||
"Collapse viewpoint": "Обзор обрушения",
|
||||
"Debris-dammed lake": "Озеро, запруженное обломками",
|
||||
"Dammed lake": "Запрудное озеро",
|
||||
"Second landslide": "Второй оползень",
|
||||
"Gyirong border gate": "Погранпереход Gyirong",
|
||||
"Border gate": "Погранпереход",
|
||||
"Timure evidence cluster": "Группа свидетельств у Timure",
|
||||
"Mailung / Upper Trishuli bridge": "Mailung / мост Upper Trishuli",
|
||||
"Dandagaun viewpoint restaurant": "Ресторан со смотровой площадкой, Dandagaun",
|
||||
"Dandagaun viewpoint": "Смотровая площадка Dandagaun",
|
||||
"Bidur - Trishuli bridge": "Мост Bidur — Trishuli",
|
||||
"Bidur bridge": "Мост Bidur",
|
||||
"Devighat / Taadi Khola Bridge": "Devighat / мост Taadi Khola",
|
||||
"Devighat bridge": "Мост Devighat",
|
||||
"Global Incident Context": "Глобальный контекст инцидента",
|
||||
"Nepal-Focused Globe Rotation": "Поворот глобуса к Непалу",
|
||||
"Bhote Koshi Regional Approach": "Подлёт к региону Bhote Koshi",
|
||||
"Bhote Koshi Nearby Cities": "Города рядом с Bhote Koshi",
|
||||
"Bhote Koshi Incident Corridor": "Коридор инцидента на Bhote Koshi",
|
||||
"Bhote Koshi Flood Path": "Путь паводка на Bhote Koshi",
|
||||
"Bhote Koshi Corridor Overview": "Обзор коридора Bhote Koshi",
|
||||
"Bhote Koshi Upper Valley": "Верхняя долина Bhote Koshi",
|
||||
"Upper Valley Collapse": "Обрушение в верхней долине",
|
||||
"Debris-Dammed Lake": "Озеро, запруженное обломками",
|
||||
"Nepal-China Border Gate": "Погранпереход Непал — Китай",
|
||||
"Timure Evidence Cluster": "Группа свидетельств у Timure",
|
||||
"Syabru Besi Passage": "Прохождение Syabru Besi",
|
||||
"Bidur / Trishuli Consequence": "Последствия в Bidur / Trishuli",
|
||||
"Final view": "Финальный вид",
|
||||
"{year} HISTORICAL REFERENCE": "{year} ИСТОРИЧЕСКИЙ СНИМОК",
|
||||
"{year} POST-EVENT": "{year} ПОСЛЕ СОБЫТИЯ",
|
||||
"Esri map unavailable · no swipe": "Карта Esri недоступна · без сравнения",
|
||||
"Swipe needs a globe map": "Для сравнения нужна карта-глобус",
|
||||
"Imagery stays on Esri · CLEAR to use Google 3D": "Снимки остаются на Esri · СБРОСИТЬ, чтобы вернуть Google 3D",
|
||||
"Box and images cleared": "Область и снимки сброшены",
|
||||
"Box is {size} wide · limit {limit}": "Область шириной {size} · предел {limit}",
|
||||
"View is {size} wide · limit {limit}": "Вид шириной {size} · предел {limit}"
|
||||
}
|
||||
Reference in new issue
Block a user