mirror of
https://github.com/kilyabin/psysonic.git
synced 2026-07-22 14:35:41 +00:00
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:
committed by
GitHub
parent
ec112922a2
commit
2409a1fec8
@@ -0,0 +1,101 @@
|
||||
export const playlists = {
|
||||
title: 'Listas de Reproducción',
|
||||
newPlaylist: 'Nueva Lista',
|
||||
unnamed: 'Lista sin nombre',
|
||||
createName: 'Nombre de lista…',
|
||||
create: 'Crear',
|
||||
cancel: 'Cancelar',
|
||||
empty: 'Aún no hay listas.',
|
||||
emptyPlaylist: 'Esta lista está vacía.',
|
||||
addFirstSong: 'Agrega tu primera canción',
|
||||
notFound: 'Lista no encontrada.',
|
||||
songs: '{{n}} canciones',
|
||||
playAll: 'Reproducir Todo',
|
||||
shuffle: 'Aleatorio',
|
||||
addToQueue: 'Agregar a Cola',
|
||||
back: 'Volver a Listas',
|
||||
deletePlaylist: 'Eliminar',
|
||||
confirmDelete: 'Click de nuevo para confirmar',
|
||||
removeSong: 'Quitar de lista',
|
||||
addSongs: 'Agregar Canciones',
|
||||
searchPlaceholder: 'Buscar en tu biblioteca…',
|
||||
noResults: 'Sin resultados.',
|
||||
suggestions: 'Canciones Sugeridas',
|
||||
noSuggestions: 'No hay sugerencias disponibles.',
|
||||
titleBadge: 'Lista',
|
||||
refreshSuggestions: 'Nuevas sugerencias',
|
||||
addSong: 'Agregar a lista',
|
||||
preview: 'Vista previa (30 s)',
|
||||
previewStop: 'Detener vista previa',
|
||||
playNextSuggestion: 'Reproducir a continuación',
|
||||
suggestionsHint: 'Doble clic en una fila para añadirla a la lista',
|
||||
addSelected: 'Agregar seleccionados',
|
||||
cacheOffline: 'Guardar lista offline',
|
||||
offlineCached: 'Lista guardada',
|
||||
removeOffline: 'Quitar de caché offline',
|
||||
offlineDownloading: 'Descargando… ({{done}}/{{total}} álbumes)',
|
||||
publicLabel: 'Pública',
|
||||
privateLabel: 'Privada',
|
||||
editMeta: 'Editar lista',
|
||||
editNamePlaceholder: 'Nombre de lista…',
|
||||
editCommentPlaceholder: 'Agregar descripción…',
|
||||
editPublic: 'Lista pública',
|
||||
editSave: 'Guardar',
|
||||
editCancel: 'Cancelar',
|
||||
changeCover: 'Cambiar imagen de portada',
|
||||
changeCoverLabel: 'Cambiar foto',
|
||||
removeCover: 'Quitar foto',
|
||||
coverUpdated: 'Portada actualizada',
|
||||
metaSaved: 'Lista actualizada',
|
||||
downloadZip: 'Descargar (ZIP)',
|
||||
// Toast notifications for multi-select
|
||||
addSuccess: '{{count}} canciones agregadas a {{playlist}}',
|
||||
addPartial: '{{added}} agregadas, {{skipped}} skippeadas por duplicadas',
|
||||
addAllSkipped: 'Todas skippeadas ({{count}} duplicadas)',
|
||||
addedAsDuplicates: '{{count}} canciones añadidas a {{playlist}} (como duplicados)',
|
||||
duplicateConfirmTitle: 'Ya en la lista',
|
||||
duplicateConfirmMessage: 'Las {{count}} canciones ya están en "{{playlist}}". ¿Añadirlas igualmente como duplicados?',
|
||||
duplicateConfirmAction: 'Añadir igualmente',
|
||||
addError: 'Error al agregar canciones',
|
||||
createAndAddSuccess: 'Lista "{{playlist}}" creada con {{count}} canciones',
|
||||
createError: 'Error al crear lista',
|
||||
deleteSuccess: '{{count}} listas eliminadas',
|
||||
deleteFailed: 'Error al eliminar {{name}}',
|
||||
deleteSelected: 'Eliminar seleccionadas',
|
||||
deleteSelectedPartial: 'Solo {{n}} de {{total}} listas seleccionadas pueden eliminarse (las demás pertenecen a otro usuario).',
|
||||
mergeSuccess: '{{count}} canciones unificadas en {{playlist}}',
|
||||
mergeNoNewSongs: 'No hay canciones nuevas para agregar',
|
||||
mergeError: 'Error al unificar listas',
|
||||
mergeInto: 'Unificar en',
|
||||
selectionCount: '{{count}} seleccionadas',
|
||||
select: 'Seleccionar',
|
||||
startSelect: 'Activar selección',
|
||||
cancelSelect: 'Cancelar',
|
||||
loadingAlbums: 'Resolviendo {{count}} álbumes…',
|
||||
loadingArtists: 'Resolviendo {{count}} artistas…',
|
||||
myPlaylists: 'Mis Listas',
|
||||
noOtherPlaylists: 'No hay otras listas disponibles',
|
||||
addToPlaylistSuccess: '{{count}} canciones agregadas a {{playlist}}',
|
||||
addToPlaylistNoNew: 'No hay canciones nuevas para agregar a {{playlist}}',
|
||||
addToPlaylistError: 'Error al agregar a la lista',
|
||||
removeSuccess: 'Canción quitada de la playlist',
|
||||
removeError: 'Error al quitar la canción de la playlist',
|
||||
importCSV: 'Importar CSV',
|
||||
importCSVTooltip: 'Importar desde CSV de Spotify',
|
||||
csvImportReport: 'Reporte de Importación CSV',
|
||||
csvImportTotal: 'Total',
|
||||
csvImportAdded: 'Agregadas',
|
||||
csvImportDuplicates: 'Duplicadas',
|
||||
csvImportNotFound: 'No Encontradas',
|
||||
csvImportNetworkErrors: 'Errores de Red',
|
||||
csvImportDuplicatesTitle: 'Canciones Duplicadas (Ya en la Lista):',
|
||||
csvImportNotFoundTitle: 'Canciones No Encontradas:',
|
||||
csvImportNetworkErrorsTitle: 'Errores de Red (puede reintentar la importación):',
|
||||
csvImportDownloadReport: 'Descargar Reporte',
|
||||
csvImportClose: 'Cerrar',
|
||||
csvImportNoValidTracks: 'No se encontraron canciones válidas en el archivo CSV',
|
||||
csvImportFailed: 'Error al importar el archivo CSV',
|
||||
csvImportToast: '{{added}} agregadas, {{notFound}} no encontradas, {{duplicates}} duplicadas',
|
||||
csvImportDownloadSuccess: 'Reporte descargado exitosamente',
|
||||
csvImportDownloadError: 'Error al descargar el reporte',
|
||||
};
|
||||
Reference in New Issue
Block a user