From 5aabd8e2f97118f0b0732bea8c6f1cac13649cc7 Mon Sep 17 00:00:00 2001 From: zjean Date: Thu, 19 Feb 2026 12:22:46 +0000 Subject: [PATCH] feat: add Dutch translations --- static/js/auth.js | 11 +- static/locales/nl.json | 362 +++++++++++++++++++++++++++++++++++++++++ static/sw.js | 1 + 3 files changed, 373 insertions(+), 1 deletion(-) create mode 100644 static/locales/nl.json diff --git a/static/js/auth.js b/static/js/auth.js index 3ffe2ca9..6b8e418f 100644 --- a/static/js/auth.js +++ b/static/js/auth.js @@ -55,7 +55,16 @@ const LANGUAGE_TEXTS = { moreLanguages: 'زبان‌های بیشتر...', modalTitle: 'انتخاب زبان', searchPlaceholder: 'جستجوی زبان...' - } + }, + nl: { + title: 'Welkom bij OxiCloud', + subtitle: 'Selecteer uw taal', + continue: 'Doorgaan', + autodetected: 'We hebben uw taal gedetecteerd', + moreLanguages: 'Meer talen...', + modalTitle: 'Taal selecteren', + searchPlaceholder: 'Zoek taal...' + }, }; // Complete language registry — add new languages here, they'll appear automatically diff --git a/static/locales/nl.json b/static/locales/nl.json new file mode 100644 index 00000000..48bf9562 --- /dev/null +++ b/static/locales/nl.json @@ -0,0 +1,362 @@ +{ + "app": { + "title": "OxiCloud", + "description": "Minimalistisch cloudopslagsysteem" + }, + "nav": { + "files": "Bestanden", + "shared": "Gedeeld", + "recent": "Recente", + "favorites": "Favorieten", + "trash": "Prullenbak" + }, + "actions": { + "search": "Zoek bestanden...", + "new_folder": "Nieuwe map", + "upload": "Uploaden", + "upload_files": "Bestanden uploaden", + "upload_folder": "Map uploaden", + "upload.uploading": "Uploaden...", + "upload.complete": "{count} / {total} geüpload", + "rename": "Hernoemen", + "move": "Verplaatsen naar...", + "move_to": "Verplaatsen naar", + "delete": "Verwijderen", + "download": "Downloaden", + "view": "Bekijken", + "cancel": "Annuleren", + "confirm": "Bevestigen", + "share": "Delen", + "favorite": "Toevoegen aan favorieten", + "unfavorite": "Verwijderen uit favorieten", + "copy": "Kopiëren", + "notify": "Melden", + "send": "Verzenden", + "clear_recent": "Recente wissen", + "logout": "Uitloggen", + "create": "Maken", + "search_btn": "Zoeken", + "close": "Sluiten", + "delete_permanently": "Permanent verwijderen", + "empty_trash": "Prullenbak legen" + }, + "user_menu": { + "appearance": "Weergave", + "about": "Over OxiCloud", + "about_description": "Cloudopslagplatform gebouwd met Rust & Clean Architecture. Snel, veilig en privé.", + "admin_panel": "Beheerpaneel", + "profile": "Mijn profiel", + "role_user": "Gebruiker" + }, + "share": { + "dialogTitle": "Deellink", + "linkLabel": "Deellink:", + "copyLink": "Kopiëren", + "permissions": "Rechten:", + "permissionRead": "Lezen", + "permissionWrite": "Schrijven", + "permissionReshare": "Opnieuw delen", + "password": "Wachtwoordbeveiliging:", + "generatePassword": "Genereren", + "expiration": "Verloopdatum:", + "update": "Delen bijwerken", + "remove": "Delen verwijderen", + "notifyTitle": "Notificatie verzenden", + "notifyEmailLabel": "E-mailadres:", + "notifyMessageLabel": "Bericht (optioneel):", + "notifySend": "Notificatie verzenden", + "shareWithOthers": "Met anderen delen", + "sharePublicly": "Openbaar delen", + "shareSettings": "Deelinstellingen", + "shareCopied": "Link gekopieerd naar klembord", + "shareCreated": "Deellink succesvol aangemaakt", + "shareUpdated": "Deelinstellingen bijgewerkt", + "shareRemoved": "Delen verwijderd" + }, + "share_dialogTitle": "Deellink", + "share_linkLabel": "Deellink:", + "share_copyLink": "Kopiëren", + "share_permissions": "Rechten:", + "share_permissionRead": "Lezen", + "share_permissionWrite": "Schrijven", + "share_permissionReshare": "Opnieuw delen", + "share_password": "Wachtwoordbeveiliging:", + "share_generatePassword": "Genereren", + "share_expiration": "Verloopdatum:", + "share_update": "Share bijwerken", + "share_remove": "Share verwijderen", + "share_notifyTitle": "Notificatie verzenden", + "share_notifyEmailLabel": "E-mailadres:", + "share_notifyMessageLabel": "Bericht (optioneel):", + "share_notifySend": "Notificatie verzenden", + "shared": { + "backToFiles": "Terug naar Bestanden", + "pageTitle": "Gedeelde items", + "pageDescription": "Beheer je gedeelde bestanden en mappen", + "filterType": "Type:", + "filterAll": "Alles", + "filterFiles": "Bestanden", + "filterFolders": "Mappen", + "sortBy": "Sorteren op:", + "sortByName": "Naam", + "sortByDate": "Datum gedeeld", + "sortByExpiration": "Verloop", + "search": "Zoeken", + "colName": "Naam", + "colType": "Type", + "colDateShared": "Gedeeld op", + "colExpiration": "Verloop", + "colPermissions": "Rechten", + "colPassword": "Wachtwoord", + "colActions": "Acties", + "emptyStateTitle": "Nog geen gedeelde items", + "emptyStateDesc": "Als je bestanden of mappen deelt, verschijnen ze hier", + "goToFiles": "Ga naar Bestanden", + "typeFile": "Bestand", + "typeFolder": "Map", + "noExpiration": "Geen verloop", + "hasPassword": "Ja", + "noPassword": "Nee", + "editShare": "Delen bewerken", + "notifyShare": "Iemand informeren", + "copyLink": "Link kopiëren", + "removeShare": "Delen verwijderen", + "linkCopied": "Link gekopieerd naar klembord!", + "linkCopyFailed": "Kopiëren van link mislukt", + "itemUpdated": "Deelinstellingen bijgewerkt", + "itemRemoved": "Delen verwijderd", + "invalidEmail": "Voer een geldig e-mailadres in", + "notificationSent": "Notificatie verzonden", + "notificationFailed": "Notificatie verzenden mislukt", + "shared_backToFiles": "Terug naar Bestanden", + "shared_pageTitle": "Gedeelde items", + "shared_pageDescription": "Beheer je gedeelde bestanden en mappen", + "shared_filterType": "Type:", + "shared_filterAll": "Alles", + "shared_filterFiles": "Bestanden", + "shared_filterFolders": "Mappen", + "shared_sortBy": "Sorteren op:", + "shared_sortByName": "Naam", + "shared_sortByDate": "Datum gedeeld", + "shared_sortByExpiration": "Verloop", + "shared_search": "Zoeken", + "shared_colName": "Naam", + "shared_colType": "Type", + "shared_colDateShared": "Gedeeld op", + "shared_colExpiration": "Verloop", + "shared_colPermissions": "Rechten", + "shared_colPassword": "Wachtwoord", + "shared_colActions": "Acties", + "shared_emptyStateTitle": "Nog geen gedeelde items", + "shared_emptyStateDesc": "Als je bestanden of mappen deelt, verschijnen ze hier", + "shared_goToFiles": "Ga naar Bestanden", + "shared_typeFile": "Bestand", + "shared_typeFolder": "Map", + "shared_noExpiration": "Geen verloop", + "shared_hasPassword": "Ja", + "shared_noPassword": "Nee", + "shared_editShare": "Delen bewerken", + "shared_notifyShare": "Iemand informeren", + "shared_copyLink": "Link kopiëren", + "shared_removeShare": "Delen verwijderen", + "shared_linkCopied": "Link gekopieerd naar klembord!", + "shared_linkCopyFailed": "Kopiëren van link mislukt", + "shared_itemUpdated": "Deelinstellingen bijgewerkt", + "shared_itemRemoved": "Delen verwijderd", + "shared_invalidEmail": "Voer een geldig e-mailadres in", + "shared_notificationSent": "Notificatie verzonden", + "shared_notificationFailed": "Notificatie verzenden mislukt" + }, + "files": { + "name": "Naam", + "type": "Type", + "size": "Grootte", + "modified": "Gewijzigd", + "no_files": "Geen bestanden in deze map", + "loading": "Bestanden laden…", + "view_grid": "Rasterweergave", + "view_list": "Lijstweergave", + "file_types": { + "document": "Document", + "image": "Afbeelding", + "video": "Video", + "audio": "Audio", + "pdf": "PDF", + "text": "Tekst", + "folder": "Map", + "spreadsheet": "Spreadsheet", + "presentation": "Presentatie", + "archive": "Archief", + "installer": "Installatiebestand", + "code": "Code" + } + }, + "dialogs": { + "rename_folder": "Map hernoemen", + "rename_file": "Bestand hernoemen", + "new_name": "Nieuwe naam", + "new_folder_title": "Nieuwe map", + "folder_name": "Mapnaam", + "folder_placeholder": "Mijn map", + "rename_title": "Hernoemen", + "move_file": "Bestand verplaatsen", + "move_folder": "Map verplaatsen", + "select_destination": "Selecteer doelmap:", + "root": "Hoofdmap", + "delete_confirmation": "Weet je zeker dat je wilt verwijderen", + "and_contents": "en alle inhoud", + "no_undo": "Deze actie kan niet ongedaan gemaakt worden", + "confirm_title": "Actie bevestigen", + "confirm_delete": "Verplaatsen naar prullenbak", + "confirm_delete_file": "Weet je zeker dat je het bestand \"{{name}}\" naar de prullenbak wilt verplaatsen?", + "confirm_delete_folder": "Weet je zeker dat je de map \"{{name}}\" en alle inhoud naar de prullenbak wilt verplaatsen?", + "confirm_permanent_delete": "Permanent verwijderen", + "confirm_permanent_delete_msg": "Weet je zeker dat je dit item permanent wilt verwijderen? Deze actie kan niet ongedaan gemaakt worden.", + "confirm_empty_trash": "Prullenbak legen", + "confirm_delete_share": "Deellink verwijderen", + "confirm_delete_share_msg": "Weet je zeker dat je deze deellink wilt verwijderen?", + "share_file": "Bestand delen", + "existing_shares": "Bestaande delingen", + "share_options": "Deelopties", + "password": "Wachtwoord", + "expiration": "Verloop", + "permissions": "Rechten", + "generated_link": "Gegenereerde link", + "notify": "Notificatie verzenden", + "recipient": "Ontvanger", + "message": "Bericht" + }, + "dropzone": { + "drag_files": "Sleep bestanden hierheen of klik om te selecteren", + "drop_files": "Laat bestanden vallen om te uploaden" + }, + "permissions": { + "read": "Lezen", + "write": "Schrijven", + "reshare": "Opnieuw delen" + }, + "errors": { + "file_not_found": "Bestand niet gevonden", + "folder_not_found": "Map niet gevonden", + "delete_error": "Fout bij verwijderen", + "upload_error": "Fout bij uploaden van bestand", + "rename_error": "Fout bij hernoemen", + "move_error": "Fout bij verplaatsen", + "empty_name": "Naam mag niet leeg zijn", + "name_exists": "Een bestand of map met deze naam bestaat al", + "generic_error": "Er is een fout opgetreden" + }, + "breadcrumb": { + "home": "Start" + }, + "trash": { + "empty_trash": "Prullenbak legen", + "empty_state": "Prullenbak is leeg", + "original_location": "Oorspronkelijke locatie", + "deleted_date": "Verwijderdatum", + "actions": "Acties", + "restore": "Herstellen", + "delete_permanently": "Permanent verwijderen", + "empty_confirm": "Weet je zeker dat je de prullenbak wilt legen? Dit verwijdert alle items permanent." + }, + "auth": { + "login_title": "Inloggen", + "username": "Gebruikersnaam", + "username_placeholder": "Voer je gebruikersnaam in", + "password": "Wachtwoord", + "password_placeholder": "Voer je wachtwoord in", + "login_button": "Inloggen", + "no_account": "Nog geen account?", + "register": "Aanmelden", + "admin_setup": "Eerste keer?", + "setup": "Administrator instellen", + "register_title": "Account aanmaken", + "email": "E-mailadres", + "email_placeholder": "Voer je e-mailadres in", + "confirm_password": "Bevestig wachtwoord", + "confirm_password_placeholder": "Bevestig je wachtwoord", + "register_button": "Account aanmaken", + "have_account": "Heb je al een account?", + "login": "Inloggen", + "setup_title": "Eerste setup", + "setup_step1": "Admin", + "setup_step2": "Systeem", + "setup_step3": "Voltooid", + "admin_username": "Admin gebruikersnaam", + "admin_email": "Admin e-mailadres", + "admin_password": "Admin wachtwoord", + "create_admin": "Administrator aanmaken", + "back_to_login": "Al ingesteld?", + "admin_success": "Administrator account succesvol aangemaakt! Je kunt nu inloggen.", + "account_success": "Account succesvol aangemaakt! Je kunt nu inloggen.", + "passwords_mismatch": "Wachtwoorden komen niet overeen", + "admin_create_error": "Fout bij het aanmaken van het administratoraccount", + "or": "of", + "sso_login": "Inloggen met SSO", + "sso_login_provider": "Inloggen met {{provider}}" + }, + "storage": { + "title": "Opslag", + "calculating": "Bezig met berekenen...", + "used": "{percentage}% gebruikt ({used} / {total})" + }, + "viewer": { + "unsupported_file": "Dit bestandstype kan niet bekeken worden.", + "download_file": "Bestand downloaden", + "zoom_in": "Inzoomen", + "zoom_out": "Uitzoomen", + "zoom_reset": "Zoom terugzetten" + }, + "language_selector": { + "title": "Welkom bij OxiCloud", + "subtitle": "Selecteer je taal", + "continue": "Doorgaan", + "languages": { + "en": "English", + "es": "Español", + "zh": "中文", + "fa": "فارسی", + "fr": "Français", + "de": "Deutsch", + "pt": "Português" + } + }, + "favorites": { + "empty_state": "Nog geen favorieten", + "empty_hint": "Markeer bestanden of mappen om ze aan je favorieten toe te voegen", + "add": "Toevoegen aan favorieten", + "remove": "Verwijderen uit favorieten", + "added_title": "Toegevoegd aan favorieten", + "added_msg": "toegevoegd aan favorieten", + "removed_title": "Verwijderd uit favorieten", + "removed_msg": "verwijderd uit favorieten" + }, + "recent": { + "title": "Recent", + "clear": "Recente wissen", + "accessed": "Geopend", + "empty_state": "Geen recente bestanden", + "empty_hint": "Bestanden die je opent verschijnen hier" + }, + "notifications": { + "file_renamed": "Bestand hernoemd", + "file_renamed_to": "Bestand hernoemd naar \"{{name}}\"", + "folder_renamed": "Map hernoemd", + "folder_renamed_to": "Map hernoemd naar \"{{name}}\"", + "file_uploaded": "Bestand geüpload", + "file_deleted": "Bestand verplaatst naar prullenbak", + "folder_deleted": "Map verplaatst naar prullenbak", + "item_deleted_permanently": "Item permanent verwijderd", + "trash_emptied": "Prullenbak succesvol geleegd", + "title": "Notificaties", + "empty": "Geen notificaties" + }, + "batch": { + "one_selected": "1 item geselecteerd", + "n_selected": "{count} items geselecteerd", + "confirm_delete": "Weet je zeker dat je {count} items naar de prullenbak wilt verplaatsen?", + "move_title": "Verplaats {count} item(s)", + "add_favorites": "Toevoegen aan favorieten", + "move_copy": "Verplaatsen of kopiëren" + } +} diff --git a/static/sw.js b/static/sw.js index ceabf57e..52391f5f 100644 --- a/static/sw.js +++ b/static/sw.js @@ -11,6 +11,7 @@ const ASSETS_TO_CACHE = [ '/locales/es.json', '/locales/fa.json', '/locales/de.json', + '/locales/nl.json', '/favicon.ico' ];