i18n: complete remaining roadmap tasks
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 11s

JS files:
- ai.js: add t() import, replace 10 hardcoded French strings
- sync.js: add t() import, replace 20 hardcoded French strings (toasts, status labels, events, AI panel)
- graph.js: add t() import, replace 6 hardcoded French strings (tooltips, badges)

Locales:
- +36 new keys for ai.js, sync.js, graph.js
- 1206 keys in each locale file (perfectly synchronized)
- 0 French characters remaining in en.json

Documentation:
- README.fr.md created (French version)
- ROADMAP.md point #63 updated to 100% complete
This commit is contained in:
2026-06-19 10:37:00 -04:00
parent 0bd2c12c13
commit 48023620e6
6 changed files with 213 additions and 41 deletions
+37 -2
View File
@@ -672,7 +672,6 @@
"auto.caac40b9": "Choose a visual theme. Each theme offers",
"auto.a3319169": "📦 About",
"auto.6c166d35": "ObsiGate is your web gateway to your Obsidian vaults. Access, browse, and search all your notes from any device via a modern and responsive interface.",
"auto.ca0aceee": "Access",
"auto.209c5490": "The top bar contains the essential elements:",
"auto.4c908ade": "Click a vault to open it and see its",
"auto.1abf6661": "The path displayed above the content is",
@@ -1172,5 +1171,41 @@
"help.pal_open___select": "Open / select",
"help.pal_close_the_palette": "Close the palette",
"help.pal_popout_desc": "Open the document in a detached window",
"help.pal_move_desc": "Navigate the list"
"help.pal_move_desc": "Navigate the list",
"ai.error_invalid_key": "Invalid API key",
"ai.edit": "Edit",
"ai.hint_improve": "Improves text quality",
"ai.hint_add_details": "Adds details",
"ai.hint_edit_selection": "Modifies the selected text",
"ai.hint_translate": "Translates the selected text",
"ai.generate": "Generate",
"ai.hint_generate": "Generates content from the selection",
"ai.toolbox": "🧰 Toolbox",
"ai.rewrite_prompt": "Rewrite instruction:",
"sync.vault_added": "Vault \"{vault}\" added ({count} files)",
"sync.vault_removed": "Vault \"{vault}\" removed",
"sync.index_started": "Indexing started ({count} vaults)",
"sync.index_complete": "Indexing complete ({count} files)",
"sync.disconnected": "Disconnected",
"sync.connected": "Synchronized",
"sync.updating": "Updating...",
"sync.connected_short": "Connected",
"sync.no_recent_events": "No recent events",
"sync.event_index_updated": "Update",
"sync.event_vault_added": "Vault added",
"sync.event_vault_removed": "Vault removed",
"sync.event_index_start": "Index starting",
"sync.event_index_progress": "Vault indexed",
"sync.verifying": "Verifying…",
"sync.autocomplete_active": "Autocomplete active",
"sync.model_not_loaded": "Model not loaded",
"sync.not_configured": "Not configured",
"sync.autocomplete": "Autocomplete",
"sync.update": "Update",
"graph.category": "📂 Category",
"graph.published": "Published",
"graph.ctrl_hover_preview": "Ctrl+hover = full preview",
"graph.published_badge": "✅ published",
"graph.click_to_open": "click to open",
"graph.ctrl_hover_preview_short": "Ctrl+hover = preview"
}
+37 -2
View File
@@ -672,7 +672,6 @@
"auto.caac40b9": "Choisissez un thème visuel. Chaque thème\n offre un mode sombre et clair.",
"auto.a3319169": "📦 À propos",
"auto.6c166d35": "ObsiGate est votre porte d'entrée web vers\n vos vaults Obsidian. Accédez, naviguez et\n recherchez dans toutes vos notes depuis\n n'importe quel appareil via une interface\n moderne et responsive.",
"auto.ca0aceee": "Accès",
"auto.209c5490": "La barre supérieure contient les éléments\n essentiels :",
"auto.4c908ade": "Cliquez sur un vault pour l'ouvrir et voir son\n contenu. Les dossiers affichent un chevron et un\n badge avec le nombre d'éléments.",
"auto.1abf6661": "Le chemin affiché au-dessus du contenu est\n interactif :",
@@ -1172,5 +1171,41 @@
"help.pal_open___select": "Ouvrir/sélectionner",
"help.pal_close_the_palette": "Fermer la palette",
"help.pal_popout_desc": "Ouvre le document dans une fenêtre détachée",
"help.pal_move_desc": "Se déplacer dans la liste"
"help.pal_move_desc": "Se déplacer dans la liste",
"ai.error_invalid_key": "clé API invalide",
"ai.edit": "Éditer",
"ai.hint_improve": "Améliore la qualité du texte",
"ai.hint_add_details": "Ajoute des détails",
"ai.hint_edit_selection": "Modifie le texte sélectionné",
"ai.hint_translate": "Traduit le texte sélectionné",
"ai.generate": "Générer",
"ai.hint_generate": "Génère du contenu à partir de la sélection",
"ai.toolbox": "🧰 Boîte",
"ai.rewrite_prompt": "Instruction de réécriture :",
"sync.vault_added": "Vault \"{vault}\" ajouté ({count} fichiers)",
"sync.vault_removed": "Vault \"{vault}\" supprimé",
"sync.index_started": "Indexation démarrée ({count} vaults)",
"sync.index_complete": "Indexation terminée ({count} fichiers)",
"sync.disconnected": "Déconnecté",
"sync.connected": "Synchronisé",
"sync.updating": "Mise à jour...",
"sync.connected_short": "Connecté",
"sync.no_recent_events": "Aucun événement récent",
"sync.event_index_updated": "Mise à jour",
"sync.event_vault_added": "Vault ajouté",
"sync.event_vault_removed": "Vault supprimé",
"sync.event_index_start": "Démarrage index.",
"sync.event_index_progress": "Vault indexé",
"sync.verifying": "Vérification…",
"sync.autocomplete_active": "Auto-complétion active",
"sync.model_not_loaded": "Modèle non chargé",
"sync.not_configured": "Non configuré",
"sync.autocomplete": "Auto-complétion",
"sync.update": "Mettre à jour",
"graph.category": "📂 Catégorie",
"graph.published": "Publié",
"graph.ctrl_hover_preview": "Ctrl+survol = aperçu complet",
"graph.published_badge": "✅ publié",
"graph.click_to_open": "cliquer pour ouvrir",
"graph.ctrl_hover_preview_short": "Ctrl+survol = aperçu"
}