Merge pull request #71 from roswitina/main

feat(i18n): add Deutsch(de) to language list
This commit is contained in:
Dionisio Pozo
2026-02-11 12:27:52 +01:00
committed by GitHub
3 changed files with 344 additions and 2 deletions
+10 -1
View File
@@ -56,6 +56,15 @@ const LANGUAGE_TEXTS = {
modalTitle: 'انتخاب زبان',
searchPlaceholder: 'جستجوی زبان...'
}
de: {
title: 'Willkommen bei OxiCloud',
subtitle: 'Bitte wählen Sie Ihre Sprache',
continue: 'Fortfahren',
autodetected: 'Wir haben Ihre Sprache automatisch erkannt',
moreLanguages: 'Weitere Sprachen...',
modalTitle: 'Sprache auswählen',
searchPlaceholder: 'Sprache suchen...'
}
};
// Complete language registry — add new languages here, they'll appear automatically
@@ -1167,4 +1176,4 @@ function logout() {
localStorage.removeItem(TOKEN_EXPIRY_KEY);
localStorage.removeItem(USER_DATA_KEY);
window.location.href = '/login.html';
}
}
+332
View File
@@ -0,0 +1,332 @@
{
"app": {
"title": "OxiCloud",
"description": "Minimalistisches System zur Cloud-Datenspeicherung"
},
"nav": {
"files": "Dateien",
"shared": "Freigegebene Elemente",
"recent": "Zuletzt verwendete Elemente",
"favorites": "Favoriten",
"trash": "Papierkorb"
},
"actions": {
"search": "Dateien durchsuchen...",
"new_folder": "Neuen Ordner erstellen",
"upload": "Hochladen",
"upload_files": "Dateien hochladen",
"upload_folder": "Ordner hochladen",
"rename": "Umbenennen",
"move": "Verschieben nach...",
"move_to": "Verschieben nach",
"delete": "Löschen",
"download": "Herunterladen",
"view": "Anzeigen",
"cancel": "Abbrechen",
"confirm": "Bestätigen",
"share": "Freigeben",
"favorite": "Zu Favoriten hinzufügen",
"unfavorite": "Aus Favoriten entfernen",
"copy": "Kopieren",
"notify": "Benachrichtigen",
"send": "Senden",
"clear_recent": "Verlauf löschen",
"logout": "Abmelden",
"create": "Erstellen",
"search_btn": "Suchen",
"close": "Schließen",
"delete_permanently": "Endgültig löschen",
"empty_trash": "Papierkorb leeren"
},
"user_menu": {
"appearance": "Darstellung",
"about": "Über OxiCloud",
"about_description": "Plattform zur Cloud-Datenspeicherung, entwickelt mit Rust und Clean Architecture. Leistungsstark, sicher und datenschutzorientiert."
},
"share": {
"dialogTitle": "Freigabelink erstellen",
"linkLabel": "Freigabelink:",
"copyLink": "Kopieren",
"permissions": "Berechtigungen:",
"permissionRead": "Leseberechtigung",
"permissionWrite": "Schreibberechtigung",
"permissionReshare": "Weiterfreigabeberechtigung",
"password": "Passwortschutz:",
"generatePassword": "Passwort generieren",
"expiration": "Ablaufdatum:",
"update": "Freigabe aktualisieren",
"remove": "Freigabe entfernen",
"notifyTitle": "Benachrichtigung versenden",
"notifyEmailLabel": "E-Mail-Adresse:",
"notifyMessageLabel": "Nachricht (optional):",
"notifySend": "Benachrichtigung senden",
"shareWithOthers": "Mit weiteren Personen teilen",
"sharePublicly": "Öffentlich freigeben",
"shareSettings": "Freigabeeinstellungen",
"shareCopied": "Der Link wurde in die Zwischenablage kopiert.",
"shareCreated": "Der Freigabelink wurde erfolgreich erstellt.",
"shareUpdated": "Die Freigabeeinstellungen wurden erfolgreich aktualisiert.",
"shareRemoved": "Die Freigabe wurde erfolgreich entfernt."
},
"share_dialogTitle": "Freigabelink erstellen",
"share_linkLabel": "Freigabelink:",
"share_copyLink": "Kopieren",
"share_permissions": "Berechtigungen:",
"share_permissionRead": "Leseberechtigung",
"share_permissionWrite": "Schreibberechtigung",
"share_permissionReshare": "Weiterfreigabeberechtigung",
"share_password": "Passwortschutz:",
"share_generatePassword": "Passwort generieren",
"share_expiration": "Ablaufdatum:",
"share_update": "Freigabe aktualisieren",
"share_remove": "Freigabe entfernen",
"share_notifyTitle": "Benachrichtigung versenden",
"share_notifyEmailLabel": "E-Mail-Adresse:",
"share_notifyMessageLabel": "Nachricht (optional):",
"share_notifySend": "Benachrichtigung senden",
"shared": {
"backToFiles": "Zurück zur Dateiansicht",
"pageTitle": "Freigegebene Elemente",
"pageDescription": "Verwalten Sie Ihre freigegebenen Dateien und Ordner.",
"filterType": "Typ:",
"filterAll": "Alle",
"filterFiles": "Dateien",
"filterFolders": "Ordner",
"sortBy": "Sortieren nach:",
"sortByName": "Name",
"sortByDate": "Freigabedatum",
"sortByExpiration": "Ablaufdatum",
"search": "Suchen",
"colName": "Name",
"colType": "Typ",
"colDateShared": "Freigabedatum",
"colExpiration": "Ablaufdatum",
"colPermissions": "Berechtigungen",
"colPassword": "Passwortschutz",
"colActions": "Aktionen",
"emptyStateTitle": "Derzeit sind keine freigegebenen Elemente vorhanden.",
"emptyStateDesc": "Freigegebene Dateien und Ordner werden hier angezeigt.",
"goToFiles": "Zur Dateiansicht wechseln",
"typeFile": "Datei",
"typeFolder": "Ordner",
"noExpiration": "Kein Ablaufdatum festgelegt",
"hasPassword": "Ja",
"noPassword": "Nein",
"editShare": "Freigabe bearbeiten",
"notifyShare": "Person benachrichtigen",
"copyLink": "Link kopieren",
"removeShare": "Freigabe entfernen",
"linkCopied": "Der Link wurde in die Zwischenablage kopiert.",
"linkCopyFailed": "Der Link konnte nicht kopiert werden.",
"itemUpdated": "Die Freigabeeinstellungen wurden erfolgreich aktualisiert.",
"itemRemoved": "Die Freigabe wurde erfolgreich entfernt.",
"invalidEmail": "Bitte geben Sie eine gültige E-Mail-Adresse ein.",
"notificationSent": "Die Benachrichtigung wurde erfolgreich versendet.",
"notificationFailed": "Die Benachrichtigung konnte nicht versendet werden.",
"shared_backToFiles": "Zurück zur Dateiansicht",
"shared_pageTitle": "Freigegebene Elemente",
"shared_pageDescription": "Verwalten Sie Ihre freigegebenen Dateien und Ordner.",
"shared_filterType": "Typ:",
"shared_filterAll": "Alle",
"shared_filterFiles": "Dateien",
"shared_filterFolders": "Ordner",
"shared_sortBy": "Sortieren nach:",
"shared_sortByName": "Name",
"shared_sortByDate": "Freigabedatum",
"shared_sortByExpiration": "Ablaufdatum",
"shared_search": "Suchen",
"shared_colName": "Name",
"shared_colType": "Typ",
"shared_colDateShared": "Freigabedatum",
"shared_colExpiration": "Ablaufdatum",
"shared_colPermissions": "Berechtigungen",
"shared_colPassword": "Passwortschutz",
"shared_colActions": "Aktionen",
"shared_emptyStateTitle": "Derzeit sind keine freigegebenen Elemente vorhanden.",
"shared_emptyStateDesc": "Freigegebene Dateien und Ordner werden hier angezeigt.",
"shared_goToFiles": "Zur Dateiansicht wechseln",
"shared_typeFile": "Datei",
"shared_typeFolder": "Ordner",
"shared_noExpiration": "Kein Ablaufdatum festgelegt",
"shared_hasPassword": "Ja",
"shared_noPassword": "Nein",
"shared_editShare": "Freigabe bearbeiten",
"shared_notifyShare": "Person benachrichtigen",
"shared_copyLink": "Link kopieren",
"shared_removeShare": "Freigabe entfernen",
"shared_linkCopied": "Der Link wurde in die Zwischenablage kopiert.",
"shared_linkCopyFailed": "Der Link konnte nicht kopiert werden.",
"shared_itemUpdated": "Die Freigabeeinstellungen wurden erfolgreich aktualisiert.",
"shared_itemRemoved": "Die Freigabe wurde erfolgreich entfernt.",
"shared_invalidEmail": "Bitte geben Sie eine gültige E-Mail-Adresse ein.",
"shared_notificationSent": "Die Benachrichtigung wurde erfolgreich versendet.",
"shared_notificationFailed": "Die Benachrichtigung konnte nicht versendet werden."
},
"files": {
"name": "Name",
"type": "Typ",
"size": "Größe",
"modified": "Geändert am",
"no_files": "In diesem Ordner sind keine Dateien vorhanden.",
"loading": "Dateien werden geladen …",
"view_grid": "Rasteransicht",
"view_list": "Listenansicht",
"file_types": {
"document": "Dokument",
"image": "Bild",
"video": "Video",
"audio": "Audio",
"pdf": "PDF-Dokument",
"text": "Textdokument",
"folder": "Ordner"
}
},
"dialogs": {
"rename_folder": "Ordner umbenennen",
"rename_file": "Datei umbenennen",
"new_name": "Neuer Name",
"new_folder_title": "Neuen Ordner erstellen",
"folder_name": "Ordnername",
"folder_placeholder": "Neuer Ordner",
"rename_title": "Umbenennen",
"move_file": "Datei verschieben",
"move_folder": "Ordner verschieben",
"select_destination": "Zielordner auswählen:",
"root": "Hauptverzeichnis",
"delete_confirmation": "Sind Sie sicher, dass Sie dieses Element löschen möchten",
"and_contents": "und alle enthaltenen Elemente",
"no_undo": "Diese Aktion kann nicht rückgängig gemacht werden.",
"confirm_title": "Aktion bestätigen",
"confirm_delete": "In den Papierkorb verschieben",
"confirm_delete_file": "Möchten Sie die Datei \"{{name}}\" in den Papierkorb verschieben?",
"confirm_delete_folder": "Möchten Sie den Ordner \"{{name}}\" und alle enthaltenen Elemente in den Papierkorb verschieben?",
"confirm_permanent_delete": "Endgültig löschen",
"confirm_permanent_delete_msg": "Möchten Sie dieses Element dauerhaft löschen? Diese Aktion kann nicht rückgängig gemacht werden.",
"confirm_empty_trash": "Papierkorb leeren",
"confirm_delete_share": "Freigabelink löschen",
"confirm_delete_share_msg": "Möchten Sie diesen Freigabelink löschen?",
"share_file": "Datei freigeben",
"existing_shares": "Bestehende Freigaben",
"share_options": "Freigabeoptionen",
"password": "Passwort",
"expiration": "Ablaufdatum",
"permissions": "Berechtigungen",
"generated_link": "Generierter Link",
"notify": "Benachrichtigung senden",
"recipient": "Empfänger",
"message": "Nachricht"
},
"dropzone": {
"drag_files": "Ziehen Sie Dateien hierher oder klicken Sie, um Dateien auszuwählen.",
"drop_files": "Legen Sie Dateien hier ab, um den Upload zu starten."
},
"permissions": {
"read": "Leseberechtigung",
"write": "Schreibberechtigung",
"reshare": "Weiterfreigabeberechtigung"
},
"errors": {
"file_not_found": "Die Datei wurde nicht gefunden.",
"folder_not_found": "Der Ordner wurde nicht gefunden.",
"delete_error": "Beim Löschen ist ein Fehler aufgetreten.",
"upload_error": "Beim Hochladen ist ein Fehler aufgetreten.",
"rename_error": "Beim Umbenennen ist ein Fehler aufgetreten.",
"move_error": "Beim Verschieben ist ein Fehler aufgetreten.",
"empty_name": "Der Name darf nicht leer sein.",
"name_exists": "Eine Datei oder ein Ordner mit diesem Namen existiert bereits.",
"generic_error": "Es ist ein unerwarteter Fehler aufgetreten."
},
"breadcrumb": {
"home": "Startseite"
},
"trash": {
"empty_trash": "Papierkorb leeren",
"empty_state": "Der Papierkorb ist leer.",
"original_location": "Ursprünglicher Speicherort",
"deleted_date": "Löschdatum",
"actions": "Aktionen",
"restore": "Wiederherstellen",
"delete_permanently": "Endgültig löschen",
"empty_confirm": "Sind Sie sicher, dass Sie den Papierkorb leeren möchten? Alle enthaltenen Elemente werden dauerhaft gelöscht."
},
"auth": {
"login_title": "Anmelden",
"username": "Benutzername",
"username_placeholder": "Bitte geben Sie Ihren Benutzernamen ein",
"password": "Passwort",
"password_placeholder": "Bitte geben Sie Ihr Passwort ein",
"login_button": "Anmelden",
"no_account": "Verfügen Sie noch über kein Konto?",
"register": "Registrieren",
"admin_setup": "Erstmalige Nutzung?",
"setup": "Administrator einrichten",
"register_title": "Konto erstellen",
"email": "E-Mail-Adresse",
"email_placeholder": "Bitte geben Sie Ihre E-Mail-Adresse ein",
"confirm_password": "Passwort bestätigen",
"confirm_password_placeholder": "Bitte bestätigen Sie Ihr Passwort",
"register_button": "Konto erstellen",
"have_account": "Verfügen Sie bereits über ein Konto?",
"login": "Anmelden",
"setup_title": "Ersteinrichtung",
"setup_step1": "Administrator",
"setup_step2": "Systemkonfiguration",
"setup_step3": "Abschluss",
"admin_username": "Administrator-Benutzername",
"admin_email": "Administrator-E-Mail-Adresse",
"admin_password": "Administrator-Passwort",
"create_admin": "Administrator erstellen",
"back_to_login": "System bereits eingerichtet?",
"admin_success": "Das Administrator-Konto wurde erfolgreich erstellt. Sie können sich nun anmelden.",
"account_success": "Das Konto wurde erfolgreich erstellt. Sie können sich nun anmelden.",
"passwords_mismatch": "Die eingegebenen Passwörter stimmen nicht überein.",
"admin_create_error": "Beim Erstellen des Administrator-Kontos ist ein Fehler aufgetreten."
},
"storage": {
"title": "Speicher",
"calculating": "Speicherplatz wird berechnet...",
"used": "{{percentage}} % verwendet ({{used}} von {{total}})"
},
"viewer": {
"unsupported_file": "Für diesen Dateityp ist keine Vorschau verfügbar.",
"download_file": "Datei herunterladen",
"zoom_in": "Vergrößern",
"zoom_out": "Verkleinern",
"zoom_reset": "Zoom zurücksetzen"
},
"language_selector": {
"title": "Willkommen bei OxiCloud",
"subtitle": "Bitte wählen Sie Ihre Sprache",
"continue": "Fortfahren",
"languages": {
"en": "Englisch",
"es": "Spanisch",
"zh": "Chinesisch",
"fa": "Persisch"
}
},
"favorites": {
"empty_state": "Derzeit sind keine Favoriten vorhanden.",
"empty_hint": "Markieren Sie Dateien oder Ordner, um sie zu Ihren Favoriten hinzuzufügen.",
"add": "Zu Favoriten hinzufügen",
"remove": "Aus Favoriten entfernen"
},
"recent": {
"title": "Zuletzt verwendete Elemente",
"clear": "Verlauf löschen",
"accessed": "Geöffnet am",
"empty_state": "Keine zuletzt verwendeten Dateien vorhanden.",
"empty_hint": "Geöffnete Dateien werden hier angezeigt."
},
"notifications": {
"file_renamed": "Datei wurde umbenannt.",
"file_renamed_to": "Die Datei wurde in \"{{name}}\" umbenannt.",
"folder_renamed": "Ordner wurde umbenannt.",
"folder_renamed_to": "Der Ordner wurde in \"{{name}}\" umbenannt.",
"file_uploaded": "Die Datei wurde erfolgreich hochgeladen.",
"file_deleted": "Die Datei wurde in den Papierkorb verschoben.",
"folder_deleted": "Der Ordner wurde in den Papierkorb verschoben.",
"item_deleted_permanently": "Das Element wurde dauerhaft gelöscht.",
"trash_emptied": "Der Papierkorb wurde erfolgreich geleert."
}
}
+2 -1
View File
@@ -8,6 +8,7 @@ const ASSETS_TO_CACHE = [
'/locales/en.json',
'/locales/es.json',
'/locales/fa.json',
'/locales/de.json',
'/favicon.ico',
'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css',
'https://cdn.jsdelivr.net/npm/alpinejs@3.12.3/dist/cdn.min.js'
@@ -95,4 +96,4 @@ self.addEventListener('sync', event => {
Promise.resolve() // Placeholder for actual implementation
);
}
});
});