Files
psysonic/src/locales/ro/deviceSync.ts
T
Frank Stellmacher 2409a1fec8 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.
2026-05-14 14:06:31 +02:00

81 lines
4.2 KiB
TypeScript

export const deviceSync = {
title: 'Sincronizare Dispozitiv',
targetFolder: 'Folder Țintă',
noFolderChosen: 'Niciun folder ales',
selectDrive: 'Selectați un drive…',
refreshDrives: 'Reactualizați drive-urile',
noDrivesDetected: 'Niciun drive înlăturabil detectat',
browseManual: 'Caută manual…',
free: 'liber',
notMountedVolume: 'Ținta nu este pe un volum montat. Drive-ul este posibil deconectat.',
chooseFolder: 'Alege…',
targetDevice: 'Dispozitiv țintă',
schemaLabel: 'Schemă de numire',
schemaHint: 'Schemă fixă pentru sincronizare de încredere între sisteme de operare. Playlisturile sunt scrise ca .m3u8 care referă piesele albumului — niciun duplicat pe dispozitiv.',
migrateButton: 'Reorganizează fișiere existente…',
migrateTooltip: 'Renumește fișiere existente de pe dispozitiv în noua schemă (din șablonul numelui de fișier vechi).',
migrateTitle: 'Reorganizează fișiere existente',
migrateLoading: 'Se analizează fișiere existente…',
migrateNothingToDo: 'Toate fișierele existente corespund deja cu noua schemă — nimic de făcut.',
migrateNoTemplate: 'Niciun șablon de nume de fișier găsit pe dispozitiv. Migrarea se aplică doar când stick-ul a fost sincronizat cu o versiune de Psysonic care a suportat șabloane personalizate.',
migrateFilesToRename: 'fișiere vor fi redenumite',
migrateUnchanged: '{{n}} fișiere sunt deja în calea corectă',
migrateCollisions: '{{n}} fișiere nu au putut fi redenumite automat (mai multe piese sunt mapate către aceași țintă). Ele vor fi lăsate neatinse — următoarea sincronizare le re-descarcă în locația corectă.',
migratePreviewNote: 'Șablonul vechi: {{tpl}}',
migrateExecuting: 'Se redenumesc fișierele…',
migrateSuccess: '{{n}} fișiere redenumite cu succes',
migrateFailed: '{{n}} redenumiri au eșuat',
migrateShowErrors: 'Arată erorile',
migrateStart: 'Începe redenumirea',
onDevice: 'Manager de dispozitive',
addSources: 'Adaugă…',
colName: 'Nume',
colType: 'Tip',
colStatus: 'Status',
syncResult: '{{done}} transferate, {{skipped}} deja la zi ({{total}} total)',
deleteFromDevice: 'Marchează pentru ștergere ({{count}})',
confirmDelete: 'Șterge {{count}} element(e) din dispozitiv: {{names}}?',
deleteComplete: '{{count}} element(e) șterse din dispozitiv.',
manifestImported: '{{count}} surse importate din manifestul dispozitivului.',
selectedSources: 'Sursele selectate',
noSourcesSelected: 'Nicio sursă selectată. Apasă elementele din browser pentru a le adăuga.',
clearAll: 'Golește tot',
tabPlaylists: 'Playlisturi',
tabAlbums: 'Albume',
tabArtists: 'Artiști',
searchPlaceholder: 'Caută…',
syncButton: 'Sincronizează la Dispozitiv',
actionTransfer: 'Transferă la Dispozitiv',
actionDelete: 'Șterge din Dispozitiv',
actionApplyAll: 'Aplică toate schimbările',
cancel: 'Anulează',
noTargetDir: 'Alege un folder țintă mai întâi.',
noSources: 'Alege cel puțin o sursă.',
noTracks: 'Nicio piesă găsită în sursele selectate.',
fetchError: 'Nu s-a reușit preluarea pieselor de pe server.',
syncComplete: 'Sincronizare completă.',
dismiss: 'Îndepărtează',
cancelSync: 'Anulează',
syncCancelled: 'Sincronizare anulată ({{done}} / {{total}} transferate).',
statusSynced: 'Sincronizat',
statusPending: 'În așteptare',
statusDeletion: 'Ștergere',
markForDeletion: 'Marchează pentru Ștergere',
undoDeletion: 'Anulează ștergerea',
removeSource: 'Elimină',
syncInBackground: 'Sincronizare pornită în fundal — poți naviga în alte părți.',
syncInProgress: '{{done}} / {{total}} piese…',
scanningDevice: 'Se scanează dispozitivul…',
syncSummary: 'Sumar sincronizare',
calculating: 'Se calculează încărcătura necesară…',
filesToAdd: 'Fișiere de Adăugat:',
filesToDelete: 'Fișiere de Șterse:',
netChange: 'Schimbarea netă:',
availableSpace: 'Spațiu pe Disc disponibil:',
spaceWarning: 'Alertă: Dispozitivul țintă nu are destul spațiu raportat.',
proceed: 'Continuă cu Sincronizarea',
notEnoughSpace: 'Nu s-a detectat destul spațiu fizic pe disc!',
liveSearch: 'Live',
randomAlbumsLabel: 'Albume aleatorii',
};