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
+45
View File
@@ -0,0 +1,45 @@
export const queue = {
title: 'Coadă',
savePlaylist: 'Salvează Playlist',
updatePlaylist: 'Actualizează Playlist',
filterPlaylists: 'Filtrează playlisturi…',
playlistName: 'Nume Playlist',
cancel: 'Anulează',
save: 'Salvează',
loadPlaylist: 'Încarcă Playlist',
loading: 'Se încarcă…',
noPlaylists: 'Niciun playlist găsit.',
load: 'Înlocuiește coadă & redare',
appendToQueue: 'Adaugă la coadă',
delete: 'Șterge',
deleteConfirm: 'Șterge playlist "{{name}}"?',
clear: 'Golește',
shuffle: 'Amestecă coada',
gapless: 'Gapless',
crossfade: 'Crossfade',
infiniteQueue: 'Coadă infinită',
autoAdded: '— Adăugat automat—',
radioAdded: '— Radio —',
hide: 'Ascunde',
hideNowPlaying: 'Ascunde informația now playing',
showNowPlaying: 'Arată informația now playing',
close: 'Închide',
nextTracks: 'Următoarele Piese',
shareQueue: 'Copiază link-ul distribuirii cozii',
shareQueueEmpty: 'Coada este goală — nimic de distribuit.',
emptyQueue: 'Coada este goală.',
trackSingular: 'piesă',
trackPlural: 'piese',
showRemaining: 'Arată timpul rămas',
showTotal: 'Arată timpul total',
showEta: 'Arată timpul estimativ până la final',
replayGain: 'ReplayGain',
rgTrack: 'P {{db}} dB',
rgAlbum: 'A {{db}} dB',
rgPeak: 'Vârf {{pk}}',
sourceOffline: 'Se redă din librăria offline',
sourceHot: 'Se redă din cache',
sourceStream: 'Se redă din stream-ul de rețea',
clearCachedLoudnessWaveform: 'Golește zgomotul si formele de undă din cache, apoi reanalizează piesa',
recalculatingLoudnessWaveform: 'Se recalculează zgomotul și formele de undă pentru această piesă…',
};