From a439d5d8ee5480de2868d14eb29acef08e7249c5 Mon Sep 17 00:00:00 2001 From: Till JS Date: Thu, 26 Mar 2026 13:05:09 +0100 Subject: [PATCH] feat(storage): add French, Spanish, and Italian translations Register and add complete locale files for FR, ES, IT. All 5 supported languages (DE/EN/FR/ES/IT) now have translations. Co-Authored-By: Claude Opus 4.6 (1M context) --- apps/storage/apps/web/src/lib/i18n/index.ts | 3 + .../apps/web/src/lib/i18n/locales/es.json | 77 +++++++++++++++++++ .../apps/web/src/lib/i18n/locales/fr.json | 77 +++++++++++++++++++ .../apps/web/src/lib/i18n/locales/it.json | 77 +++++++++++++++++++ 4 files changed, 234 insertions(+) create mode 100644 apps/storage/apps/web/src/lib/i18n/locales/es.json create mode 100644 apps/storage/apps/web/src/lib/i18n/locales/fr.json create mode 100644 apps/storage/apps/web/src/lib/i18n/locales/it.json diff --git a/apps/storage/apps/web/src/lib/i18n/index.ts b/apps/storage/apps/web/src/lib/i18n/index.ts index 8857ffc50..840e7798a 100644 --- a/apps/storage/apps/web/src/lib/i18n/index.ts +++ b/apps/storage/apps/web/src/lib/i18n/index.ts @@ -11,6 +11,9 @@ const defaultLocale = 'de'; // Register all available locales register('de', () => import('./locales/de.json')); register('en', () => import('./locales/en.json')); +register('fr', () => import('./locales/fr.json')); +register('es', () => import('./locales/es.json')); +register('it', () => import('./locales/it.json')); // Get initial locale from browser or localStorage function getInitialLocale(): SupportedLocale { diff --git a/apps/storage/apps/web/src/lib/i18n/locales/es.json b/apps/storage/apps/web/src/lib/i18n/locales/es.json new file mode 100644 index 000000000..45d9b3dce --- /dev/null +++ b/apps/storage/apps/web/src/lib/i18n/locales/es.json @@ -0,0 +1,77 @@ +{ + "app": { + "name": "Storage", + "description": "Almacenamiento seguro en la nube para tus archivos" + }, + "nav": { + "files": "Archivos", + "shared": "Compartido", + "favorites": "Favoritos", + "trash": "Papelera", + "search": "Buscar", + "settings": "Ajustes", + "profile": "Perfil", + "feedback": "Feedback" + }, + "files": { + "title": "Mis archivos", + "upload": "Subir", + "newFolder": "Nueva carpeta", + "empty": "Aún no hay archivos", + "dropHere": "Arrastra archivos aquí", + "viewGrid": "Vista de cuadrícula", + "viewList": "Vista de lista" + }, + "folder": { + "create": "Crear carpeta", + "name": "Nombre de la carpeta", + "color": "Color de la carpeta" + }, + "actions": { + "download": "Descargar", + "rename": "Renombrar", + "move": "Mover", + "share": "Compartir", + "favorite": "Añadir a favoritos", + "unfavorite": "Quitar de favoritos", + "delete": "Eliminar", + "restore": "Restaurar", + "permanentDelete": "Eliminar permanentemente" + }, + "trash": { + "title": "Papelera", + "empty": "La papelera está vacía", + "emptyTrash": "Vaciar papelera", + "restoreAll": "Restaurar todo" + }, + "share": { + "title": "Compartir", + "createLink": "Crear enlace", + "copyLink": "Copiar enlace", + "linkCopied": "¡Enlace copiado!", + "accessLevel": "Nivel de acceso", + "view": "Ver", + "download": "Descargar", + "edit": "Editar", + "password": "Protección con contraseña", + "expiration": "Fecha de expiración", + "maxDownloads": "Descargas máx." + }, + "search": { + "title": "Buscar", + "placeholder": "Buscar archivos y carpetas...", + "noResults": "Sin resultados" + }, + "favorites": { + "title": "Favoritos", + "empty": "Aún no hay favoritos" + }, + "common": { + "loading": "Cargando...", + "save": "Guardar", + "cancel": "Cancelar", + "confirm": "Confirmar", + "error": "Error", + "success": "Éxito" + } +} diff --git a/apps/storage/apps/web/src/lib/i18n/locales/fr.json b/apps/storage/apps/web/src/lib/i18n/locales/fr.json new file mode 100644 index 000000000..cfcc7795e --- /dev/null +++ b/apps/storage/apps/web/src/lib/i18n/locales/fr.json @@ -0,0 +1,77 @@ +{ + "app": { + "name": "Storage", + "description": "Stockage cloud sécurisé pour vos fichiers" + }, + "nav": { + "files": "Fichiers", + "shared": "Partagés", + "favorites": "Favoris", + "trash": "Corbeille", + "search": "Recherche", + "settings": "Paramètres", + "profile": "Profil", + "feedback": "Feedback" + }, + "files": { + "title": "Mes fichiers", + "upload": "Télécharger", + "newFolder": "Nouveau dossier", + "empty": "Pas encore de fichiers", + "dropHere": "Déposez les fichiers ici", + "viewGrid": "Vue grille", + "viewList": "Vue liste" + }, + "folder": { + "create": "Créer un dossier", + "name": "Nom du dossier", + "color": "Couleur du dossier" + }, + "actions": { + "download": "Télécharger", + "rename": "Renommer", + "move": "Déplacer", + "share": "Partager", + "favorite": "Ajouter aux favoris", + "unfavorite": "Retirer des favoris", + "delete": "Supprimer", + "restore": "Restaurer", + "permanentDelete": "Supprimer définitivement" + }, + "trash": { + "title": "Corbeille", + "empty": "La corbeille est vide", + "emptyTrash": "Vider la corbeille", + "restoreAll": "Tout restaurer" + }, + "share": { + "title": "Partager", + "createLink": "Créer un lien", + "copyLink": "Copier le lien", + "linkCopied": "Lien copié !", + "accessLevel": "Niveau d'accès", + "view": "Consulter", + "download": "Télécharger", + "edit": "Modifier", + "password": "Protection par mot de passe", + "expiration": "Date d'expiration", + "maxDownloads": "Téléchargements max." + }, + "search": { + "title": "Recherche", + "placeholder": "Rechercher des fichiers et dossiers...", + "noResults": "Aucun résultat" + }, + "favorites": { + "title": "Favoris", + "empty": "Pas encore de favoris" + }, + "common": { + "loading": "Chargement...", + "save": "Enregistrer", + "cancel": "Annuler", + "confirm": "Confirmer", + "error": "Erreur", + "success": "Succès" + } +} diff --git a/apps/storage/apps/web/src/lib/i18n/locales/it.json b/apps/storage/apps/web/src/lib/i18n/locales/it.json new file mode 100644 index 000000000..fa0241e4b --- /dev/null +++ b/apps/storage/apps/web/src/lib/i18n/locales/it.json @@ -0,0 +1,77 @@ +{ + "app": { + "name": "Storage", + "description": "Archiviazione cloud sicura per i tuoi file" + }, + "nav": { + "files": "File", + "shared": "Condivisi", + "favorites": "Preferiti", + "trash": "Cestino", + "search": "Cerca", + "settings": "Impostazioni", + "profile": "Profilo", + "feedback": "Feedback" + }, + "files": { + "title": "I miei file", + "upload": "Carica", + "newFolder": "Nuova cartella", + "empty": "Nessun file ancora", + "dropHere": "Trascina i file qui", + "viewGrid": "Vista griglia", + "viewList": "Vista elenco" + }, + "folder": { + "create": "Crea cartella", + "name": "Nome cartella", + "color": "Colore cartella" + }, + "actions": { + "download": "Scarica", + "rename": "Rinomina", + "move": "Sposta", + "share": "Condividi", + "favorite": "Aggiungi ai preferiti", + "unfavorite": "Rimuovi dai preferiti", + "delete": "Elimina", + "restore": "Ripristina", + "permanentDelete": "Elimina definitivamente" + }, + "trash": { + "title": "Cestino", + "empty": "Il cestino è vuoto", + "emptyTrash": "Svuota cestino", + "restoreAll": "Ripristina tutto" + }, + "share": { + "title": "Condividi", + "createLink": "Crea link", + "copyLink": "Copia link", + "linkCopied": "Link copiato!", + "accessLevel": "Livello di accesso", + "view": "Visualizza", + "download": "Scarica", + "edit": "Modifica", + "password": "Protezione con password", + "expiration": "Data di scadenza", + "maxDownloads": "Download max." + }, + "search": { + "title": "Cerca", + "placeholder": "Cerca file e cartelle...", + "noResults": "Nessun risultato" + }, + "favorites": { + "title": "Preferiti", + "empty": "Nessun preferito ancora" + }, + "common": { + "loading": "Caricamento...", + "save": "Salva", + "cancel": "Annulla", + "confirm": "Conferma", + "error": "Errore", + "success": "Successo" + } +}