mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-22 15:25:46 +00:00
2409a1fec8
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.
80 lines
4.1 KiB
TypeScript
80 lines
4.1 KiB
TypeScript
export const deviceSync = {
|
|
title: 'Gerätesync',
|
|
targetFolder: 'Zielordner',
|
|
noFolderChosen: 'Kein Ordner gewählt',
|
|
selectDrive: 'Laufwerk auswählen…',
|
|
refreshDrives: 'Laufwerke aktualisieren',
|
|
noDrivesDetected: 'Keine Wechseldatenträger erkannt',
|
|
browseManual: 'Manuell durchsuchen…',
|
|
free: 'frei',
|
|
notMountedVolume: 'Ziel befindet sich nicht auf einem eingehängten Laufwerk. Das Gerät wurde möglicherweise getrennt.',
|
|
chooseFolder: 'Auswählen…',
|
|
targetDevice: 'Zielgerät',
|
|
schemaLabel: 'Benennungsschema',
|
|
schemaHint: 'Festes Schema für zuverlässige Synchronisation über verschiedene Betriebssysteme hinweg. Playlists werden als .m3u8-Dateien geschrieben und referenzieren die Album-Tracks — keine Duplikate auf dem Gerät.',
|
|
migrateButton: 'Bestehende Dateien re-organisieren…',
|
|
migrateTooltip: 'Vorhandene Dateien auf dem Gerät nach dem neuen Schema umbenennen (basierend auf der alten Namensvorlage).',
|
|
migrateTitle: 'Bestehende Dateien re-organisieren',
|
|
migrateLoading: 'Analysiere vorhandene Dateien…',
|
|
migrateNothingToDo: 'Alle vorhandenen Dateien entsprechen bereits dem neuen Schema — nichts zu tun.',
|
|
migrateNoTemplate: 'Keine alte Namensvorlage auf dem Gerät gefunden. Migration ist nur möglich, wenn der Stick mit einer Psysonic-Version synchronisiert wurde, die konfigurierbare Vorlagen unterstützte.',
|
|
migrateFilesToRename: 'Dateien werden umbenannt',
|
|
migrateUnchanged: '{{n}} Dateien liegen bereits am korrekten Pfad',
|
|
migrateCollisions: '{{n}} Dateien können nicht automatisch umbenannt werden (mehrere Tracks zeigen auf dasselbe Ziel). Sie bleiben unverändert — beim nächsten Sync werden sie neu heruntergeladen.',
|
|
migratePreviewNote: 'Alte Vorlage: {{tpl}}',
|
|
migrateExecuting: 'Dateien werden umbenannt…',
|
|
migrateSuccess: '{{n}} Dateien erfolgreich umbenannt',
|
|
migrateFailed: '{{n}} Umbenennungen fehlgeschlagen',
|
|
migrateShowErrors: 'Fehler anzeigen',
|
|
migrateStart: 'Umbenennen starten',
|
|
onDevice: 'Auf dem Gerät',
|
|
addSources: 'Hinzufügen…',
|
|
colName: 'Name',
|
|
colType: 'Typ',
|
|
syncResult: '{{done}} übertragen, {{skipped}} bereits aktuell ({{total}} gesamt)',
|
|
deleteFromDevice: 'Vom Gerät löschen ({{count}})',
|
|
confirmDelete: '{{count}} Eintrag/Einträge vom Gerät löschen: {{names}}?',
|
|
deleteComplete: '{{count}} Eintrag/Einträge vom Gerät entfernt.',
|
|
manifestImported: '{{count}} Quelle(n) aus Geräte-Manifest importiert.',
|
|
selectedSources: 'Ausgewählte Quellen',
|
|
noSourcesSelected: 'Keine Quellen ausgewählt. Klicke auf Einträge im Browser um sie hinzuzufügen.',
|
|
clearAll: 'Alle entfernen',
|
|
tabPlaylists: 'Wiedergabelisten',
|
|
tabAlbums: 'Alben',
|
|
tabArtists: 'Künstler',
|
|
searchPlaceholder: 'Suche…',
|
|
syncButton: 'Auf Gerät übertragen',
|
|
actionTransfer: 'Auf Gerät übertragen',
|
|
actionDelete: 'Vom Gerät löschen',
|
|
actionApplyAll: 'Änderungen synchronisieren',
|
|
cancel: 'Abbrechen',
|
|
noTargetDir: 'Bitte zuerst einen Zielordner auswählen.',
|
|
noSources: 'Bitte mindestens eine Quelle auswählen.',
|
|
noTracks: 'Keine Tracks in den ausgewählten Quellen gefunden.',
|
|
fetchError: 'Fehler beim Laden der Tracks vom Server.',
|
|
syncComplete: 'Übertragung abgeschlossen.',
|
|
dismiss: 'Schließen',
|
|
cancelSync: 'Abbrechen',
|
|
syncCancelled: 'Sync abgebrochen ({{done}} / {{total}} übertragen).',
|
|
colStatus: 'Status',
|
|
statusSynced: 'Synchronisiert',
|
|
statusPending: 'Ausstehend',
|
|
statusDeletion: 'Löschung',
|
|
markForDeletion: 'Zur Löschung markieren',
|
|
removeSource: 'Entfernen',
|
|
undoDeletion: 'Löschung rückgängig',
|
|
syncInBackground: 'Sync gestartet — du kannst die Seite verlassen.',
|
|
syncInProgress: '{{done}} / {{total}} Tracks…',
|
|
syncSummary: 'Sync-Zusammenfassung',
|
|
calculating: 'Payload wird berechnet…',
|
|
filesToAdd: 'Hinzuzufügende Dateien:',
|
|
filesToDelete: 'Zu löschende Dateien:',
|
|
netChange: 'Nettoänderung:',
|
|
availableSpace: 'Verfügbarer Speicher:',
|
|
spaceWarning: 'Warnung: Das Zielgerät hat nicht genug gemeldeten Speicherplatz.',
|
|
proceed: 'Sync durchführen',
|
|
notEnoughSpace: 'Nicht genug physischer Speicherplatz erkannt!',
|
|
liveSearch: 'Live',
|
|
randomAlbumsLabel: 'Zufallsalben',
|
|
};
|