diff --git a/frontend/index.html b/frontend/index.html index 402d2a6..8f9969a 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -182,7 +182,7 @@

AccÚs sécurisé à vos vaults

@@ -330,13 +330,13 @@ type="text" class="search-filter-input" id="search-include-input" - placeholder="Inclure: **/*.md, notes/**" + data-i18n-placeholder="search.include_placeholder" placeholder="Inclure: **/*.md, notes/**" /> @@ -352,7 +352,7 @@ id="search-dropdown-history" >
- Historique + Historique
@@ -896,8 +892,8 @@ aria-labelledby="sidebar-tab-saved" >
- - + +
@@ -988,7 +984,7 @@ id="dashboard-stats-grid" class="dashboard-stats-grid" > -
+
Chargement...
@@ -1161,7 +1157,7 @@ class="dashboard-recent-empty hidden" > - Aucun fichier récent + Aucun fichier récent

Ouvrez un fichier pour le voir apparaßtre ici @@ -1183,7 +1179,7 @@ class="dashboard-recent-empty" > - Aucun document partagé + Aucun document partagé

Partagez un document pour le voir apparaĂźtre ici @@ -1209,7 +1205,7 @@ aria-label="Table des matiĂšres" >

@@ -1262,7 +1258,7 @@
- ObsiGate + ObsiGate
-
Configurations
+
Configurations
-
@@ -1698,7 +1690,7 @@
-

Filtrage de tags

+

Filtrage de tags

Définissez les patterns de tags à masquer dans la sidebar. Vous pouvez utiliser des @@ -1717,10 +1709,8 @@ placeholder="Ex: #<% ... %> ou #{{ ... }}" class="config-input" /> -

@@ -1742,7 +1732,7 @@ class="config-section help-section" id="cfg-sync" > -

Synchronisation automatique

+

Synchronisation automatique

Surveillance des fichiers en temps rĂ©el via watchdog. Les modifications sont dĂ©tectĂ©es @@ -1851,7 +1841,7 @@ border-radius: 4px; " > - i Note : Tous les fichiers + i Note : Tous les fichiers sont toujours indexĂ©s et cherchables. Ce paramĂštre contrĂŽle uniquement leur visibilitĂ© dans l'interface. @@ -1879,7 +1869,7 @@ class="config-section help-section" id="cfg-diags" > -

Diagnostics

+

Diagnostics

Statistiques de l'index et du moteur de recherche. @@ -1888,15 +1878,13 @@ id="config-diagnostics" class="config-diagnostics" > -

+
Chargement...
- @@ -1909,7 +1897,7 @@

đŸ€– Cles API Intelligence Artificielle

Configurez vos cles API. Cliquez sur - Tester pour charger les + Tester pour charger les modeles.

@@ -1979,16 +1967,12 @@ class="config-actions-row" style="margin-top: 16px" > - -
-
Chargement...
+
Chargement...
@@ -2058,7 +2042,7 @@ id="config-about" class="config-diagnostics" > -
+
Chargement...
@@ -2076,7 +2060,7 @@ @@ -2087,10 +2071,8 @@ class="config-input" style="flex: 1" /> -
@@ -2701,7 +2683,7 @@
-
Guide officiel
+
Guide officiel

📘 Bienvenue dans ObsiGate

ObsiGate est votre porte d'entrée web vers @@ -2733,17 +2715,17 @@ Expérience - Simple + Simple

Recherche - Instantanée + Instantanée
AccĂšs - Multi-vault + Multi-vault
@@ -2751,91 +2733,91 @@

🧭 Interface utilisateur

-

En-tĂȘte

+

En-tĂȘte

La barre supérieure contient les éléments essentiels :

  • - Bouton menu hamburger + Bouton menu hamburger (mobile) : Affiche/masque la sidebar
  • - Bouton toggle sidebar + Bouton toggle sidebar (desktop) : Masque la sidebar pour plus d'espace
  • - Logo ObsiGate : Retour Ă  + Logo ObsiGate : Retour Ă  l'accueil
  • - Barre de recherche : + Barre de recherche : Recherche globale avec autocomplĂ©tion
  • - Indicateur de vault : + Indicateur de vault : Affiche le contexte actif (All, vault1, etc.)
  • - Menu Options : AccĂšs aux + Menu Options : AccĂšs aux paramĂštres, thĂšme, aide
-

Sidebar (barre latérale)

-

La sidebar est divisée en deux onglets :

+

Sidebar (barre latérale)

+

La sidebar est divisée en deux onglets :

  • - Vaults : Arborescence des + Vaults : Arborescence des fichiers et dossiers
  • - Tags : Nuage de tags + Tags : Nuage de tags cliquables
-

Fonctionnalités de la sidebar :

+

Fonctionnalités de la sidebar :

  • - Filtrage : Barre de + Filtrage : Barre de recherche pour filtrer fichiers/tags
  • - SĂ©lection rapide : Dropdown + SĂ©lection rapide : Dropdown pour changer de vault
  • - Redimensionnement : Glissez + Redimensionnement : Glissez le bord droit pour ajuster la largeur
  • - Masquage : Cliquez sur + Masquage : Cliquez sur l'icĂŽne sidebar dans le header
-

Zone de contenu

-

La zone centrale affiche :

+

Zone de contenu

+

La zone centrale affiche :

  • - Breadcrumb : Chemin du + Breadcrumb : Chemin du fichier (cliquable pour repositionner la sidebar)
  • - Titre et tags : MĂ©tadonnĂ©es + Titre et tags : MĂ©tadonnĂ©es du fichier
  • - Boutons d'action : Copier, + Boutons d'action : Copier, Source, TĂ©lĂ©charger, Éditer, Ouvrir dans nouvelle fenĂȘtre
  • - Contenu rendu : Markdown + Contenu rendu : Markdown avec wikilinks et images
@@ -2844,7 +2826,7 @@

đŸ—ș Navigation

-

Arborescence des vaults

+

Arborescence des vaults

Cliquez sur un vault pour l'ouvrir et voir son contenu. Les dossiers affichent un chevron et un @@ -2852,82 +2834,82 @@

  • - DĂ©velopper/RĂ©duire : + DĂ©velopper/RĂ©duire : Cliquez sur un dossier
  • - Ouvrir un fichier : Cliquez + Ouvrir un fichier : Cliquez sur le nom du fichier
  • - IcĂŽnes : Chaque type de + IcĂŽnes : Chaque type de fichier a son icĂŽne (markdown, code, etc.)
-

Filtrage de la sidebar

+

Filtrage de la sidebar

Utilisez la barre de filtrage en haut de la sidebar pour rechercher rapidement :

  • - Recherche instantanĂ©e : + Recherche instantanĂ©e : Tapez pour filtrer fichiers et dossiers
  • - Case-sensitive : Bouton + Case-sensitive : Bouton "Aa" pour respecter la casse
  • - Effacer : Bouton "×" pour + Effacer : Bouton "×" pour rĂ©initialiser le filtre
  • - RĂ©sultats groupĂ©s : + RĂ©sultats groupĂ©s : Affichage par vault avec chemins complets
-

Breadcrumb et repositionnement

+

Breadcrumb et repositionnement

Le chemin affiché au-dessus du contenu est interactif :

  • - Cliquez sur le vault : + Cliquez sur le vault : Focus sur le vault dans la sidebar
  • - Cliquez sur un segment : + Cliquez sur un segment : Navigation vers ce dossier
  • - Auto-scroll : La sidebar se + Auto-scroll : La sidebar se positionne automatiquement
