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
+47
View File
@@ -0,0 +1,47 @@
export const nowPlaying = {
tooltip: 'Wer hört was?',
title: 'Wer hört was?',
loading: 'Lädt…',
nobody: 'Gerade hört niemand Musik.',
minutesAgo: 'vor {{n}}m',
nothingPlaying: 'Noch nichts am Laufen. Leg einen Track auf!',
aboutArtist: 'Über den Künstler',
fromAlbum: 'Aus diesem Album',
viewAlbum: 'Album öffnen',
goToArtist: 'Zum Künstler',
readMore: 'Mehr lesen',
showLess: 'Weniger anzeigen',
genreInfo: 'Genre',
trackInfo: 'Track-Info',
topSongs: 'Meistgespielt von diesem Künstler',
topSongsCredit: 'Top-Tracks von {{name}}',
trackPosition: 'Track {{pos}}',
playsCount_one: '{{count}} Wiedergabe',
playsCount_other: '{{count}} Wiedergaben',
releasedYearsAgo_one: 'vor {{count}} Jahr',
releasedYearsAgo_other: 'vor {{count}} Jahren',
discography: 'Diskografie',
lastfmStats: 'Last.fm-Statistik',
thisTrack: 'Dieser Titel',
thisArtist: 'Dieser Künstler',
listeners: 'Hörer',
scrobbles: 'Scrobbles',
yourScrobbles: 'von dir',
listenersN: '{{n}} Hörer',
scrobblesN: '{{n}} Scrobbles',
playsByYouN: '{{n}}× von dir gespielt',
openTrackOnLastfm: 'Track auf Last.fm',
openArtistOnLastfm: 'Künstler auf Last.fm',
rgTrackTooltip: 'ReplayGain (Track)',
rgAlbumTooltip: 'ReplayGain (Album)',
rgAutoTooltip: 'ReplayGain (Auto)',
showMoreTracks: '{{count}} weitere anzeigen',
showLessTracks: 'Weniger anzeigen',
hideCard: 'Karte ausblenden',
layoutMenu: 'Layout',
visibleCards: 'Sichtbare Karten',
hiddenCards: 'Ausgeblendete Karten',
noHiddenCards: 'Keine ausgeblendeten Karten',
resetLayout: 'Layout zurücksetzen',
emptyColumn: 'Karten hier ablegen',
};