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: 'Estadísticas',
recentlyPlayed: 'Reproducidos Recientemente',
mostPlayed: 'Álbumes Más Reproducidos',
highestRated: 'Álbumes Mejor Calificados',
genreDistribution: 'Distribución de Géneros (Top 20)',
loadMore: 'Cargar más',
statArtists: 'Artistas',
statArtistsTooltip: 'Solo artistas de álbum — los artistas que aparecen únicamente como artistas de pista (featuring, invitado, etc.) sin álbum propio no se cuentan.',
statAlbums: 'Álbumes',
statSongs: 'Canciones',
statGenres: 'Géneros',
statPlaytime: 'Tiempo Total de Reproducción',
genreInsights: 'Información de Géneros',
formatDistribution: 'Distribución de Formatos',
formatSample: 'Muestra de {{n}} pistas',
computing: 'Calculando…',
genreSongs: '{{count}} Canciones',
genreAlbums: '{{count}} Álbumes',
recentlyAdded: 'Agregados Recientemente',
decadeDistribution: 'Álbumes por Década',
decadeAlbums_one: '{{count}} Álbum',
decadeAlbums_other: '{{count}} Álbumes',
decadeUnknown: 'Desconocido',
lfmTitle: 'Estadísticas de Last.fm',
lfmTopArtists: 'Artistas Principales',
lfmTopAlbums: 'Álbumes Principales',
lfmTopTracks: 'Pistas Principales',
lfmPlays: '{{count}} reproducciones',
lfmPeriodOverall: 'Todo el Tiempo',
lfmPeriod7day: '7 Días',
lfmPeriod1month: '1 Mes',
lfmPeriod3month: '3 Meses',
lfmPeriod6month: '6 Meses',
lfmPeriod12month: '12 Meses',
lfmNotConnected: 'Conecta Last.fm en Configuración para ver tus estadísticas.',
lfmRecentTracks: 'Scrobbles Recientes',
lfmNowPlaying: 'Reproduciendo Ahora',
lfmJustNow: 'ahora mismo',
lfmMinutesAgo: 'hace {{n}}m',
lfmHoursAgo: 'hace {{n}}h',
lfmDaysAgo: 'hace {{n}}d',
topRatedSongs: 'Canciones Mejor Calificadas',
topRatedArtists: 'Artistas Mejor Calificados',
noRatedSongs: 'Aún no hay canciones calificadas. Califica canciones en la vista de álbum o playlist.',
noRatedArtists: 'Aún no hay artistas calificados.',
};