-

Sélection de vault

+

Sélection de vault

Changez de contexte pour filtrer l'affichage :

  • - Menu header : Dropdown + Menu header : Dropdown "Vault" dans le menu Options
  • - Sidebar dropdown : + Sidebar dropdown : SĂ©lection rapide en haut de l'onglet Vaults
  • - Tous les vaults : Vue + Tous les vaults : Vue globale de tous vos contenus
  • - Vault spĂ©cifique : Focus + Vault spĂ©cifique : Focus sur un seul vault
@@ -2940,28 +2922,28 @@ fichiers simultanément dans des onglets.

-

Ouverture d'onglets

+

Ouverture d'onglets

  • - Simple clic : Ouvre le + Simple clic : Ouvre le fichier dans un onglet temporaire (aperçu, italique)
  • - Double clic : Ouvre le + Double clic : Ouvre le fichier dans un onglet persistant
  • - Navigation rĂ©cente : + Navigation rĂ©cente : L'onglet "RĂ©cent" dans la sidebar liste vos derniers fichiers
-

Navigation entre onglets

+

Navigation entre onglets

  • - Clic sur un onglet : Active + Clic sur un onglet : Active l'onglet
  • @@ -2976,29 +2958,29 @@ actif
  • - Bouton ✕ : Ferme l'onglet + Bouton ✕ : Ferme l'onglet (sauf s'il est seul)
-

Fonctionnalités

+

Fonctionnalités

  • - Barre d'onglets : Affichage + Barre d'onglets : Affichage horizontal avec le nom du fichier et son icĂŽne
  • - Onglet actif : SurlignĂ© en + Onglet actif : SurlignĂ© en couleur d'accentuation
  • - PrĂ©visualisation : Un + PrĂ©visualisation : Un onglet temporaire (italique) est remplacĂ© par le prochain clic
  • - Onglets persistants : + Onglets persistants : Restent ouverts jusqu'Ă  fermeture manuelle
@@ -3007,31 +2989,31 @@

🔍 Recherche

-

Recherche simple

+

Recherche simple

Tapez dans la barre de recherche en haut pour lancer une recherche fulltext :

  • - Recherche dans tout : + Recherche dans tout : Titre, contenu, tags, chemins
  • - Scoring intelligent : + Scoring intelligent : RĂ©sultats classĂ©s par pertinence TF-IDF
  • - Snippets surlignĂ©s : + Snippets surlignĂ©s : Extraits avec termes en surbrillance
  • - Pagination : Navigation par + Pagination : Navigation par pages de 50 rĂ©sultats
-

Opérateurs avancés

+

Opérateurs avancés

Utilisez des opérateurs pour affiner votre recherche : @@ -3078,22 +3060,22 @@ Markdown du vault IT avec le tag linux.

-

Autocomplétion

+

Autocomplétion

L'autocomplétion vous aide à trouver rapidement :

  • - Historique : Les 50 + Historique : Les 50 derniĂšres recherches (localStorage)
  • - Fichiers : Suggestions de + Fichiers : Suggestions de titres de fichiers
  • - Tags : Suggestions de tags + Tags : Suggestions de tags avec compteurs
  • @@ -3102,7 +3084,7 @@
-

Chips de filtres actifs

+

Chips de filtres actifs

Les opérateurs utilisés s'affichent sous forme de chips colorés : @@ -3161,11 +3143,11 @@ des frontmatters YAML et inline (#tag)

  • - Cliquable : Cliquez pour + Cliquable : Cliquez pour filtrer les rĂ©sultats
  • - Filtrage : Utilisez la + Filtrage : Utilisez la barre de filtrage pour chercher un tag
  • @@ -3209,7 +3191,7 @@ la regex appliquĂ©e
  • - Ajout/Suppression : GĂ©rez + Ajout/Suppression : GĂ©rez vos patterns de filtrage
  • @@ -3240,23 +3222,23 @@ -

    Actions sur fichiers

    -

    Boutons disponibles au-dessus du contenu :

    +

    Actions sur fichiers

    +

    Boutons disponibles au-dessus du contenu :

    • - Copier : Copie le contenu + Copier : Copie le contenu source dans le presse-papiers
    • - Source : Affiche/masque le + Source : Affiche/masque le markdown brut
    • - TĂ©lĂ©charger : TĂ©lĂ©charge le + TĂ©lĂ©charger : TĂ©lĂ©charge le fichier
    • - Éditer : Ouvre l'Ă©diteur + Éditer : Ouvre l'Ă©diteur CodeMirror
    • @@ -3279,7 +3261,7 @@ Navigation facile
    • - AutocomplĂ©tion : + AutocomplĂ©tion : Suggestions contextuelles
    • @@ -3300,11 +3282,11 @@

      ObsiGate indexe et affiche :

      • - Markdown : .md (rendu + Markdown : .md (rendu complet)
      • - Code : .py, .js, .ts, .jsx, + Code : .py, .js, .ts, .jsx, .tsx, .java, .c, .cpp, .rs, .go, etc.
      • @@ -3319,7 +3301,7 @@ Web : .html, .css, .scss
      • - Autres : .txt, .log, .sql, + Autres : .txt, .log, .sql, .csv
      @@ -3363,7 +3345,7 @@ fichier
    • - Barre d'outils AI : + Barre d'outils AI : ComplĂ©tion, réécriture, traduction (voir section đŸ€– IA)
    • @@ -3387,7 +3369,7 @@ Graphique
    • - Bouton dĂ©diĂ© : Dans la + Bouton dĂ©diĂ© : Dans la barre d'outils (le cas Ă©chĂ©ant)
    @@ -3416,7 +3398,7 @@ de recherche pour surligner des nƓuds
  • - Mode focus : Centre la vue + Mode focus : Centre la vue sur un nƓud spĂ©cifique
  • @@ -3432,7 +3414,7 @@ et dossiers (cercles) avec icĂŽnes
  • - ArĂȘtes : Wikilinks sortants + ArĂȘtes : Wikilinks sortants (bleu) et backlinks entrants (vert)
  • @@ -3440,11 +3422,11 @@ MĂ©tadonnĂ©es du nƓud (tags, liens, chemin)
  • - Ctrl+survol : Aperçu du + Ctrl+survol : Aperçu du contenu de la note sans naviguer
  • - Plein Ă©cran : Bouton pour + Plein Ă©cran : Bouton pour agrandir la vue
  • @@ -3453,7 +3435,7 @@
  • -

    Performance

    +

    Performance

    La vue utilise l'algorithme Barnes-Hut pour calculer la disposition en O(n log n), @@ -3469,10 +3451,10 @@

    🎹 Personnalisation

    ThĂšme clair/sombre

    -

    Basculez entre les thĂšmes :

    +

    Basculez entre les thĂšmes :

    • - Menu Options : Cliquez sur + Menu Options : Cliquez sur "ThĂšme" dans le menu
    • @@ -3519,7 +3501,7 @@

      • - ParamĂštres de recherche : + ParamĂštres de recherche : DĂ©lai debounce, rĂ©sultats par page, timeout
      • @@ -3527,11 +3509,11 @@ Workers, boosts TF-IDF, expansions prĂ©fixe
      • - Filtrage de tags : Patterns + Filtrage de tags : Patterns pour masquer les tags template
      • - Diagnostics : Stats index, + Diagnostics : Stats index, mĂ©moire, moteur de recherche
      • @@ -3582,7 +3564,7 @@

        • - 🏠 Accueil : Retour Ă  + 🏠 Accueil : Retour Ă  l'accueil
        • @@ -3612,18 +3594,18 @@ Supprime un dossier et son contenu
        • - 🌓 Changer le thĂšme : + 🌓 Changer le thĂšme : Bascule clair/sombre
        • - 🔄 RĂ©indexer : Force la + 🔄 RĂ©indexer : Force la rĂ©indexation complĂšte
        • - ❓ Aide : Ouvre ce guide + ❓ Aide : Ouvre ce guide
        • - ⚙ Configuration : Ouvre + ⚙ Configuration : Ouvre les paramĂštres
        @@ -3735,7 +3717,7 @@ ou Gemini).

        -

        Activation

        +

        Activation

        1. Ajoutez votre clé API dans @@ -3759,7 +3741,7 @@
        -

        Barre d'outils AI

        +

        Barre d'outils AI

        La barre d'outils contient les boutons suivants : @@ -3951,14 +3933,14 @@

        🔗 Partage et Webhooks

        -

        Publication publique

        +

        Publication publique

        ObsiGate permet de partager des documents via un lien public temporaire.

        • - Bouton Partager : Dans les + Bouton Partager : Dans les actions du fichier, gĂ©nĂšre un lien unique
        • @@ -3980,7 +3962,7 @@ et rĂ©vocation dans les Configurations
        • - Export PDF : TĂ©lĂ©chargement + Export PDF : TĂ©lĂ©chargement du document partagĂ© en PDF via /s/{token}/pdf
        • @@ -4002,15 +3984,15 @@ choix, avec un payload JSON dĂ©taillĂ©.

          -

          Cas d'usage

          +

          Cas d'usage

          • - Automatisation CI/CD : + Automatisation CI/CD : DĂ©clencher un build quand une note de procĂ©dure est mise Ă  jour
          • - Synchronisation : Copier + Synchronisation : Copier les nouveaux fichiers vers un autre systĂšme (SharePoint, Google Drive)
          • @@ -4020,7 +4002,7 @@ créé
          • - Audit externe : Logger + Audit externe : Logger toutes les modifications dans une base de donnĂ©es externe
          • @@ -4312,10 +4294,10 @@ type d'Ă©vĂ©nement pour un routage rapide.

            -

            Configuration

            +

            Configuration

            Les webhooks se gĂšrent dans le modal - Configurations (⚙ menu + Configurations (⚙ menu Options), section Webhooks. RĂ©servĂ© aux administrateurs.

            @@ -4326,12 +4308,12 @@
          • Remplissez : - Nom (descriptif), - URL (endpoint cible), + Nom (descriptif), + URL (endpoint cible), Secret (optionnel)
          • Cochez les Ă©vĂ©nements Ă  Ă©couter
          • -
          • Cliquez Ajouter
          • +
          • Cliquez Ajouter
          • Les webhooks peuvent ĂȘtre activĂ©s/dĂ©sactivĂ©s, @@ -4448,14 +4430,14 @@ curl -X POST https://votre-serveur.com/webhook \

            đŸ’Ÿ Sauvegardes et Audits

            -

            Backup automatique

            +

            Backup automatique

            ObsiGate crée automatiquement des sauvegardes avant chaque modification destructive.

            • - Avant Ă©criture : Sauvegarde + Avant Ă©criture : Sauvegarde du contenu original dans .obsigate-backup/
            • @@ -4470,7 +4452,7 @@ curl -X POST https://votre-serveur.com/webhook \
            -

            Audit log

            +

            Audit log

            Toutes les opérations sensibles sont tracées dans un journal. @@ -4513,7 +4495,7 @@ curl -X POST https://votre-serveur.com/webhook \ HttpOnly avec rotation automatique

          • - Rate limiting : 10 + Rate limiting : 10 tentatives / 15 min par IP + verrouillage compte
          • @@ -4541,7 +4523,7 @@ curl -X POST https://votre-serveur.com/webhook \ XSS-Protection
          • - Atomic writes : Écriture + Atomic writes : Écriture via fichier temporaire + renommage atomique
          • @@ -4597,7 +4579,7 @@ curl -X POST https://votre-serveur.com/webhook \ vault: accĂ©lĂšrent la recherche
          • - Breadcrumb cliquable : + Breadcrumb cliquable : Repositionnez rapidement la sidebar
          @@ -4623,7 +4605,7 @@ curl -X POST https://votre-serveur.com/webhook \ le bouton hamburger sur mobile
        • - Wikilinks : Naviguez entre + Wikilinks : Naviguez entre notes comme dans Obsidian
        • @@ -4632,7 +4614,7 @@ curl -X POST https://votre-serveur.com/webhook \
        -

        Cas d'usage avancés

        +

        Cas d'usage avancés

        • Recherche multi-critĂšres : @@ -4651,7 +4633,7 @@ curl -X POST https://votre-serveur.com/webhook \ l'Ă©diteur, modifiez, sauvegardez
        • - Export : TĂ©lĂ©chargez des + Export : TĂ©lĂ©chargez des fichiers pour backup ou partage
        • @@ -4797,7 +4779,7 @@ curl -X POST https://votre-serveur.com/webhook \ aria-label="Palette de commandes" > - Commandes + Commandes - +
    @@ -4880,7 +4862,7 @@ curl -X POST https://votre-serveur.com/webhook \
    -

    ObsiGate

    +

    ObsiGate

    Vos notes Obsidian,
    simplement accessibles.

    v2.0.0-dev
    @@ -4888,11 +4870,11 @@ curl -X POST https://votre-serveur.com/webhook \
    — - Fichiers + Fichiers
    — - Vaults + Vaults
    285 diff --git a/frontend/js/i18n.js b/frontend/js/i18n.js index 664f253..bd85c51 100644 --- a/frontend/js/i18n.js +++ b/frontend/js/i18n.js @@ -51,6 +51,30 @@ export function t(key, params) { return s; } +// ── Reverse-lookup cache (French text → key) ──────────────────────────── +let _reverseCache = null; + +function _buildReverseCache() { + _reverseCache = {}; + for (const [k, v] of Object.entries(_fallbackStrings)) { + if (k.startsWith('_')) continue; + // Prefer shorter keys when multiple keys map to the same French text + if (!_reverseCache[v] || k.length < _reverseCache[v].length) { + _reverseCache[v] = k; + } + } +} + +/** Translate a French string to the current locale by reverse lookup. + * "ParamĂštres client sauvegardĂ©s" → fr: same, en: "Client settings saved". + * If the string is not found in the FR locale, returns it unchanged. */ +export function tr(frenchText) { + if (!frenchText || _currentLocale === 'fr') return frenchText; + if (!_reverseCache) _buildReverseCache(); + var key = _reverseCache[frenchText]; + return key ? t(key) : frenchText; +} + /** Change locale and re-translate the entire DOM. * Persists to localStorage. */ export async function setLocale(locale) { diff --git a/frontend/js/ui.js b/frontend/js/ui.js index 5457878..1f2788a 100644 --- a/frontend/js/ui.js +++ b/frontend/js/ui.js @@ -6,6 +6,7 @@ import { safeCreateIcons, getFileIcon, escapeHtml } from './utils.js'; import { syncActiveFileTreeItem, refreshSidebarTreePreservingState } from './sidebar.js'; import { GraphViewManager } from './graph.js'; import { DashboardConflictsWidget } from './dashboard.js'; +import { t, tr } from './i18n.js'; // --------------------------------------------------------------------------- // Right Sidebar Manager // --------------------------------------------------------------------------- @@ -347,7 +348,8 @@ export function populateCustomDropdown(dropdownId, optionsList, defaultValue) { /** Display a brief toast message at the bottom of the viewport. */ export function showToast(message, type) { - console.log("showToast called with:", message, type); + // Auto-translate French messages via reverse lookup + message = tr(message); type = type || "info"; let container = document.getElementById("toast-container"); if (!container) { diff --git a/frontend/locales/en.json b/frontend/locales/en.json index 6329d05..318b432 100644 --- a/frontend/locales/en.json +++ b/frontend/locales/en.json @@ -10,6 +10,22 @@ "header.refresh": "Refresh", "header.install_app": "Install app", "header.admin_panel": "Administration", + "header.menu_config": "Settings", + "header.menu_config_desc": "Application settings", + "header.menu_help": "User guide", + "header.menu_help_desc": "Open help", + "header.menu_about": "About", + "header.menu_about_desc": "Version, credits & info", + "header.menu_profile": "Profile", + "header.menu_profile_desc": "Language & preferences", + "header.menu_logout": "Sign out", + "header.menu_logout_desc": "End session", + "header.menu_admin": "Administration", + "header.menu_admin_desc": "Manage users", + "header.sync_status": "Sync", + "header.sidebar_toggle": "Toggle sidebar", + "header.menu_toggle": "Menu", + "header.quick_help": "Quick Help", "sidebar.filter_placeholder": "Filter files...", "sidebar.tab_vaults": "Vaults", @@ -19,6 +35,20 @@ "sidebar.loading": "Loading...", "sidebar.no_results": "No results", "sidebar.vault_context_all": "All vaults", + "sidebar.saved_searches_tab": "Searches", + "sidebar.saved_dirs_tab": "Folders", + "sidebar.no_saved_searches": "No saved searches", + "sidebar.no_recent_files": "No recent files", + "sidebar.case_sensitive": "Case sensitive", + "sidebar.clear_filter": "Clear", + "sidebar.filter_results_grouped": "Grouped results", + "sidebar.filter_instant": "Instant search", + "sidebar.expand_collapse": "Expand/Collapse", + "sidebar.open_file": "Open file", + "sidebar.file_icons": "Icons", + "sidebar.vault_specific": "Specific vault", + "sidebar.sidebar_dropdown": "Vault context menu", + "sidebar.sidebar_filtering": "Sidebar filtering", "search.operators_help": "Operators: tag:word, vault:name, title:word, path:word, ext:md", "search.results_count": "{count} result(s)", @@ -35,6 +65,21 @@ "search.case_sensitive": "Case sensitive", "search.whole_word": "Whole word", "search.regex": "Regular expression", + "search.dropdown_history": "History", + "search.dropdown_files": "Files", + "search.dropdown_clear_history": "Clear history", + "search.clear": "Clear", + "search.filter_path_title": "Path filters (Alt-F)", + "search.aria_label": "Search suggestions", + "search.sections_all_vaults": "All vaults", + "search.simple_search": "Simple search", + "search.full_text": "Search everywhere", + "search.smart_scoring": "Smart scoring", + "search.highlighted_snippets": "Highlighted snippets", + "search.pagination": "Pagination", + "search.advanced_operators": "Advanced operators", + "search.include_placeholder": "Include: **/*.md, notes/**", + "search.exclude_placeholder": "Exclude: vendor/*, *.lock", "viewer.source": "Source", "viewer.markdown": "Markdown", @@ -52,6 +97,17 @@ "viewer.binary_unsupported": "Unsupported binary file", "viewer.binary_download": "Download file", "viewer.pdf_pages": "{count} pages", + "viewer.on_this_page": "ON THIS PAGE", + "viewer.no_headings": "No headings in this document", + "viewer.metadata_tags": "Tags", + "viewer.metadata_created": "Created", + "viewer.metadata_modified": "Modified", + "viewer.metadata_size": "Size", + "viewer.metadata_vault": "Vault", + "viewer.metadata_path": "Path", + "viewer.breadcrumb_home": "Home", + "viewer.unsupported_file": "This file is binary and cannot be displayed", + "viewer.click_to_download": "Click to download", "editor.save": "Save", "editor.cancel": "Cancel", @@ -64,6 +120,8 @@ "editor.find_whole": "Whole word", "editor.no_results": "No results", "editor.close": "Close", + "editor.forge_help": "Forge editor help", + "editor.forge_close_editor": "Close editor / modal", "ai.toolbar_edit": "Edit", "ai.toolbar_tone": "Tone", @@ -90,6 +148,8 @@ "ai.no_api_key": "No API key configured", "ai.select_text": "Select text to process", "ai.done": "AI: text processed", + "ai.completion_added": "AI: completion added", + "ai.rewrite_done": "AI: text rewritten", "dashboard.welcome": "Welcome to ObsiGate", "dashboard.stats": "Statistics", @@ -103,8 +163,22 @@ "dashboard.no_bookmarks": "No bookmarks", "dashboard.no_conflicts": "No conflicts", "dashboard.no_recent": "No recent files", + "dashboard.no_shares": "No shared documents", + "dashboard.shares": "Shares", "config.title": "Settings", + "config.section_search": "Search settings", + "config.section_perf": "Performance", + "config.section_server": "Server", + "config.section_watcher": "Auto sync", + "config.section_profile": "User profile", + "config.section_ai": "AI API keys", + "config.section_hidden": "Hidden files", + "config.section_webhooks": "Webhooks", + "config.section_shares": "Public shares", + "config.section_backups": "Backups", + "config.section_diag": "Diagnostics", + "config.section_about": "About", "config.profile": "User profile", "config.profile_desc": "Personal preferences to customize your ObsiGate experience.", "config.lang_label": "Preferred language", @@ -130,20 +204,213 @@ "config.diagnostics_desc": "Technical information about the server state.", "config.reindex": "Reindex", "config.reindex_desc": "Rebuild the search index for all vaults.", - "config.client_config": "Client configuration", - "config.server_config": "Server configuration", + "config.client_config": "Client config", + "config.server_config": "Server config", + "config.restart_required": "Restart required", + "config.no_restart": "No restart needed", + "config.note": "Note:", + "config.test": "Test", + "config.debounce_label": "Debounce delay (ms)", + "config.results_per_page_label": "Results per page", + "config.min_query_label": "Min. query length", + "config.timeout_label": "Search timeout (ms)", + "config.max_backups_label": "Max backups per file", + "config.workers_label": "Search workers", + "config.max_content_label": "Max content size (bytes)", + "config.title_boost_label": "Title boost", + "config.tag_boost_label": "Tag boost", + "config.prefix_expansions_label": "Max prefix expansions", + "config.tag_filtering_label": "Tag filtering", + "config.watcher_enabled_label": "Enable watcher", + "config.watcher_polling_label": "Polling mode (fallback)", + "config.watcher_interval_label": "Polling interval (s)", + "config.watcher_debounce_label": "Debounce (s)", + "config.ai_deepseek_label": "DeepSeek API Key", + "config.ai_openrouter_label": "OpenRouter API Key", + "config.ai_gemini_label": "Gemini API Key", + "config.ai_default_provider": "Default provider", + "config.ai_model": "Model", + "config.save_ai_keys": "Save keys", + "config.save_backend": "Save server configuration", + "config.reset": "Reset", + "config.add_webhook": "Add", + "config.webhook_name_placeholder": "Name", + "config.webhook_url_placeholder": "URL", + "config.create_share": "Create share", + "config.shares_empty": "No active shares", + "config.hidden_include_label": "Include hidden files", + "config.hidden_whitelist_label": "Whitelist (comma-separated)", + "config.save_hidden": "Save", "help.title": "ObsiGate Help", "help.shortcuts": "Keyboard shortcuts", "help.search_operators": "Search operators", "help.markdown": "Markdown syntax", "help.about": "About", + "help.quick_help": "Quick Help", + "help.shortcut_palette": "Command palette", + "help.shortcut_palette_cmd": "Command palette (command mode)", + "help.shortcut_focus_search": "Focus search bar", + "help.shortcut_save": "Save", + "help.shortcut_close": "Close editor / modal", + "help.shortcut_forge_help": "Forge editor help", + "help.guide_official": "Official guide", + "help.experience": "Experience", + "help.simple": "Simple", + "help.instant": "Instant", + "help.multi_vault": "Multi-vault", + "help.header_section": "Header", + "help.hamburger_btn": "Hamburger menu button", + "help.sidebar_toggle_btn": "Sidebar toggle button", + "help.logo": "ObsiGate logo", + "help.search_bar": "Search bar", + "help.vault_indicator": "Vault indicator", + "help.menu_options": "Options menu", + "help.sidebar_section": "Sidebar", + "help.sidebar_tabs": "The sidebar has two tabs:", + "help.sidebar_features": "Sidebar features:", + "help.filtering": "Filtering", + "help.quick_select": "Quick select", + "help.resize": "Resize", + "help.hide": "Hide", + "help.content_area": "Content area", + "help.content_shows": "The main area displays:", + "help.breadcrumb": "Breadcrumb", + "help.title_tags": "Title and tags", + "help.action_buttons": "Action buttons", + "help.rendered_content": "Rendered content", + "help.tree_section": "Vault tree", + "help.sidebar_filtering": "Sidebar filtering", + "help.case_sensitive": "Case-sensitive", + "help.clear": "Clear", + "help.results_grouped": "Grouped results", + "help.breadcrumb_reposition": "Breadcrumb and repositioning", + "help.click_vault": "Click the vault", + "help.click_segment": "Click a segment", + "help.auto_scroll": "Auto-scroll", + "help.vault_selector": "Vault selector", + "help.menu_header": "Header menu", + "help.sidebar_dropdown": "Sidebar dropdown", + "help.all_vaults": "All vaults", + "help.vault_specific": "Specific vault", + "help.tabs_section": "Opening tabs", + "help.single_click": "Single click", + "help.double_click": "Double click", + "help.recent_nav": "Recent navigation", + "help.tab_nav": "Tab navigation", + "help.click_tab": "Click a tab", + "help.tab_features": "Features", + "help.tab_bar": "Tab bar", + "help.active_tab": "Active tab", + "help.preview_tab": "Preview", + "help.persistent_tabs": "Persistent tabs", + "help.simple_search": "Simple search", + "help.search_everywhere": "Search everywhere", + "help.smart_scoring": "Smart scoring", + "help.highlighted_snippets": "Highlighted snippets", + "help.pagination": "Pagination", + "help.advanced_operators": "Advanced operators", + "help.search_facets": "Facets", + "help.search_save": "Saved searches", + "help.search_history": "Search history", + "help.search_filters": "Search filters", + "help.mermaid_section": "Mermaid diagrams", + "help.rendering_md": "Rendering in Markdown", + "help.themes": "Themes", + "help.code_preview": "Code + Preview", + "help.zoom_pan": "Zoom & Pan", + "help.export": "Export", + "help.mermaid_templates": "Templates", + "help.theme_section": "Theme", + "help.theme_toggle": "Toggle between themes:", + "help.light": "Light", + "help.dark": "Dark", + "help.context_menu": "Context menu (right click)", + "help.context_actions": "File actions", + "help.new_file": "New file", + "help.new_folder": "New folder", + "help.rename": "Rename", + "help.delete": "Delete", + "help.copy_path": "Copy path", + "help.properties": "Properties", + "help.graph_view": "Graph view", + "help.find_in_page": "Find in page", + "help.find_capabilities": "Regex, whole word, case-sensitive search in the displayed document with DOM TreeWalker.", + "help.file_viewer": "File viewer", + "help.file_actions": "Actions on the open file:", + "help.actions_available": "Buttons available above the content:", + "help.actions_detail": "Buttons available above the content:", + "help.share_button": "Share button", + "help.popout_button": "Dedicated button", + "help.outline_panel": "Outline panel (right)", + "help.backlinks_panel": "Backlinks panel", + "help.fallback_editor": "Fallback editor", + "help.editor_section": "Editor", + "help.toolbar_section": "AI toolbar", + "help.ai_features": "Edit, tone, translate, generate and tools via AI.", + "help.security_section": "Security", + "help.audit_log": "Audit log", + "help.backup_auto": "Auto backup", + "help.atomic_writes": "Atomic writes", + "help.rate_limiting": "Rate limiting", + "help.secret_redaction": "Secret redaction", + "help.syncthing_conflicts": "Syncthing conflicts", + "help.before_write": "Before write", + "help.ci_cd": "CI/CD automation", + "help.pwa_section": "PWA", + "help.external_audit": "External audit", + "help.shortcut_prev_tab": "Previous tab", + "help.shortcut_next_tab": "Next tab", + "help.shortcut_close_tab": "Close tab", + "help.shortcut_close_palette": "Close palette", + "help.shortcut_select": "Open/select", + "help.shortcut_undo": "Undo", + "help.shortcut_redo": "Redo", + "help.advanced_use_cases": "Advanced use cases", + "help.use_cases": "Use cases", + "help.other": "Other", + "help.supported_languages": "Many languages supported", + "help.active_filter_chips": "Active filter chips", + "help.clickable": "Clickable", + "help.breadcrumb_clickable": "Clickable breadcrumb", + "help.autocomplete": "Autocomplete", + "help.drag_drop_tabs": "Drag & drop tabs", + "help.persistent_display": "Persistent display in bar", + "help.close_tab_x": "✕ button", + "help.activation": "Activation", + "help.add_remove": "Add/Remove", + "help.nodes_edges": "Edges", + "help.graph_zoom_pan": "Scroll wheel zoom & pan", + "help.graph_fullscreen": "Full screen & PNG export", + "help.graph_filter_depth": "Filters & depth", + "help.graph_focus": "Focus mode", + "help.graph_navigation": "History navigation ← → ↑", + "help.graph_sticky": "Sticky panels", + "help.graph_preview": "Ctrl+hover", + "help.rendering_images": "Image rendering", + "help.wikilinks": "Wikilinks", + "help.syncthing": "Syncthing conflicts", + "help.public_shares": "Public sharing", + "help.webhooks": "Webhooks", + "help.dashboard": "Dashboard statistics", + "help.pdf_export": "PDF export", + "help.command_palette": "Command palette", + "help.search_dropdown": "Search dropdown", + "help.results_counter": "Results counter", + "help.sort_options": "Sort options", + "help.filter_toggles": "Toggles Aa, wd, .*", + "help.mobile": "Floating results bar", + "help.theme_sync": "Synced theme", + "help.configuration": "Settings", + "help.footer": "© 2026 — Made with ☕, 🎧 and a few", + "help.nights": "sleepless nights 😅", + "help.powered_by": "Powered by Python, FastAPI, vanilla JS, CodeMirror, Mermaid, Lucide Icons and ❀ for Obsidian.", "auth.login_title": "Secure access to your vaults", "auth.username": "Username", "auth.password": "Password", "auth.login_button": "Sign in", - "auth.remember_me": "Remember me", + "auth.remember_me": "Remember me (30 days)", "auth.login_error": "Invalid credentials", "auth.network_error": "Network error — check your connection", "auth.logged_out": "Signed out", @@ -187,6 +454,8 @@ "palette.search_files": "Search files...", "palette.search_commands": "Type a command...", + "palette.mode_files": "Files", + "palette.mode_commands": "Commands", "offline.status": "Offline", "offline.pending": "{count} pending change(s)", @@ -236,6 +505,7 @@ "toast.error_delete": "Delete error", "toast.error_load": "Loading error", "toast.error_network": "Network error", + "toast.error_init": "Initialization error", "toast.reindex_started": "Reindexing...", "toast.reindex_done": "Reindexing complete", "toast.index_reloaded": "Full index reloaded", @@ -244,6 +514,18 @@ "toast.config_saved": "Configuration saved", "toast.config_client_saved": "Client settings saved", "toast.config_reset": "Configuration reset", + "toast.ai_no_key": "No keys to save", + "toast.ai_keys_saved": "API keys saved", + "toast.user_created": "User created", + "toast.user_modified": "User modified", + "toast.user_deleted": "User deleted", + "toast.cannot_delete_self": "Cannot delete your own account", + "toast.url_required": "URL required", + "toast.share_revoked": "Share revoked", + "toast.link_created": "Link created!", + "toast.conflict_resolved": "Conflict resolved", + "toast.search_saved": "Search saved", + "toast.hidden_saved": "✓ Settings saved", "confirm.logout": "Are you sure you want to sign out?", "confirm.delete_file": "Permanently delete this file?", @@ -267,5 +549,7 @@ "vault.reindex": "Reindex vault", "theme.light": "Light", - "theme.dark": "Dark" + "theme.dark": "Dark", + "theme.change": "Change theme", + "theme.title": "Theme" } diff --git a/frontend/locales/fr.json b/frontend/locales/fr.json index 2a9663f..0e27541 100644 --- a/frontend/locales/fr.json +++ b/frontend/locales/fr.json @@ -10,6 +10,22 @@ "header.refresh": "RafraĂźchir", "header.install_app": "Installer l'application", "header.admin_panel": "Administration", + "header.menu_config": "Configurations", + "header.menu_config_desc": "ParamĂštres de l'application", + "header.menu_help": "Guide d'utilisation", + "header.menu_help_desc": "Ouvrir l'aide", + "header.menu_about": "À propos", + "header.menu_about_desc": "Version, crĂ©dits & info", + "header.menu_profile": "Profil", + "header.menu_profile_desc": "Langue & prĂ©fĂ©rences", + "header.menu_logout": "DĂ©connexion", + "header.menu_logout_desc": "Quitter la session", + "header.menu_admin": "Administration", + "header.menu_admin_desc": "GĂ©rer les utilisateurs", + "header.sync_status": "Synchronisation", + "header.sidebar_toggle": "Afficher/Masquer la sidebar", + "header.menu_toggle": "Menu", + "header.quick_help": "Raccourcis & Astuces", "sidebar.filter_placeholder": "Filtrer fichiers...", "sidebar.tab_vaults": "Vaults", @@ -19,6 +35,20 @@ "sidebar.loading": "Chargement...", "sidebar.no_results": "Aucun rĂ©sultat", "sidebar.vault_context_all": "Toutes les vaults", + "sidebar.saved_searches_tab": "Recherches", + "sidebar.saved_dirs_tab": "RĂ©pertoires", + "sidebar.no_saved_searches": "Aucune recherche sauvegardĂ©e", + "sidebar.no_recent_files": "Aucun fichier rĂ©cent", + "sidebar.case_sensitive": "Respecter la casse", + "sidebar.clear_filter": "Effacer", + "sidebar.filter_results_grouped": "RĂ©sultats groupĂ©s", + "sidebar.filter_instant": "Recherche instantanĂ©e", + "sidebar.expand_collapse": "DĂ©velopper/RĂ©duire", + "sidebar.open_file": "Ouvrir un fichier", + "sidebar.file_icons": "IcĂŽnes", + "sidebar.vault_specific": "Vault spĂ©cifique", + "sidebar.sidebar_dropdown": "Menu contextuel vault", + "sidebar.sidebar_filtering": "Filtrage de la sidebar", "search.operators_help": "OpĂ©rateurs : tag:mot, vault:nom, title:mot, path:mot, ext:md", "search.results_count": "{count} rĂ©sultat(s)", @@ -35,6 +65,21 @@ "search.case_sensitive": "Respecter la casse", "search.whole_word": "Mot entier", "search.regex": "Expression rĂ©guliĂšre", + "search.dropdown_history": "Historique", + "search.dropdown_files": "Fichiers", + "search.dropdown_clear_history": "Effacer l'historique", + "search.clear": "Effacer", + "search.filter_path_title": "Filtres de chemin (Alt-F)", + "search.aria_label": "Suggestions de recherche", + "search.sections_all_vaults": "Tous les vaults", + "search.simple_search": "Recherche simple", + "search.full_text": "Recherche dans tout", + "search.smart_scoring": "Scoring intelligent", + "search.highlighted_snippets": "Snippets surlignĂ©s", + "search.pagination": "Pagination", + "search.advanced_operators": "OpĂ©rateurs avancĂ©s", + "search.include_placeholder": "Inclure: **/*.md, notes/**", + "search.exclude_placeholder": "Exclure: vendor/*, *.lock", "viewer.source": "Source", "viewer.markdown": "Markdown", @@ -52,6 +97,17 @@ "viewer.binary_unsupported": "Fichier binaire non supportĂ©", "viewer.binary_download": "TĂ©lĂ©charger le fichier", "viewer.pdf_pages": "{count} pages", + "viewer.on_this_page": "SUR CETTE PAGE", + "viewer.no_headings": "Aucun titre dans ce document", + "viewer.metadata_tags": "Tags", + "viewer.metadata_created": "Créé", + "viewer.metadata_modified": "ModifiĂ©", + "viewer.metadata_size": "Taille", + "viewer.metadata_vault": "Vault", + "viewer.metadata_path": "Chemin", + "viewer.breadcrumb_home": "Accueil", + "viewer.unsupported_file": "Ce fichier est binaire et ne peut pas ĂȘtre affichĂ©", + "viewer.click_to_download": "Cliquez pour le tĂ©lĂ©charger", "editor.save": "Enregistrer", "editor.cancel": "Annuler", @@ -64,6 +120,8 @@ "editor.find_whole": "Mot entier", "editor.no_results": "Aucun rĂ©sultat", "editor.close": "Fermer", + "editor.forge_help": "Aide de l'Ă©diteur Forge", + "editor.forge_close_editor": "Fermer l'Ă©diteur / modale", "ai.toolbar_edit": "Éditer", "ai.toolbar_tone": "Ton", @@ -90,6 +148,8 @@ "ai.no_api_key": "Aucune clĂ© API configurĂ©e", "ai.select_text": "SĂ©lectionnez du texte Ă  traiter", "ai.done": "AI: texte traitĂ©", + "ai.completion_added": "AI: complĂ©tion ajoutĂ©e", + "ai.rewrite_done": "AI: texte réécrit", "dashboard.welcome": "Bienvenue dans ObsiGate", "dashboard.stats": "Statistiques", @@ -103,8 +163,22 @@ "dashboard.no_bookmarks": "Aucun favori", "dashboard.no_conflicts": "Aucun conflit", "dashboard.no_recent": "Aucun fichier rĂ©cent", + "dashboard.no_shares": "Aucun document partagĂ©", + "dashboard.shares": "Partages", "config.title": "Configuration", + "config.section_search": "ParamĂštres de recherche", + "config.section_perf": "Performance", + "config.section_server": "Serveur", + "config.section_watcher": "Synchronisation automatique", + "config.section_profile": "Profil utilisateur", + "config.section_ai": "ClĂ©s API IA", + "config.section_hidden": "Fichiers cachĂ©s", + "config.section_webhooks": "Webhooks", + "config.section_shares": "Partages publics", + "config.section_backups": "Sauvegardes", + "config.section_diag": "Diagnostics", + "config.section_about": "À propos", "config.profile": "Profil utilisateur", "config.profile_desc": "PrĂ©fĂ©rences personnelles pour personnaliser l'expĂ©rience ObsiGate.", "config.lang_label": "Langue prĂ©fĂ©rĂ©e", @@ -132,18 +206,211 @@ "config.reindex_desc": "Reconstruire l'index de recherche pour toutes les vaults.", "config.client_config": "Configuration client", "config.server_config": "Configuration serveur", + "config.restart_required": "RedĂ©marrage requis", + "config.no_restart": "RedĂ©marrage non requis", + "config.note": "Note :", + "config.test": "Tester", + "config.debounce_label": "DĂ©lai debounce (ms)", + "config.results_per_page_label": "RĂ©sultats par page", + "config.min_query_label": "Longueur min. requĂȘte", + "config.timeout_label": "Timeout recherche (ms)", + "config.max_backups_label": "Max backups par fichier", + "config.workers_label": "Workers de recherche", + "config.max_content_label": "Taille max contenu (octets)", + "config.title_boost_label": "Boost titre", + "config.tag_boost_label": "Boost tags", + "config.prefix_expansions_label": "Expansions prĂ©fixe max", + "config.tag_filtering_label": "Filtrage de tags", + "config.watcher_enabled_label": "Activer la surveillance", + "config.watcher_polling_label": "Mode polling (fallback)", + "config.watcher_interval_label": "Intervalle polling (s)", + "config.watcher_debounce_label": "Debounce (s)", + "config.ai_deepseek_label": "DeepSeek API Key", + "config.ai_openrouter_label": "OpenRouter API Key", + "config.ai_gemini_label": "Gemini API Key", + "config.ai_default_provider": "Fournisseur par dĂ©faut", + "config.ai_model": "ModĂšle", + "config.save_ai_keys": "Enregistrer les clĂ©s", + "config.save_backend": "Sauvegarder la configuration serveur", + "config.reset": "RĂ©initialiser", + "config.add_webhook": "Ajouter", + "config.webhook_name_placeholder": "Nom", + "config.webhook_url_placeholder": "URL", + "config.create_share": "CrĂ©er un partage", + "config.shares_empty": "Aucun partage actif", + "config.hidden_include_label": "Inclure les fichiers cachĂ©s", + "config.hidden_whitelist_label": "Whitelist (sĂ©parĂ©s par des virgules)", + "config.save_hidden": "Enregistrer", "help.title": "Aide ObsiGate", "help.shortcuts": "Raccourcis clavier", "help.search_operators": "OpĂ©rateurs de recherche", "help.markdown": "Syntaxe Markdown", "help.about": "À propos", + "help.quick_help": "Raccourcis & Astuces", + "help.shortcut_palette": "Palette de commandes", + "help.shortcut_palette_cmd": "Palette de commandes (mode commande)", + "help.shortcut_focus_search": "Focus barre de recherche", + "help.shortcut_save": "Sauvegarder", + "help.shortcut_close": "Fermer l'Ă©diteur / modale", + "help.shortcut_forge_help": "Aide de l'Ă©diteur Forge", + "help.guide_official": "Guide officiel", + "help.experience": "ExpĂ©rience", + "help.simple": "Simple", + "help.instant": "InstantanĂ©e", + "help.multi_vault": "Multi-vault", + "help.header_section": "En-tĂȘte", + "help.hamburger_btn": "Bouton menu hamburger", + "help.sidebar_toggle_btn": "Bouton toggle sidebar", + "help.logo": "Logo ObsiGate", + "help.search_bar": "Barre de recherche", + "help.vault_indicator": "Indicateur de vault", + "help.menu_options": "Menu Options", + "help.sidebar_section": "Sidebar (barre latĂ©rale)", + "help.sidebar_tabs": "La sidebar est divisĂ©e en deux onglets :", + "help.sidebar_features": "FonctionnalitĂ©s de la sidebar :", + "help.filtering": "Filtrage", + "help.quick_select": "SĂ©lection rapide", + "help.resize": "Redimensionnement", + "help.hide": "Masquage", + "help.content_area": "Zone de contenu", + "help.content_shows": "La zone centrale affiche :", + "help.breadcrumb": "Breadcrumb", + "help.title_tags": "Titre et tags", + "help.action_buttons": "Boutons d'action", + "help.rendered_content": "Contenu rendu", + "help.tree_section": "Arborescence des vaults", + "help.sidebar_filtering": "Filtrage de la sidebar", + "help.case_sensitive": "Case-sensitive", + "help.clear": "Effacer", + "help.results_grouped": "RĂ©sultats groupĂ©s", + "help.breadcrumb_reposition": "Breadcrumb et repositionnement", + "help.click_vault": "Cliquez sur le vault", + "help.click_segment": "Cliquez sur un segment", + "help.auto_scroll": "Auto-scroll", + "help.vault_selector": "SĂ©lection de vault", + "help.menu_header": "Menu header", + "help.sidebar_dropdown": "Sidebar dropdown", + "help.all_vaults": "Tous les vaults", + "help.vault_specific": "Vault spĂ©cifique", + "help.tabs_section": "Ouverture d'onglets", + "help.single_click": "Simple clic", + "help.double_click": "Double clic", + "help.recent_nav": "Navigation rĂ©cente", + "help.tab_nav": "Navigation entre onglets", + "help.click_tab": "Clic sur un onglet", + "help.tab_features": "FonctionnalitĂ©s", + "help.tab_bar": "Barre d'onglets", + "help.active_tab": "Onglet actif", + "help.preview_tab": "PrĂ©visualisation", + "help.persistent_tabs": "Onglets persistants", + "help.simple_search": "Recherche simple", + "help.search_everywhere": "Recherche dans tout", + "help.smart_scoring": "Scoring intelligent", + "help.highlighted_snippets": "Snippets surlignĂ©s", + "help.pagination": "Pagination", + "help.advanced_operators": "OpĂ©rateurs avancĂ©s", + "help.search_facets": "Facettes", + "help.search_save": "Recherches sauvegardĂ©es", + "help.search_history": "Historique de recherche", + "help.search_filters": "Filtres de recherche", + "help.mermaid_section": "Diagrammes Mermaid", + "help.rendering_md": "Rendu dans le Markdown", + "help.themes": "ThĂšmes", + "help.code_preview": "Code + PrĂ©visualisation", + "help.zoom_pan": "Zoom & Pan", + "help.export": "Export", + "help.mermaid_templates": "Templates", + "help.theme_section": "ThĂšme", + "help.theme_toggle": "Basculez entre les thĂšmes :", + "help.light": "Clair", + "help.dark": "Sombre", + "help.context_menu": "Menu contextuel (clic droit)", + "help.context_actions": "Actions sur fichiers", + "help.new_file": "Nouveau fichier", + "help.new_folder": "Nouveau dossier", + "help.rename": "Renommer", + "help.delete": "Supprimer", + "help.copy_path": "Copier le chemin", + "help.properties": "PropriĂ©tĂ©s", + "help.graph_view": "Vue graphe", + "help.find_in_page": "Recherche dans la page", + "help.find_capabilities": "Recherche regex, mot entier, case-sensitive dans le document affichĂ© avec TreeWalker DOM.", + "help.file_viewer": "Visionneur de fichier", + "help.file_actions": "Actions sur le fichier ouvert :", + "help.actions_available": "Boutons disponibles au-dessus du contenu :", + "help.actions_detail": "Boutons disponibles au-dessus du contenu :", + "help.share_button": "Bouton Partager", + "help.popout_button": "Bouton dĂ©diĂ©", + "help.outline_panel": "Panneau Plan (droite)", + "help.backlinks_panel": "Panneau Backlinks", + "help.fallback_editor": "Éditeur de fallback", + "help.editor_section": "Éditeur", + "help.toolbar_section": "Barre d'outils AI", + "help.ai_features": "Édition, ton, traduction, gĂ©nĂ©ration et outils via AI.", + "help.security_section": "SĂ©curitĂ©", + "help.audit_log": "Audit log", + "help.backup_auto": "Backup automatique", + "help.atomic_writes": "Atomic writes", + "help.rate_limiting": "Rate limiting", + "help.secret_redaction": "Redaction de secrets", + "help.syncthing_conflicts": "Conflits Syncthing", + "help.before_write": "Avant Ă©criture", + "help.ci_cd": "Automatisation CI/CD", + "help.pwa_section": "PWA", + "help.external_audit": "Audit externe", + "help.shortcut_prev_tab": "Onglet prĂ©cĂ©dent", + "help.shortcut_next_tab": "Onglet suivant", + "help.shortcut_close_tab": "Fermer l'onglet", + "help.shortcut_close_palette": "Fermer la palette", + "help.shortcut_select": "Ouvrir/sĂ©lectionner", + "help.shortcut_undo": "Annuler", + "help.shortcut_redo": "Refaire", + "help.advanced_use_cases": "Cas d'usage avancĂ©s", + "help.use_cases": "Cas d'usage", + "help.other": "Autres", + "help.supported_languages": "Support de nombreux langages", + "help.active_filter_chips": "Chips de filtres actifs", + "help.clickable": "Cliquable", + "help.breadcrumb_clickable": "Breadcrumb cliquable", + "help.autocomplete": "AutocomplĂ©tion", + "help.drag_drop_tabs": "Drag & drop des onglets", + "help.persistent_display": "Affichage persistant dans la barre", + "help.close_tab_x": "Bouton ✕", + "help.activation": "Activation", + "help.add_remove": "Ajout/Suppression", + "help.nodes_edges": "ArĂȘtes", + "help.graph_zoom_pan": "Zoom & pan molette", + "help.graph_fullscreen": "Plein Ă©cran & export PNG", + "help.graph_filter_depth": "Filtres & profondeur", + "help.graph_focus": "Mode focus", + "help.graph_navigation": "Navigation historique ← → ↑", + "help.graph_sticky": "Sticky panels", + "help.graph_preview": "Ctrl+survol", + "help.rendering_images": "Rendu d'images", + "help.wikilinks": "Wikilinks", + "help.syncthing": "Conflits Syncthing", + "help.public_shares": "Publication publique", + "help.webhooks": "Webhooks", + "help.dashboard": "Dashboard statistiques", + "help.pdf_export": "Export PDF", + "help.command_palette": "Palette de commande", + "help.search_dropdown": "Dropdown de recherche", + "help.results_counter": "Compteur de rĂ©sultats", + "help.sort_options": "Options de tri", + "help.filter_toggles": "Toggles Aa, wd, .*", + "help.mobile": "Barre flottante rĂ©sultats", + "help.theme_sync": "ThĂšme synchronisĂ©", + "help.configuration": "Configuration", + "help.footer": "© 2026 — Fait avec ☕, 🎧 et quelques", + "help.nights": "nuits blanches 😅", + "help.powered_by": "PropulsĂ© par Python, FastAPI, vanilla JS, CodeMirror, Mermaid, Lucide Icons et ❀ pour Obsidian.", - "auth.login_title": "Connexion", + "auth.login_title": "AccĂšs sĂ©curisĂ© Ă  vos vaults", "auth.username": "Nom d'utilisateur", "auth.password": "Mot de passe", "auth.login_button": "Se connecter", - "auth.remember_me": "Se souvenir de moi", + "auth.remember_me": "Se souvenir de moi (30 jours)", "auth.login_error": "Identifiants invalides", "auth.network_error": "Erreur rĂ©seau — vĂ©rifiez votre connexion", "auth.logged_out": "DĂ©connectĂ©", @@ -187,6 +454,8 @@ "palette.search_files": "Rechercher un fichier...", "palette.search_commands": "Tapez une commande...", + "palette.mode_files": "Fichiers", + "palette.mode_commands": "Commandes", "offline.status": "Hors-ligne", "offline.pending": "{count} modification(s) en attente", @@ -236,6 +505,7 @@ "toast.error_delete": "Erreur de suppression", "toast.error_load": "Erreur de chargement", "toast.error_network": "Erreur rĂ©seau", + "toast.error_init": "Erreur lors de l'initialisation", "toast.reindex_started": "RĂ©indexation en cours...", "toast.reindex_done": "RĂ©indexation terminĂ©e", "toast.index_reloaded": "Index complet rechargĂ©", @@ -244,6 +514,18 @@ "toast.config_saved": "Configuration sauvegardĂ©e", "toast.config_client_saved": "ParamĂštres client sauvegardĂ©s", "toast.config_reset": "Configuration rĂ©initialisĂ©e", + "toast.ai_no_key": "Aucune clĂ© Ă  sauvegarder", + "toast.ai_keys_saved": "ClĂ©s API sauvegardĂ©es", + "toast.user_created": "Utilisateur créé", + "toast.user_modified": "Utilisateur modifiĂ©", + "toast.user_deleted": "Utilisateur supprimĂ©", + "toast.cannot_delete_self": "Impossible de supprimer son propre compte", + "toast.url_required": "URL requise", + "toast.share_revoked": "Partage rĂ©voquĂ©", + "toast.link_created": "Lien créé !", + "toast.conflict_resolved": "Conflit rĂ©solu", + "toast.search_saved": "Recherche sauvegardĂ©e", + "toast.hidden_saved": "✓ ParamĂštres sauvegardĂ©s", "confirm.logout": "Voulez-vous vraiment vous dĂ©connecter ?", "confirm.delete_file": "Supprimer dĂ©finitivement ce fichier ?", @@ -267,5 +549,7 @@ "vault.reindex": "RĂ©indexer la vault", "theme.light": "Clair", - "theme.dark": "Sombre" + "theme.dark": "Sombre", + "theme.change": "Changer le thĂšme", + "theme.title": "ThĂšme" }