From 49c42e80967fe7e6d9937c5ca327b3f910b92b56 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 13 Apr 2025 04:17:32 -0400 Subject: [PATCH] RecoveryCodeModal i18n --- js/authModals.js | 30 +++ js/i18n.js | 548 ++++++++++++++++------------------------------- 2 files changed, 210 insertions(+), 368 deletions(-) diff --git a/js/authModals.js b/js/authModals.js index cc10470..b651a78 100644 --- a/js/authModals.js +++ b/js/authModals.js @@ -267,6 +267,36 @@ export function openUserPanel() { userPanelModal.style.display = "flex"; } +function showRecoveryCodeModal(recoveryCode) { + const recoveryModal = document.createElement("div"); + recoveryModal.id = "recoveryModal"; + recoveryModal.style.cssText = ` + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background-color: rgba(0,0,0,0.3); + display: flex; + justify-content: center; + align-items: center; + z-index: 3200; + `; + recoveryModal.innerHTML = ` +
+

${t("your_recovery_code")}

+

${t("please_save_recovery_code")}

+ ${recoveryCode} + +
+ `; + document.body.appendChild(recoveryModal); + + document.getElementById("closeRecoveryModal").addEventListener("click", () => { + recoveryModal.remove(); + }); +} + export function openTOTPModal() { let totpModal = document.getElementById("totpModal"); const isDarkMode = document.body.classList.contains("dark-mode"); diff --git a/js/i18n.js b/js/i18n.js index cefbc1a..b5f414a 100644 --- a/js/i18n.js +++ b/js/i18n.js @@ -214,295 +214,20 @@ const translations = { "read_only": "Read Only", "disable_upload": "Disable Upload", "error_loading_users": "Error loading users", - "save_permissions": "Save Permissions" + "save_permissions": "Save Permissions", + "your_recovery_code": "Your Recovery Code", + "please_save_recovery_code": "Please save this code securely. It will not be shown again and can only be used once.", + "ok": "OK" }, - es: { /* Spanish translations */ + es: { "please_log_in_to_continue": "Por favor, inicie sesión para continuar.", - "no_files_selected": "No se seleccionaron archivos.", - "confirm_delete_files": "¿Está seguro de que desea eliminar {count} archivo(s) seleccionado(s)?", - "element_not_found": "Elemento con id \"{id}\" no encontrado.", - "search_placeholder": "Buscar archivos o etiqueta...", - "file_name": "Nombre del archivo", - "date_modified": "Fecha de modificación", - "upload_date": "Fecha de carga", - "file_size": "Tamaño del archivo", - "uploader": "Cargado por", - "enter_totp_code": "Ingrese el código TOTP", - "use_recovery_code_instead": "Usar código de recuperación en su lugar", - "enter_recovery_code": "Ingrese el código de recuperación", - "editing": "Editando", - "decrease_font": "A-", - "increase_font": "A+", - "save": "Guardar", - "close": "Cerrar", - "no_files_found": "No se encontraron archivos.", - "switch_to_table_view": "Cambiar a vista de tabla", - "switch_to_gallery_view": "Cambiar a vista de galería", - "share_file": "Compartir archivo", - "set_expiration": "Establecer vencimiento:", - "password_optional": "Contraseña (opcional):", - "generate_share_link": "Generar enlace para compartir", - "shareable_link": "Enlace para compartir:", - "copy_link": "Copiar enlace", - "tag_file": "Etiquetar archivo", - "tag_name": "Nombre de la etiqueta:", - "tag_color": "Color de la etiqueta:", - "save_tag": "Guardar etiqueta", - "files_in": "Archivos en", - "light_mode": "Modo claro", - "dark_mode": "Modo oscuro", - "upload_instruction": "Suelte archivos/carpetas o haga clic en 'Elegir archivos'", - "no_files_selected_default": "No se seleccionaron archivos", - "choose_files": "Elegir archivos", - "delete_selected": "Eliminar seleccionados", - "copy_selected": "Copiar seleccionados", - "move_selected": "Mover seleccionados", - "tag_selected": "Etiquetar seleccionados", - "download_zip": "Descargar Zip", - "extract_zip": "Extraer Zip", - "preview": "Vista previa", - "edit": "Editar", - "rename": "Renombrar", - "trash_empty": "La papelera está vacía.", - "no_trash_selected": "No se seleccionaron elementos de la papelera para restaurar.", - - // Additional keys for HTML translations: - "title": "FileRise", - "header_title": "FileRise", - "logout": "Cerrar sesión", - "change_password": "Cambiar contraseña", - "restore_text": "Restaurar o", - "delete_text": "Eliminar elementos de la papelera", - "restore_selected": "Restaurar seleccionados", - "restore_all": "Restaurar todo", - "delete_selected_trash": "Eliminar seleccionados", - "delete_all": "Eliminar todo", - "upload_header": "Cargar archivos/carpetas", - - // Folder Management keys: - "folder_navigation": "Navegación y gestión de carpetas", - "create_folder": "Crear carpeta", - "create_folder_title": "Crear carpeta", - "enter_folder_name": "Ingrese el nombre de la carpeta", - "cancel": "Cancelar", - "create": "Crear", - "rename_folder": "Renombrar carpeta", - "rename_folder_title": "Renombrar carpeta", - "rename_folder_placeholder": "Ingrese el nuevo nombre de la carpeta", - "delete_folder": "Eliminar carpeta", - "delete_folder_title": "Eliminar carpeta", - "delete_folder_message": "¿Está seguro de que desea eliminar esta carpeta?", - "folder_help": "Ayuda de carpetas", - "folder_help_item_1": "Haga clic en una carpeta en el árbol para ver sus archivos.", - "folder_help_item_2": "Utilice [-] para colapsar y [+] para expandir carpetas.", - "folder_help_item_3": "Seleccione una carpeta y haga clic en \"Crear carpeta\" para agregar una subcarpeta.", - "folder_help_item_4": "Para renombrar o eliminar una carpeta, selecciónela y luego haga clic en el botón correspondiente.", - - // File List keys: - "file_list_title": "Archivos en (Raíz)", - "delete_files": "Eliminar archivos", - "delete_selected_files_title": "Eliminar archivos seleccionados", - "delete_files_message": "¿Está seguro de que desea eliminar los archivos seleccionados?", - "copy_files": "Copiar archivos", - "copy_files_title": "Copiar archivos seleccionados", - "copy_files_message": "Seleccione una carpeta destino para copiar los archivos seleccionados:", - "move_files": "Mover archivos", - "move_files_title": "Mover archivos seleccionados", - "move_files_message": "Seleccione una carpeta destino para mover los archivos seleccionados:", - "move": "Mover", - "extract_zip_button": "Extraer Zip", - "download_zip_title": "Descargar archivos seleccionados en Zip", - "download_zip_prompt": "Ingrese un nombre para el archivo Zip:", - "zip_placeholder": "archivos.zip", - - // Login Form keys: - "login": "Iniciar sesión", - "remember_me": "Recuérdame", - "login_oidc": "Iniciar sesión con OIDC", - "basic_http_login": "Usar autenticación HTTP básica", - - // Change Password keys: - "change_password_title": "Cambiar contraseña", - "old_password": "Contraseña antigua", - "new_password": "Nueva contraseña", - "confirm_new_password": "Confirmar nueva contraseña", - - // Add User keys: - "create_new_user_title": "Crear nuevo usuario", - "username": "Usuario:", - "password": "Contraseña:", - "grant_admin": "Otorgar acceso de administrador", - "save_user": "Guardar usuario", - - // Remove User keys: - "remove_user_title": "Eliminar usuario", - "select_user_remove": "Seleccione un usuario para eliminar:", - "delete_user": "Eliminar usuario", - - // Rename File keys: - "rename_file_title": "Renombrar archivo", - "rename_file_placeholder": "Ingrese el nuevo nombre del archivo", - - // Custom Confirm Modal keys: - "yes": "Sí", - "no": "No", - "delete": "Eliminar", - "download": "Descargar", - "upload": "Cargar", - "copy": "Copiar", - "extract": "Extraer", - - // Dark Mode Toggle - "dark_mode_toggle": "Modo oscuro" - }, - fr: { /* French translations */ - "please_log_in_to_continue": "Veuillez vous connecter pour continuer.", - "no_files_selected": "Aucun fichier sélectionné.", - "confirm_delete_files": "Êtes-vous sûr de vouloir supprimer {count} fichier(s) sélectionné(s) ?", - "element_not_found": "Élément avec l'id \"{id}\" non trouvé.", - "search_placeholder": "Rechercher des fichiers ou un tag...", - "file_name": "Nom du fichier", - "date_modified": "Date de modification", - "upload_date": "Date de téléchargement", - "file_size": "Taille du fichier", - "uploader": "Téléversé par", - "enter_totp_code": "Entrez le code TOTP", - "use_recovery_code_instead": "Utilisez le code de récupération à la place", - "enter_recovery_code": "Entrez le code de récupération", - "editing": "Modification", - "decrease_font": "A-", - "increase_font": "A+", - "save": "Enregistrer", - "close": "Fermer", - "no_files_found": "Aucun fichier trouvé.", - "switch_to_table_view": "Passer à la vue tableau", - "switch_to_gallery_view": "Passer à la vue galerie", - "share_file": "Partager le fichier", - "set_expiration": "Définir l'expiration :", - "password_optional": "Mot de passe (facultatif) :", - "generate_share_link": "Générer un lien de partage", - "shareable_link": "Lien partageable :", - "copy_link": "Copier le lien", - "tag_file": "Marquer le fichier", - "tag_name": "Nom du tag :", - "tag_color": "Couleur du tag :", - "save_tag": "Enregistrer le tag", - "files_in": "Fichiers dans", - "light_mode": "Mode clair", - "dark_mode": "Mode sombre", - "upload_instruction": "Déposez vos fichiers/dossiers ici ou cliquez sur 'Choisir des fichiers'", - "no_files_selected_default": "Aucun fichier sélectionné", - "choose_files": "Choisir des fichiers", - "delete_selected": "Supprimer la sélection", - "copy_selected": "Copier la sélection", - "move_selected": "Déplacer la sélection", - "tag_selected": "Marquer la sélection", - "download_zip": "Télécharger en Zip", - "extract_zip": "Extraire le Zip", - "preview": "Aperçu", - "edit": "Modifier", - "rename": "Renommer", - "trash_empty": "La corbeille est vide.", - "no_trash_selected": "Aucun élément de la corbeille sélectionné pour restauration.", - - // Additional keys for HTML translations: - "title": "FileRise", - "header_title": "FileRise", - "logout": "Se déconnecter", - "change_password": "Changer le mot de passe", - "restore_text": "Restaurer ou", - "delete_text": "Supprimer les éléments de la corbeille", - "restore_selected": "Restaurer la sélection", - "restore_all": "Restaurer tout", - "delete_selected_trash": "Supprimer la sélection", - "delete_all": "Supprimer tout", - "upload_header": "Téléverser des fichiers/dossiers", - - // Folder Management keys: - "folder_navigation": "Navigation et gestion des dossiers", - "create_folder": "Créer un dossier", - "create_folder_title": "Créer un dossier", - "enter_folder_name": "Entrez le nom du dossier", - "cancel": "Annuler", - "create": "Créer", - "rename_folder": "Renommer le dossier", - "rename_folder_title": "Renommer le dossier", - "rename_folder_placeholder": "Entrez le nouveau nom du dossier", - "delete_folder": "Supprimer le dossier", - "delete_folder_title": "Supprimer le dossier", - "delete_folder_message": "Êtes-vous sûr de vouloir supprimer ce dossier ?", - "folder_help": "Aide des dossiers", - "folder_help_item_1": "Cliquez sur un dossier dans l'arborescence pour voir ses fichiers.", - "folder_help_item_2": "Utilisez [-] pour réduire et [+] pour développer les dossiers.", - "folder_help_item_3": "Sélectionnez un dossier et cliquez sur \"Créer un dossier\" pour ajouter un sous-dossier.", - "folder_help_item_4": "Pour renommer ou supprimer un dossier, sélectionnez-le puis cliquez sur le bouton approprié.", - - // File List keys: - "file_list_title": "Fichiers dans (Racine)", - "delete_files": "Supprimer les fichiers", - "delete_selected_files_title": "Supprimer les fichiers sélectionnés", - "delete_files_message": "Êtes-vous sûr de vouloir supprimer les fichiers sélectionnés ?", - "copy_files": "Copier les fichiers", - "copy_files_title": "Copier les fichiers sélectionnés", - "copy_files_message": "Sélectionnez un dossier de destination pour copier les fichiers sélectionnés :", - "move_files": "Déplacer les fichiers", - "move_files_title": "Déplacer les fichiers sélectionnés", - "move_files_message": "Sélectionnez un dossier de destination pour déplacer les fichiers sélectionnés :", - "move": "Déplacer", - "extract_zip_button": "Extraire le Zip", - "download_zip_title": "Télécharger les fichiers sélectionnés en Zip", - "download_zip_prompt": "Entrez un nom pour le fichier Zip :", - "zip_placeholder": "fichiers.zip", - - // Login Form keys: - "login": "Connexion", - "remember_me": "Se souvenir de moi", - "login_oidc": "Connexion avec OIDC", - "basic_http_login": "Utiliser l'authentification HTTP basique", - - // Change Password keys: - "change_password_title": "Changer le mot de passe", - "old_password": "Ancien mot de passe", - "new_password": "Nouveau mot de passe", - "confirm_new_password": "Confirmer le nouveau mot de passe", - - // Add User keys: - "create_new_user_title": "Créer un nouvel utilisateur", - "username": "Nom d'utilisateur :", - "password": "Mot de passe :", - "grant_admin": "Accorder les droits d'administrateur", - "save_user": "Enregistrer l'utilisateur", - - // Remove User keys: - "remove_user_title": "Supprimer l'utilisateur", - "select_user_remove": "Sélectionnez un utilisateur à supprimer :", - "delete_user": "Supprimer l'utilisateur", - - // Rename File keys: - "rename_file_title": "Renommer le fichier", - "rename_file_placeholder": "Entrez le nouveau nom du fichier", - - // Custom Confirm Modal keys: - "yes": "Oui", - "no": "Non", - "delete": "Supprimer", - "download": "Télécharger", - "upload": "Téléverser", - "copy": "Copier", - "extract": "Extraire", - - // Dark Mode Toggle - "dark_mode_toggle": "Mode sombre" - }, - es: { /* Spanish translations */ - "please_log_in_to_continue": "Por favor, inicie sesión para continuar.", - "no_files_selected": "No se seleccionaron archivos.", + "no_files_selected": "No se han seleccionado archivos.", "confirm_delete_files": "¿Está seguro de que desea eliminar {count} archivo(s) seleccionado(s)?", "element_not_found": "Elemento con id \"{id}\" no encontrado.", "search_placeholder": "Buscar archivos, etiquetas y cargador...", "search_placeholder_advanced": "Búsqueda avanzada: archivos, etiquetas, cargador y contenido...", - "basic_search_tooltip": "Búsqueda básica: por nombre de archivo, etiquetas y cargador.", - "advanced_search_tooltip": "Búsqueda avanzada: incluye el contenido del archivo, además del nombre, etiquetas y cargador.", + "basic_search_tooltip": "Búsqueda básica: Buscar por nombre de archivo, etiquetas y cargador.", + "advanced_search_tooltip": "Búsqueda avanzada: Incluye el contenido del archivo, además del nombre, etiquetas y cargador.", "file_name": "Nombre del archivo", "date_modified": "Fecha de modificación", "upload_date": "Fecha de carga", @@ -532,7 +257,7 @@ const translations = { "light_mode": "Modo claro", "dark_mode": "Modo oscuro", "upload_instruction": "Suelte archivos/carpetas aquí o haga clic en 'Elegir archivos'", - "no_files_selected_default": "No se seleccionaron archivos", + "no_files_selected_default": "No se han seleccionado archivos", "choose_files": "Elegir archivos", "delete_selected": "Eliminar seleccionados", "copy_selected": "Copiar seleccionados", @@ -544,7 +269,9 @@ const translations = { "edit": "Editar", "rename": "Renombrar", "trash_empty": "La papelera está vacía.", - "no_trash_selected": "No se seleccionaron elementos para restaurar.", + "no_trash_selected": "No se han seleccionado elementos de la papelera para restaurar.", + + // Additional keys for HTML translations: "title": "FileRise", "header_title": "FileRise", "logout": "Cerrar sesión", @@ -556,6 +283,8 @@ const translations = { "delete_selected_trash": "Eliminar seleccionados", "delete_all": "Eliminar todo", "upload_header": "Cargar archivos/carpetas", + + // Folder Management keys: "folder_navigation": "Navegación y gestión de carpetas", "create_folder": "Crear carpeta", "create_folder_title": "Crear carpeta", @@ -569,10 +298,12 @@ const translations = { "delete_folder_title": "Eliminar carpeta", "delete_folder_message": "¿Está seguro de que desea eliminar esta carpeta?", "folder_help": "Ayuda de carpetas", - "folder_help_item_1": "Haga clic en una carpeta para ver sus archivos.", - "folder_help_item_2": "Utilice [-] para colapsar y [+] para expandir las carpetas.", - "folder_help_item_3": "Seleccione una carpeta y haga clic en 'Crear carpeta' para agregar una subcarpeta.", - "folder_help_item_4": "Para renombrar o eliminar una carpeta, selecciónela y haga clic en el botón correspondiente.", + "folder_help_item_1": "Haga clic en una carpeta en el árbol para ver sus archivos.", + "folder_help_item_2": "Utilice [-] para contraer y [+] para expandir las carpetas.", + "folder_help_item_3": "Seleccione una carpeta y haga clic en \"Crear carpeta\" para agregar una subcarpeta.", + "folder_help_item_4": "Para renombrar o eliminar una carpeta, selecciónela y luego haga clic en el botón correspondiente.", + + // File List keys: "file_list_title": "Archivos en (Raíz)", "files_in": "Archivos en", "delete_files": "Eliminar archivos", @@ -586,31 +317,48 @@ const translations = { "move_files_message": "Seleccione una carpeta destino para mover los archivos seleccionados:", "move": "Mover", "extract_zip_button": "Extraer Zip", - "download_zip_title": "Descargar archivos seleccionados en Zip", + "download_zip_title": "Descargar archivos seleccionados en un Zip", "download_zip_prompt": "Ingrese un nombre para el archivo Zip:", - "zip_placeholder": "archivos.zip", + "zip_placeholder": "files.zip", + + // Login Form keys: "login": "Iniciar sesión", "remember_me": "Recuérdame", "login_oidc": "Iniciar sesión con OIDC", "basic_http_login": "Usar autenticación HTTP básica", + + // Change Password keys: "change_password_title": "Cambiar contraseña", "old_password": "Contraseña antigua", "new_password": "Nueva contraseña", "confirm_new_password": "Confirmar nueva contraseña", + + // Add User keys: "create_new_user_title": "Crear nuevo usuario", "username": "Usuario:", "password": "Contraseña:", "grant_admin": "Otorgar acceso de administrador", "save_user": "Guardar usuario", + + // Remove User keys: "remove_user_title": "Eliminar usuario", "select_user_remove": "Seleccione un usuario para eliminar:", "delete_user": "Eliminar usuario", + + // Rename File keys: "rename_file_title": "Renombrar archivo", "rename_file_placeholder": "Ingrese el nuevo nombre del archivo", + + // Folder Share "share_folder": "Compartir carpeta", "allow_uploads": "Permitir cargas", - "share_link_generated": "Enlace de compartir generado", - "error_generating_share_link": "Error al generar el enlace de compartir", + "share_link_generated": "Enlace para compartir generado", + "error_generating_share_link": "Error al generar el enlace para compartir", + + // Folder + "folder_share": "Compartir carpeta", + + // Custom Confirm Modal keys: "yes": "Sí", "no": "No", "delete": "Eliminar", @@ -627,13 +375,16 @@ const translations = { "weeks": "semanas", "months": "meses", "seconds": "segundos", + + // Dark Mode Toggle "dark_mode_toggle": "Modo oscuro", "light_mode_toggle": "Modo claro", - // Nuevas claves para paneles y TOTP: + + // NEW KEYS ADDED FOR ADMIN, USER PANELS, AND TOTP MODALS: "admin_panel": "Panel de Administración", "user_panel": "Panel de Usuario", "totp_settings": "Configuración TOTP", - "enable_totp": "Habilitar TOTP", + "enable_totp": "Activar TOTP", "language": "Idioma", "select_language": "Seleccionar idioma", "english": "Inglés", @@ -652,13 +403,13 @@ const translations = { "enter_totp_confirmation": "Ingrese el código de 6 dígitos de su aplicación para confirmar la configuración:", "confirm": "Confirmar", "please_enter_valid_code": "Por favor, ingrese un código válido de 6 dígitos.", - "totp_enabled_successfully": "TOTP habilitado exitosamente.", + "totp_enabled_successfully": "TOTP activado con éxito.", "error_generating_recovery_code": "Error al generar el código de recuperación", "error_loading_qr_code": "Error al cargar el código QR.", - "error_disabling_totp_setting": "Error al deshabilitar la configuración TOTP", + "error_disabling_totp_setting": "Error al desactivar la configuración TOTP", "user_management": "Gestión de Usuarios", - "add_user": "Añadir Usuario", - "remove_user": "Eliminar Usuario", + "add_user": "Agregar usuario", + "remove_user": "Eliminar usuario", "user_permissions": "Permisos de Usuario", "oidc_configuration": "Configuración OIDC", "oidc_provider_url": "URL del Proveedor OIDC", @@ -667,39 +418,42 @@ const translations = { "oidc_redirect_uri": "URI de Redirección OIDC", "global_totp_settings": "Configuración Global TOTP", "global_otpauth_url": "URL Global OTPAuth", - "login_options": "Opciones de Inicio de Sesión", - "disable_login_form": "Deshabilitar el formulario de inicio de sesión", - "disable_basic_http_auth": "Deshabilitar la autenticación HTTP básica", - "disable_oidc_login": "Deshabilitar el inicio de sesión OIDC", - "save_settings": "Guardar Configuración", + "login_options": "Opciones de inicio de sesión", + "disable_login_form": "Desactivar formulario de inicio de sesión", + "disable_basic_http_auth": "Desactivar autenticación HTTP básica", + "disable_oidc_login": "Desactivar inicio de sesión OIDC", + "save_settings": "Guardar configuración", "at_least_one_login_method": "Al menos un método de inicio de sesión debe permanecer habilitado.", - "settings_updated_successfully": "La configuración se actualizó con éxito.", + "settings_updated_successfully": "Configuración actualizada con éxito.", "error_updating_settings": "Error al actualizar la configuración", - "user_permissions_updated_successfully": "Los permisos de usuario se actualizaron con éxito.", + "user_permissions_updated_successfully": "Permisos de usuario actualizados con éxito.", "error_updating_permissions": "Error al actualizar los permisos", "no_users_found": "No se encontraron usuarios.", "user_folder_only": "Solo carpeta de usuario", "read_only": "Solo lectura", - "disable_upload": "Deshabilitar carga", - "error_loading_users": "Error al cargar los usuarios", - "save_permissions": "Guardar Permisos" + "disable_upload": "Desactivar carga", + "error_loading_users": "Error al cargar usuarios", + "save_permissions": "Guardar permisos", + "your_recovery_code": "Su código de recuperación", + "please_save_recovery_code": "Por favor, guarde este código de forma segura. No se mostrará de nuevo y solo podrá usarse una vez.", + "ok": "OK" }, - fr: { /* French translations */ + fr: { "please_log_in_to_continue": "Veuillez vous connecter pour continuer.", "no_files_selected": "Aucun fichier sélectionné.", "confirm_delete_files": "Êtes-vous sûr de vouloir supprimer {count} fichier(s) sélectionné(s) ?", "element_not_found": "Élément avec l'id \"{id}\" non trouvé.", "search_placeholder": "Rechercher des fichiers, des balises et l'uploader...", "search_placeholder_advanced": "Recherche avancée : fichiers, balises, uploader et contenu...", - "basic_search_tooltip": "Recherche basique : par nom de fichier, balises et uploader.", + "basic_search_tooltip": "Recherche basique : rechercher par nom de fichier, balises et uploader.", "advanced_search_tooltip": "Recherche avancée : inclut le contenu du fichier, en plus du nom, des balises et de l'uploader.", "file_name": "Nom du fichier", "date_modified": "Date de modification", "upload_date": "Date de téléchargement", "file_size": "Taille du fichier", - "uploader": "Téléversé par", + "uploader": "Uploader", "enter_totp_code": "Entrez le code TOTP", - "use_recovery_code_instead": "Utiliser le code de récupération à la place", + "use_recovery_code_instead": "Utilisez le code de récupération à la place", "enter_recovery_code": "Entrez le code de récupération", "editing": "Modification", "decrease_font": "A-", @@ -707,37 +461,39 @@ const translations = { "save": "Enregistrer", "close": "Fermer", "no_files_found": "Aucun fichier trouvé.", - "switch_to_table_view": "Passer à la vue tableau", - "switch_to_gallery_view": "Passer à la vue galerie", + "switch_to_table_view": "Passer en vue tableau", + "switch_to_gallery_view": "Passer en vue galerie", "share_file": "Partager le fichier", - "set_expiration": "Définir l'expiration :", - "password_optional": "Mot de passe (facultatif) :", - "generate_share_link": "Générer un lien de partage", - "shareable_link": "Lien partageable :", + "set_expiration": "Définir l'expiration :", + "password_optional": "Mot de passe (facultatif) :", + "generate_share_link": "Générer le lien de partage", + "shareable_link": "Lien partageable :", "copy_link": "Copier le lien", - "tag_file": "Taguer le fichier", - "tag_name": "Nom du tag :", - "tag_color": "Couleur du tag :", - "save_tag": "Enregistrer le tag", + "tag_file": "Étiqueter le fichier", + "tag_name": "Nom de l'étiquette :", + "tag_color": "Couleur de l'étiquette :", + "save_tag": "Enregistrer l'étiquette", "light_mode": "Mode clair", "dark_mode": "Mode sombre", - "upload_instruction": "Déposez vos fichiers/dossiers ici ou cliquez sur 'Choisir des fichiers'", + "upload_instruction": "Déposez des fichiers/dossiers ici ou cliquez sur 'Choisir des fichiers'", "no_files_selected_default": "Aucun fichier sélectionné", "choose_files": "Choisir des fichiers", "delete_selected": "Supprimer la sélection", "copy_selected": "Copier la sélection", "move_selected": "Déplacer la sélection", - "tag_selected": "Taguer la sélection", - "download_zip": "Télécharger en Zip", + "tag_selected": "Étiqueter la sélection", + "download_zip": "Télécharger le Zip", "extract_zip": "Extraire le Zip", "preview": "Aperçu", "edit": "Modifier", "rename": "Renommer", "trash_empty": "La corbeille est vide.", "no_trash_selected": "Aucun élément de la corbeille sélectionné pour restauration.", + + // Additional keys for HTML translations: "title": "FileRise", "header_title": "FileRise", - "logout": "Se déconnecter", + "logout": "Déconnexion", "change_password": "Changer le mot de passe", "restore_text": "Restaurer ou", "delete_text": "Supprimer les éléments de la corbeille", @@ -746,6 +502,8 @@ const translations = { "delete_selected_trash": "Supprimer la sélection", "delete_all": "Supprimer tout", "upload_header": "Téléverser des fichiers/dossiers", + + // Folder Management keys: "folder_navigation": "Navigation et gestion des dossiers", "create_folder": "Créer un dossier", "create_folder_title": "Créer un dossier", @@ -759,48 +517,67 @@ const translations = { "delete_folder_title": "Supprimer le dossier", "delete_folder_message": "Êtes-vous sûr de vouloir supprimer ce dossier ?", "folder_help": "Aide des dossiers", - "folder_help_item_1": "Cliquez sur un dossier pour voir ses fichiers.", + "folder_help_item_1": "Cliquez sur un dossier dans l'arborescence pour voir ses fichiers.", "folder_help_item_2": "Utilisez [-] pour réduire et [+] pour développer les dossiers.", - "folder_help_item_3": "Cliquez sur 'Créer un dossier' pour ajouter un sous-dossier.", - "folder_help_item_4": "Pour renommer ou supprimer un dossier, sélectionnez-le et cliquez sur le bouton approprié.", + "folder_help_item_3": "Sélectionnez un dossier et cliquez sur \"Créer un dossier\" pour ajouter un sous-dossier.", + "folder_help_item_4": "Pour renommer ou supprimer un dossier, sélectionnez-le puis cliquez sur le bouton approprié.", + + // File List keys: "file_list_title": "Fichiers dans (Racine)", "files_in": "Fichiers dans", "delete_files": "Supprimer les fichiers", "delete_selected_files_title": "Supprimer les fichiers sélectionnés", - "delete_files_message": "Êtes-vous sûr de vouloir supprimer les fichiers sélectionnés ?", + "delete_files_message": "Êtes-vous sûr de vouloir supprimer les fichiers sélectionnés ?", "copy_files": "Copier les fichiers", "copy_files_title": "Copier les fichiers sélectionnés", - "copy_files_message": "Sélectionnez un dossier de destination pour copier les fichiers sélectionnés :", + "copy_files_message": "Sélectionnez un dossier de destination pour copier les fichiers sélectionnés :", "move_files": "Déplacer les fichiers", "move_files_title": "Déplacer les fichiers sélectionnés", - "move_files_message": "Sélectionnez un dossier de destination pour déplacer les fichiers sélectionnés :", + "move_files_message": "Sélectionnez un dossier de destination pour déplacer les fichiers sélectionnés :", "move": "Déplacer", "extract_zip_button": "Extraire le Zip", "download_zip_title": "Télécharger les fichiers sélectionnés en Zip", - "download_zip_prompt": "Entrez un nom pour le fichier Zip :", - "zip_placeholder": "fichiers.zip", + "download_zip_prompt": "Entrez un nom pour le fichier Zip :", + "zip_placeholder": "files.zip", + + // Login Form keys: "login": "Connexion", "remember_me": "Se souvenir de moi", - "login_oidc": "Connexion avec OIDC", + "login_oidc": "Se connecter avec OIDC", "basic_http_login": "Utiliser l'authentification HTTP basique", + + // Change Password keys: "change_password_title": "Changer le mot de passe", "old_password": "Ancien mot de passe", "new_password": "Nouveau mot de passe", "confirm_new_password": "Confirmer le nouveau mot de passe", + + // Add User keys: "create_new_user_title": "Créer un nouvel utilisateur", - "username": "Nom d'utilisateur :", - "password": "Mot de passe :", - "grant_admin": "Donner les droits d'administrateur", + "username": "Nom d'utilisateur :", + "password": "Mot de passe :", + "grant_admin": "Accorder l'accès administrateur", "save_user": "Enregistrer l'utilisateur", - "remove_user_title": "Supprimer l'utilisateur", - "select_user_remove": "Sélectionnez un utilisateur à supprimer :", + + // Remove User keys: + "remove_user_title": "Supprimer un utilisateur", + "select_user_remove": "Sélectionnez un utilisateur à supprimer :", "delete_user": "Supprimer l'utilisateur", + + // Rename File keys: "rename_file_title": "Renommer le fichier", "rename_file_placeholder": "Entrez le nouveau nom du fichier", + + // Folder Share "share_folder": "Partager le dossier", - "allow_uploads": "Autoriser le téléchargement", + "allow_uploads": "Autoriser les téléchargements", "share_link_generated": "Lien de partage généré", "error_generating_share_link": "Erreur lors de la génération du lien de partage", + + // Folder + "folder_share": "Partager le dossier", + + // Custom Confirm Modal keys: "yes": "Oui", "no": "Non", "delete": "Supprimer", @@ -808,7 +585,7 @@ const translations = { "upload": "Téléverser", "copy": "Copier", "extract": "Extraire", - "user": "Utilisateur :", + "user": "Utilisateur :", "unknown_error": "Erreur inconnue", "link_copied": "Lien copié dans le presse-papiers", "minutes": "minutes", @@ -817,9 +594,12 @@ const translations = { "weeks": "semaines", "months": "mois", "seconds": "secondes", + + // Dark Mode Toggle "dark_mode_toggle": "Mode sombre", "light_mode_toggle": "Mode clair", - // Nouvelles clés pour les panneaux et TOTP : + + // NEW KEYS ADDED FOR ADMIN, USER PANELS, AND TOTP MODALS: "admin_panel": "Panneau d'administration", "user_panel": "Panneau utilisateur", "totp_settings": "Paramètres TOTP", @@ -839,7 +619,7 @@ const translations = { "error_verifying_totp_code": "Erreur lors de la vérification du code TOTP", "totp_setup": "Configuration TOTP", "scan_qr_code": "Scannez ce QR code avec votre application d'authentification.", - "enter_totp_confirmation": "Entrez le code à 6 chiffres de votre application pour confirmer la configuration :", + "enter_totp_confirmation": "Entrez le code à 6 chiffres de votre application pour confirmer la configuration :", "confirm": "Confirmer", "please_enter_valid_code": "Veuillez entrer un code valide à 6 chiffres.", "totp_enabled_successfully": "TOTP activé avec succès.", @@ -863,31 +643,34 @@ const translations = { "disable_oidc_login": "Désactiver la connexion OIDC", "save_settings": "Enregistrer les paramètres", "at_least_one_login_method": "Au moins une méthode de connexion doit rester activée.", - "settings_updated_successfully": "Les paramètres ont été mis à jour avec succès.", + "settings_updated_successfully": "Paramètres mis à jour avec succès.", "error_updating_settings": "Erreur lors de la mise à jour des paramètres", - "user_permissions_updated_successfully": "Les permissions des utilisateurs ont été mises à jour avec succès.", + "user_permissions_updated_successfully": "Permissions des utilisateurs mises à jour avec succès.", "error_updating_permissions": "Erreur lors de la mise à jour des permissions", "no_users_found": "Aucun utilisateur trouvé.", - "user_folder_only": "Dossier utilisateur uniquement", + "user_folder_only": "Uniquement le dossier utilisateur", "read_only": "Lecture seule", "disable_upload": "Désactiver le téléchargement", "error_loading_users": "Erreur lors du chargement des utilisateurs", - "save_permissions": "Enregistrer les permissions" + "save_permissions": "Enregistrer les permissions", + "your_recovery_code": "Votre code de récupération", + "please_save_recovery_code": "Veuillez sauvegarder ce code en toute sécurité. Il ne sera plus affiché et ne pourra être utilisé qu'une seule fois.", + "ok": "OK" }, - de: { /* German translations */ + de: { "please_log_in_to_continue": "Bitte melden Sie sich an, um fortzufahren.", "no_files_selected": "Keine Dateien ausgewählt.", "confirm_delete_files": "Sind Sie sicher, dass Sie {count} ausgewählte Datei(en) löschen möchten?", "element_not_found": "Element mit der ID \"{id}\" wurde nicht gefunden.", - "search_placeholder": "Suche nach Dateien, Tags und Uploader...", - "search_placeholder_advanced": "Erweiterte Suche: Dateien, Tags, Uploader und Inhalt...", - "basic_search_tooltip": "Einfache Suche: nach Dateiname, Tags und Uploader.", - "advanced_search_tooltip": "Erweiterte Suche: Beinhaltet Dateiinhalte zusätzlich zu Dateiname, Tags und Uploader.", + "search_placeholder": "Dateien, Tags und Uploader suchen...", + "search_placeholder_advanced": "Erweiterte Suche: Dateien, Tags, Uploader & Inhalt...", + "basic_search_tooltip": "Einfache Suche: Nach Dateiname, Tags und Uploader suchen.", + "advanced_search_tooltip": "Erweiterte Suche: Beinhaltet Dateiinhalte zusätzlich zum Dateinamen, Tags und Uploader.", "file_name": "Dateiname", "date_modified": "Änderungsdatum", "upload_date": "Hochladedatum", "file_size": "Dateigröße", - "uploader": "Hochgeladen von", + "uploader": "Uploader", "enter_totp_code": "Geben Sie den TOTP-Code ein", "use_recovery_code_instead": "Verwenden Sie stattdessen den Wiederherstellungscode", "enter_recovery_code": "Geben Sie den Wiederherstellungscode ein", @@ -924,7 +707,9 @@ const translations = { "edit": "Bearbeiten", "rename": "Umbenennen", "trash_empty": "Papierkorb ist leer.", - "no_trash_selected": "Keine Elemente im Papierkorb zur Wiederherstellung ausgewählt.", + "no_trash_selected": "Keine Papierkorbeinträge zur Wiederherstellung ausgewählt.", + + // Additional keys for HTML translations: "title": "FileRise", "header_title": "FileRise", "logout": "Abmelden", @@ -936,6 +721,8 @@ const translations = { "delete_selected_trash": "Ausgewählte löschen", "delete_all": "Alle löschen", "upload_header": "Dateien/Ordner hochladen", + + // Folder Management keys: "folder_navigation": "Ordnernavigation & Verwaltung", "create_folder": "Ordner erstellen", "create_folder_title": "Ordner erstellen", @@ -949,10 +736,12 @@ const translations = { "delete_folder_title": "Ordner löschen", "delete_folder_message": "Sind Sie sicher, dass Sie diesen Ordner löschen möchten?", "folder_help": "Ordnerhilfe", - "folder_help_item_1": "Klicken Sie auf einen Ordner, um dessen Dateien anzuzeigen.", - "folder_help_item_2": "Verwenden Sie [-] zum Reduzieren und [+] zum Erweitern.", - "folder_help_item_3": "Klicken Sie auf 'Ordner erstellen', um einen Unterordner hinzuzufügen.", - "folder_help_item_4": "Um einen Ordner umzubenennen oder zu löschen, wählen Sie ihn und klicken Sie auf die entsprechende Schaltfläche.", + "folder_help_item_1": "Klicken Sie auf einen Ordner im Baum, um dessen Dateien anzuzeigen.", + "folder_help_item_2": "Verwenden Sie [-] zum Einklappen und [+] zum Ausklappen der Ordner.", + "folder_help_item_3": "Wählen Sie einen Ordner aus und klicken Sie auf \"Ordner erstellen\", um einen Unterordner hinzuzufügen.", + "folder_help_item_4": "Um einen Ordner umzubenennen oder zu löschen, wählen Sie ihn aus und klicken Sie auf den entsprechenden Button.", + + // File List keys: "file_list_title": "Dateien in (Root)", "files_in": "Dateien in", "delete_files": "Dateien löschen", @@ -968,29 +757,46 @@ const translations = { "extract_zip_button": "Zip entpacken", "download_zip_title": "Ausgewählte Dateien als Zip herunterladen", "download_zip_prompt": "Geben Sie einen Namen für die Zip-Datei ein:", - "zip_placeholder": "dateien.zip", + "zip_placeholder": "files.zip", + + // Login Form keys: "login": "Anmelden", "remember_me": "Angemeldet bleiben", "login_oidc": "Mit OIDC anmelden", "basic_http_login": "HTTP-Basisauthentifizierung verwenden", + + // Change Password keys: "change_password_title": "Passwort ändern", "old_password": "Altes Passwort", "new_password": "Neues Passwort", "confirm_new_password": "Neues Passwort bestätigen", + + // Add User keys: "create_new_user_title": "Neuen Benutzer erstellen", "username": "Benutzername:", "password": "Passwort:", "grant_admin": "Admin-Rechte vergeben", "save_user": "Benutzer speichern", + + // Remove User keys: "remove_user_title": "Benutzer entfernen", - "select_user_remove": "Wählen Sie einen Benutzer zum Entfernen:", + "select_user_remove": "Wählen Sie einen Benutzer zum Entfernen aus:", "delete_user": "Benutzer löschen", + + // Rename File keys: "rename_file_title": "Datei umbenennen", - "rename_file_placeholder": "Neuen Dateinamen eingeben", + "rename_file_placeholder": "Geben Sie den neuen Dateinamen ein", + + // Folder Share "share_folder": "Ordner teilen", "allow_uploads": "Uploads erlauben", "share_link_generated": "Freigabelink generiert", "error_generating_share_link": "Fehler beim Generieren des Freigabelinks", + + // Folder + "folder_share": "Ordner teilen", + + // Custom Confirm Modal keys: "yes": "Ja", "no": "Nein", "delete": "Löschen", @@ -1007,9 +813,12 @@ const translations = { "weeks": "Wochen", "months": "Monate", "seconds": "Sekunden", + + // Dark Mode Toggle "dark_mode_toggle": "Dunkler Modus", "light_mode_toggle": "Heller Modus", - // Neue Schlüssel für Administrations-, Benutzer-Panels und TOTP-Modal: + + // NEW KEYS ADDED FOR ADMIN, USER PANELS, AND TOTP MODALS: "admin_panel": "Administrationsbereich", "user_panel": "Benutzerbereich", "totp_settings": "TOTP-Einstellungen", @@ -1023,7 +832,7 @@ const translations = { "use_totp_code_instead": "Stattdessen TOTP-Code verwenden", "submit_recovery_code": "Wiederherstellungscode absenden", "please_enter_recovery_code": "Bitte geben Sie Ihren Wiederherstellungscode ein.", - "recovery_code_verification_failed": "Die Überprüfung des Wiederherstellungscodes ist fehlgeschlagen", + "recovery_code_verification_failed": "Überprüfung des Wiederherstellungscodes fehlgeschlagen", "error_verifying_recovery_code": "Fehler bei der Überprüfung des Wiederherstellungscodes", "totp_verification_failed": "TOTP-Überprüfung fehlgeschlagen", "error_verifying_totp_code": "Fehler bei der Überprüfung des TOTP-Codes", @@ -1035,7 +844,7 @@ const translations = { "totp_enabled_successfully": "TOTP wurde erfolgreich aktiviert.", "error_generating_recovery_code": "Fehler beim Generieren des Wiederherstellungscodes", "error_loading_qr_code": "Fehler beim Laden des QR-Codes.", - "error_disabling_totp_setting": "Fehler beim Deaktivieren der TOTP-Einstellung", + "error_disabling_totp_setting": "Fehler beim Deaktivieren der TOTP-Einstellungen", "user_management": "Benutzerverwaltung", "add_user": "Benutzer hinzufügen", "remove_user": "Benutzer entfernen", @@ -1049,7 +858,7 @@ const translations = { "global_otpauth_url": "Globale OTPAuth-URL", "login_options": "Anmeldeoptionen", "disable_login_form": "Anmeldeformular deaktivieren", - "disable_basic_http_auth": "HTTP-Basis-Authentifizierung deaktivieren", + "disable_basic_http_auth": "HTTP-Basisauthentifizierung deaktivieren", "disable_oidc_login": "OIDC-Anmeldung deaktivieren", "save_settings": "Einstellungen speichern", "at_least_one_login_method": "Mindestens eine Anmeldemethode muss aktiviert bleiben.", @@ -1062,7 +871,10 @@ const translations = { "read_only": "Nur Lesen", "disable_upload": "Upload deaktivieren", "error_loading_users": "Fehler beim Laden der Benutzer", - "save_permissions": "Berechtigungen speichern" + "save_permissions": "Berechtigungen speichern", + "your_recovery_code": "Ihr Wiederherstellungscode", + "please_save_recovery_code": "Bitte speichern Sie diesen Code sicher. Er wird nicht erneut angezeigt und kann nur einmal verwendet werden.", + "ok": "OK" } };