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 statistics = {
title: 'Statistiques',
recentlyPlayed: 'Écoutés récemment',
mostPlayed: 'Albums les plus écoutés',
highestRated: 'Albums les mieux notés',
genreDistribution: 'Répartition par genre (Top 20)',
loadMore: 'Charger plus',
statArtists: 'Artistes',
statArtistsTooltip: 'Artistes d\'album uniquement — les artistes apparaissant seulement sur des pistes (featuring, invité, etc.) sans album propre ne sont pas comptés.',
statAlbums: 'Albums',
statSongs: 'Morceaux',
statGenres: 'Genres',
statPlaytime: 'Durée totale',
genreInsights: 'Aperçu des genres',
formatDistribution: 'Distribution des formats',
formatSample: 'Échantillon de {{n}} pistes',
computing: 'Calcul en cours…',
genreSongs: '{{count}} morceaux',
genreAlbums: '{{count}} albums',
recentlyAdded: 'Ajoutés récemment',
decadeDistribution: 'Albums par décennie',
decadeAlbums_one: '{{count}} album',
decadeAlbums_other: '{{count}} albums',
decadeUnknown: 'Inconnu',
lfmTitle: 'Stats Last.fm',
lfmTopArtists: 'Artistes favoris',
lfmTopAlbums: 'Albums favoris',
lfmTopTracks: 'Morceaux favoris',
lfmPlays: '{{count}} écoutes',
lfmPeriodOverall: 'Tout le temps',
lfmPeriod7day: '7 jours',
lfmPeriod1month: '1 mois',
lfmPeriod3month: '3 mois',
lfmPeriod6month: '6 mois',
lfmPeriod12month: '12 mois',
lfmNotConnected: 'Connectez Last.fm dans les Paramètres pour voir vos stats.',
lfmRecentTracks: 'Scrobbles récents',
lfmNowPlaying: 'En cours de lecture',
lfmJustNow: 'à l\'instant',
lfmMinutesAgo: 'il y a {{n}} min',
lfmHoursAgo: 'il y a {{n}}h',
lfmDaysAgo: 'il y a {{n}}j',
topRatedSongs: 'Morceaux les mieux notés',
topRatedArtists: 'Artistes les mieux notés',
noRatedSongs: 'Aucun morceau noté. Notez des morceaux dans la vue album ou playlist.',
noRatedArtists: 'Aucun artiste noté.',
};