Commit Graph
148 Commits
Author SHA1 Message Date
German Khokhlov a092933ad6 Merge remote-tracking branch 'origin/main' into german/hal-639-de
# Conflicts:
#	docs/CURRENT-STATE.md
#	docs/TRANSLATORS.md
#	src/i18n/i18n.test.mjs
#	src/i18n/index.js
#	src/i18n/locale.js
#	src/layers/cyclones/source.js
#	src/scenes/recipes.js
#	src/scenes/sceneTitleDisplay.test.mjs
#	src/ui/localePicker.test.mjs
2026-10-29 19:00:19 +04:00
German Khokhlov 48a2cc0690 i18n(fr): drop the Snow strings removed in main 2026-10-29 18:36:29 +04:00
German Khokhlov b84f7f346c Merge branch 'main' into german/hal-638-fr 2026-10-29 18:26:36 +04:00
Said Turksever 32125384fe Drop Snow from the new catalogs and migrate saved Snow shots
The it, pt and uk catalogs merged from main still carried the two Snow
button strings, which the catalog tests report as stale. They are
pruned with npm run i18n -- --prune.

A Scene Director shot saved with Snow now normalizes to Normal when the
project loads, so the shot list shows NORMAL rather than an untranslated
SNOW for a shot that plays on Normal. The README's style keys read 1-6.
2026-10-29 14:04:11 +00:00
German KhokhlovandClaude Opus 5.5 f9af9e758c i18n(fr): translate strings new in main
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 17:55:01 +04:00
German Khokhlov 727825b576 Merge remote-tracking branch 'origin/main' into german/hal-638-fr
# Conflicts:
#	docs/CURRENT-STATE.md
#	docs/TRANSLATORS.md
#	scripts/package-boundaries.json
#	src/i18n/i18n.test.mjs
#	src/i18n/index.js
#	src/i18n/locale.js
#	src/i18n/same-as-english.json
#	src/scenes/recipes.js
#	src/ui/localePicker.test.mjs
#	src/ui/templates/context.html
2026-10-29 17:55:01 +04:00
Said Turksever 1990228889 Merge branch 'main' into fix/remove-snow-preset 2026-10-29 13:53:35 +00:00
German Khokhlov 4877be7f9b Merge branch 'main' into fix/remove-snow-preset 2026-10-29 17:45:25 +04:00
German KhokhlovandClaude Opus 5.5 b0f0837c10 i18n(it, uk): translate the cyclone source errors
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 17:42:05 +04:00
German Khokhlov 95ded4c6b9 Merge remote-tracking branch 'origin/main' into german/hal-640-pt
# Conflicts:
#	docs/CURRENT-STATE.md
#	docs/TRANSLATORS.md
#	scripts/package-boundaries.json
#	src/i18n/i18n.test.mjs
#	src/i18n/index.js
#	src/i18n/locale.js
#	src/i18n/same-as-english.json
#	src/scenes/recipes.js
#	src/scenes/sceneTitleDisplay.test.mjs
#	src/ui/localePicker.test.mjs
2026-10-29 17:42:05 +04:00
German Khokhlov 59f06c9918 Merge remote-tracking branch 'origin/main' into german/hal-641-it
# Conflicts:
#	docs/CURRENT-STATE.md
#	docs/TRANSLATORS.md
#	src/i18n/index.js
#	src/i18n/locale.js
#	src/ui/localePicker.test.mjs
2026-10-29 17:05:28 +04:00
Said Turksever 39a60b4034 Remove the Snow visual preset
Snow is no longer offered anywhere a style can be chosen: the Visual
Presets tray, keyboard shortcut 7, the Cockpit vision carousel, and the
set_visual_style voice action. The shader and its labels go with it;
weather snowfall and the SNOW weather condition are unaffected.

Share links keep working. Snow's enum code (6) stays reserved, so a
compact or long-form link that names it opens on Normal and drops the
Snow shader parameters without reporting them as unknown. A Scene
Director shot saved with Snow plays on Normal too. Snow's frozen share
defaults matched Normal's apart from those parameters, so no other
setting in an old link changes meaning.

