fix: wrap 73 LI descriptions across all help sections with data-i18n
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 10s

Pattern: <li><strong>TERM</strong> : French desc → wrapped in <span data-i18n>
Covers: Navigation, Tabs, Search, Tags, Files, Editing, Graph,
AI Editor, Palette, Shortcuts, Sharing, Webhooks, Backups,
Security, Customization, Tips sections
901 locale keys, 442 data-i18n attributes
This commit is contained in:
2026-06-18 15:59:19 -04:00
parent 62378a9352
commit 661989d85d
4 changed files with 462 additions and 219 deletions
+168
View File
@@ -0,0 +1,168 @@
"""Wrap ALL <li> French descriptions after <strong> in data-i18n spans across entire help guide."""
import re, json, hashlib
with open('frontend/index.html', 'r', encoding='utf-8') as f:
html = f.read()
with open('frontend/locales/fr.json', 'r', encoding='utf-8') as f: fr = json.load(f)
with open('frontend/locales/en.json', 'r', encoding='utf-8') as f: en = json.load(f)
# Find help body boundaries
start = html.find('id="help-modal"')
depth = 0
pos = start
while pos < len(html):
no = html.find('<div', pos+1)
nc = html.find('</div>', pos+1)
if nc == -1: break
if no != -1 and no < nc: depth += 1; pos = no
else:
if depth == 0: end = nc + 6; break
depth -= 1; pos = nc
help_body = html[start:end]
count = 0
# ── Find ALL patterns: <strong...>TERM</strong> FOLLOWED_BY FRENCH_TEXT ──
# Pattern 1: <strong...>TERM</strong> : French text\n
# Pattern 2: <strong...>TERM</strong>\n : French text\n
# Pattern 3: <strong...>TERM</strong> (context) : French text\n
# First, find all <li> blocks and extract <strong> + trailing text
li_pattern = re.compile(
r'(<li>\s*(<strong[^>]*>[^<]+</strong>)\s*'
r'(:?\s*(?:\([^)]+\)\s*:?\s*)?' # optional (context) :
r')([^<]{3,300})' # French description (until next <)
, re.DOTALL)
translations = {}
to_fix = []
for m in re.finditer(r'<li>\s*(<strong[^>]*>[^<]+</strong>)\s*(:?\s*(?:\([^)]+\)\s*:?\s*)?)([^<]{3,300})', help_body):
strong_tag = m.group(1)
connector = m.group(2) # e.g. " : " or " (desktop) : " or just " "
desc = m.group(3).strip()
# Skip if already wrapped in span
full_match = m.group(0)
if '<span data-i18n=' in full_match:
continue
# Skip if description has no French chars
if not any(c in desc for c in 'éèêëàâîïôùûçÉÈÊËÀÂÎÏÔÙÛÇ'):
continue
# Skip if description is English-only
if desc in ('Show/hide the sidebar', 'Return to home', 'Global search with autocomplete'):
continue
# Generate key
full_text = (connector + desc).strip()
h = hashlib.md5(full_text.encode()).hexdigest()[:8]
key = f'help.desc_{h}'
if key not in fr:
fr[key] = full_text
en[key] = full_text # placeholder
to_fix.append((strong_tag, connector, desc, key, full_text))
translations[key] = full_text
print(f"Found {len(to_fix)} LI descriptions to wrap")
# ── Apply fixes ──
for strong_tag, connector, desc, key, full_text in to_fix:
# Build the old pattern to replace
old = f'{strong_tag}{connector}{desc}'
new = f'{strong_tag}<span data-i18n="{key}">{connector}{desc}</span>'
if old in html:
html = html.replace(old, new)
count += 1
print(f"Applied {count} fixes")
# ── Translate all new keys ──
en_translations = {
'Recherche globale avec autocomplétion': 'Global search with autocomplete',
'Affiche le contexte actif (All, vault1, etc.)': 'Shows the active context (All, vault1, etc.)',
'Accès aux paramètres, thème, aide': 'Access to settings, theme, help',
'Arborescence des fichiers et dossiers': 'File and folder tree',
'Nuage de tags cliquables': 'Clickable tag cloud',
'Barre de recherche pour filtrer fichiers/tags': 'Search bar to filter files/tags',
'Dropdown pour changer de vault': 'Dropdown to change vault',
'Glissez le bord droit pour ajuster la largeur': 'Drag the right edge to adjust width',
"Cliquez sur l'icône sidebar dans le header": 'Click the sidebar icon in the header',
'Chemin du fichier (cliquable pour repositionner la sidebar)': 'File path (clickable to reposition sidebar)',
'Métadonnées du fichier': 'File metadata',
'Copier, Source, Télécharger, Éditer, Ouvrir dans nouvelle fenêtre': 'Copy, Source, Download, Edit, Open in new window',
'Markdown avec wikilinks et images': 'Markdown with wikilinks and images',
'Affiche/masque la sidebar': 'Show/hide the sidebar',
'Masque la sidebar pour plus d\'espace': 'Hide the sidebar for more space',
"Retour à l'accueil": 'Return to home',
'Recherche globale avec autocomplétion': 'Global search with autocomplete',
'Complète automatiquement le texte là où se trouve le curseur': 'Automatically completes text where the cursor is',
"Améliore la qualité, la clarté et le flux du texte": 'Improves quality, clarity and flow of the text',
"Corrige les fautes d'orthographe et de grammaire": 'Fixes spelling and grammar errors',
"Rend le texte plus concis tout en préservant l'information": 'Makes text more concise while preserving information',
'Ajoute des détails, exemples ou explications': 'Adds details, examples or explanations',
'Simplifie le langage, évite le jargon': 'Simplifies language, avoids jargon',
"Réécrit le texte selon vos instructions personnalisées": 'Rewrites the text according to your custom instructions',
'Explique le texte sélectionné de façon claire': 'Clearly explains the selected text',
'Résume le texte de façon concise': 'Concisely summarizes the text',
"Continue l'écriture à partir du texte": 'Continues writing from the text',
'Ton formel et professionnel': 'Formal and professional tone',
'Ton décontracté et conversationnel': 'Casual and conversational tone',
'Traduit le texte sélectionné vers une autre langue': 'Translates the selected text to another language',
'Génère du contenu à partir de la sélection': 'Generates content from the selection',
'Fichiers (carrés) et dossiers (cercles) avec icônes': 'Files (squares) and folders (circles) with icons',
'Molette pour zoomer, cliquer-glisser pour se déplacer': 'Scroll wheel to zoom, click-drag to move',
'Votre choix est sauvegardé en localStorage': 'Your choice is saved in localStorage',
"Dans la barre d'outils (le cas échéant)": 'In the toolbar (when available)',
"Les blocs de code s'adaptent au thème": 'Code blocks adapt to the theme',
'Les 50 dernières recherches (localStorage)': 'The 50 most recent searches (localStorage)',
'Restent ouverts jusqu\'à fermeture manuelle': 'Stay open until manually closed',
'Les tags s\'adaptent au vault sélectionné': 'Tags adapt to the selected vault',
'Stats index, mémoire, moteur de recherche': 'Index stats, memory, search engine',
'Délai debounce, résultats par page, timeout': 'Debounce delay, results per page, timeout',
'Workers, boosts TF-IDF, expansions préfixe': 'Workers, TF-IDF boosts, prefix expansions',
'Patterns pour masquer les tags template': 'Patterns to hide template tags',
'Forcer un rescan des vaults': 'Force a vault rescan',
'↑/↓ pour naviguer, Enter pour sélectionner': '↑/↓ to navigate, Enter to select',
'Chaque type de fichier a son icône (markdown, code, etc.)': 'Each file type has its icon (markdown, code, etc.)',
'Un onglet temporaire (italique) est remplacé': 'A temporary tab (italic) is replaced',
'L\'onglet "Récent" dans la sidebar liste vos': 'The "Recent" tab in the sidebar lists your',
'Ouvre le fichier dans un onglet temporaire (aperçu,': 'Opens the file in a temporary tab (preview,',
'Complétion, réécriture, traduction (voir': 'Completion, rewrite, translation (see',
'Résultats classés par pertinence TF-IDF': 'Results ranked by TF-IDF relevance',
'Auto-save silencieux après 2s d\'inactivité': 'Silent auto-save after 2s of inactivity',
'Contrôle la profondeur d\'exploration (0-3)': 'Controls exploration depth (0-3)',
"N'affiche que les nœuds avec un tag spécifique": 'Only shows nodes with a specific tag',
'Métadonnées du nœud (tags, liens, chemin)': 'Node metadata (tags, links, path)',
'Aperçu du contenu de la note sans naviguer': 'Preview of note content without navigating',
'Navigation facilitée dans les fichiers longs': 'Easier navigation in long files',
'Bouton "×" pour réinitialiser le filtre': '"×" button to reset the filter',
'Sélection rapide en haut de l\'onglet Vault': 'Quick select at the top of the Vault tab',
'Affichage horizontal avec le nom du fichier': 'Horizontal display with the file name',
}
for k, v in fr.items():
if k.startswith('help.desc_') and en.get(k) == v:
if v in en_translations:
en[k] = en_translations[v]
# Also try to match substrings
for k, v in fr.items():
if k.startswith('help.desc_') and en.get(k) == v:
for fr_t, en_t in en_translations.items():
if fr_t in v and len(fr_t) > 15:
en[k] = v.replace(fr_t, en_t)
break
with open('frontend/index.html', 'w', encoding='utf-8') as f: f.write(html)
with open('frontend/locales/fr.json', 'w', encoding='utf-8') as f: json.dump(fr, f, ensure_ascii=False, indent=2)
with open('frontend/locales/en.json', 'w', encoding='utf-8') as f: json.dump(en, f, ensure_ascii=False, indent=2)
total = len(re.findall(r'data-i18n(?:-[a-z]+)?="', html))
print(f'Total tags: {total}, Keys: {len(fr)}')
still_fr = sum(1 for k in en if k.startswith('help.desc_') and en[k] == fr.get(k, ''))
print(f'Untranslated help.desc: {still_fr}')
+146 -217
View File
@@ -2839,9 +2839,8 @@
sur le nom du fichier
</li>
<li>
<strong data-i18n="sidebar.file_icons">Icônes</strong> : Chaque type de
fichier a son icône (markdown, code, etc.)
</li>
<strong data-i18n="sidebar.file_icons">Icônes</strong><span data-i18n="help.desc_fdeaf803"> : Chaque type de
fichier a son icône (markdown, code, etc.)</span></li>
</ul>
<h3 data-i18n="help.sidebar_filtering">Filtrage de la sidebar</h3>
@@ -2859,9 +2858,8 @@
"Aa" pour respecter la casse
</li>
<li>
<strong data-i18n="help.clear">Effacer</strong> : Bouton "×" pour
réinitialiser le filtre
</li>
<strong data-i18n="help.clear">Effacer</strong><span data-i18n="help.desc_a4a4e21b"> : Bouton "×" pour
réinitialiser le filtre</span></li>
<li>
<strong data-i18n="help.results_grouped">Résultats groupés</strong> :
Affichage par vault avec chemins complets
@@ -2898,9 +2896,8 @@
"Vault" dans le menu Options
</li>
<li>
<strong data-i18n="help.sidebar_dropdown">Sidebar dropdown</strong> :
Sélection rapide en haut de l'onglet Vaults
</li>
<strong data-i18n="help.sidebar_dropdown">Sidebar dropdown</strong><span data-i18n="help.desc_085ec31f"> :
Sélection rapide en haut de l'onglet Vaults</span></li>
<li>
<strong data-i18n="help.all_vaults">Tous les vaults</strong> : Vue
globale de tous vos contenus
@@ -2922,19 +2919,17 @@
<h3 data-i18n="help.tabs_section">Ouverture d'onglets</h3>
<ul>
<li>
<strong data-i18n="help.single_click">Simple clic</strong> : Ouvre le
<strong data-i18n="help.single_click">Simple clic</strong><span data-i18n="help.desc_e3fce7a3"> : Ouvre le
fichier dans un onglet temporaire (aperçu,
italique)
</li>
italique)</span></li>
<li>
<strong data-i18n="help.double_click">Double clic</strong> : Ouvre le
fichier dans un onglet persistant
</li>
<li>
<strong data-i18n="help.recent_nav">Navigation récente</strong> :
<strong data-i18n="help.recent_nav">Navigation récente</strong><span data-i18n="help.desc_d186a19e"> :
L'onglet "Récent" dans la sidebar liste vos
derniers fichiers
</li>
derniers fichiers</span></li>
</ul>
<h3 data-i18n="help.tab_nav">Navigation entre onglets</h3>
@@ -2947,9 +2942,8 @@
<strong>Ctrl+Tab</strong> : Onglet suivant
</li>
<li>
<strong>Ctrl+Shift+Tab</strong> : Onglet
précédent
</li>
<strong>Ctrl+Shift+Tab</strong><span data-i18n="help.desc_e5246734"> : Onglet
précédent</span></li>
<li>
<strong>Ctrl+W</strong> : Fermer l'onglet
actif
@@ -2963,23 +2957,19 @@
<h3 data-i18n="help.tab_features">Fonctionnalités</h3>
<ul>
<li>
<strong data-i18n="help.tab_bar">Barre d'onglets</strong> : Affichage
<strong data-i18n="help.tab_bar">Barre d'onglets</strong><span data-i18n="help.desc_170a6982"> : Affichage
horizontal avec le nom du fichier et son
icône
</li>
icône</span></li>
<li>
<strong data-i18n="help.active_tab">Onglet actif</strong> : Surligné en
couleur d'accentuation
</li>
<strong data-i18n="help.active_tab">Onglet actif</strong><span data-i18n="help.desc_6b649b1e"> : Surligné en
couleur d'accentuation</span></li>
<li>
<strong data-i18n="help.preview_tab">Prévisualisation</strong> : Un
<strong data-i18n="help.preview_tab">Prévisualisation</strong><span data-i18n="help.desc_ef1531ce"> : Un
onglet temporaire (italique) est remplacé
par le prochain clic
</li>
par le prochain clic</span></li>
<li>
<strong data-i18n="help.persistent_tabs">Onglets persistants</strong> :
Restent ouverts jusqu'à fermeture manuelle
</li>
<strong data-i18n="help.persistent_tabs">Onglets persistants</strong><span data-i18n="help.desc_5ab8c78d"> :
Restent ouverts jusqu'à fermeture manuelle</span></li>
</ul>
</section>
@@ -2997,17 +2987,15 @@
Titre, contenu, tags, chemins
</li>
<li>
<strong data-i18n="help.smart_scoring">Scoring intelligent</strong> :
Résultats classés par pertinence TF-IDF
</li>
<strong data-i18n="help.smart_scoring">Scoring intelligent</strong><span data-i18n="help.desc_00b9572b"> :
Résultats classés par pertinence TF-IDF</span></li>
<li>
<strong data-i18n="help.highlighted_snippets">Snippets surlignés</strong> :
Extraits avec termes en surbrillance
</li>
<li>
<strong data-i18n="help.pagination">Pagination</strong> : Navigation par
pages de 50 résultats
</li>
<strong data-i18n="help.pagination">Pagination</strong><span data-i18n="help.desc_53bfaeca"> : Navigation par
pages de 50 résultats</span></li>
</ul>
<h3 data-i18n="help.advanced_operators">Opérateurs avancés</h3>
@@ -3064,9 +3052,8 @@
</p>
<ul>
<li>
<strong data-i18n="search.dropdown_history">Historique</strong> : Les 50
dernières recherches (localStorage)
</li>
<strong data-i18n="search.dropdown_history">Historique</strong><span data-i18n="help.desc_4de7e318"> : Les 50
dernières recherches (localStorage)</span></li>
<li>
<strong data-i18n="palette.mode_files">Fichiers</strong> : Suggestions de
titres de fichiers
@@ -3076,9 +3063,8 @@
avec compteurs
</li>
<li>
<strong>Navigation clavier</strong> : ↑/↓
pour naviguer, Enter pour sélectionner
</li>
<strong>Navigation clavier</strong><span data-i18n="help.desc_6b8fc728"> : ↑/↓
pour naviguer, Enter pour sélectionner</span></li>
</ul>
<h3 data-i18n="help.active_filter_chips">Chips de filtres actifs</h3>
@@ -3096,9 +3082,8 @@
"×" pour retirer un filtre
</li>
<li>
<strong>Couleurs</strong> : Chaque type
d'opérateur a sa couleur
</li>
<strong>Couleurs</strong><span data-i18n="help.desc_6ebebdfd"> : Chaque type
d'opérateur a sa couleur</span></li>
</ul>
<h3 data-i18n="help.a648c49e">Facettes et tri</h3>
@@ -3108,21 +3093,18 @@
</p>
<ul>
<li>
<strong>Facettes tags</strong> : Compteurs
par tag dans les résultats
</li>
<strong>Facettes tags</strong><span data-i18n="help.desc_cf5ccd40"> : Compteurs
par tag dans les résultats</span></li>
<li>
<strong>Facettes vaults</strong> : Compteurs
par vault
</li>
<li>
<strong>Tri par pertinence</strong> : Score
TF-IDF (défaut)
</li>
<strong>Tri par pertinence</strong><span data-i18n="help.desc_9fec424d"> : Score
TF-IDF (défaut)</span></li>
<li>
<strong>Tri par date</strong> : Dernière
modification
</li>
<strong>Tri par date</strong><span data-i18n="help.desc_42a81347"> : Dernière
modification</span></li>
</ul>
</section>
@@ -3140,17 +3122,15 @@
des frontmatters YAML et inline (#tag)
</li>
<li>
<strong data-i18n="help.clickable">Cliquable</strong> : Cliquez pour
filtrer les résultats
</li>
<strong data-i18n="help.clickable">Cliquable</strong><span data-i18n="help.desc_6caffeed"> : Cliquez pour
filtrer les résultats</span></li>
<li>
<strong data-i18n="help.filtering">Filtrage</strong> : Utilisez la
barre de filtrage pour chercher un tag
</li>
<li>
<strong>Contexte vault</strong> : Les tags
s'adaptent au vault sélectionné
</li>
<strong>Contexte vault</strong><span data-i18n="help.desc_6a5ddef2"> : Les tags
s'adaptent au vault sélectionné</span></li>
</ul>
<h3 data-i18n="help.2c03a7ba">Tags inline vs frontmatter</h3>
@@ -3167,9 +3147,8 @@
markdown
</li>
<li>
<strong>Fusion automatique</strong> : Les
deux types sont combinés
</li>
<strong>Fusion automatique</strong><span data-i18n="help.desc_828db5da"> : Les
deux types sont combinés</span></li>
</ul>
<h3 data-i18n="help.63f024d4">Filtrage de tags template</h3>
@@ -3184,13 +3163,11 @@
<code>#{{ ... }}</code>
</li>
<li>
<strong data-i18n="auto.5d936af6">Regex générée</strong> : Aperçu de
la regex appliquée
</li>
<strong data-i18n="auto.5d936af6">Regex générée</strong><span data-i18n="help.desc_b9c94994"> : Aperçu de
la regex appliquée</span></li>
<li>
<strong data-i18n="help.add_remove">Ajout/Suppression</strong> : Gérez
vos patterns de filtrage
</li>
<strong data-i18n="help.add_remove">Ajout/Suppression</strong><span data-i18n="help.desc_ef3f8158"> : Gérez
vos patterns de filtrage</span></li>
</ul>
</section>
@@ -3231,13 +3208,11 @@
markdown brut
</li>
<li>
<strong data-i18n="viewer.download">Télécharger</strong> : Télécharge le
fichier
</li>
<strong data-i18n="viewer.download">Télécharger</strong><span data-i18n="help.desc_a52fc3b1"> : Télécharge le
fichier</span></li>
<li>
<strong data-i18n="viewer.edit">Éditer</strong> : Ouvre l'éditeur
CodeMirror
</li>
<strong data-i18n="viewer.edit">Éditer</strong><span data-i18n="help.desc_995a711f"> : Ouvre l'éditeur
CodeMirror</span></li>
<li>
<strong
>Ouvrir dans nouvelle fenêtre</strong
@@ -3320,19 +3295,17 @@
et bien d'autres
</li>
<li>
<strong data-i18n="auto.1d46301c">Numéros de ligne</strong> :
Navigation facilitée dans les fichiers longs
</li>
<strong data-i18n="auto.1d46301c">Numéros de ligne</strong><span data-i18n="help.desc_9f78b3ec"> :
Navigation facilitée dans les fichiers longs</span></li>
<li>
<strong>Find in page</strong> : Ctrl+F pour
chercher dans le fichier (casse, regex, mot
entier)
</li>
<li>
<strong>Sauvegarde automatique</strong> :
<strong>Sauvegarde automatique</strong><span data-i18n="help.desc_065f53ee"> :
Auto-save silencieux après 2s d'inactivité,
flash vert de confirmation
</li>
flash vert de confirmation</span></li>
<li>
<strong>Bouton ✓</strong> : Sauvegarde
manuelle
@@ -3342,9 +3315,9 @@
fichier
</li>
<li>
<strong data-i18n="help.toolbar_section">Barre d'outils AI</strong> :
<strong data-i18n="help.toolbar_section">Barre d'outils AI</strong><span data-i18n="help.desc_c8532869"> :
Complétion, réécriture, traduction (voir
section <a href="#help-ia" data-i18n="settings.ai">🤖 IA</a>)
section</span><a href="#help-ia" data-i18n="settings.ai">🤖 IA</a>)
</li>
</ul>
</section>
@@ -3366,25 +3339,21 @@
Graphique
</li>
<li>
<strong data-i18n="help.popout_button">Bouton dédié</strong> : Dans la
barre d'outils (le cas échéant)
</li>
<strong data-i18n="help.popout_button">Bouton dédié</strong><span data-i18n="help.desc_e23c94dd"> : Dans la
barre d'outils (le cas échéant)</span></li>
</ul>
<h3 data-i18n="help.61ee5a22">Interaction</h3>
<ul>
<li>
<strong>Zoom/Pan</strong> : Molette pour
zoomer, cliquer-glisser pour se déplacer
</li>
<strong>Zoom/Pan</strong><span data-i18n="help.desc_f0adf67a"> : Molette pour
zoomer, cliquer-glisser pour se déplacer</span></li>
<li>
<strong>Slider de profondeur</strong> :
Contrôle la profondeur d'exploration (0-3)
</li>
<strong>Slider de profondeur</strong><span data-i18n="help.desc_9edeaa11"> :
Contrôle la profondeur d'exploration (0-3)</span></li>
<li>
<strong>Filtre par tag</strong> : N'affiche
que les nœuds avec un tag spécifique
</li>
<strong>Filtre par tag</strong><span data-i18n="help.desc_89bd3c4c"> : N'affiche
que les nœuds avec un tag spécifique</span></li>
<li>
<strong>Filtre par type</strong> :
Inclut/exclut fichiers, dossiers, markdown,
@@ -3395,9 +3364,8 @@
de recherche pour surligner des nœuds
</li>
<li>
<strong data-i18n="help.graph_focus">Mode focus</strong> : Centre la vue
sur un nœud spécifique
</li>
<strong data-i18n="help.graph_focus">Mode focus</strong><span data-i18n="help.desc_a9db82b5"> : Centre la vue
sur un nœud spécifique</span></li>
<li>
<strong>Navigation ← → ↑</strong> :
Historique de navigation entre les nœuds
@@ -3407,21 +3375,18 @@
<h3 data-i18n="help.8caed987">Affichage</h3>
<ul>
<li>
<strong>Nœuds</strong> : Fichiers (carrés)
et dossiers (cercles) avec icônes
</li>
<strong>Nœuds</strong><span data-i18n="help.desc_ab2c4150"> : Fichiers (carrés)
et dossiers (cercles) avec icônes</span></li>
<li>
<strong data-i18n="help.nodes_edges">Arêtes</strong> : Wikilinks sortants
(bleu) et backlinks entrants (vert)
</li>
<li>
<strong>Panneau d'info</strong> :
Métadonnées du nœud (tags, liens, chemin)
</li>
<strong>Panneau d'info</strong><span data-i18n="help.desc_8717768b"> :
Métadonnées du nœud (tags, liens, chemin)</span></li>
<li>
<strong data-i18n="help.graph_preview">Ctrl+survol</strong> : Aperçu du
contenu de la note sans naviguer
</li>
<strong data-i18n="help.graph_preview">Ctrl+survol</strong><span data-i18n="help.desc_a579cf4d"> : Aperçu du
contenu de la note sans naviguer</span></li>
<li>
<strong data-i18n="graph.fullscreen">Plein écran</strong> : Bouton pour
agrandir la vue
@@ -3451,21 +3416,18 @@
<p data-i18n="help.theme_toggle">Basculez entre les thèmes :</p>
<ul>
<li>
<strong data-i18n="help.menu_options">Menu Options</strong> : Cliquez sur
"Thème" dans le menu
</li>
<strong data-i18n="help.menu_options">Menu Options</strong><span data-i18n="help.desc_beed5686"> : Cliquez sur
"Thème" dans le menu</span></li>
<li>
<strong>Raccourci</strong> :
<code>Ctrl+T</code>
</li>
<li>
<strong>Persistance</strong> : Votre choix
est sauvegardé en localStorage
</li>
<strong>Persistance</strong><span data-i18n="help.desc_e5b67e3d"> : Votre choix
est sauvegardé en localStorage</span></li>
<li>
<strong>Highlight.js</strong> : Les blocs de
code s'adaptent au thème
</li>
<strong>Highlight.js</strong><span data-i18n="help.desc_d5c977ac"> : Les blocs de
code s'adaptent au thème</span></li>
</ul>
<h3 data-i18n="help.7bcbb2e3">Redimensionnement de la sidebar</h3>
@@ -3486,9 +3448,8 @@
500px
</li>
<li>
<strong>Persistance</strong> : La largeur
est sauvegardée
</li>
<strong>Persistance</strong><span data-i18n="help.desc_6a80241e"> : La largeur
est sauvegardée</span></li>
</ul>
<h3 data-i18n="auto.9122fd5c">Configuration avancée</h3>
@@ -3498,21 +3459,18 @@
</p>
<ul>
<li>
<strong data-i18n="config.section_search">Paramètres de recherche</strong> :
Délai debounce, résultats par page, timeout
</li>
<strong data-i18n="config.section_search">Paramètres de recherche</strong><span data-i18n="help.desc_6b88a375"> :
Délai debounce, résultats par page, timeout</span></li>
<li>
<strong data-i18n="settings.backend_section">Paramètres backend</strong> :
Workers, boosts TF-IDF, expansions préfixe
</li>
<strong data-i18n="settings.backend_section">Paramètres backend</strong><span data-i18n="help.desc_5d0fbb81"> :
Workers, boosts TF-IDF, expansions préfixe</span></li>
<li>
<strong data-i18n="config.tag_filtering_label">Filtrage de tags</strong> : Patterns
pour masquer les tags template
</li>
<li>
<strong data-i18n="config.diagnostics">Diagnostics</strong> : Stats index,
mémoire, moteur de recherche
</li>
<strong data-i18n="config.diagnostics">Diagnostics</strong><span data-i18n="help.desc_6ae5342c"> : Stats index,
mémoire, moteur de recherche</span></li>
<li>
<strong data-i18n="auto.83a0efdf">Réindexation</strong> : Forcer un
rescan des vaults
@@ -3745,15 +3703,14 @@
</p>
<ul>
<li>
<strong>✦ AI</strong> — Complétion inline
(<kbd>Ctrl+J</kbd>). Complète
<strong>✦ AI</strong><span data-i18n="help.desc_3ace259e"> — Complétion inline
(</span><kbd>Ctrl+J</kbd>). Complète
automatiquement le texte là où se trouve le
curseur.
</li>
<li>
<strong data-i18n="auto.a105a2d9">Éditer ▾</strong> — Menu de
modification du texte sélectionné :
<ul>
<strong data-i18n="auto.a105a2d9">Éditer ▾</strong><span data-i18n="help.desc_a0ec890a"> — Menu de
modification du texte sélectionné :</span><ul>
<li>
🪄
<strong>Improve writing</strong> :
@@ -3801,9 +3758,8 @@
</ul>
</li>
<li>
<strong>Traduire ▾</strong> — Traduit le
texte sélectionné vers une autre langue :
<ul>
<strong>Traduire ▾</strong><span data-i18n="help.desc_1c130d89"> — Traduit le
texte sélectionné vers une autre langue :</span><ul>
<li>
🇬🇧 English · 🇨🇳 Chinese · 🇯🇵
Japanese · 🇩🇪 German · 🇫🇷 French ·
@@ -3812,9 +3768,8 @@
</ul>
</li>
<li>
<strong data-i18n="auto.ce4eb802">Générer ▾</strong> — Génère du
contenu à partir de la sélection :
<ul>
<strong data-i18n="auto.ce4eb802">Générer ▾</strong><span data-i18n="help.desc_991307d6"> — Génère du
contenu à partir de la sélection :</span><ul>
<li>
ℹ️ <strong>Explain this</strong> :
Explique le texte sélectionné de
@@ -3833,11 +3788,10 @@
</ul>
</li>
<li>
<strong data-i18n="auto.62c3d50d">💬 Réécrire</strong> — Réécrit le
<strong data-i18n="auto.62c3d50d">💬 Réécrire</strong><span data-i18n="help.desc_c63f02cc"> — Réécrit le
texte selon vos instructions personnalisées.
Une boîte de dialogue vous demande votre
instruction.
</li>
instruction.</span></li>
<li>
<strong data-i18n="auto.0257e77f">🧰 Boîte ▾</strong> — Outils de
conversion :
@@ -3937,31 +3891,25 @@
</p>
<ul>
<li>
<strong data-i18n="help.share_button">Bouton Partager</strong> : Dans les
actions du fichier, génère un lien unique
</li>
<strong data-i18n="help.share_button">Bouton Partager</strong><span data-i18n="help.desc_d66e911c"> : Dans les
actions du fichier, génère un lien unique</span></li>
<li>
<strong>Token unique</strong> : 64
<strong>Token unique</strong><span data-i18n="help.desc_04493800"> : 64
caractères hexadécimaux, impossible à
deviner
</li>
deviner</span></li>
<li>
<strong>Expiration configurable</strong> :
Durée de vie en heures
</li>
<strong>Expiration configurable</strong><span data-i18n="help.desc_858681a1"> :
Durée de vie en heures</span></li>
<li>
<strong>Lecture seule</strong> : La vue
<strong>Lecture seule</strong><span data-i18n="help.desc_e47d2328"> : La vue
publique n'affiche que le contenu sans
édition
</li>
édition</span></li>
<li>
<strong>Gestion des liens</strong> : Liste
et révocation dans les Configurations
</li>
<strong>Gestion des liens</strong><span data-i18n="help.desc_5e9a7fd9"> : Liste
et révocation dans les Configurations</span></li>
<li>
<strong data-i18n="help.pdf_export">Export PDF</strong> : Téléchargement
du document partagé en PDF via
<code>/s/{token}/pdf</code>
<strong data-i18n="help.pdf_export">Export PDF</strong><span data-i18n="help.desc_e93517a5"> : Téléchargement
du document partagé en PDF via</span><code>/s/{token}/pdf</code>
</li>
</ul>
</section>
@@ -3984,29 +3932,24 @@
<h3 data-i18n="help.use_cases">Cas d'usage</h3>
<ul>
<li>
<strong data-i18n="help.ci_cd">Automatisation CI/CD</strong> :
<strong data-i18n="help.ci_cd">Automatisation CI/CD</strong><span data-i18n="help.desc_1ba39cc4"> :
Déclencher un build quand une note de
procédure est mise à jour
</li>
procédure est mise à jour</span></li>
<li>
<strong data-i18n="header.sync_status">Synchronisation</strong> : Copier
<strong data-i18n="header.sync_status">Synchronisation</strong><span data-i18n="help.desc_d9cdaa89"> : Copier
les nouveaux fichiers vers un autre système
(SharePoint, Google Drive)
</li>
(SharePoint, Google Drive)</span></li>
<li>
<strong>Notifications</strong> : Alerter un
<strong>Notifications</strong><span data-i18n="help.desc_6f7c5889"> : Alerter un
canal Slack/Discord quand un document est
créé
</li>
créé</span></li>
<li>
<strong data-i18n="help.external_audit">Audit externe</strong> : Logger
<strong data-i18n="help.external_audit">Audit externe</strong><span data-i18n="help.desc_599f3242"> : Logger
toutes les modifications dans une base de
données externe
</li>
données externe</span></li>
<li>
<strong data-i18n="auto.a232672b">Déploiement</strong> : Publier un
article de blog quand un fichier est marqué
<code>publish: true</code>
<strong data-i18n="auto.a232672b">Déploiement</strong><span data-i18n="help.desc_2f2c16b5"> : Publier un
article de blog quand un fichier est marqué</span><code>publish: true</code>
</li>
</ul>
@@ -4439,9 +4382,8 @@ curl -X POST https://votre-serveur.com/webhook \
<code>.obsigate-backup/</code>
</li>
<li>
<strong>Timestamp</strong> : Chaque backup
est horodaté
</li>
<strong>Timestamp</strong><span data-i18n="help.desc_31e7253b"> : Chaque backup
est horodaté</span></li>
<li>
<strong data-i18n="auto.41d7c6af">Répertoire dédié</strong> :
<code>.obsigate-backup/</code> dans le
@@ -4461,14 +4403,12 @@ curl -X POST https://votre-serveur.com/webhook \
lines
</li>
<li>
<strong data-i18n="auto.598a0ca7">Événements tracés</strong> :
<strong data-i18n="auto.598a0ca7">Événements tracés</strong><span data-i18n="help.desc_9f321d1e"> :
Écritures, suppressions, changements de
configuration
</li>
configuration</span></li>
<li>
<strong>Rotation</strong> : Rotation
automatique à 10 Mo
</li>
<strong>Rotation</strong><span data-i18n="help.desc_19cf5730"> : Rotation
automatique à 10 Mo</span></li>
</ul>
</section>
@@ -4479,9 +4419,8 @@ curl -X POST https://votre-serveur.com/webhook \
<h3 data-i18n="help.c48fb18a">Authentification</h3>
<ul>
<li>
<strong>JWT + Argon2id</strong> : Tokens JWT
avec mots de passe hachés Argon2id
</li>
<strong>JWT + Argon2id</strong><span data-i18n="help.desc_8f0bffe3"> : Tokens JWT
avec mots de passe hachés Argon2id</span></li>
<li>
<strong data-i18n="auto.72e515fa">Contrôle d'accès par vault</strong>
: Chaque utilisateur voit uniquement ses
@@ -4497,18 +4436,16 @@ curl -X POST https://votre-serveur.com/webhook \
compte
</li>
<li>
<strong>Compte admin</strong> : Créé
automatiquement au premier démarrage
</li>
<strong>Compte admin</strong><span data-i18n="help.desc_5fc28b7d"> : Créé
automatiquement au premier démarrage</span></li>
</ul>
<h3 data-i18n="help.83f1d9ca">Protection</h3>
<ul>
<li>
<strong>Secret redactor</strong> : Masque
<strong>Secret redactor</strong><span data-i18n="help.desc_9846fc07"> : Masque
JWT, clés API, tokens GitHub dans les
aperçus
</li>
aperçus</span></li>
<li>
<strong>Path traversal</strong> : Validation
des chemins contre les attaques
@@ -4520,9 +4457,8 @@ curl -X POST https://votre-serveur.com/webhook \
XSS-Protection
</li>
<li>
<strong data-i18n="help.atomic_writes">Atomic writes</strong> : Écriture
via fichier temporaire + renommage atomique
</li>
<strong data-i18n="help.atomic_writes">Atomic writes</strong><span data-i18n="help.desc_752789ab"> : Écriture
via fichier temporaire + renommage atomique</span></li>
<li>
<strong>Non-root Docker</strong> : Conteneur
tourne avec UID 1000
@@ -4536,9 +4472,8 @@ curl -X POST https://votre-serveur.com/webhook \
<h3 data-i18n="auto.559ef1da">Workflow recommandé</h3>
<ol>
<li>
<strong data-i18n="auto.678711b5">Sélectionnez un contexte</strong> :
Choisissez un vault pour réduire le bruit
</li>
<strong data-i18n="auto.678711b5">Sélectionnez un contexte</strong><span data-i18n="help.desc_39979e71"> :
Choisissez un vault pour réduire le bruit</span></li>
<li>
<strong>Explorez l'arborescence</strong> :
Naviguez dans les dossiers
@@ -4548,13 +4483,11 @@ curl -X POST https://votre-serveur.com/webhook \
par tags pour affiner
</li>
<li>
<strong>Recherchez intelligemment</strong> :
Combinez opérateurs et texte libre
</li>
<strong>Recherchez intelligemment</strong><span data-i18n="help.desc_ae213f54"> :
Combinez opérateurs et texte libre</span></li>
<li>
<strong>Profitez de l'historique</strong> :
Réutilisez vos recherches fréquentes
</li>
<strong>Profitez de l'historique</strong><span data-i18n="help.desc_71eeb16a"> :
Réutilisez vos recherches fréquentes</span></li>
</ol>
<h3 data-i18n="help.fe388b67">Optimisations</h3>
@@ -4589,10 +4522,9 @@ curl -X POST https://votre-serveur.com/webhook \
sidebar
</li>
<li>
<strong>Gestion de l'espace</strong> :
<strong>Gestion de l'espace</strong><span data-i18n="help.desc_287be69c"> :
Réduisez les sections Vaults/Tags selon vos
besoins
</li>
besoins</span></li>
<li>
<strong>Confort de lecture</strong> :
Ajustez la largeur de la sidebar
@@ -4626,17 +4558,14 @@ curl -X POST https://votre-serveur.com/webhook \
toutes les notes similaires
</li>
<li>
<strong data-i18n="auto.4fa5d7c2">Édition rapide</strong> : Ouvrez
l'éditeur, modifiez, sauvegardez
</li>
<strong data-i18n="auto.4fa5d7c2">Édition rapide</strong><span data-i18n="help.desc_cb6f0bfd"> : Ouvrez
l'éditeur, modifiez, sauvegardez</span></li>
<li>
<strong data-i18n="help.export">Export</strong> : Téléchargez des
fichiers pour backup ou partage
</li>
<strong data-i18n="help.export">Export</strong><span data-i18n="help.desc_f9083ce5"> : Téléchargez des
fichiers pour backup ou partage</span></li>
<li>
<strong data-i18n="auto.79f6e1dd">Multi-fenêtres</strong> : Ouvrez
plusieurs notes dans des onglets séparés
</li>
<strong data-i18n="auto.79f6e1dd">Multi-fenêtres</strong><span data-i18n="help.desc_9cb5974c"> : Ouvrez
plusieurs notes dans des onglets séparés</span></li>
</ul>
</section>
+74 -1
View File
@@ -829,5 +829,78 @@
"help.686f8313": "💡 Tips and best practices",
"help.fe388b67": "Optimizations",
"help.2a92203f": "Tips and tricks",
"help.desc_menu_options": ": Access to settings, theme, help"
"help.desc_menu_options": ": Access to settings, theme, help",
"help.desc_fdeaf803": ": Chaque type de\n fichier a son icône (markdown, code, etc.)",
"help.desc_a4a4e21b": ": Bouton \"×\" pour\n réinitialiser le filtre",
"help.desc_085ec31f": ":\n Quick select at the top of the Vault tabs",
"help.desc_e3fce7a3": ": Ouvre le\n fichier dans un onglet temporaire (aperçu,\n italique)",
"help.desc_d186a19e": ":\n L'onglet \"Récent\" dans la sidebar liste vos\n derniers fichiers",
"help.desc_e5246734": ": Onglet\n précédent",
"help.desc_170a6982": ": Affichage\n horizontal avec le nom du fichier et son\n icône",
"help.desc_6b649b1e": ": Surligné en\n couleur d'accentuation",
"help.desc_ef1531ce": ": Un\n onglet temporaire (italique) est remplacé\n par le prochain clic",
"help.desc_5ab8c78d": ":\n Stay open until manually closed",
"help.desc_00b9572b": ":\n Results ranked by TF-IDF relevance",
"help.desc_53bfaeca": ": Navigation par\n pages de 50 résultats",
"help.desc_4de7e318": ": Les 50\n dernières recherches (localStorage)",
"help.desc_6b8fc728": ": ↑/↓\n pour naviguer, Enter pour sélectionner",
"help.desc_6ebebdfd": ": Chaque type\n d'opérateur a sa couleur",
"help.desc_cf5ccd40": ": Compteurs\n par tag dans les résultats",
"help.desc_9fec424d": ": Score\n TF-IDF (défaut)",
"help.desc_42a81347": ": Dernière\n modification",
"help.desc_6caffeed": ": Cliquez pour\n filtrer les résultats",
"help.desc_6a5ddef2": ": Les tags\n s'adaptent au vault sélectionné",
"help.desc_828db5da": ": Les\n deux types sont combinés",
"help.desc_b9c94994": ": Aperçu de\n la regex appliquée",
"help.desc_ef3f8158": ": Gérez\n vos patterns de filtrage",
"help.desc_a52fc3b1": ": Télécharge le\n fichier",
"help.desc_995a711f": ": Ouvre l'éditeur\n CodeMirror",
"help.desc_9f78b3ec": ":\n Easier navigation in long files",
"help.desc_065f53ee": ":\n Silent auto-save after 2s of inactivity,\n flash vert de confirmation",
"help.desc_c8532869": ":\n Completion, rewrite, translation (voir\n section",
"help.desc_e23c94dd": ": Dans la\n barre d'outils (le cas échéant)",
"help.desc_f0adf67a": ": Molette pour\n zoomer, cliquer-glisser pour se déplacer",
"help.desc_9edeaa11": ":\n Controls exploration depth (0-3)",
"help.desc_89bd3c4c": ": N'affiche\n que les nœuds avec un tag spécifique",
"help.desc_a9db82b5": ": Centre la vue\n sur un nœud spécifique",
"help.desc_ab2c4150": ": Fichiers (carrés)\n et dossiers (cercles) avec icônes",
"help.desc_8717768b": ":\n Node metadata (tags, links, path)",
"help.desc_a579cf4d": ": Aperçu du\n contenu de la note sans naviguer",
"help.desc_beed5686": ": Cliquez sur\n \"Thème\" dans le menu",
"help.desc_e5b67e3d": ": Votre choix\n est sauvegardé en localStorage",
"help.desc_d5c977ac": ": Les blocs de\n code s'adaptent au thème",
"help.desc_6a80241e": ": La largeur\n est sauvegardée",
"help.desc_6b88a375": ":\n Debounce delay, results per page, timeout",
"help.desc_5d0fbb81": ":\n Workers, TF-IDF boosts, prefix expansions",
"help.desc_6ae5342c": ": Stats index,\n mémoire, moteur de recherche",
"help.desc_3ace259e": "— Complétion inline\n (",
"help.desc_a0ec890a": "— Menu de\n modification du texte sélectionné :",
"help.desc_1c130d89": "— Traduit le\n texte sélectionné vers une autre langue :",
"help.desc_991307d6": "— Génère du\n contenu à partir de la sélection :",
"help.desc_c63f02cc": "— Réécrit le\n texte selon vos instructions personnalisées.\n Une boîte de dialogue vous demande votre\n instruction.",
"help.desc_d66e911c": ": Dans les\n actions du fichier, génère un lien unique",
"help.desc_04493800": ": 64\n caractères hexadécimaux, impossible à\n deviner",
"help.desc_858681a1": ":\n Durée de vie en heures",
"help.desc_e47d2328": ": La vue\n publique n'affiche que le contenu sans\n édition",
"help.desc_5e9a7fd9": ": Liste\n et révocation dans les Configurations",
"help.desc_e93517a5": ": Téléchargement\n du document partagé en PDF via",
"help.desc_1ba39cc4": ":\n Déclencher un build quand une note de\n procédure est mise à jour",
"help.desc_d9cdaa89": ": Copier\n les nouveaux fichiers vers un autre système\n (SharePoint, Google Drive)",
"help.desc_6f7c5889": ": Alerter un\n canal Slack/Discord quand un document est\n créé",
"help.desc_599f3242": ": Logger\n toutes les modifications dans une base de\n données externe",
"help.desc_2f2c16b5": ": Publier un\n article de blog quand un fichier est marqué",
"help.desc_31e7253b": ": Chaque backup\n est horodaté",
"help.desc_9f321d1e": ":\n Écritures, suppressions, changements de\n configuration",
"help.desc_19cf5730": ": Rotation\n automatique à 10 Mo",
"help.desc_8f0bffe3": ": Tokens JWT\n avec mots de passe hachés Argon2id",
"help.desc_5fc28b7d": ": Créé\n automatiquement au premier démarrage",
"help.desc_9846fc07": ": Masque\n JWT, clés API, tokens GitHub dans les\n aperçus",
"help.desc_752789ab": ": Écriture\n via fichier temporaire + renommage atomique",
"help.desc_39979e71": ":\n Choisissez un vault pour réduire le bruit",
"help.desc_ae213f54": ":\n Combinez opérateurs et texte libre",
"help.desc_71eeb16a": ":\n Réutilisez vos recherches fréquentes",
"help.desc_287be69c": ":\n Réduisez les sections Vaults/Tags selon vos\n besoins",
"help.desc_cb6f0bfd": ": Ouvrez\n l'éditeur, modifiez, sauvegardez",
"help.desc_f9083ce5": ": Téléchargez des\n fichiers pour backup ou partage",
"help.desc_9cb5974c": ": Ouvrez\n plusieurs notes dans des onglets séparés"
}
+74 -1
View File
@@ -829,5 +829,78 @@
"help.686f8313": "💡 Astuces et bonnes pratiques",
"help.fe388b67": "Optimisations",
"help.2a92203f": "Trucs et astuces",
"help.desc_menu_options": ": Accès aux\n paramètres, thème, aide"
"help.desc_menu_options": ": Accès aux\n paramètres, thème, aide",
"help.desc_fdeaf803": ": Chaque type de\n fichier a son icône (markdown, code, etc.)",
"help.desc_a4a4e21b": ": Bouton \"×\" pour\n réinitialiser le filtre",
"help.desc_085ec31f": ":\n Sélection rapide en haut de l'onglet Vaults",
"help.desc_e3fce7a3": ": Ouvre le\n fichier dans un onglet temporaire (aperçu,\n italique)",
"help.desc_d186a19e": ":\n L'onglet \"Récent\" dans la sidebar liste vos\n derniers fichiers",
"help.desc_e5246734": ": Onglet\n précédent",
"help.desc_170a6982": ": Affichage\n horizontal avec le nom du fichier et son\n icône",
"help.desc_6b649b1e": ": Surligné en\n couleur d'accentuation",
"help.desc_ef1531ce": ": Un\n onglet temporaire (italique) est remplacé\n par le prochain clic",
"help.desc_5ab8c78d": ":\n Restent ouverts jusqu'à fermeture manuelle",
"help.desc_00b9572b": ":\n Résultats classés par pertinence TF-IDF",
"help.desc_53bfaeca": ": Navigation par\n pages de 50 résultats",
"help.desc_4de7e318": ": Les 50\n dernières recherches (localStorage)",
"help.desc_6b8fc728": ": ↑/↓\n pour naviguer, Enter pour sélectionner",
"help.desc_6ebebdfd": ": Chaque type\n d'opérateur a sa couleur",
"help.desc_cf5ccd40": ": Compteurs\n par tag dans les résultats",
"help.desc_9fec424d": ": Score\n TF-IDF (défaut)",
"help.desc_42a81347": ": Dernière\n modification",
"help.desc_6caffeed": ": Cliquez pour\n filtrer les résultats",
"help.desc_6a5ddef2": ": Les tags\n s'adaptent au vault sélectionné",
"help.desc_828db5da": ": Les\n deux types sont combinés",
"help.desc_b9c94994": ": Aperçu de\n la regex appliquée",
"help.desc_ef3f8158": ": Gérez\n vos patterns de filtrage",
"help.desc_a52fc3b1": ": Télécharge le\n fichier",
"help.desc_995a711f": ": Ouvre l'éditeur\n CodeMirror",
"help.desc_9f78b3ec": ":\n Navigation facilitée dans les fichiers longs",
"help.desc_065f53ee": ":\n Auto-save silencieux après 2s d'inactivité,\n flash vert de confirmation",
"help.desc_c8532869": ":\n Complétion, réécriture, traduction (voir\n section",
"help.desc_e23c94dd": ": Dans la\n barre d'outils (le cas échéant)",
"help.desc_f0adf67a": ": Molette pour\n zoomer, cliquer-glisser pour se déplacer",
"help.desc_9edeaa11": ":\n Contrôle la profondeur d'exploration (0-3)",
"help.desc_89bd3c4c": ": N'affiche\n que les nœuds avec un tag spécifique",
"help.desc_a9db82b5": ": Centre la vue\n sur un nœud spécifique",
"help.desc_ab2c4150": ": Fichiers (carrés)\n et dossiers (cercles) avec icônes",
"help.desc_8717768b": ":\n Métadonnées du nœud (tags, liens, chemin)",
"help.desc_a579cf4d": ": Aperçu du\n contenu de la note sans naviguer",
"help.desc_beed5686": ": Cliquez sur\n \"Thème\" dans le menu",
"help.desc_e5b67e3d": ": Votre choix\n est sauvegardé en localStorage",
"help.desc_d5c977ac": ": Les blocs de\n code s'adaptent au thème",
"help.desc_6a80241e": ": La largeur\n est sauvegardée",
"help.desc_6b88a375": ":\n Délai debounce, résultats par page, timeout",
"help.desc_5d0fbb81": ":\n Workers, boosts TF-IDF, expansions préfixe",
"help.desc_6ae5342c": ": Stats index,\n mémoire, moteur de recherche",
"help.desc_3ace259e": "— Complétion inline\n (",
"help.desc_a0ec890a": "— Menu de\n modification du texte sélectionné :",
"help.desc_1c130d89": "— Traduit le\n texte sélectionné vers une autre langue :",
"help.desc_991307d6": "— Génère du\n contenu à partir de la sélection :",
"help.desc_c63f02cc": "— Réécrit le\n texte selon vos instructions personnalisées.\n Une boîte de dialogue vous demande votre\n instruction.",
"help.desc_d66e911c": ": Dans les\n actions du fichier, génère un lien unique",
"help.desc_04493800": ": 64\n caractères hexadécimaux, impossible à\n deviner",
"help.desc_858681a1": ":\n Durée de vie en heures",
"help.desc_e47d2328": ": La vue\n publique n'affiche que le contenu sans\n édition",
"help.desc_5e9a7fd9": ": Liste\n et révocation dans les Configurations",
"help.desc_e93517a5": ": Téléchargement\n du document partagé en PDF via",
"help.desc_1ba39cc4": ":\n Déclencher un build quand une note de\n procédure est mise à jour",
"help.desc_d9cdaa89": ": Copier\n les nouveaux fichiers vers un autre système\n (SharePoint, Google Drive)",
"help.desc_6f7c5889": ": Alerter un\n canal Slack/Discord quand un document est\n créé",
"help.desc_599f3242": ": Logger\n toutes les modifications dans une base de\n données externe",
"help.desc_2f2c16b5": ": Publier un\n article de blog quand un fichier est marqué",
"help.desc_31e7253b": ": Chaque backup\n est horodaté",
"help.desc_9f321d1e": ":\n Écritures, suppressions, changements de\n configuration",
"help.desc_19cf5730": ": Rotation\n automatique à 10 Mo",
"help.desc_8f0bffe3": ": Tokens JWT\n avec mots de passe hachés Argon2id",
"help.desc_5fc28b7d": ": Créé\n automatiquement au premier démarrage",
"help.desc_9846fc07": ": Masque\n JWT, clés API, tokens GitHub dans les\n aperçus",
"help.desc_752789ab": ": Écriture\n via fichier temporaire + renommage atomique",
"help.desc_39979e71": ":\n Choisissez un vault pour réduire le bruit",
"help.desc_ae213f54": ":\n Combinez opérateurs et texte libre",
"help.desc_71eeb16a": ":\n Réutilisez vos recherches fréquentes",
"help.desc_287be69c": ":\n Réduisez les sections Vaults/Tags selon vos\n besoins",
"help.desc_cb6f0bfd": ": Ouvrez\n l'éditeur, modifiez, sauvegardez",
"help.desc_f9083ce5": ": Téléchargez des\n fichiers pour backup ou partage",
"help.desc_9cb5974c": ": Ouvrez\n plusieurs notes dans des onglets séparés"
}