refactor(i18n): split locale files into per-namespace modules (Phase K) (#688)

Each src/locales/<lang>.ts (~1800 LOC) becomes a folder src/locales/<lang>/
with one module per i18n namespace (44 each) plus an index.ts barrel that
reassembles <lang>Translation in the original key order.

Mechanical, script-driven split with a JSON round-trip check: every
locale object is byte-identical to its pre-split form. i18n.ts is
unchanged — './locales/<lang>' now resolves to the folder index.

The per-namespace settings.ts files land ~440-460 LOC; a single i18n
namespace is the natural, non-arbitrary split unit for a flat string
table, so they are intentionally left whole.
This commit is contained in:
Frank Stellmacher
2026-05-14 14:06:31 +02:00
committed by GitHub
parent ec112922a2
commit 2409a1fec8
414 changed files with 17424 additions and 16624 deletions
+56
View File
@@ -0,0 +1,56 @@
export const player = {
regionLabel: 'Muziekspeler',
openFullscreen: 'Volledig-schermspeler openen',
fullscreen: 'Volledig-schermspeler',
closeFullscreen: 'Volledig scherm sluiten',
closeTooltip: 'Sluiten (Escape)',
noTitle: 'Geen titel',
stop: 'Stoppen',
prev: 'Vorig nummer',
play: 'Afspelen',
pause: 'Pauzeren',
previewActive: 'Voorbeeld speelt af',
previewLabel: 'Voorbeeld',
delayModalTitle: 'Timer',
delayPauseSection: 'Pauzeren na',
delayStartSection: 'Starten na',
delayPreviewPause: 'Pauze om',
delayPreviewStart: 'Start om',
delaySchedulePause: 'Pauze plannen',
delayScheduleStart: 'Start plannen',
delayCancelPause: 'Pauze-timer annuleren',
delayCancelStart: 'Start-timer annuleren',
delayInactivePause: 'Alleen beschikbaar tijdens afspelen.',
delayInactiveStart: 'Alleen in pauze met een geladen nummer of radio.',
delayCustomMinutes: 'Aangepaste vertraging (minuten)',
delayCustomPlaceholder: 'bijv. 2,5',
closeDelayModal: 'Sluiten',
delayIn: 'over',
delayFmtSec: '{{n}} s',
delayFmtMin: '{{n}} min',
delayFmtHr: '{{n}} u',
delayCancel: 'Annuleren',
delayApply: 'Toepassen',
next: 'Volgend nummer',
repeat: 'Herhalen',
repeatOff: 'Uit',
repeatAll: 'Alles',
repeatOne: 'Één',
progress: 'Nummervoortgang',
volume: 'Volume',
toggleQueue: 'Wachtrij in-/uitschakelen',
collapseQueueResize: 'Wachtrij inklappen, breedte wijzigen',
moreOptions: 'Meer opties',
equalizer: 'Equalizer',
miniPlayer: 'Minispeler',
lyrics: 'Songtekst',
fsLyricsToggle: 'Songtekst in volledig scherm',
lyricsLoading: 'Songtekst laden…',
lyricsNotFound: 'Geen songtekst gevonden voor dit nummer',
lyricsSourceServer: 'Bron: Server',
lyricsSourceLrclib: 'Bron: LRCLIB',
lyricsSourceNetease: 'Bron: Netease',
lyricsSourceLyricsplus: 'Bron: YouLyPlus',
showDuration: 'Toon duur',
showRemainingTime: 'Toon resterende tijd',
};