The legacy voice-schema pins restore Snow before hashing, so the
unchanged pins still prove nothing else moved; the complete Realtime
payload digest is re-derived.
2026-10-29 11:20:49 +00:00
German KhokhlovandClaude Opus 5.5 d383f25bb3 i18n(it): translate strings new in main
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 14:31:56 +04:00
German KhokhlovandClaude Opus 5.5 e451b496ae Merge remote-tracking branch 'origin/main' into german/hal-641-it
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 14:31:56 +04:00
German KhokhlovandClaude Opus 5.5 6c524b229c i18n(pt): translate strings new in main
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 14:24:50 +04:00
German KhokhlovandClaude Opus 5.5 eb76d5265b i18n(uk): translate strings new in main
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 14:19:24 +04:00
German KhokhlovandClaude Opus 5.5 ec3932718e Merge remote-tracking branch 'origin/main' into german/hal-645-uk
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 14:19:01 +04:00
German KhokhlovandClaude Opus 5.5 ed26fa12d8 i18n(fr): translate strings new in main
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 14:18:40 +04:00
German KhokhlovandClaude Opus 5.5 a0c8b6f893 i18n(de): translate strings new in main
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 14:12:10 +04:00
German KhokhlovandClaude Opus 5.5 2f12cbf5c8 Merge remote-tracking branch 'origin/main' into german/hal-639-de
Conflicts in es, ru, zh-CN and zh-Hant catalogs: both sides appended keys
at the end (cyclone errors from this branch, routing refusals from main);
kept both.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 14:12:08 +04:00
German KhokhlovandClaude Opus 5.5 494c2b6029 Merge remote-tracking branch 'origin/main' into german/hal-640-pt
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 14:11:56 +04:00
German KhokhlovandClaude Opus 5.5 a60ba928cc Merge remote-tracking branch 'origin/main' into german/hal-638-fr
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 14:11:35 +04:00
German KhokhlovandClaude Opus 5.5 d01be22b44 i18n(de): apply review round 5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:59:22 +04:00
German KhokhlovandClaude Opus 5.5 a312414d0b i18n(fr): apply review round 5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:59:04 +04:00
German KhokhlovandClaude Opus 5.5 d243177d11 i18n(uk): apply review round 4
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:55:16 +04:00
German KhokhlovandClaude Opus 5.5 a96ad30c99 i18n(pt): apply review round 4
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:47:45 +04:00
German KhokhlovandClaude Opus 5.5 423452095c i18n(de): apply review round 4
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:46:55 +04:00
German KhokhlovandClaude Opus 5.5 3d32a0c45c i18n(fr): apply review round 4
Apply the accepted findings from the fourth three-model French review:
« Fermez d'abord cet outil » in the pointer-busy notices, the colon form
« Outil actif : {name} » for the directions notice, « FOV CONSTRUCTEUR »,
« RAPPORT » for the USGS trigger chip, « CONTEXTE GLOBAL DÉSACTIVÉ », and
wording fixes for the radio, recent imagery, bundle preview and draw label
strings. The guide gains glossary rows for the datasheet FOV and for
rapport versus relevé.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:43:23 +04:00
German KhokhlovandClaude Opus 5.5 4c80c38e2c i18n(it): apply review round 4
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:43:22 +04:00
German KhokhlovandClaude Opus 5.5 226600a67a i18n(uk): apply review round 3
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:13:44 +04:00
German KhokhlovandClaude Opus 5.5 7e55ee45fe i18n(fr): apply review round 3
Apply the accepted findings from the third three-model French review:
tool-name agreement (« Outil actif : {name} »), elision before ADS-B,
« GORGE AVAL », « CLASSIQUES », « EN SURVOL », one name for the VIIRS
daily overview, U+202F thousands separator, and wording fixes for the
scene editor, directions, radio tuner and status strings.

The CCTV HUD summary now shows its CAL badge, source kind and view band
through existing catalog entries, so French reads « CAL ESTIM. INITIALE ·
SRC AMONT · CONTEXTE RUE »; English output and unknown codes are
unchanged. presentation.js matches the pt branch's round-3 version byte
for byte, so the two branches merge cleanly.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 22:52:51 +04:00
German KhokhlovandClaude Opus 5.5 bceeb37836 i18n(de): apply review round 3
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 22:44:25 +04:00
German KhokhlovandClaude Opus 5.5 4048535921 i18n(pt): apply review round 3
Three-model review (astra, sol, fable), round 3: 17 of 18 findings
applied (some in own wording, one in part); "Missões espac." rejected.

- pt: layer cards «{label}: camada ativada/desativada», pointer and
  Directions toasts name «A ferramenta "{owner}"», counters after a
  colon where the count can be 1, traffic «sem dados de fluxo» and
  «Fluxo: {percent}% cob», «limite de requisições atingido», FECHAR,
  ANT., PREDEF. VISUAIS, quoted "Nível da rua", infinitive tooltips,
  and more (see docs/translations/pt.md).
- CCTV summary line localizes its CAL, SRC and CONTEXT values through
  existing catalog keys (all locales); codes stay underneath.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 22:40:38 +04:00
