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: 'Musikkspiller',
openFullscreen: 'Åpne fullskjermsspiller',
fullscreen: 'Fullskjermsspiller',
closeFullscreen: 'Lukk fullskjerm',
closeTooltip: 'Lukk (Esc)',
noTitle: 'Ingen tittel',
stop: 'Stopp',
prev: 'Forrige spor',
play: 'Spill av',
pause: 'Pause',
previewActive: 'Forhåndsvisning spilles av',
previewLabel: 'Forhåndsvisning',
delayModalTitle: 'Tidsur',
delayPauseSection: 'Pause etter',
delayStartSection: 'Start etter',
delayPreviewPause: 'Pause kl.',
delayPreviewStart: 'Start kl.',
delaySchedulePause: 'Planlegg pause',
delayScheduleStart: 'Planlegg start',
delayCancelPause: 'Avbryt pause-timer',
delayCancelStart: 'Avbryt start-timer',
delayInactivePause: 'Kun tilgjengelig under avspilling.',
delayInactiveStart: 'Kun i pause med spor eller radio lastet.',
delayCustomMinutes: 'Egen forsinkelse (minutter)',
delayCustomPlaceholder: 'f.eks. 2,5',
closeDelayModal: 'Lukk',
delayIn: 'om',
delayFmtSec: '{{n}} s',
delayFmtMin: '{{n}} min',
delayFmtHr: '{{n}} t',
delayCancel: 'Avbryt',
delayApply: 'Bruk',
next: 'Neste spor',
repeat: 'Gjenta',
repeatOff: 'Av',
repeatAll: 'Alle',
repeatOne: 'Én',
progress: 'Sangfremdrift',
volume: 'Volum',
toggleQueue: 'Veksle kø',
collapseQueueResize: 'Skjul kø, endre bredde',
moreOptions: 'Flere alternativer',
equalizer: 'Equalizer',
miniPlayer: 'Minispiller',
lyrics: 'Sangtekst',
fsLyricsToggle: 'Sangtekst i fullskjerm',
lyricsLoading: 'Laster sangtekst…',
lyricsNotFound: 'Ingen sangtekst funnet for dette sporet',
lyricsSourceServer: 'Kilde: Server',
lyricsSourceLrclib: 'Kilde: LRCLIB',
lyricsSourceNetease: 'Kilde: Netease',
lyricsSourceLyricsplus: 'Kilde: YouLyPlus',
showDuration: 'Vis varighet',
showRemainingTime: 'Vis gjenværende tid',
};