mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 10:24:02 +00:00
i18n(de): fixes from the screenshot review
- Labels that ran out of their buttons: EXPORT / EXPORT A stay English (EXPORTIEREN was cut to EXPORTI…), the imagery mode reads VGL. KARTE, the scene run log PROTOKOLL (it broke as LAUFPROTOKOL/L), the dock voice status SPRACHE N. V., and the Esri imagery note fits its line. - The cyclone layer is Sturmwarnungen (no hyphenated break in the layer list); Erdbeben (24 h) matches the other hour readouts; retry countdowns get a space before s; the Mapillary hint names the Straßenebene layer. - The cyclone source's timeout and malformed-snapshot errors were plain English in every language: mark them like the wind source does and translate them in de, es, ru, zh-CN and zh-Hant. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
dfa7ac98a7
commit
0d28150e22
7 files changed
+37
-21
No files matched your search
+17
-15
@@ -15,7 +15,7 @@
|
||||
"Overpass temporarily unavailable": "Overpass vorübergehend nicht verfügbar",
|
||||
"Retrying mapped sites…": "Neuer Versuch für kartierte Standorte…",
|
||||
"Fetching mapped sites…": "Kartierte Standorte werden abgerufen…",
|
||||
"{reason} — retrying in {seconds}s": "{reason}: neuer Versuch in {seconds}s",
|
||||
"{reason} — retrying in {seconds}s": "{reason}: neuer Versuch in {seconds} s",
|
||||
"{reason} — retry pending": "{reason}: neuer Versuch steht aus",
|
||||
"Zoom in to search mapped installations": "Hineinzoomen, um kartierte Anlagen zu suchen",
|
||||
"Showing cached mapped sites": "Kartierte Standorte aus dem Cache",
|
||||
@@ -372,7 +372,7 @@
|
||||
"one": "{count} Kamera geladen · CCTV aktivieren",
|
||||
"other": "{count} Kameras geladen · CCTV aktivieren"
|
||||
},
|
||||
"Enable CCTV to load camera intersections": "CCTV aktivieren, um Kamerakreuzungen zu laden",
|
||||
"Enable CCTV to load camera intersections": "CCTV aktivieren, um Kreuzungen mit Kameras zu laden",
|
||||
"Enable CCTV to start camera-linked intelligence summaries.": "CCTV aktivieren, um kameragestützte Lagezusammenfassungen zu starten.",
|
||||
"No summary available.": "Keine Zusammenfassung verfügbar.",
|
||||
"loading frames": "Frames werden geladen",
|
||||
@@ -499,7 +499,7 @@
|
||||
"Context": "Kontext",
|
||||
"Live Flights": "Live-Flüge",
|
||||
"Military Flights": "Militärflüge",
|
||||
"Earthquakes (24h)": "Erdbeben (24 Std)",
|
||||
"Earthquakes (24h)": "Erdbeben (24 h)",
|
||||
"Satellites": "Satelliten",
|
||||
"Space Missions (30d)": "Raummissionen (30 T)",
|
||||
"Street Traffic": "Straßenverkehr",
|
||||
@@ -517,14 +517,14 @@
|
||||
"DISABLING": "WIRD DEAKTIVIERT",
|
||||
"{state} · {source}": "{state} · {source}",
|
||||
"UNCERTAIN · {source} · lifecycle state requires reconciliation": "UNKLAR · {source} · Lebenszyklus-Status muss abgeglichen werden",
|
||||
"{state} · {source} · {detail} · retry {seconds}s": "{state} · {source} · {detail} · neuer Versuch {seconds}s",
|
||||
"{state} · {source} · {detail} · retry {seconds}s": "{state} · {source} · {detail} · neuer Versuch in {seconds} s",
|
||||
"{state} · {source} · {detail}": "{state} · {source} · {detail}",
|
||||
"never": "nie",
|
||||
"{source} · {loadingLabel}": "{source} · {loadingLabel}",
|
||||
"{accepted} of {raw} records accepted": "{accepted} von {raw} Datensätzen übernommen",
|
||||
"incomplete snapshot": "unvollständiger Snapshot",
|
||||
"{state} · {source} · {detail} · {ago}": "{state} · {source} · {detail} · {ago}",
|
||||
"{state} · {source} · {ago} · retrying in {seconds}s": "{state} · {source} · {ago} · neuer Versuch in {seconds}s",
|
||||
"{state} · {source} · {ago} · retrying in {seconds}s": "{state} · {source} · {ago} · neuer Versuch in {seconds} s",
|
||||
"{state} · {source} · {ago}": "{state} · {source} · {ago}",
|
||||
"{source} · {ago}": "{source} · {ago}",
|
||||
"UNCERTAIN": "UNKLAR",
|
||||
@@ -631,7 +631,7 @@
|
||||
"REFRESHING LIVE DATA": "LIVE-DATEN WERDEN AKTUALISIERT",
|
||||
"syncing road network": "Straßennetz wird synchronisiert",
|
||||
"retry pending": "neuer Versuch steht aus",
|
||||
"retrying in {seconds}s": "neuer Versuch in {seconds}s",
|
||||
"retrying in {seconds}s": "neuer Versuch in {seconds} s",
|
||||
"Celestial ring — reveal the full globe": "Himmelsring: ganzen Globus zeigen",
|
||||
"Celestial ring — available in Normal style": "Himmelsring: im Stil Normal verfügbar",
|
||||
"Detection overlay: {mode}": "Erkennungs-Overlay: {mode}",
|
||||
@@ -656,7 +656,7 @@
|
||||
"Running command": "Befehl läuft",
|
||||
"Voice off": "Sprache aus",
|
||||
"WebRTC microphone support unavailable": "WebRTC-Mikrofonunterstützung nicht verfügbar",
|
||||
"VOICE UNAVAILABLE": "SPRACHE NICHT VERFÜGBAR",
|
||||
"VOICE UNAVAILABLE": "SPRACHE N. V.",
|
||||
"VOICE ACTIVE": "SPRACHE AKTIV",
|
||||
"Voice session could not be started.": "Sprachsitzung konnte nicht gestartet werden.",
|
||||
"Next session: {pendingId} — this session stays on {modelId}": "Nächste Sitzung: {pendingId}. Diese Sitzung bleibt bei {modelId}",
|
||||
@@ -854,7 +854,7 @@
|
||||
"START": "START",
|
||||
"EXPORT PRESETS": "PRESETS EXPORTIEREN",
|
||||
"IMPORT": "IMPORTIEREN",
|
||||
"RUN LOG": "LAUFPROTOKOLL",
|
||||
"RUN LOG": "PROTOKOLL",
|
||||
"POWER UP": "STARTKLAR",
|
||||
"GROUND STATION · PROVIDER SETTINGS": "BODENSTATION · ANBIETER-EINSTELLUNGEN",
|
||||
"Close key setup": "Schlüssel-Einrichtung schließen",
|
||||
@@ -1206,7 +1206,7 @@
|
||||
"The photorealistic 3D planet, place search + Street View": "Der fotorealistische 3D-Planet, Ortssuche + Street View",
|
||||
"Voice control — API key or ChatGPT OAuth": "Sprachsteuerung – API-Schlüssel oder ChatGPT OAuth",
|
||||
"Gemini Live voice control": "Sprachsteuerung mit Gemini Live",
|
||||
"Street-level imagery and coverage in the Street Level layer. Free: register an app in the Mapillary developer dashboard and paste its Client Token": "Bilder auf Straßenebene und Abdeckung in der Ebene Straßenansicht. Kostenlos: im Mapillary-Entwickler-Dashboard eine App registrieren und deren Client Token einfügen",
|
||||
"Street-level imagery and coverage in the Street Level layer. Free: register an app in the Mapillary developer dashboard and paste its Client Token": "Bilder und Abdeckung auf Straßenebene in der Ebene „Straßenebene“. Kostenlos: im Mapillary-Entwickler-Dashboard eine App registrieren und deren Client Token einfügen",
|
||||
"Public space-missions access needs no key. Leave blank for standard use; paid tokens only raise request limits.": "Öffentlicher Zugang zu Raummissionen braucht keinen Schlüssel. Für normale Nutzung leer lassen; kostenpflichtige Tokens erhöhen nur die Anfragelimits.",
|
||||
"Air quality request failed": "Luftqualitätsabfrage fehlgeschlagen",
|
||||
"No readings available": "Keine Messwerte verfügbar",
|
||||
@@ -2153,7 +2153,7 @@
|
||||
"S2 GhostMaps": "S2 GhostMaps",
|
||||
"Rain radar": "Regenradar",
|
||||
"Lightning density": "Blitzdichte",
|
||||
"Cyclone advisories": "Wirbelsturmwarnungen",
|
||||
"Cyclone advisories": "Sturmwarnungen",
|
||||
"ALPR Cameras": "ALPR-Kameras",
|
||||
"Live Vessels": "Live-Schiffe",
|
||||
"Bike Share": "Bikesharing",
|
||||
@@ -2252,14 +2252,14 @@
|
||||
"Latest": "Neueste",
|
||||
"Newest frame per product": "Neuester Frame je Produkt",
|
||||
"Replay observed history": "Beobachteten Verlauf abspielen",
|
||||
"Imagery on Esri · Google 3D returns when cleared": "Bilder auf Esri · Google 3D kehrt nach dem Löschen zurück",
|
||||
"Imagery on Esri · Google 3D returns when cleared": "Bilder auf Esri · Google 3D nach dem Löschen",
|
||||
"Point the camera at the ground to use the view": "Kamera auf den Boden richten, um die Ansicht zu verwenden",
|
||||
"That point cannot anchor a box": "Dieser Punkt kann keinen Bereich verankern",
|
||||
"Imagery stops at ±{limit}° latitude": "Bilder enden bei ±{limit}° Breite",
|
||||
"{owner} is using the pointer — close it first": "{owner} verwendet gerade den Zeiger – zuerst schließen",
|
||||
"Box is {size} wide · limit {limit}": "Bereich ist {size} breit · Limit {limit}",
|
||||
"View is {size} wide · limit {limit}": "Ansicht ist {size} breit · Limit {limit}",
|
||||
"VS BASEMAP": "MIT BASISKARTE",
|
||||
"VS BASEMAP": "VGL. KARTE",
|
||||
"A / B": "A / B",
|
||||
"Newest low-cloud day for this box · scene cloud, not box cloud": "Neuester Tag mit wenig Wolken für diesen Bereich · Bewölkung der Szene, nicht des Bereichs",
|
||||
"Newest day covering this box · cloudier than 20%": "Neuester Tag mit Abdeckung dieses Bereichs · über 20 % Bewölkung",
|
||||
@@ -2326,8 +2326,8 @@
|
||||
"Source off": "Quelle aus",
|
||||
"Unpin {slot}": "{slot} lösen",
|
||||
"Unpin the image": "Bild lösen",
|
||||
"EXPORT {slot}": "{slot} EXPORTIEREN",
|
||||
"EXPORT": "EXPORTIEREN",
|
||||
"EXPORT {slot}": "EXPORT {slot}",
|
||||
"EXPORT": "EXPORT",
|
||||
"Download {slot} as a PNG": "{slot} als PNG herunterladen",
|
||||
"Download the image as a PNG": "Bild als PNG herunterladen",
|
||||
"Box {width} × {height} km": "Bereich {width} × {height} km",
|
||||
@@ -2932,5 +2932,7 @@
|
||||
"SINCE": "SEIT",
|
||||
"Toggle straight-down and tilted map views": "Zwischen senkrechter und geneigter Kartenansicht wechseln",
|
||||
"Reset map to north up": "Karte nach Norden ausrichten",
|
||||
"Reset map bearing to north": "Kartenausrichtung auf Norden zurücksetzen"
|
||||
"Reset map bearing to north": "Kartenausrichtung auf Norden zurücksetzen",
|
||||
"Cyclone request timed out": "Zeitüberschreitung bei der Sturmabfrage",
|
||||
"Malformed cyclone snapshot": "Fehlerhafter Sturm-Snapshot"
|
||||
}
|
||||
@@ -3001,5 +3001,7 @@
|
||||
"Your choice applies now, but could not be saved.": "Tu elección se aplica ahora, pero no se pudo guardar.",
|
||||
"Voice replies appear here.": "Las respuestas de voz aparecen aquí.",
|
||||
"Preview is off.": "La vista previa está desactivada.",
|
||||
"Automatic stop is unavailable for this voice connection.": "La parada automática no está disponible para esta conexión de voz."
|
||||
"Automatic stop is unavailable for this voice connection.": "La parada automática no está disponible para esta conexión de voz.",
|
||||
"Cyclone request timed out": "La petición de ciclones agotó el tiempo de espera",
|
||||
"Malformed cyclone snapshot": "Instantánea de ciclones mal formada"
|
||||
}
|
||||
@@ -3070,5 +3070,7 @@
|
||||
"Your choice applies now, but could not be saved.": "Ваш выбор применён, но сохранить его не удалось.",
|
||||
"Voice replies appear here.": "Здесь появляются голосовые ответы.",
|
||||
"Preview is off.": "Предпросмотр отключён.",
|
||||
"Automatic stop is unavailable for this voice connection.": "Автоматическая остановка недоступна для этого голосового подключения."
|
||||
"Automatic stop is unavailable for this voice connection.": "Автоматическая остановка недоступна для этого голосового подключения.",
|
||||
"Cyclone request timed out": "Истекло время ожидания запроса о циклонах",
|
||||
"Malformed cyclone snapshot": "Некорректный снимок данных о циклонах"
|
||||
}
|
||||
@@ -2863,5 +2863,7 @@
|
||||
"{count} placemarks": {
|
||||
"other": "{count} 个地标"
|
||||
},
|
||||
"S2 Underground publishes these KMZ products to GitHub. New uploads are detected within seconds and replace the previous edition automatically. Click a marker for its report.": "S2 Underground 在 GitHub 发布这些 KMZ 产品。新上传的内容会在数秒内被检测到,并自动替换旧版本。点击标记查看报告。"
|
||||
"S2 Underground publishes these KMZ products to GitHub. New uploads are detected within seconds and replace the previous edition automatically. Click a marker for its report.": "S2 Underground 在 GitHub 发布这些 KMZ 产品。新上传的内容会在数秒内被检测到,并自动替换旧版本。点击标记查看报告。",
|
||||
"Cyclone request timed out": "气旋请求超时",
|
||||
"Malformed cyclone snapshot": "气旋快照格式错误"
|
||||
}
|
||||
@@ -2863,5 +2863,7 @@
|
||||
"{count} placemarks": {
|
||||
"other": "{count} 個地標"
|
||||
},
|
||||
"S2 Underground publishes these KMZ products to GitHub. New uploads are detected within seconds and replace the previous edition automatically. Click a marker for its report.": "S2 Underground 在 GitHub 發布這些 KMZ 產品。新上傳的內容會在數秒內被檢測到,並自動替換舊版本。點擊標記查看報告。"
|
||||
"S2 Underground publishes these KMZ products to GitHub. New uploads are detected within seconds and replace the previous edition automatically. Click a marker for its report.": "S2 Underground 在 GitHub 發布這些 KMZ 產品。新上傳的內容會在數秒內被檢測到,並自動替換舊版本。點擊標記查看報告。",
|
||||
"Cyclone request timed out": "氣旋請求超時",
|
||||
"Malformed cyclone snapshot": "氣旋快照格式錯誤"
|
||||
}
|
||||
@@ -27,6 +27,8 @@
|
||||
"Dance",
|
||||
"Details",
|
||||
"Dubai",
|
||||
"EXPORT",
|
||||
"EXPORT {slot}",
|
||||
"FALLBACK",
|
||||
"FILTER",
|
||||
"FLIR",
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
import { readResponseJsonCapped } from '../../sources/httpBody.js';
|
||||
|
||||
// No i18n here, as in the wind source: the texts stay English data and the
|
||||
// cyclone layer shows them translated.
|
||||
const msg = (text) => text;
|
||||
|
||||
export const CYCLONE_RESPONSE_LIMIT = 4 * 1024 * 1024;
|
||||
const malformed = () => new Error('Malformed cyclone snapshot');
|
||||
const malformed = () => new Error(msg('Malformed cyclone snapshot'));
|
||||
const text = (value, max = 160) => {
|
||||
if (
|
||||
typeof value !== 'string' ||
|
||||
@@ -215,7 +219,7 @@ export function createCycloneSource({
|
||||
const abort = () => controller.abort(signal.reason);
|
||||
signal?.addEventListener('abort', abort, { once: true });
|
||||
const timer = setTimeout(
|
||||
() => controller.abort(new Error('Cyclone request timed out')),
|
||||
() => controller.abort(new Error(msg('Cyclone request timed out'))),
|
||||
timeoutMs,
|
||||
);
|
||||
try {
|
||||
|
||||
Reference in new issue
Block a user