German KhokhlovandClaude Opus 5.5 beacb6d9d3 i18n(uk): apply review round 2
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 22:38:32 +04:00
German KhokhlovandClaude Opus 5.5 6cf47c6ca8 i18n(it): apply review round 3
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 22:35:44 +04:00
Said Turksever db2744ca3b Merge remote-tracking branch 'upstream/main' into pr1405-fix 2026-10-28 15:39:16 +00:00
German KhokhlovandClaude Opus 5.5 b521f6a1fa i18n(de): apply review round 2
- Meaning fixes: the radio link opens the broadcaster's website
  (SENDER-WEBSITE), a straight lane is «geradeaus führend», not the middle
  one, IDLE is INAKTIV (BEREIT is READY), the Gemini errors name the send
  queue, traffic percent is live coverage (Live-Abdeckung), the voice radius
  is measured from the Bildmitte, the AIS voice error names the Live-Schiffe
  layer, and the Bhote landslide is «Erdrutsch» throughout (not «Abbruch»).
- Number-neutral status lines for feed and layer lists, and a payload count
  line that also reads correctly for +1.
- Retry wording follows the glossary: «neue Versuche in größeren Abständen».
- Weather history lines are shorter and fit the collapsed row: «Frame fehlt;
  letzter Stand bleibt erhalten», «Kein Frame in den {gap} min bis {time}»
  (the gap only looks back from the target time).
- Shorter search placeholder «Ort suchen...», which was clipped.
- Smaller wording: Himmelsring, Lagebild-HUD, SCHLEPPVERBAND, Minimum Fuel
  (Treibstoff knapp), Bloom / Leuchten, DOWNRANGE GESCHÄTZT, Places-Kontext,
  MELDUNG, Rückflug zur Weltübersicht, REALE BILDDATEN and others.
- Glossary and routing notes updated.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 18:21:14 +04:00
Said Turksever 8cedd159e3 fix(layers): translate every route proxy refusal and clear stale receiver errorText
The route proxy also refuses with 'routing busy — too many routes at once'
(429) and 'route proxy error'; both showed in English in every locale.
Mark them in ROUTING_REFUSALS and add es, ru, zh-CN and zh-Hant entries.

errorText is now cleared on a new connection, a mode switch and stop(), so
it never outlives the error it describes. Tests cover the two refusals,
'Routing failed: rate limited' (pattern order) and the stop() reset.
2026-10-28 14:13:39 +00:00
Said Turksever 69c5b32598 fix(traffic): date the STALE row by the oldest cached tile; add zh-Hant string 2026-10-28 14:10:18 +00:00
Said Turksever 9659f38fe6 Merge remote-tracking branch 'upstream/main' into pr1405-fix 2026-10-28 14:06:40 +00:00
German KhokhlovandClaude Opus 5.5 858ce827e5 i18n(pt): apply review round 2
Three-model review (astra, sol, fable), round 2: 29 of 30 findings
applied, one of them in part.

- pt: FIRMS «mais recente há», CCTV «cruzamentos», degraded radio
  directory, «{layers}: ativação recente» for any layer list, «Sem
  imagem», NIVELADO, AJUSTA-SE, quoted Provider Settings, V/S kept on
  the ADS-B card, no-break space in «(24 h)» / «(30 d)», and more
  (see docs/translations/pt.md).
- Malformed cyclone snapshot is now a catalog message (all locales).
- Markup supports data-i18n-context; the radio STATION TAG option uses
  "radio tag|All", so it no longer flips gender when the list loads.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 17:57:51 +04:00
German KhokhlovandClaude Opus 5.5 e87001d0db i18n(fr): apply review round 2
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 17:55:20 +04:00
German KhokhlovandClaude Opus 5.5 b96c1dee15 i18n(it): apply review round 2
Three-model review (astra, sol, fable): 42 findings accepted, 3 deferred
(unmarked cyclone errors and the Chinese locale descriptors need new keys
in every catalog). The USGS callout now reads as an action (APRI LA FONTE)
because it opens the report. Layer, tool and card-title sentences agree with
any feature name («Il livello {layer} è attivo», «Lo strumento {name}»,
«{label}: attivato»). The store write error is grammatical for both
values. RADO/BILANCIATO agree with DENSO. Also fixes the meaning of
viewpoint, fire incident, trigger record, transit report, FIRMS cell age,
drizzle, widebody and fast-jet classes; Dissolvenza and CH replace the odd
abbreviations; cause/hint dashes become colons.

Fixes the Nepal scene showing shots 01-08 in English in every locale:
displayShotTitle() now also trusts the bootstrap keyframes of the append
recipe that upgrades a built-in scene (src/scenes/recipes.js, with a test).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 17:41:29 +04:00
German KhokhlovandClaude Opus 5.5 1eb9e06c49 i18n(de): apply review round 1
- Meaning fixes: playback connects to the broadcaster when it starts, browser
  keys are restricted at the provider, clearing data layers switches them off
  (ausschalten, not löschen), cockpit inputs are Quellen, Electronic is
  Elektronische Musik, AIS types name vessels (SEGLER, LOTSENBOOT,
  SANITÄTSDIENST, SCHNELLSCHIFF), contiguous US excludes Alaska/Hawaii,
  wind and weather readings are model values, nearest frames are nearest in
  time, cloud imagery and the brightness filter say what they are.
