Hi, thanks for adsb-3d — really nice project.
I'd like to translate the UI (starting with German), and wanted to check
in before putting time into it.
From a quick look at the frontend, there's currently no i18n layer —
strings are inline (textContent = '...', setAttribute('aria-label', ...))
across the ui/*.ts files and main.ts. The SETTINGS_SCHEMA in
ui/settings-panel.ts already centralizes its labels/descriptions, which
would translate cleanly, but the rest is scattered.
Before I start, I'd like your take on:
- Is localization something you'd want in the project at all, or would
you rather keep it out of scope?
- If yes — preference on approach? E.g. a small custom string-table
(strings.ts with per-locale dictionaries + a t() helper) vs. pulling
in a library like i18next. Given the "no framework, DOM + Three.js
directly" style described in CLAUDE.md, I'd lean toward the lightweight
custom approach, but wanted to check first.
- Any preference on how the language is selected — browser locale
auto-detect, a setting in the existing settings panel, or a URL param?
Happy to do the string extraction + a German translation as a first PR
if this fits, or to hold off if it doesn't add value for you.
Hi, thanks for adsb-3d — really nice project.
I'd like to translate the UI (starting with German), and wanted to check
in before putting time into it.
From a quick look at the frontend, there's currently no i18n layer —
strings are inline (
textContent = '...',setAttribute('aria-label', ...))across the
ui/*.tsfiles andmain.ts. TheSETTINGS_SCHEMAinui/settings-panel.tsalready centralizes its labels/descriptions, whichwould translate cleanly, but the rest is scattered.
Before I start, I'd like your take on:
you rather keep it out of scope?
(
strings.tswith per-locale dictionaries + at()helper) vs. pullingin a library like i18next. Given the "no framework, DOM + Three.js
directly" style described in CLAUDE.md, I'd lean toward the lightweight
custom approach, but wanted to check first.
auto-detect, a setting in the existing settings panel, or a URL param?
Happy to do the string extraction + a German translation as a first PR
if this fits, or to hold off if it doesn't add value for you.