- NHC/CPHC advisories are Lageberichte, not Warnungen; cyclone strings use
  Wirbelsturm throughout. Glossary updated.
- Grammar: " oder " keeps its space as a join separator, "{x} konnte nicht
  sauber beendet werden", Then: no longer doubles Dann, scene save reasons
  continue the sentence in lower case, neutral "Warten auf".
- Spacing between numbers and units in the remaining nine readouts.
- Reroute tooltip: German mode nouns keep their capital (Auto, Fahrrad).
- Built-in Nepal shot titles localize in every language: the legacy scene
  upgrade rebuilds its base shots without sourcePackId, so the pack's own
  shots in the scene now vouch for them.
- Layout: the layer status column no longer shrinks under a wide chip, and
  a mixed-case compound (ALPR-Kameras) may break at its hyphen; only capital
  codes (ADS-B, RTL-SDR) stay unbroken. WIRD AKTIVIERT overlapped the name.
  The Bhote step meta line may take a third line.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 17:30:21 +04:00
German KhokhlovandClaude Opus 5.5 3c0c10d3b1 i18n(pt): apply review round 1
Three-model review (astra, sol, fable): 51 of 52 findings applied, two
of them in part.

- pt: AQHI bands as health risk, NAVIO-TANQUE, CANDIDATO DO GOOGLE
  PLACES, Provider Settings agreement, retry/feed-down wording,
  NOTÍCIAS DA ÁREA (fits the briefing kicker), detection modes in the
  masculine, GS and REC kept on the HUD, EXPORTAR PREDEF., prepositions
  before times, and more (see docs/translations/pt.md).
- Cyclone request timeout is now a catalog message (all locales).
- Built-in Nepal base shots written by the legacy pack bootstrap now
  show their localized titles: displayShotTitle also trusts the legacy
  keyframes of an append pack the scene has applied.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 17:17:23 +04:00
German KhokhlovandClaude Opus 5.5 7a18e0093b i18n(uk): apply review round 1
- Fix meaning errors flagged by the three-model review: downed aircraft
  (Аварія літака), fast jet, the straight-ahead lane, road traffic,
  pilot vessel, nearby contact counts, the low-accuracy score.
- Terms: CRS/TRK → ШК (шляховий кут), ascent → виведення, booster
  flight → ПОЛІТ, session → сеанс, sequence → послідовність, place
  search → пошук місця, CCTV pitch → нахил, mapped sites →
  нанесені обʼєкти everywhere; glossary updated.
- Grammar: case agreement in the radio aria label and the key-store
  message, «прицілу», у/в euphony, payload count after a colon,
  FIRES as ПОЖ. so any count reads correctly.
- The cockpit current-style button widens to fit ЗВИЧАЙНИЙ; other
  languages keep the 58px minimum.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 17:08:36 +04:00
German KhokhlovandClaude Opus 5.5 5e47a2afbd i18n(it): apply review round 1
Three-model review (astra, sol, fable): 53 findings accepted, 14 rejected
or deferred. Fixes the meaning of "Downed aircraft", "Compilation", the
satellite ground-distance caveat and the browser-key restriction note;
agreement for Full, Provider Settings and Space Missions; fork directions
that compose with every modifier; a radio aria label that reads as a
phrase; imperative tooltips. Shortens the labels that clipped: ESP. A/B,
search placeholder, QUOTA · FT, PREC, Esri imagery note.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 17:02:55 +04:00
German KhokhlovandClaude Opus 5.5 4adb9113bc i18n(fr): apply review round 1
Apply the accepted findings from the three-model French review: ground
track reads « route », wildfire containment « circonscrit », downrange
« distance au sol », tankers « navire-citerne », plus wording fixes for
lanes, timestamps, wind sector, radio, CCTV and voice strings.

Shots rebuilt by a pack's legacy bootstrap carry no sourcePackId, so the
first Nepal shot titles stayed English; the scene's applied-pack marker
now vouches for the pack's required titles.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 16:40:53 +04:00
German KhokhlovandClaude Opus 5.5 cdd90dac4b i18n(uk): fixes from the screenshot review
- Layer rows read «не оновлювалося» for a feed that never updated, not
  «ніколи».
- The dock voice toggle label fits on one line (ПЕРЕМК.), the cockpit
  briefing title (НОВИНИ РЕГІОНУ) no longer truncates, Celestial is «Небо».
- No-break spaces keep «24 год», «30 дн» and coordinate abbreviations
  (пн. ш., зх. д.) on one line.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 16:26:34 +04:00
German KhokhlovandClaude Opus 5.5 0d28150e22 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]>
2026-10-28 15:18:49 +04:00