A7 : barre de formule sous la barre d'outils (nom de cellule active A1 + miroir du contenu, édition live, Entrée valide, Échap annule puis refocalise) ; flèches et Tab déplacent la cellule active dans les 4 directions (Shift inverse Tab), outline persistant sur la cellule active quand le focus passe à la barre ; Maj+Entrée ne valide plus (réservé au multiligne A7+). td.tabIndex=0 pour la focalisation clavier. Vérifié : xlsx-viewer.test.mjs 25/25 (6 nouveaux), E2E 9/9 (barre + flèches + Échap sur fixture réelle), validate-imports, i18n parity (xlsx.formula_bar_placeholder, xlsx.active_cell). 🤖 Generated with Codebuff Co-Authored-By: Codebuff <[email protected]>
2245 lines
126 KiB
JSON
2245 lines
126 KiB
JSON
{
|
||
"_meta": {
|
||
"locale": "en",
|
||
"name": "English"
|
||
},
|
||
"about.api_version": "API version",
|
||
"about.backend": "Backend",
|
||
"about.browser": "Browser",
|
||
"about.built_with": "Built with",
|
||
"about.editor": "Editor",
|
||
"about.file_watcher": "File watching",
|
||
"about.files": "Files",
|
||
"about.files_indexed": "Indexed files",
|
||
"about.footer": "Made with ☕, 🍕 and a few accidental git push --force.",
|
||
"about.frontend": "Frontend",
|
||
"about.fun_quote": "\"No LLM was harmed during this development.\"",
|
||
"about.git": "Git : <strong id=\"about-commit\">—</strong>",
|
||
"about.icons": "Icons",
|
||
"about.joke_0": "0 known bugs. The others are shy.",
|
||
"about.joke_1": "Compiles on the first try. (Except Monday mornings.)",
|
||
"about.joke_2": "Written by a human. Probably.",
|
||
"about.joke_3": "No LLMs were harmed during this development.",
|
||
"about.joke_4": "When it works, we call it a feature.",
|
||
"about.joke_5": "CSS: 90% of dev time, 10% of the code.",
|
||
"about.joke_6": "Dark mode active since the project's birth.",
|
||
"about.joke_7": "Works on my machine™",
|
||
"about.joke_8": "Technically, everything is an edge case.",
|
||
"about.joke_9": "The CSS for this panel took longer than the backend.",
|
||
"about.language": "Language",
|
||
"about.last_delivery": "Last delivery : <strong id=\"about-build-date\">June 2026</strong>",
|
||
"about.made_with": "Made with ☕, 🎧 and a few accidental <code>git push --force</code>.",
|
||
"about.markdown_renderer": "Markdown rendering",
|
||
"about.name": "Name",
|
||
"about.platform": "Platform",
|
||
"about.section_app": "Application",
|
||
"about.section_components": "Components",
|
||
"about.section_env": "Environment",
|
||
"about.status": "Status",
|
||
"about.subtitle": "Your Obsidian notes, simply accessible.",
|
||
"about.syntax_highlight": "Syntax highlighting",
|
||
"about.tagline": "Your Obsidian notes,<br>simply accessible.",
|
||
"about.tests": "Tests",
|
||
"about.vaults_configured": "Configured vaults",
|
||
"about.version": "Version",
|
||
"admin.audit_all_actions": "All actions",
|
||
"admin.audit_empty": "No log available",
|
||
"admin.audit_filter_action": "Action",
|
||
"admin.audit_filter_user": "Filter by user",
|
||
"admin.audit_refresh": "Refresh",
|
||
"admin.audit_title": "Audit logs",
|
||
"admin.back_btn": "← Back",
|
||
"admin.backups_newest": "Newest: {days} days",
|
||
"admin.backups_oldest": "Oldest: {days} days",
|
||
"admin.backups_per_vault": "Per vault",
|
||
"admin.backups_title": "Backup statistics",
|
||
"admin.backups_total": "Total: {count} backups ({size})",
|
||
"admin.backups_vault_empty": "No backup",
|
||
"admin.close": "Close",
|
||
"admin.col_actions": "Actions",
|
||
"admin.col_last_login": "Last login",
|
||
"admin.col_role": "Role",
|
||
"admin.col_status": "Status",
|
||
"admin.col_user": "User",
|
||
"admin.col_vaults": "Vaults",
|
||
"admin.forbidden_msg": "You must be an administrator to access this page.",
|
||
"admin.forbidden_title": "Access denied",
|
||
"admin.header_subtitle": "Administrator dashboard",
|
||
"admin.new_user": "+ New user",
|
||
"admin.page_title": "ObsiGate — Administration",
|
||
"admin.stats_cpu": "CPU",
|
||
"admin.stats_disk": "Disk",
|
||
"admin.stats_memory": "Memory",
|
||
"admin.stats_refresh": "Last update: {time}",
|
||
"admin.stats_sessions": "Active sessions",
|
||
"admin.stats_title": "Real-time statistics",
|
||
"admin.stats_uptime": "Uptime",
|
||
"admin.title": "Administration — Users",
|
||
"admin.users_manage_btn": "Manage users",
|
||
"admin.users_manage_hint": "Open the user management modal (full CRUD)",
|
||
"admin.users_title": "User management",
|
||
"ai.action_applied": "Applied ✓",
|
||
"ai.action_apply": "Apply",
|
||
"ai.action_apply_all": "Approve all ({count})",
|
||
"ai.action_applying": "Applying…",
|
||
"ai.action_create_dir": "Create folder {path}",
|
||
"ai.action_create_file": "Create file {path}",
|
||
"ai.action_created_dir": "Folder created: {path}",
|
||
"ai.action_created_file": "File created: {path}",
|
||
"ai.action_failed": "Action failed: {error}",
|
||
"ai.confirm_actions": "{count} actions to approve",
|
||
"ai.stop": "Stop the assistant",
|
||
"ai.stopped": "Run stopped.",
|
||
"ai.agent_mode_off": "Agent mode off (read/search + actions)",
|
||
"ai.agent_mode_on": "Agent mode on (read/search tools + actions)",
|
||
"ai.casual": "Casual tone",
|
||
"ai.close": "Close assistant",
|
||
"ai.completion_added": "AI: completion added",
|
||
"ai.context_documents": "{count} open document(s)",
|
||
"ai.context_general": "General context",
|
||
"ai.context_general_desc": "Questions about the app and file creation",
|
||
"ai.continue": "Continue",
|
||
"ai.custom_rewrite": "Custom rewrite",
|
||
"ai.diff_preview": "Change preview",
|
||
"ai.done": "AI: text processed",
|
||
"ai.edit": "Edit",
|
||
"ai.error_invalid_key": "Invalid API key",
|
||
"ai.explain": "Explain",
|
||
"ai.fix_spelling": "Fix spelling",
|
||
"ai.fix_spelling_hint": "Fixes spelling and grammar",
|
||
"ai.frontmatter": "Generate frontmatter",
|
||
"ai.fullscreen": "Fullscreen",
|
||
"ai.generate": "Generate",
|
||
"ai.hint_add_details": "Adds details",
|
||
"ai.hint_edit_selection": "Modifies the selected text",
|
||
"ai.hint_generate": "Generates content from the selection",
|
||
"ai.hint_improve": "Improves text quality",
|
||
"ai.hint_translate": "Translates the selected text",
|
||
"ai.improve": "Improve",
|
||
"ai.input_hint": "Enter to send · Ctrl+Enter for a line break",
|
||
"ai.inline_completion_title": "AI Inline Completion (Ctrl+J) — Auto-complete text",
|
||
"ai.invalid_api_key": "AI: invalid API key. Check DEEPSEEK_API_KEY in .env",
|
||
"ai.longer": "Longer",
|
||
"ai.no_api_key": "No API key configured",
|
||
"ai.not_configured": "⚠️ AI not configured — add DEEPSEEK_API_KEY, OPENROUTER_API_KEY or GEMINI_API_KEY in .env",
|
||
"ai.processing": "⏳ AI: processing...",
|
||
"ai.professional": "Professional tone",
|
||
"ai.provider": "Provider",
|
||
"ai.provider_default": "— default —",
|
||
"ai.model": "Model",
|
||
"ai.model_default": "— default —",
|
||
"ai.model_loading": "Loading…",
|
||
"ai.model_offline": "offline",
|
||
"ai.model_load_error": "Load error",
|
||
"ai.model_settings": "Provider & model",
|
||
"ai.model_search": "Search a model…",
|
||
"ai.model_info": "Model capabilities",
|
||
"ai.model_more": "… {count} more — refine your search",
|
||
"ai.add_context": "Add context",
|
||
"ai.attach_image": "Attach an image",
|
||
"ai.cap_audio_speech": "Audio Speech",
|
||
"ai.cap_audio_transcription": "Audio Transcriptions",
|
||
"ai.cap_chat": "Chat",
|
||
"ai.cap_embeddings": "Embeddings",
|
||
"ai.cap_images": "Images",
|
||
"ai.cap_rerank": "Rerank",
|
||
"ai.cap_video": "Video",
|
||
"ai.cap_vision": "Vision capable",
|
||
"ai.commands": "Commands",
|
||
"ai.activity_sending": "Sending request…",
|
||
"ai.activity_streaming": "Receiving response…",
|
||
"ai.activity_tool": "Tool: {name}…",
|
||
"ai.activity_confirmation": "Waiting for confirmation…",
|
||
"ai.activity_error": "Request failed",
|
||
"ai.activity_done": "Done",
|
||
"ai.composer_label": "Message to the assistant",
|
||
"ai.create_skill": "Create a skill",
|
||
"ai.image": "image",
|
||
"ai.keys": "Stored API keys",
|
||
"ai.model_changed": "Model changed: {name}",
|
||
"ai.no_results": "No results",
|
||
"ai.none": "None",
|
||
"ai.provider_changed": "Provider changed: {name}",
|
||
"ai.providers": "Active providers",
|
||
"ai.remove": "Remove",
|
||
"ai.resize_panel": "Resize panel",
|
||
"ai.skill_created": "Skill \"{name}\" created",
|
||
"ai.skill_id": "Identifier",
|
||
"ai.skill_label": "Name",
|
||
"ai.skill_prompt": "Prompt / instructions",
|
||
"ai.skill_prompt_placeholder": "Describe the expected behaviour of the skill…",
|
||
"ai.usage_model": "Available models: {list}",
|
||
"ai.usage_provider": "Available providers: {list}",
|
||
"ai.vision_unsupported": "The selected model does not support image analysis",
|
||
"ai.quota_exceeded": "AI: quota exceeded or payment required",
|
||
"ai.rewrite": "💬 Rewrite",
|
||
"ai.rewrite_done": "AI: text rewritten",
|
||
"ai.rewrite_prompt": "Rewrite instruction:",
|
||
"ai.rewrite_placeholder": "e.g. make the tone more formal and add a conclusion",
|
||
"ai.rewrite_title": "Rewrite text according to your instructions",
|
||
"ai.select_text": "AI: select text to process",
|
||
"ai.shorter": "Shorter",
|
||
"ai.shorter_hint": "Makes the text more concise",
|
||
"ai.simplify": "Simplify",
|
||
"ai.simplify_hint": "Simplifies the language",
|
||
"ai.suggestion_capabilities": "What can you do?",
|
||
"ai.suggestion_create_file": "Create a meeting notes file",
|
||
"ai.suggestion_docs_contradictions": "Are there contradictions between these documents?",
|
||
"ai.suggestion_docs_keypoints": "What are the key points of these documents?",
|
||
"ai.suggestion_docs_summary": "Summarize the open documents",
|
||
"ai.suggestion_search": "How do I search my notes effectively?",
|
||
"ai.summarize": "Summarize",
|
||
"ai.text_processed": "AI: text processed ✓",
|
||
"ai.text_rewritten": "AI: text rewritten",
|
||
"ai.to_canvas": "Convert to Canvas",
|
||
"ai.to_list": "Convert to list",
|
||
"ai.to_table": "Convert to table",
|
||
"ai.tone_hint": "Changes the text tone",
|
||
"ai.tool_call": "Tool: {name}",
|
||
"ai.tool_call_failed": "Tool {name} failed",
|
||
"ai.toolbar_edit": "Edit",
|
||
"ai.toolbar_generate": "Generate",
|
||
"ai.toolbar_rewrite": "Rewrite",
|
||
"ai.toolbar_tone": "Tone",
|
||
"ai.toolbar_toolbox": "Toolbox",
|
||
"ai.toolbar_translate": "Translate",
|
||
"ai.toolbox": "🧰 Toolbox",
|
||
"ai.toolbox_hint": "Conversion tools",
|
||
"ai.translate_to": "Translate to {lang}",
|
||
"auth.cannot_delete_self": "Cannot delete your own account",
|
||
"auth.logged_out": "Signed out",
|
||
"auth.login_button": "Sign in",
|
||
"auth.login_error": "Invalid credentials",
|
||
"auth.login_title": "Secure access to your vaults",
|
||
"auth.logout_title": "Sign out",
|
||
"auth.network_error": "Network error — check your connection",
|
||
"auth.new_password": "New password (empty = unchanged)",
|
||
"auth.password": "Password",
|
||
"auth.password_min": "Min. 8 characters",
|
||
"auth.remember_me": "Remember me (30 days)",
|
||
"auth.session_expired": "Session expired, please sign in again",
|
||
"auth.user_deleted": "User deleted",
|
||
"auth.username": "Username",
|
||
"auto.0257e77f": "🧰 Toolbox ▾",
|
||
"auto.033a9ddf": "Default model",
|
||
"auto.03a6e5b1": "The operators used are displayed as",
|
||
"auto.13c3ee2c": "Search and autocomplete",
|
||
"auto.13eb7a51": "AI: invalid API key",
|
||
"auto.14c75ac6": "Select desired events",
|
||
"auto.195a8e44": "Create directory",
|
||
"auto.1a54bd69": "Combined example",
|
||
"auto.1a8a8118": "Drag and drop",
|
||
"auto.1abf6661": "The path displayed above the content is",
|
||
"auto.1d3330cc": "No automatic retry on failure",
|
||
"auto.1d46301c": "Line numbers",
|
||
"auto.1efbbc9a": "Editing with CodeMirror 6",
|
||
"auto.209c5490": "The top bar contains the essential elements:",
|
||
"auto.272dd29a": "Supported providers",
|
||
"auto.27a2f7c1": "ObsiGate supports opening multiple files simultaneously in tabs.",
|
||
"auto.28bf6aab": "Security: HMAC-SHA256 signature",
|
||
"auto.2a5af19b": "The workflow triggers automatically",
|
||
"auto.2bc24d2e": "All sensitive operations are logged",
|
||
"auto.2bc66bab": "Directory creation via API",
|
||
"auto.337d8626": "Light/dark theme",
|
||
"auto.37561472": "🛡️ Security",
|
||
"auto.396d0dd8": "The AI toolbar appears below the title",
|
||
"auto.3be698f6": "Favor operators",
|
||
"auto.404c8f1c": "Autocomplete helps you quickly find",
|
||
"auto.41d7c6af": "Dedicated directory",
|
||
"auto.460b8298": "Data",
|
||
"auto.4bc1f00a": "Use operators to refine your",
|
||
"auto.4c908ade": "Click a vault to open it and see its",
|
||
"auto.4d281c6c": "AI: text processed ✓",
|
||
"auto.4dfa6a25": "No vault filtering — a webhook listens to",
|
||
"auto.4fa5d7c2": "Quick editing",
|
||
"auto.559ef1da": "Recommended workflow",
|
||
"auto.598a0ca7": "Tracked events",
|
||
"auto.5a486420": "Delete directory",
|
||
"auto.5d4a2516": "Open a file in Edit mode (✏️ button",
|
||
"auto.5d936af6": "Generated regex",
|
||
"auto.62c3d50d": "💬 Rewrite",
|
||
"auto.678711b5": "Select a context",
|
||
"auto.695d9e47": "CodeMirror 6 Editor",
|
||
"auto.6c166d35": "ObsiGate is your web gateway to your Obsidian vaults. Access, browse, and search all your notes from any device via a modern and responsive interface.",
|
||
"auto.72e515fa": "Access control by vault",
|
||
"auto.753d30a8": "Open a file to see it",
|
||
"auto.774dbd63": "The Command Palette allows quick keyboard access to all ObsiGate functions. Use it to open files, execute commands, and navigate without touching the mouse.",
|
||
"auto.79f6e1dd": "Multi-window",
|
||
"auto.7c9cdc3c": "Check the events to listen to",
|
||
"auto.7e13c97a": "These settings apply immediately",
|
||
"auto.83a0efdf": "Reindexing",
|
||
"auto.9122fd5c": "Advanced configuration",
|
||
"auto.98c547ea": "do not trigger",
|
||
"auto.a05514cb": "Creation via API or palette",
|
||
"auto.a105a2d9": "Edit ▾",
|
||
"auto.a131dfab": "CodeMirror Editor",
|
||
"auto.a232672b": "Deployment",
|
||
"auto.a3319169": "📦 About",
|
||
"auto.aa8ca265": "The view uses the Barnes-Hut algorithm to calculate the layout in O(n log n), ensuring smooth performance even with hundreds of nodes.",
|
||
"auto.ab5e6155": "ObsiGate automatically creates backups before",
|
||
"auto.aedff644": "Create markdown file",
|
||
"auto.b114ed1c": "These settings are saved on the server. Some require a restart or reindexing.",
|
||
"auto.b419c2c2": "Python receiver (Flask)",
|
||
"auto.b86ba5ea": "Multi-criteria search",
|
||
"auto.b893650a": "Edit current file",
|
||
"auto.ba768f01": "Supported events",
|
||
"auto.c089d968": "Pin files to find them",
|
||
"auto.c14b5603": "🎨 Themes",
|
||
"auto.c4922a99": "🤖 Artificial Intelligence in the Editor",
|
||
"auto.caac40b9": "Choose a visual theme. Each theme offers",
|
||
"auto.cd7332c8": "Results include facets to refine",
|
||
"auto.ce4eb802": "Generate ▾",
|
||
"auto.d33601dc": "Real-time file monitoring via",
|
||
"auto.d4d28717": "Trigger",
|
||
"auto.e0b8a606": "Define tag patterns to hide from",
|
||
"auto.e61598c1": "Share a document to see it",
|
||
"auto.ec7260fa": "Supported file types",
|
||
"auto.edf89626": "The built-in editor offers:",
|
||
"auto.ef8c5f4d": "The built-in editor offers a complete editing experience:",
|
||
"auto.f346076a": "✏️ Advanced Editing",
|
||
"auto.f5a8c116": "Event",
|
||
"auto.f8ba6127": "🗂️ Hidden files",
|
||
"auto.fc694490": "Deletion via API or editor",
|
||
"backup.delete": "Delete",
|
||
"backup.diff": "Compare",
|
||
"backup.file_restored": "File restored successfully",
|
||
"backup.no_backups": "No backups",
|
||
"backup.preview": "Preview",
|
||
"backup.purge": "Purge",
|
||
"backup.restore": "Restore",
|
||
"backup.restore_failed": "Restore failed",
|
||
"backup.select_to_restore": "Select a backup to restore",
|
||
"backup.timestamp_not_found": "Cannot find backup timestamp",
|
||
"backup.title": "Backups",
|
||
"backup.version": "Version from {date}",
|
||
"backups.delete_confirm": "Delete this backup?",
|
||
"backups.empty": "No backups available for this file.",
|
||
"backups.hint": "Backups are created automatically before each modification.",
|
||
"backups.loading": "Loading backups...",
|
||
"backups.purge_file": "Delete ALL backups of",
|
||
"backups.purge_vault": "Delete ALL backups from vault",
|
||
"backups.restore_confirm": "to the selected backup version?\nThe current version will be saved.",
|
||
"backups.title": "Backups",
|
||
"button.cancel": "Cancel",
|
||
"common.actions": "Actions",
|
||
"common.all": "All",
|
||
"common.back": "Back",
|
||
"common.cancel": "Cancel",
|
||
"common.close": "Close",
|
||
"common.confirm": "Confirm",
|
||
"common.copied": "Copied!",
|
||
"common.copy": "Copy",
|
||
"common.create": "Create",
|
||
"common.delete": "Delete",
|
||
"common.download": "Download",
|
||
"common.edit": "Edit",
|
||
"common.error": "Error",
|
||
"common.loading": "Loading...",
|
||
"common.move": "Move",
|
||
"common.never": "Never",
|
||
"common.next": "Next",
|
||
"common.no": "No",
|
||
"common.none": "None",
|
||
"common.ok": "OK",
|
||
"common.previous": "Previous",
|
||
"common.refresh": "Refresh",
|
||
"common.rename": "Rename",
|
||
"common.root": "(root)",
|
||
"common.save": "Save",
|
||
"common.search": "Search",
|
||
"common.unknown": "Unknown",
|
||
"common.yes": "Yes",
|
||
"collab.peers_title": "{count} person(s) connected",
|
||
"collab.presence_title": "Real-time collaboration",
|
||
"collab.status_connected": "Collaboration active",
|
||
"collab.status_connecting": "Connecting to collaboration…",
|
||
"collab.status_disconnected": "Collaboration lost — reconnecting…",
|
||
"config.about": "About",
|
||
"config.about_error": "Loading error",
|
||
"config.about_loading": "Loading...",
|
||
"config.add_webhook": "Add",
|
||
"config.ai_deepseek_label": "DeepSeek API Key",
|
||
"config.ai_default_model": "Default model",
|
||
"config.ai_capabilities": "Model capabilities",
|
||
"config.ai_default_provider": "Default provider",
|
||
"config.ai_gemini_label": "Gemini API Key",
|
||
"config.ai_keys": "AI API keys",
|
||
"config.ai_keys_desc": "Configure API keys for the AI editor.",
|
||
"config.ai_model": "Model",
|
||
"config.ai_openrouter_label": "OpenRouter API Key",
|
||
"config.ai_header_desc": "Configure your API keys provider by provider. Expand a card to enter a key, then click Test to load the models.",
|
||
"config.ai_search_placeholder": "Search a provider…",
|
||
"config.ai_default_section": "Default configuration",
|
||
"config.ai_providers_title": "API providers",
|
||
"config.ai_providers_empty": "No matching provider",
|
||
"config.ai_status_configured": "Configured",
|
||
"config.ai_status_not_configured": "Not configured",
|
||
"config.ai_delete_key_title": "Delete the API key",
|
||
"config.api_keys_saved": "API keys saved",
|
||
"config.section_sources": "🔗 Connected sources & search",
|
||
"config.sources_desc": "Keys used by the AI assistant tools (keyed web search: Tavily, Brave, SerpAPI, Exa; connected sources: Gitea, GitHub). They are stored server-side and take precedence over environment variables.",
|
||
"config.gitea_url": "Gitea URL",
|
||
"config.key_set": "Configured",
|
||
"config.key_unset": "Not configured",
|
||
"config.delete_key": "Delete",
|
||
"config.delete_key_confirm": "Delete key",
|
||
"config.key_deleted": "Key deleted:",
|
||
"config.avatar_label": "Profile picture",
|
||
"config.avatar_hint": "PNG, JPG or WEBP — square image cropped and resized to 256 px. Shown in the sidebar.",
|
||
"config.avatar_presets_label": "Or pick a preset avatar",
|
||
"config.avatar_choose": "Choose an image",
|
||
"config.avatar_remove": "Remove picture",
|
||
"config.avatar_updated": "Profile picture updated",
|
||
"config.avatar_removed": "Profile picture removed",
|
||
"config.avatar_too_large": "Image too large (8 MB max)",
|
||
"config.avatar_invalid_type": "Unsupported format — use PNG, JPG or WEBP",
|
||
"config.avatar_upload_failed": "Failed to save the profile picture",
|
||
"config.backups": "Backups",
|
||
"config.backups_desc": "Manage automatic file backups.",
|
||
"config.client_config": "Client config",
|
||
"config.create_share": "Create share",
|
||
"config.debounce_label": "Debounce delay (ms)",
|
||
"config.diagnostics": "Diagnostics",
|
||
"config.diagnostics_desc": "Technical information about the server state.",
|
||
"config.display_name": "Display name",
|
||
"config.error_prefix": "Error",
|
||
"config.error_unknown": "Unknown error",
|
||
"config.force_reindex": "Force reindex",
|
||
"config.hidden_files": "Hidden files",
|
||
"config.hidden_files_desc": "Hide files/folders starting with a dot in the interface (they remain indexed and searchable)",
|
||
"config.hidden_files_toggle": "Hide hidden files/folders",
|
||
"config.hidden_include_label": "Include hidden files",
|
||
"config.hidden_whitelist_label": "Whitelist (comma-separated)",
|
||
"config.hint_activer_d_sactiver_la_surveillance_automatique_des": "Enable/disable automatic file monitoring",
|
||
"config.hint_annuler_la_recherche_apr_s_ce_d_lai_5000_120000_": "Cancel search after this delay (5000-120000)",
|
||
"config.hint_contenu_index_par_fichier_10k_1m_r_indexation_requ": "Max content size per file (bytes)",
|
||
"config.hint_d_lai_avant_ex_cution_de_la_recherche_100_2000_": "Delay before search execution (100-2000)",
|
||
"config.hint_d_lai_avant_traitement_des_changements_group_s_0_5": "Delay before processing grouped changes (0.5-10 seconds)",
|
||
"config.hint_entre_5_et_100_fichiers_sauvegarde_sur_le_serveur_": "Between 5 and 100 files (stored on server)",
|
||
"config.hint_forcer_le_mode_polling_au_lieu_de_inotify_natif_ut": "Forcer le mode polling au lieu de inotify natif (utile si le mode natif ne fonctionne pas)",
|
||
"config.hint_intervalle_de_scrutation_en_mode_polling_1_30_seco": "Intervalle de scrutation en mode polling (1-30 secondes)",
|
||
"config.hint_multiplicateur_de_pertinence_pour_les_correspondan": "Multiplicateur de pertinence pour les correspondances dans le titre",
|
||
"config.hint_nombre_de_r_sultats_affich_s_par_page_10_200_": "Number of results displayed per page (10-200)",
|
||
"config.hint_nombre_max_de_tokens_largis_par_pr_fixe_10_200_": "Max expanded tokens per prefix (10-200)",
|
||
"config.hint_nombre_maximum_de_versions_backup_conservees_par_f": "Maximum backup versions kept per file (1-50)",
|
||
"config.hint_nombre_minimum_de_caract_res_avant_recherche_1_5_": "Minimum characters before search triggers (1-5)",
|
||
"config.hint_threads_d_di_s_la_recherche_1_8_": "Dedicated search threads (1-8)",
|
||
"config.just_now": "just now",
|
||
"config.lang_hint": "Used by autocomplete and ghost text.",
|
||
"config.lang_label": "Preferred language",
|
||
"config.link_copied": "Link copied!",
|
||
"config.link_created": "Link created!",
|
||
"config.logout": "Sign out",
|
||
"config.max_backups": "Max backups per file",
|
||
"config.max_backups_desc": "Maximum backup versions kept per file (1-50)",
|
||
"config.max_backups_label": "Max backups per file",
|
||
"config.max_content_hint": "Indexed content per file (10K-1M). Reindex required.",
|
||
"config.max_content_label": "Max content size (bytes)",
|
||
"config.max_content_size": "Max content size (bytes)",
|
||
"config.max_prefix_expansions": "Max prefix expansions",
|
||
"config.min_query_label": "Min. query length",
|
||
"config.min_query_length": "Min query length",
|
||
"config.name_placeholder": "Your name",
|
||
"config.no_keys": "No keys to save",
|
||
"config.no_restart": "No restart needed",
|
||
"config.note": "Note:",
|
||
"config.open_new_window": "Open in new window",
|
||
"config.prefix_expansions_hint": "Max tokens expanded by prefix (10-200)",
|
||
"config.prefix_expansions_label": "Max prefix expansions",
|
||
"config.profile": "User profile",
|
||
"config.profile_desc": "Personal preferences to customize your ObsiGate experience.",
|
||
"config.project_repo": "project repository",
|
||
"config.recent_history_count": "Files in history",
|
||
"config.recent_history_count_desc": "Between 5 and 100 files (saved on server)",
|
||
"config.reindex": "Reindex",
|
||
"config.reindex_desc": "Rebuild the search index for all vaults.",
|
||
"config.reindex_error": "Reindex error",
|
||
"config.reindexing": "Reindexing...",
|
||
"config.reset": "Reset",
|
||
"config.restart_required": "Restart required",
|
||
"config.results_per_page": "Results per page",
|
||
"config.results_per_page_label": "Results per page",
|
||
"config.save": "Save",
|
||
"config.save_ai_keys": "Save keys",
|
||
"config.save_backend": "Save server configuration",
|
||
"config.save_error": "Save error",
|
||
"config.save_hidden": "Save",
|
||
"config.saved": "✓ Saved",
|
||
"config.saving": "Saving",
|
||
"config.search_timeout": "Search timeout (ms)",
|
||
"config.search_workers": "Search workers",
|
||
"config.search_workers_hint": "Dedicated search threads (1-8)",
|
||
"config.search_workers_label": "Search workers",
|
||
"config.section_a-propos": "📦 About",
|
||
"config.section_about": "About",
|
||
"config.section_actions-sur-fichiers": "File actions",
|
||
"config.section_activation": "Activation",
|
||
"config.section_affichage": "Affichage",
|
||
"config.section_ai": "AI API keys",
|
||
"config.section_arborescence-des-vaults": "Arborescence des vaults",
|
||
"config.section_astuces-et-bonnes-pratiques": "💡 Astuces et bonnes pratiques",
|
||
"config.section_audit-log": "Audit log",
|
||
"config.section_authentification": "Authentification",
|
||
"config.section_autocompletion": "Autocompletion",
|
||
"config.section_backend": "🖥️ Backend Settings",
|
||
"config.section_backup-automatique": "Backup automatique",
|
||
"config.section_backups": "Backups",
|
||
"config.section_barre-d-outils-ai": "Barre d'outils AI",
|
||
"config.section_breadcrumb-et-repositionnement": "Breadcrumb et repositionnement",
|
||
"config.section_cas-d-usage": "Cas d'usage",
|
||
"config.section_cas-d-usage-avances": "Advanced use cases",
|
||
"config.section_chips-de-filtres-actifs": "Chips de filtres actifs",
|
||
"config.section_cles-api-intelligence-artificielle": "🤖 Cles API Intelligence Artificielle",
|
||
"config.section_configuration": "Configuration",
|
||
"config.section_configuration-avancee": "Advanced configuration",
|
||
"config.section_construit-avec": "Construit avec",
|
||
"config.section_diag": "Diagnostics",
|
||
"config.section_diagnostics": "Diagnostics",
|
||
"config.section_editeur-codemirror": "CodeMirror Editor",
|
||
"config.section_editeur-codemirror-6": "CodeMirror 6 Editor",
|
||
"config.section_edition-avancee": "✏️ Advanced Editing",
|
||
"config.section_edition-avec-codemirror-6": "Editing with CodeMirror 6",
|
||
"config.section_en-tete": "Header",
|
||
"config.section_evenements-supportes": "Supported events",
|
||
"config.section_exemples-concrets": "Exemples concrets",
|
||
"config.section_facettes-et-tri": "Facettes et tri",
|
||
"config.section_fichiers": "📄 Files",
|
||
"config.section_filtrage-de-la-sidebar": "Filtrage de la sidebar",
|
||
"config.section_filtrage-de-tags": "Filtrage de tags",
|
||
"config.section_filtrage-de-tags-template": "Filtrage de tags template",
|
||
"config.section_fonctionnalites": "Features",
|
||
"config.section_format-du-payload": "Format du payload",
|
||
"config.section_gestion-des-onglets": "📑 Gestion des onglets",
|
||
"config.section_hidden": "🗂️ Hidden files",
|
||
"config.section_historique-recent-redemarrage-non-requis": "📋 Recent History\n No restart required",
|
||
"config.section_indicateurs-visuels": "Indicateurs visuels",
|
||
"config.section_intelligence-artificielle-dans-l-editeur": "🤖 AI in the Editor",
|
||
"config.section_interaction": "Interaction",
|
||
"config.section_interface": "Interface",
|
||
"config.section_interface-utilisateur": "🧭 Interface utilisateur",
|
||
"config.section_limitations-actuelles": "Limitations actuelles",
|
||
"config.section_mode-commandes": "Mode commandes",
|
||
"config.section_mode-fichiers": "File mode",
|
||
"config.section_navigation": "Navigation",
|
||
"config.section_navigation-entre-onglets": "Navigation entre onglets",
|
||
"config.section_onglets": "Onglets",
|
||
"config.section_operateurs-avances": "Advanced operators",
|
||
"config.section_optimisations": "Optimisations",
|
||
"config.section_ouverture": "Ouverture",
|
||
"config.section_ouverture-d-onglets": "Ouverture d'onglets",
|
||
"config.section_palette-de-commandes": "⌨️ Palette de commandes",
|
||
"config.section_parametres-backend-redemarrage-requis": "Backend settings\n Restart required",
|
||
"config.section_parametres-de-recherche": "Search settings",
|
||
"config.section_partage-et-webhooks": "🔗 Partage et Webhooks",
|
||
"config.section_partages-publics": "📤 Partages publics",
|
||
"config.section_perf": "⚡ Performance",
|
||
"config.section_performance": "Performance",
|
||
"config.section_personnalisation": "🎨 Personnalisation",
|
||
"config.section_profil-utilisateur": "👤 Profil utilisateur",
|
||
"config.section_profile": "User profile",
|
||
"config.section_protection": "Protection",
|
||
"config.section_providers-supportes": "Supported providers",
|
||
"config.section_publication-publique": "Publication publique",
|
||
"config.section_raccourcis-clavier": "⌨️ Raccourcis clavier",
|
||
"config.section_recent": "📜 Recent History",
|
||
"config.section_recherche": "🔍 Recherche",
|
||
"config.section_recherche-et-autocompletion": "Search and autocompletion",
|
||
"config.section_recherche-simple": "Recherche simple",
|
||
"config.section_redimensionnement-de-la-sidebar": "Redimensionnement de la sidebar",
|
||
"config.section_sauvegarde-automatique": "Sauvegarde automatique",
|
||
"config.section_sauvegardes-et-audits": "💾 Sauvegardes et Audits",
|
||
"config.section_search": "Search settings",
|
||
"config.section_securite": "🛡️ Security",
|
||
"config.section_securite-signature-hmac-sha256": "Security: HMAC-SHA256 signature",
|
||
"config.section_selection-de-vault": "Vault selection",
|
||
"config.section_server": "Server",
|
||
"config.section_shares": "📤 Public Shares",
|
||
"config.section_sidebar-barre-laterale": "Sidebar",
|
||
"config.section_synchronisation-automatique": "Synchronisation automatique",
|
||
"config.section_tag-cloud": "Tag cloud",
|
||
"config.section_tags": "🏷️ Tag Filtering",
|
||
"config.section_tags-inline-vs-frontmatter": "Tags inline vs frontmatter",
|
||
"config.section_theme-clair-sombre": "Light/Dark theme",
|
||
"config.section_themes": "🎨 Themes",
|
||
"config.section_trucs-et-astuces": "Trucs et astuces",
|
||
"config.section_types-de-fichiers-supportes": "Supported file types",
|
||
"config.section_visualisation": "Visualisation",
|
||
"config.section_vue-graphe": "🗺️ Vue Graphe",
|
||
"config.section_watcher": "Auto sync",
|
||
"config.section_webhooks": "🔗 Webhooks",
|
||
"config.section_push": "🔔 Push notifications",
|
||
"config.section_plugins": "🧩 Plugins",
|
||
"config.section_workflow-recommande": "Recommended workflow",
|
||
"config.section_zone-de-contenu": "Zone de contenu",
|
||
"config.server_config": "Server config",
|
||
"config.settings_saved": "✓ Settings saved",
|
||
"config.share_revoked": "Share revoked",
|
||
"config.shares": "Public shares",
|
||
"config.shares_desc": "Manage public share links for your documents.",
|
||
"config.shares_empty": "No active shares",
|
||
"config.tag_boost_hint": "Relevance multiplier for tag matches",
|
||
"config.tag_boost_label": "Tag boost",
|
||
"config.tag_filtering_label": "Tag filtering",
|
||
"config.test": "Test",
|
||
"config.timeout_label": "Search timeout (ms)",
|
||
"config.title": "Settings",
|
||
"config.toc_close": "Close contents",
|
||
"config.toc_toggle": "Show contents",
|
||
"config.title_boost": "Title boost",
|
||
"config.title_boost_hint": "Relevance multiplier for title matches",
|
||
"config.title_boost_label": "Title boost",
|
||
"config.nav_tokens": "🔑 API & MCP keys",
|
||
"config.section_tokens": "🔑 API & MCP keys",
|
||
"config.tokens_desc": "Long-lived tokens for the REST API and the MCP server — the same key works for both (Authorization: Bearer header).",
|
||
"config.tokens_empty": "No API keys created.",
|
||
"config.token_name_placeholder": "Name (e.g. Claude Desktop)",
|
||
"config.token_name_required": "A name is required",
|
||
"config.token_expiry_1d": "1 day",
|
||
"config.token_expiry_30d": "1 month",
|
||
"config.token_expiry_180d": "6 months",
|
||
"config.token_expiry_365d": "1 year",
|
||
"config.token_expiry_never": "Never",
|
||
"config.token_create": "Create key",
|
||
"config.token_secret_warning": "Copy this key now — it will never be shown again.",
|
||
"config.token_copy": "Copy",
|
||
"config.token_copied": "Key copied to clipboard",
|
||
"config.token_done": "Done",
|
||
"config.token_usage": "Usage",
|
||
"config.token_usage_detail": ": \"Authorization: Bearer <key>\" header on the API; for MCP, declare it in the headers of the /mcp URL.",
|
||
"config.token_created": "Created",
|
||
"config.token_expires": "Expires",
|
||
"config.token_last_used": "Last used",
|
||
"config.token_never_used": "Never used",
|
||
"config.token_status_active": "Active",
|
||
"config.token_status_expired": "Expired",
|
||
"config.token_revoke": "Revoke",
|
||
"config.token_revoke_confirm": "Revoke key",
|
||
"config.token_revoked_toast": "Key revoked (immediate effect on API + MCP)",
|
||
"config.token_created_toast": "Key created",
|
||
"config.url_required": "URL required",
|
||
"config.watcher_debounce_label": "Debounce (s)",
|
||
"config.watcher_enabled_label": "Enable watcher",
|
||
"config.watcher_interval_label": "Polling interval (s)",
|
||
"config.watcher_polling_label": "Polling mode (fallback)",
|
||
"config.webhook_name_placeholder": "Name",
|
||
"config.webhook_url_placeholder": "URL",
|
||
"config.webhooks": "Webhooks",
|
||
"config.webhooks_desc": "HTTP notifications to external services on file changes.",
|
||
"config.plugins": "Plugins",
|
||
"config.plugins_desc": "Manage installed plugins for this vault.",
|
||
"config.workers_label": "Search workers",
|
||
"confirm.delete_dir": "Delete this folder and all its contents?",
|
||
"confirm.delete_dir_named": "Delete \"{path}\" and ALL its contents?",
|
||
"confirm.delete_file": "Permanently delete this file?",
|
||
"confirm.delete_file_named": "Delete file \"{path}\"?",
|
||
"confirm.logout": "Are you sure you want to sign out?",
|
||
"conflict.no_conflicts": "No conflicts detected",
|
||
"conflict.resolve_conflict": "Keep conflict version",
|
||
"conflict.resolve_local": "Keep local version",
|
||
"conflict.resolved": "Conflict resolved",
|
||
"dashboard.all_vaults": "All vaults",
|
||
"dashboard.bookmark_add": "Add to bookmarks",
|
||
"dashboard.bookmark_remove": "Remove from bookmarks",
|
||
"dashboard.bookmarks": "Bookmarks",
|
||
"dashboard.conflict_date": "Conflict of ",
|
||
"dashboard.conflict_resolved": "Conflict resolved",
|
||
"dashboard.conflicts": "Conflicts",
|
||
"dashboard.conflicts_title": "Sync conflicts",
|
||
"dashboard.copy_btn": "Copy",
|
||
"dashboard.count_files": "file",
|
||
"dashboard.count_files_plural": "files",
|
||
"dashboard.ctrl_hover_tip": "Hover over a document with Ctrl for a quick preview. Click Forge in the toolbar for the advanced editor.",
|
||
"dashboard.day_ago": "{n} d ago",
|
||
"dashboard.error_prefix": "Error: ",
|
||
"dashboard.expires": "Expires {date}",
|
||
"dashboard.hide": "Hide",
|
||
"dashboard.hour_ago": "{n} h ago",
|
||
"dashboard.just_now": "just now",
|
||
"dashboard.keep_conflict": "Keep conflict",
|
||
"dashboard.keep_original": "Keep original",
|
||
"dashboard.load_error": "Loading error",
|
||
"dashboard.loading": "Loading...",
|
||
"dashboard.min_ago": "{n} min ago",
|
||
"dashboard.no_bookmarks": "No bookmarks",
|
||
"dashboard.no_conflicts": "No conflicts",
|
||
"dashboard.no_recent": "No recent files",
|
||
"dashboard.no_shares": "No shared documents",
|
||
"dashboard.open_btn": "Open",
|
||
"dashboard.pin_error": "Pin error",
|
||
"dashboard.pin_hint": "Pin files to find them here.",
|
||
"dashboard.quick_help": "Quick Help",
|
||
"dashboard.recent": "Recent",
|
||
"dashboard.recent_hint": "Open a file to see it appear here",
|
||
"dashboard.shared_hint": "Share a document to see it appear here",
|
||
"dashboard.shares": "Shares",
|
||
"dashboard.show": "Show",
|
||
"dashboard.size_bytes": " B",
|
||
"dashboard.size_gb": " GB",
|
||
"dashboard.size_kb": " KB",
|
||
"dashboard.size_mb": " MB",
|
||
"dashboard.stats": "Statistics",
|
||
"dashboard.stats_files": "Files",
|
||
"dashboard.stats_size": "Total size",
|
||
"dashboard.stats_tags": "Unique tags",
|
||
"dashboard.stats_vaults": "Vaults",
|
||
"dashboard.tab_recent": "Recent",
|
||
"dashboard.tab_shared": "Shared",
|
||
"dashboard.tab_stats": "Statistics",
|
||
"dashboard.total_files": "Total files",
|
||
"dashboard.total_size": "Total size",
|
||
"dashboard.total_tags": "Unique tags",
|
||
"dashboard.vaults_count": "Vaults",
|
||
"dashboard.views": "{count} view(s)",
|
||
"dashboard.welcome": "Welcome to ObsiGate",
|
||
"dashboard.zero_files": "0 files",
|
||
"dragdrop.cross_vault_unsupported": "Cross-vault moves are not supported",
|
||
"dragdrop.move_failed": "Move failed",
|
||
"dragdrop.overlay_title": "Drop files or folders",
|
||
"dragdrop.overlay_vault_zone": "Import into Vault",
|
||
"dragdrop.overlay_ai_zone": "Analyze with AI Assistant",
|
||
"upload.uploading": "Uploading {count} file(s)...",
|
||
"upload.success": "Successfully imported {count} file(s)",
|
||
"upload.partial": "Imported {count} file(s) ({errors} errors)",
|
||
"upload.error": "Upload failed",
|
||
"upload.choose_target_folder": "Import Destination",
|
||
"upload.target_vault": "Target Vault",
|
||
"upload.vault_root": "/ (Vault root)",
|
||
"upload.target_directory": "Target subdirectory",
|
||
"upload.filter_folders": "Filter or search a folder...",
|
||
"upload.custom_folder": "Or enter a new subfolder path...",
|
||
"upload.import_summary": "Items to import: {files} file(s), {dirs} folder(s)",
|
||
"upload.import_button": "Import",
|
||
"editor.cancel": "Cancel",
|
||
"editor.close": "Close",
|
||
"editor.delete_error": "Delete error",
|
||
"editor.edit": "Edit current file",
|
||
"editor.edit_current_desc": "Open current file in editor",
|
||
"editor.exit_fullscreen": "Exit fullscreen",
|
||
"editor.find": "Find in file...",
|
||
"editor.find_case": "Case sensitive",
|
||
"editor.find_regex": "Regex",
|
||
"editor.find_whole": "Whole word",
|
||
"editor.forge_close_editor": "Close editor / modal",
|
||
"editor.forge_help": "Forge editor help",
|
||
"editor.fullscreen": "Fullscreen",
|
||
"editor.no_results": "No results",
|
||
"editor.replace": "Replace",
|
||
"editor.save": "Save",
|
||
"editor.save_error": "Save error",
|
||
"editor.saved": "Saved ✓",
|
||
"editor.unsaved": "Unsaved changes",
|
||
"error.initialization": "Initialization error",
|
||
"file.copy_path": "Copy path",
|
||
"file.delete": "Delete",
|
||
"file.graph_view": "Graph view",
|
||
"file.new_file": "New file",
|
||
"file.new_folder": "New folder",
|
||
"file.properties": "Properties",
|
||
"file.rename": "Rename",
|
||
"forge.popout": "Open in new window",
|
||
"forge.popout_label": "pop-out",
|
||
"forge.title_placeholder": "Title...",
|
||
"graph.back": "Back",
|
||
"graph.btn_directory": "📁 Directory",
|
||
"graph.btn_full": "🌐 All",
|
||
"graph.cache_label": "(cached)",
|
||
"graph.category": "📂 Category",
|
||
"graph.click_to_open": "click to open",
|
||
"graph.ctrl_hover_preview": "Ctrl+hover = full preview",
|
||
"graph.ctrl_hover_preview_short": "Ctrl+hover = preview",
|
||
"graph.depth": "Depth",
|
||
"graph.depth_label": "depth={depth}",
|
||
"graph.edges_count": "{count} links",
|
||
"graph.error_loading": "Loading error",
|
||
"graph.export_png": "Export PNG",
|
||
"graph.favorites": "Favorites",
|
||
"graph.filter_tag": "Filter by tag",
|
||
"graph.filter_type": "Filter by type",
|
||
"graph.focus_mode": "Focus mode",
|
||
"graph.forward": "Forward",
|
||
"graph.fullscreen": "Full screen",
|
||
"graph.loading": "Building graph...",
|
||
"graph.nodes_count": "{count} nodes",
|
||
"graph.parent": "Parent",
|
||
"graph.published": "Published",
|
||
"graph.published_badge": "✅ published",
|
||
"graph.scope_directory": "Directory",
|
||
"graph.scope_full": "Full vault",
|
||
"graph.title": "Graph View — {vault}{path}",
|
||
"graph.type_directory": "Directory",
|
||
"graph.type_file": "File",
|
||
"graph.type_markdown": "Markdown",
|
||
"header.admin_panel": "Administration",
|
||
"header.config": "Settings",
|
||
"header.help": "Help",
|
||
"header.install_app": "Install app",
|
||
"header.logo": "ObsiGate",
|
||
"header.logout": "Sign out",
|
||
"header.menu_about": "About",
|
||
"header.menu_about_desc": "Version, credits & info",
|
||
"header.menu_admin": "Administration",
|
||
"header.menu_admin_desc": "Manage users",
|
||
"header.menu_api": "API",
|
||
"header.menu_api_desc": "OpenAPI documentation",
|
||
"header.menu_config": "Settings",
|
||
"header.menu_config_desc": "Application settings",
|
||
"header.menu_help": "User guide",
|
||
"header.menu_help_desc": "Open help",
|
||
"header.menu_logout": "Sign out",
|
||
"header.menu_logout_desc": "End session",
|
||
"header.menu_profile": "Profile",
|
||
"header.menu_profile_desc": "Language & preferences",
|
||
"header.menu_theme": "Theme",
|
||
"header.menu_theme_light": "Light",
|
||
"header.menu_toggle": "Menu",
|
||
"header.menu_version": "Version",
|
||
"header.profile": "Profile",
|
||
"header.quick_help": "Quick Help",
|
||
"header.refresh": "Refresh",
|
||
"header.search_placeholder": "Search all vaults...",
|
||
"header.sidebar_toggle": "Toggle sidebar",
|
||
"header.sync_status": "Sync",
|
||
"help.00b9572b": "Results ranked by TF-IDF relevance",
|
||
"help.04df1506": "Global search with autocomplete",
|
||
"help.065f53ee": "Silent auto-save after 2s of inactivity",
|
||
"help.085ec31f": "Quick select at the top of the Vault tab",
|
||
"help.096367af": "Visual indicators",
|
||
"help.170a6982": "Horizontal display with the file name",
|
||
"help.229fd3e2": "Discord notification",
|
||
"help.2507242f": "🏷️ Tags",
|
||
"help.29afa01d": "🪝 Webhooks",
|
||
"help.2a2e5b0f": "⌨️ Keyboard shortcuts",
|
||
"help.2a92203f": "Tips and tricks",
|
||
"help.2c03a7ba": "Inline vs frontmatter tags",
|
||
"help.2dad2bfd": "Automatic save",
|
||
"help.381abec7": "Current limitations",
|
||
"help.3cf370b1": "Type a file name to find it quickly. The search uses the <code>/api/suggest</code> API for instant suggestions. Press Enter to open the selected file.",
|
||
"help.40dd7e38": "Test with curl",
|
||
"help.4de7e318": "The 50 most recent searches (localStorage)",
|
||
"help.550b0240": "Concrete examples",
|
||
"help.5ab8c78d": "Stay open until manually closed",
|
||
"help.5d0fbb81": "Workers, TF-IDF boosts, prefix expansions",
|
||
"help.5f87ea79": "Tag cloud",
|
||
"help.61ee5a22": "Interaction",
|
||
"help.62308f96": "<kbd>Ctrl+Shift+Space</kbd>: File palette (search by title)",
|
||
"help.62549eca": "💾 Backups and Audits",
|
||
"help.63f024d4": "Template tag filtering",
|
||
"help.686f8313": "💡 Tips and best practices",
|
||
"help.6a5ddef2": "Tags adapt to the selected vault",
|
||
"help.6ae5342c": "Index stats, memory, search engine",
|
||
"help.6b88a375": "Debounce delay, results per page, timeout",
|
||
"help.6b8fc728": "↑/↓ to navigate, Enter to select",
|
||
"help.6d547397": "<kbd>Tab</kbd>: Toggle between file mode and command mode",
|
||
"help.6e940dac": "Click the sidebar icon in the header",
|
||
"help.733f0559": "🗺️ Navigation",
|
||
"help.77f4f06e": "Payload format",
|
||
"help.7bcbb2e3": "Sidebar resizing",
|
||
"help.7db70e27": "Copy, Source, Download, Edit, Open in new window",
|
||
"help.83f1d9ca": "Protection",
|
||
"help.86e3825d": "🎨 Customization",
|
||
"help.8717768b": "Node metadata (tags, links, path)",
|
||
"help.89bd3c4c": "Only shows nodes with a specific tag",
|
||
"help.8c5341e0": "📑 Tab management",
|
||
"help.8c65b2f2": "🔗 Sharing and Webhooks",
|
||
"help.8caed987": "Display",
|
||
"help.9c7a0a8d": "🗺️ Graph View",
|
||
"help.9edeaa11": "Controls exploration depth (0-3)",
|
||
"help.9f78b3ec": "Easier navigation in long files",
|
||
"help.a4a4e21b": "\"×\" button to reset the filter",
|
||
"help.a579cf4d": "Preview note content without navigating",
|
||
"help.a648c49e": "Facets and sorting",
|
||
"help.ab2c4150": "Files (squares) and folders (circles) with icons",
|
||
"help.about": "About",
|
||
"help.access": "Access",
|
||
"help.action_buttons": "Action buttons",
|
||
"help.actions_available": "Buttons available above the content:",
|
||
"help.actions_detail": "Buttons available above the content:",
|
||
"help.activation": "Activation",
|
||
"help.active_filter_chips": "Active filter chips",
|
||
"help.active_tab": "Active tab",
|
||
"help.add_remove": "Add/Remove",
|
||
"help.adf30d78": "🔍 Search",
|
||
"help.advanced_operators": "Advanced operators",
|
||
"help.advanced_use_cases": "Advanced use cases",
|
||
"help.ai_completes": "Completes",
|
||
"help.ai_features": "Edit, tone, translate, generate and tools via AI.",
|
||
"help.ai_flash_green": "flashes green",
|
||
"help.ai_tone_casual": "Casual tone",
|
||
"help.all_vaults": "All vaults",
|
||
"help.atomic_writes": "Atomic writes",
|
||
"help.audit_log": "Audit log",
|
||
"help.auto_save": "Automatic save",
|
||
"help.auto_scroll": "Auto-scroll",
|
||
"help.autocomplete": "Autocomplete",
|
||
"help.b6619ac9": "<kbd>Ctrl+Alt+Space</kbd>: Command palette (action list)",
|
||
"help.backlinks_panel": "Backlinks panel",
|
||
"help.backup_auto": "Auto backup",
|
||
"help.before_write": "Before write",
|
||
"help.breadcrumb": "Breadcrumb",
|
||
"help.breadcrumb_clickable": "Clickable breadcrumb",
|
||
"help.breadcrumb_reposition": "Breadcrumb and repositioning",
|
||
"help.c017944b": "📄 Files",
|
||
"help.c48fb18a": "Authentication",
|
||
"help.c8532869": "Completion, rewrite, translation (see",
|
||
"help.case_sensitive": "Case-sensitive",
|
||
"help.cf8615b1": "Visualization",
|
||
"help.ci_cd": "CI/CD automation",
|
||
"help.clear": "Clear",
|
||
"help.clear_search": "Clear",
|
||
"help.click_segment": "Click a segment",
|
||
"help.click_tab": "Click a tab",
|
||
"help.click_vault": "Click the vault",
|
||
"help.clickable": "Clickable",
|
||
"help.close_help": "Close help",
|
||
"help.close_tab_x": "✕ button",
|
||
"help.code_preview": "Code + Preview",
|
||
"help.command_palette": "Command palette",
|
||
"help.configuration": "Settings",
|
||
"help.content_area": "Content area",
|
||
"help.content_shows": "The main area displays:",
|
||
"help.context_actions": "File actions",
|
||
"help.context_menu": "Context menu (right click)",
|
||
"help.copy_path": "Copy path",
|
||
"help.d186a19e": "The \"Recent\" tab in the sidebar lists your",
|
||
"help.d1ea1dc6": "n8n / Make (no-code)",
|
||
"help.d5c977ac": "Code blocks adapt to the theme",
|
||
"help.dark": "Dark",
|
||
"help.dashboard": "Dashboard statistics",
|
||
"help.delete": "Delete",
|
||
"help.desc_00b9572b": ":\n Results ranked by TF-IDF relevance",
|
||
"help.desc_04493800": ": 64\n caractères hexadécimaux, impossible à\n deviner",
|
||
"help.desc_065f53ee": ": Silent auto-save after 2s of inactivity, green confirmation flash",
|
||
"help.desc_071da87a": "Lecture seule : La vue publique n'affiche que le contenu sans édition",
|
||
"help.desc_0739c6a9": "Images : Support complet des syntaxes Obsidian",
|
||
"help.desc_085ec31f": ":\n Quick select at the top of the Vault tabs",
|
||
"help.desc_0f9a1e5b": "Use the sidebar to navigate between vaults and folders.",
|
||
"help.desc_11cf9e8a": "Éditer ▾ — Menu de modification du texte sélectionné : 🪄 Improve writing : Améliore la qualité, la clarté et le flux du texte",
|
||
"help.desc_13d206d4": "Transforms textual data into a readable Markdown table — ideal for comparisons and structured information.",
|
||
"help.desc_13d90039": "ObsiGate generates a shareable, read-only link.",
|
||
"help.desc_1577912b": "Rate limiting : 10 tentatives / 15 min par IP + verrouillage compte",
|
||
"help.desc_170a6982": "Converts a sentence or paragraph into a structured bullet-point list.",
|
||
"help.desc_188bc423": "Pour plus d'informations, consultez le dépôt du projet.",
|
||
"help.desc_19cf5730": "Rotation",
|
||
"help.desc_19cfa369": "Documents are automatically saved after each modification. A status indicator in the editor header confirms: <strong>Saved</strong> or <strong>Saving…</strong>.",
|
||
"help.desc_1a04ae18": "Use the sidebar to navigate between vaults and folders.",
|
||
"help.desc_1ba39cc4": "Update",
|
||
"help.desc_1c130d89": "Translate — translates selected text to target language",
|
||
"help.desc_1f11691c": "Atomic writes : Écriture via fichier temporaire + renommage atomique",
|
||
"help.desc_2349271d": "Automatisation CI/CD : Déclencher un build quand une note de procédure est mise à jour",
|
||
"help.desc_26f81732": "Édition rapide : Ouvrez l'éditeur, modifiez, sauvegardez",
|
||
"help.desc_287be69c": "Vault",
|
||
"help.desc_2c220763": "Edit config.yaml to customize behavior",
|
||
"help.desc_2f2c16b5": "Publish",
|
||
"help.desc_31e7253b": "Each backup",
|
||
"help.desc_32e3d66d": "En cas d'erreur de clé API : AI: clé API invalide",
|
||
"help.desc_39979e71": "Vault",
|
||
"help.desc_39e97b2f": "Note: the <code>file_modified</code> event is reserved for future use and is not currently emitted.",
|
||
"help.desc_3ace259e": "— Inline completion",
|
||
"help.desc_3c4711b8": "Edit config.yaml to customize behavior",
|
||
"help.desc_3d4e9189": "Simplifies the language for easier reading — replaces complex terms and shortens long sentences.",
|
||
"help.desc_3da1896a": "Each webhook receives a POST with event details",
|
||
"help.desc_3db2812f": "X-ObsiGate-Signature: sha256=9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 Pour vérifier côté récepteur : calculez HMAC-SHA256(corps_brut, secret) et comparez. Le header X-ObsiGate-Event contient aussi le type d'événement pour un routage rapide.",
|
||
"help.desc_40c92863": "Exploration par tags : Cliquez sur un tag dans une note pour voir toutes les notes similaires",
|
||
"help.desc_42a81347": "Casual and friendly tone — ideal for informal communication or social media.",
|
||
"help.desc_443b76b5": "Wikilinks : Naviguez entre notes comme dans Obsidian",
|
||
"help.desc_47e1e10f": "Générer ▾ — Génère du contenu à partir de la sélection : ℹ️ Explain this : Explique le texte sélectionné de façon claire",
|
||
"help.desc_4de7e318": ": The 50 most recent searches (localStorage)",
|
||
"help.desc_50a33a05": "Generates YAML frontmatter for the current document (title, date, tags based on content).",
|
||
"help.desc_5374685a": "Mobile-friendly : Utilisez le bouton hamburger sur mobile",
|
||
"help.desc_5396ed9e": "Profitez de l'historique : Réutilisez vos recherches fréquentes",
|
||
"help.desc_53bfaeca": "Navigation",
|
||
"help.desc_5524e921": "Adapts the tone for a formal, business context — suitable for reports, emails, and official documents.",
|
||
"help.desc_555e0305": "Pour changer de provider par défaut : AI_DEFAULT_PROVIDER=openrouter",
|
||
"help.desc_56760d7f": "Each webhook receives a <code>POST</code> with a JSON body containing the event type, vault, path, and a timestamp.",
|
||
"help.desc_58d2326f": "Use the sidebar to navigate between vaults and folders.",
|
||
"help.desc_599f3242": "Log",
|
||
"help.desc_5a53de53": "📏 Make shorter : Rend le texte plus concis tout en préservant l'information",
|
||
"help.desc_5ab8c78d": ":\n Stay open until manually closed",
|
||
"help.desc_5d0fbb81": ":\n Workers, TF-IDF boosts, prefix expansions",
|
||
"help.desc_5e9a7fd9": "In the",
|
||
"help.desc_5fc28b7d": "Created",
|
||
"help.desc_625112fd": "Sélectionnez un contexte : Choisissez un vault pour réduire le bruit",
|
||
"help.desc_660051b0": "Audit externe : Logger toutes les modifications dans une base de données externe",
|
||
"help.desc_664b1d09": "Use the sidebar to navigate between vaults and folders.",
|
||
"help.desc_68c2b170": "Rotation : Rotation automatique à 10 Mo",
|
||
"help.desc_6902f20d": "Favorisez les opérateurs : tag: et vault: accélèrent la recherche",
|
||
"help.desc_698d92ec": "Gestion de l'espace : Réduisez les sections Vaults/Tags selon vos besoins",
|
||
"help.desc_6a5ddef2": "Explains the selected passage with an educational style — defines technical terms and adds context.",
|
||
"help.desc_6a80241e": "Width",
|
||
"help.desc_6ae5342c": "Index stats",
|
||
"help.desc_6b649b1e": ": Highlighted in accent color",
|
||
"help.desc_6b88a375": ":\n Debounce delay, results per page, timeout",
|
||
"help.desc_6b8fc728": "Select",
|
||
"help.desc_6bc48f59": "Each webhook receives a POST with event details",
|
||
"help.desc_6caffeed": " — Conversion tools:",
|
||
"help.desc_6d68fbc9": "Create markdown file: Create a new .md file",
|
||
"help.desc_6ebebdfd": ": Each operator type has its color",
|
||
"help.desc_6f7c5889": "Alert",
|
||
"help.desc_71eeb16a": ":\n Réutilisez vos recherches fréquentes",
|
||
"help.desc_723ed8db": "Non-root Docker : Conteneur tourne avec UID 1000",
|
||
"help.desc_752789ab": "File",
|
||
"help.desc_759926ee": "Relaxed and friendly tone — ideal for informal communication or social media.",
|
||
"help.desc_7671e56a": "Avant écriture : Sauvegarde du contenu original dans .obsigate-backup/",
|
||
"help.desc_7708f226": "ObsiGate uses JWT tokens signed with a secret key defined in the <code>.env</code> file.",
|
||
"help.desc_7819b56f": "Each webhook receives a POST with event details",
|
||
"help.desc_7ab5be50": "Translates the selected text into the target language.",
|
||
"help.desc_7b45490b": "Each webhook receives a POST with event details",
|
||
"help.desc_7e86626c": "ObsiGate generates a shareable, read-only link. Anyone with the link can view the file content.",
|
||
"help.desc_7f1d0512": "Path traversal : Validation des chemins contre les attaques ../",
|
||
"help.desc_7ff2fa21": "Pendant une requête AI, un toast ⏳ AI: traitement en cours... s'affiche",
|
||
"help.desc_803161e5": "The toolbar contains the following buttons:",
|
||
"help.desc_828db5da": ": Both types are combined",
|
||
"help.desc_858681a1": ":\n Durée de vie en heures",
|
||
"help.desc_85effb89": "Each webhook receives a POST with event details",
|
||
"help.desc_8717768b": ": Node metadata (tags, links, path)",
|
||
"help.desc_87b348c3": "Recherche multi-critères : tag:docker tag:linux vault:IT nginx",
|
||
"help.desc_89a8f5de": "Example: publish a blog post when a file is marked <code>publish: true</code>.",
|
||
"help.desc_89bd3c4c": ": Only shows nodes with a specific tag",
|
||
"help.desc_8f0bffe3": "JWT tokens",
|
||
"help.desc_9186a3a3": "Explorez l'arborescence : Naviguez dans les dossiers",
|
||
"help.desc_93902d18": "Utilisez les tags : Filtrez par tags pour affiner",
|
||
"help.desc_9846fc07": "In the",
|
||
"help.desc_985d759b": "Token unique : 64 caractères hexadécimaux, impossible à deviner",
|
||
"help.desc_991307d6": " — Generate content from the selection:",
|
||
"help.desc_995a711f": ": Opens the CodeMirror editor",
|
||
"help.desc_99c6f0ec": "Share files with a read-only link",
|
||
"help.desc_9cb5974c": ": Ouvrez\n plusieurs notes dans des onglets séparés",
|
||
"help.desc_9d0e39d0": "Headers CSP : Content-Security-Policy, X-Frame-Options, XSS-Protection",
|
||
"help.desc_9edeaa11": ": Controls exploration depth (0-3)",
|
||
"help.desc_9f321d1e": "Backup",
|
||
"help.desc_9f78b3ec": ":\n Easier navigation in long files",
|
||
"help.desc_9fec424d": "Adapts the tone for a professional context — reports, emails, official documents.",
|
||
"help.desc_a0ec890a": " — Selected text modification menu:",
|
||
"help.desc_a13f7f2c": "Une fois terminé, AI: texte traité ✓ confirme le succès",
|
||
"help.desc_a4a4e21b": ": \"×\" button to reset the filter",
|
||
"help.desc_a52fc3b1": ": Downloads the file",
|
||
"help.desc_a579cf4d": ": Preview note content without navigating",
|
||
"help.desc_a601f22e": "Each webhook receives a POST with event details",
|
||
"help.desc_a69804cd": "Répertoire dédié : .obsigate-backup/ dans le répertoire de la vault",
|
||
"help.desc_a6cb3b26": "🔤 Fix spelling & grammar : Corrige les fautes d'orthographe et de grammaire",
|
||
"help.desc_a974f7a6": "Journal : Fichier data/audit.log au format JSON lines",
|
||
"help.desc_a9c2c520": "Webhooks automatically notify external services when files or directories change. Configure a URL to receive HTTP <code>POST</code> requests.",
|
||
"help.desc_a9db82b5": ": Centers the view on a specific node",
|
||
"help.desc_ab2c4150": ": Files (squares) and folders (circles) with icons",
|
||
"help.desc_action_buttons": "Copy, Source, Download, Edit, Open in new window",
|
||
"help.desc_adv_syntax": ": Python, JS, HTML, CSS, Java, C++, Rust, Go and many more",
|
||
"help.desc_ae213f54": ":\n Combinez opérateurs et texte libre",
|
||
"help.desc_aec0ad2c": "💬 Réécrire — Réécrit le texte selon vos instructions personnalisées. Une boîte de dialogue vous demande votre instruction.",
|
||
"help.desc_all_tags": ": Extracted from YAML frontmatters and inline (#tag)",
|
||
"help.desc_all_vaults": ": Global view of all your content",
|
||
"help.desc_autoscroll": ": The sidebar positions itself automatically",
|
||
"help.desc_b54c21ef": "Contrôle d'accès par vault : Chaque utilisateur voit uniquement ses vaults",
|
||
"help.desc_b5f89b3b": "ObsiGate integrates an AI assistant directly into the text editor. To activate it, configure at least one AI provider in the <code>.env</code> file (DeepSeek, OpenRouter, or Gemini).",
|
||
"help.desc_b6169f2e": "Each webhook receives a POST with event details",
|
||
"help.desc_b9c94994": ": Preview of the applied regex",
|
||
"help.desc_ba4578ae": "Restart the container:",
|
||
"help.desc_bc08f215": "ObsiGate uses JWT tokens signed with a secret key defined in the <code>.env</code> file.",
|
||
"help.desc_beed5686": "Click on",
|
||
"help.desc_breadcrumb": "File path (clickable to reposition sidebar)",
|
||
"help.desc_c1f72521": "Edit config.yaml to customize behavior",
|
||
"help.desc_c63f02cc": "Rewrites the text according to your custom instructions. A dialog prompts for your instruction.",
|
||
"help.desc_c8532869": ": Completion, rewrite, translation (see",
|
||
"help.desc_c992f2e5": "Remplissez : Nom (descriptif), URL (endpoint cible), Secret (optionnel)",
|
||
"help.desc_case_sensitive": ": \"Aa\" button to respect case",
|
||
"help.desc_cb6f0bfd": "Backup",
|
||
"help.desc_cc8e35ba": "Notifications : Alerter un canal Slack/Discord quand un document est créé",
|
||
"help.desc_cdf7bb46": "Recherchez intelligemment : Combinez opérateurs et texte libre",
|
||
"help.desc_cf5ccd40": "Simplifies the language for easier reading — replaces complex terms and shortens long sentences.",
|
||
"help.desc_cfe362a7": "Export PDF : Téléchargement du document partagé en PDF via/s/{token}/pdf",
|
||
"help.desc_check_btn": ": Manual save",
|
||
"help.desc_chip_remove": ": Click \"×\" to remove a filter",
|
||
"help.desc_chip_view": ": See active filters at a glance",
|
||
"help.desc_click_segment": ": Navigate to that folder",
|
||
"help.desc_click_tab": ": Activates the tab",
|
||
"help.desc_click_vault": ": Focus on the vault in the sidebar",
|
||
"help.desc_close_btn": ": Closes the tab (unless it's the only one)",
|
||
"help.desc_cm_autocomplete": ": Contextual suggestions",
|
||
"help.desc_cm_lines": ": Easy navigation",
|
||
"help.desc_cm_search": ": Ctrl+F to search in the file",
|
||
"help.desc_cm_syntax": ": Supports many languages",
|
||
"help.desc_combined": "searches \"web server\" in Markdown files of the IT vault with the linux tag.",
|
||
"help.desc_context_menu": ": Right-click on a vault or folder → Graph View",
|
||
"help.desc_copy_btn": ": Copies source content to clipboard",
|
||
"help.desc_ctrl_tab": ": Next tab",
|
||
"help.desc_ctrl_w": ": Close the active tab",
|
||
"help.desc_d186a19e": ": The Recent tab in the sidebar lists your latest files",
|
||
"help.desc_d3a71d97": "file_modified n'est pas encore dispatché (réservé pour version future)",
|
||
"help.desc_d5c977ac": "Code blocks",
|
||
"help.desc_d646b709": "Compte admin : Créé automatiquement au premier démarrage",
|
||
"help.desc_d66e911c": "In the",
|
||
"help.desc_d915c72b": "Synchronisation : Copier les nouveaux fichiers vers un autre système (SharePoint, Google Drive)",
|
||
"help.desc_d9cdaa89": "Copy",
|
||
"help.desc_d9e8ab0b": "🧰 Boîte ▾ — Outils de conversion : 📋 Convert to list : Transforme le texte en liste Markdown",
|
||
"help.desc_dc4d7186": "Each webhook receives a POST with event details",
|
||
"help.desc_delete_btn_new": ": Trash button to delete",
|
||
"help.desc_double_click": ": Opens the file in a persistent tab",
|
||
"help.desc_e0525213": "Inline completion (<kbd>Ctrl+J</kbd>). Automatically completes the text where the cursor is located.",
|
||
"help.desc_e23c94dd": ": In the toolbar (when available)",
|
||
"help.desc_e36f3eaa": "📐 Make longer : Ajoute des détails, exemples ou explications",
|
||
"help.desc_e3fce7a3": ": Opens the file in a temporary tab (preview, italic)",
|
||
"help.desc_e47d2328": "Preview",
|
||
"help.desc_e5246734": ": Previous tab",
|
||
"help.desc_e5b67e3d": "Your choice",
|
||
"help.desc_e5cf90b2": "Creates a concise summary of the selected text — bullet points capturing the essentials.",
|
||
"help.desc_e6129268": "Use the sidebar to navigate between vaults and folders.",
|
||
"help.desc_e7e3157a": "Timestamp : Chaque backup est horodaté",
|
||
"help.desc_e93517a5": "Download",
|
||
"help.desc_ec5f7a26": "Edit config.yaml to customize behavior",
|
||
"help.desc_ecf302ae": "Multi-fenêtres : Ouvrez plusieurs notes dans des onglets séparés",
|
||
"help.desc_edges": ": Outgoing wikilinks (blue) and incoming backlinks (green)",
|
||
"help.desc_eebf177f": "ObsiGate v1.7.0 - Porte d'entrée web pour vos vaults Obsidian",
|
||
"help.desc_ef1531ce": ": A temporary tab (italic) is replaced by the next click",
|
||
"help.desc_ef3f8158": ": Manage your filtering patterns",
|
||
"help.desc_examples": "<strong>Examples</strong>: <code>ext:sh</code> searches in bash scripts, <code>ext:py</code> in Python scripts, <code>ext:md</code> in Markdown files.",
|
||
"help.desc_expand": ": Click on a folder",
|
||
"help.desc_export_png": ": Save the graph as an image",
|
||
"help.desc_f0adf67a": ": Scroll wheel to zoom, click-drag to move",
|
||
"help.desc_f2d4e369": "✏️ Continue writing : Continue l'écriture à partir du texte",
|
||
"help.desc_f53badcd": "Add your API key in <code>.env</code>:",
|
||
"help.desc_f58da6e1": "Cliquez Ajouter",
|
||
"help.desc_f9083ce5": "File",
|
||
"help.desc_f952db17": "Refresh tokens : Cookies HttpOnly avec rotation automatique",
|
||
"help.desc_fa126609": "Converts the document structure into an Obsidian Canvas (visual cards).",
|
||
"help.desc_facet_vaults": ": Counters by vault",
|
||
"help.desc_fc9391f3": "ObsiGate sends an HTTP POST to your webhook URL with event details.",
|
||
"help.desc_fdeaf803": ": Each file type has its icon (markdown, code, etc.)",
|
||
"help.desc_file_suggest": ": File title suggestions",
|
||
"help.desc_filter_type": ": Include/exclude files, folders, markdown, other",
|
||
"help.desc_filter_usage": "Use the filter bar at the top of the sidebar to search quickly:",
|
||
"help.desc_filtering": "Search bar to filter files/tags",
|
||
"help.desc_find_in_page": ": Ctrl+F to search in the file (case, regex, whole word)",
|
||
"help.desc_frontmatter": ": <code>tags: [docker, linux]</code> or <code>tags: docker, linux</code>",
|
||
"help.desc_fullscreen": ": Button to expand the view",
|
||
"help.desc_graph_intro": "The graph view offers an interactive visualization of connections between your notes via wikilinks.",
|
||
"help.desc_graph_nav": ": Navigation history between nodes",
|
||
"help.desc_grouped_results": ": Display by vault with full paths",
|
||
"help.desc_hamburger": "(mobile) : Show/hide the sidebar",
|
||
"help.desc_hide": "Click the sidebar icon in the header",
|
||
"help.desc_images": ": Supports <code>![[image.png]]</code>",
|
||
"help.desc_inline_tags": ": <code>#docker</code> in markdown content",
|
||
"help.desc_instant_filter": ": Type to filter files and folders",
|
||
"help.desc_logo": "Return to home",
|
||
"help.desc_markdown_all": ": Full markdown rendering",
|
||
"help.desc_md_render": "Markdown files are rendered with:",
|
||
"help.desc_menu_header": ": \"Vault\" dropdown in the Options menu",
|
||
"help.desc_menu_options": ": Access to settings, theme, help and version",
|
||
"help.desc_op_ext": ": Filter by file type",
|
||
"help.desc_op_path": ": Filter by path",
|
||
"help.desc_op_phrase": ": Exact phrase search",
|
||
"help.desc_op_tag": ": Filter by tag",
|
||
"help.desc_op_title": ": Search in titles only",
|
||
"help.desc_op_vault": ": Search in a specific vault",
|
||
"help.desc_open_file": ": Click on the file name",
|
||
"help.desc_open_new": ": Opens the file in a new tab",
|
||
"help.desc_patterns": ": Ex: <code>#<% ... %></code> or <code>#{{ ... }}</code>",
|
||
"help.desc_quick_select": "Dropdown to change vault",
|
||
"help.desc_rendered_content": "Markdown with wikilinks and images",
|
||
"help.desc_resize": "Drag the right edge to adjust width",
|
||
"help.desc_save_btn_new": ": ✓ button to save",
|
||
"help.desc_search_all": ": Title, content, tags, paths",
|
||
"help.desc_search_bar": "Global search with autocomplete",
|
||
"help.desc_search_intro": "Type in the top search bar to start a fulltext search:",
|
||
"help.desc_sidebar_toggle": "Hide the sidebar for more space",
|
||
"help.desc_snippets": ": Excerpts with highlighted terms",
|
||
"help.desc_source_btn": ": Shows/hides raw markdown",
|
||
"help.desc_specific_vault": ": Focus on a single vault",
|
||
"help.desc_syntax_hl": ": Code block highlighting",
|
||
"help.desc_tag_cloud_intro": "The Tags tab in the sidebar displays a tag cloud:",
|
||
"help.desc_tag_filter_use": ": Use the filter bar to search for a tag",
|
||
"help.desc_tag_suggest": ": Tag suggestions with counters",
|
||
"help.desc_tags_tab": "Clickable tag cloud",
|
||
"help.desc_template_intro": "In the Configurations, you can hide template tags:",
|
||
"help.desc_title_tags": "File metadata",
|
||
"help.desc_trash_btn": ": Delete file",
|
||
"help.desc_two_tag_types": "ObsiGate supports two types of tags:",
|
||
"help.desc_vault_context": "Change context to filter the display:",
|
||
"help.desc_vault_indicator": "Shows the active context (All, vault1, etc.)",
|
||
"help.desc_vaults_tab": "File and folder tree",
|
||
"help.desc_visual_search": ": Search bar to highlight nodes",
|
||
"help.desc_wikilinks": ": <code>[[link]]</code> and <code>[[link|text]]</code>",
|
||
"help.double_click": "Double click",
|
||
"help.drag_drop_tabs": "Drag & drop tabs",
|
||
"help.e23c94dd": "In the toolbar (when available)",
|
||
"help.e3fce7a3": "Opens the file in a temporary tab (preview,",
|
||
"help.e5b67e3d": "Your choice is saved in localStorage",
|
||
"help.editor_section": "Editor",
|
||
"help.ef1531ce": "A temporary tab (italic) is replaced",
|
||
"help.experience": "Experience",
|
||
"help.export": "Export",
|
||
"help.external_audit": "External audit",
|
||
"help.f0adf67a": "Scroll wheel to zoom, click-drag to move",
|
||
"help.fallback_editor": "Fallback editor",
|
||
"help.fdeaf803": "Each file type has its icon (markdown, code, etc.)",
|
||
"help.fe388b67": "Optimizations",
|
||
"help.file_actions": "Actions on the open file:",
|
||
"help.file_viewer": "File viewer",
|
||
"help.filter_toggles": "Toggles Aa, wd, .*",
|
||
"help.filtering": "Filtering",
|
||
"help.find_capabilities": "Regex, whole word, case-sensitive search in the displayed document with DOM TreeWalker.",
|
||
"help.find_in_page": "Find in page",
|
||
"help.footer": "© 2026 — Made with ☕, 🎧 and a few",
|
||
"help.graph_context": "Context menu",
|
||
"help.graph_depth": "Depth slider",
|
||
"help.graph_export": "Export PNG",
|
||
"help.graph_filter_depth": "Filters & depth",
|
||
"help.graph_focus": "Focus mode",
|
||
"help.graph_fullscreen": "Full screen & PNG export",
|
||
"help.graph_info": "Info panel",
|
||
"help.graph_nav_arrows": "Navigation ← → ↑",
|
||
"help.graph_navigation": "History navigation ← → ↑",
|
||
"help.graph_nodes": "Nodes",
|
||
"help.graph_preview": "Ctrl+hover",
|
||
"help.graph_sticky": "Sticky panels",
|
||
"help.graph_tag_filter": "Filter by tag",
|
||
"help.graph_type_filter": "Filter by type",
|
||
"help.graph_view": "Graph view",
|
||
"help.graph_visual": "Visual search",
|
||
"help.graph_zoom": "Zoom/Pan",
|
||
"help.graph_zoom_pan": "Scroll wheel zoom & pan",
|
||
"help.guide_official": "Official guide",
|
||
"help.hamburger_btn": "Hamburger menu button",
|
||
"help.header_section": "Header",
|
||
"help.help_title": "Help",
|
||
"help.hide": "Hide",
|
||
"help.hide_help": "Hide help",
|
||
"help.highlighted_snippets": "Highlighted snippets",
|
||
"help.indexes": "ObsiGate indexes and displays:",
|
||
"help.instant": "Instant",
|
||
"help.light": "Light",
|
||
"help.logo": "ObsiGate logo",
|
||
"help.markdown": "Markdown syntax",
|
||
"help.menu_header": "Header menu",
|
||
"help.menu_options": "Options menu",
|
||
"help.mermaid_section": "Mermaid diagrams",
|
||
"help.mermaid_templates": "Templates",
|
||
"help.mobile": "Floating results bar",
|
||
"help.mobile_editor_gestures": ": swipe left → backlinks, swipe right → table of contents.",
|
||
"help.mobile_editor_gestures_label": "Touch gestures",
|
||
"help.mobile_editor_intro": "On phones and tablets, editing adapts to touch: floating toolbar, gestures and a full-screen reading mode.",
|
||
"help.mobile_editor_paste": ": persistent “Paste” button (works around the iOS restriction).",
|
||
"help.mobile_editor_paste_label": "Clipboard",
|
||
"help.mobile_editor_reading": ": full screen without header or sidebars; swipe horizontally to go to the next or previous file.",
|
||
"help.mobile_editor_reading_label": "Reading mode",
|
||
"help.mobile_editor_title": "📱 Mobile editing",
|
||
"help.mobile_editor_toolbar": ": horizontally scrollable ribbon (headings, bold, italic, strikethrough, highlight, code, quote, lists, checkboxes, links, tags, attachments). The ⚙ icon lets you add, remove or reorder commands; A−/A+ adjust the font size.",
|
||
"help.mobile_editor_toolbar_label": "Editing ribbon",
|
||
"help.mobile_editor_zoom": ": pinch with two fingers to zoom, drag the handle to resize the editing area.",
|
||
"help.mobile_editor_zoom_label": "Zoom & height",
|
||
"help.modal_title": "ObsiGate User Guide",
|
||
"help.multi_vault": "Multi-vault",
|
||
"help.nav_ai": "🤖 AI Editor",
|
||
"help.nav_backups": "💾 Backups",
|
||
"help.nav_customization": "🎨 Customization",
|
||
"help.nav_editing": "✏️ Editing",
|
||
"help.nav_files": "📁 Files",
|
||
"help.nav_graph": "🗺️ Graph",
|
||
"help.nav_interface": "🧭 Interface",
|
||
"help.nav_intro": "📘 Introduction",
|
||
"help.nav_mobile_editor": "📱 Mobile",
|
||
"help.nav_navigation": "🗺️ Navigation",
|
||
"help.nav_palette": "⌨️ Palette",
|
||
"help.nav_search": "🔍 Search",
|
||
"help.nav_security": "🛡️ Security",
|
||
"help.nav_sharing": "🔗 Sharing",
|
||
"help.nav_shortcuts": "⌨️ Shortcuts",
|
||
"help.nav_tabs": "📑 Tabs",
|
||
"help.nav_tags": "🏷️ Tags",
|
||
"help.nav_tips": "💡 Tips",
|
||
"help.nav_webhooks": "🪝 Webhooks",
|
||
"help.nav_plugins": "🧩 Plugins",
|
||
"help.nav_excalidraw": "🎨 Excalidraw",
|
||
"help.new_file": "New file",
|
||
"help.new_folder": "New folder",
|
||
"help.nights": "sleepless nights 😅",
|
||
"help.nodes_edges": "Edges",
|
||
"help.other": "Other",
|
||
"help.outline_panel": "Outline panel (right)",
|
||
"help.pagination": "Pagination",
|
||
"help.pal_close_the_palette": "Close the palette",
|
||
"help.pal_delete_a_folder_and_its_contents": "Delete a folder and its contents",
|
||
"help.pal_delete_the_file_from_the_active_tab": "Delete the file from the active tab",
|
||
"help.pal_move_desc": "Navigate the list",
|
||
"help.pal_open___select": "Open / select",
|
||
"help.pal_open_the_editor_on_the_active_tab": "Open the editor on the active tab",
|
||
"help.pal_open_this_guide": "Open this guide",
|
||
"help.pal_popout_desc": "Open the document in a detached window",
|
||
"help.pal_toggle_light_dark": "Toggle light/dark",
|
||
"help.pdf_export": "PDF export",
|
||
"help.persistent_display": "Persistent display in bar",
|
||
"help.persistent_tabs": "Persistent tabs",
|
||
"help.popout_button": "Dedicated button",
|
||
"help.powered_by": "Powered by Python, FastAPI, vanilla JS, CodeMirror, Mermaid, Lucide Icons and ❤️ for Obsidian.",
|
||
"help.preview_tab": "Preview",
|
||
"help.properties": "Properties",
|
||
"help.public_shares": "Public sharing",
|
||
"help.pwa_section": "PWA",
|
||
"help.quick_help": "Quick Help",
|
||
"help.quick_select": "Quick select",
|
||
"help.rate_limiting": "Rate limiting",
|
||
"help.recent_nav": "Recent navigation",
|
||
"help.rename": "Rename",
|
||
"help.rendered_content": "Rendered content",
|
||
"help.rendering_images": "Image rendering",
|
||
"help.rendering_md": "Rendering in Markdown",
|
||
"help.resize": "Resize",
|
||
"help.results_counter": "Results counter",
|
||
"help.results_grouped": "Grouped results",
|
||
"help.search_bar": "Search bar",
|
||
"help.search_dropdown": "Search dropdown",
|
||
"help.search_everywhere": "Search everywhere",
|
||
"help.search_facets": "Facets",
|
||
"help.search_filters": "Search filters",
|
||
"help.search_history": "Search history",
|
||
"help.search_operators": "Search operators",
|
||
"help.search_placeholder": "Search help...",
|
||
"help.search_save": "Saved searches",
|
||
"help.secret_redaction": "Secret redaction",
|
||
"help.security_section": "Security",
|
||
"help.share_button": "Share button",
|
||
"help.shortcut_ai_completion": "Inline AI completion (in editor)",
|
||
"help.shortcut_close": "Close editor / modal",
|
||
"help.shortcut_close_editor": "Close editor / modal",
|
||
"help.shortcut_close_palette": "Close palette",
|
||
"help.shortcut_close_tab": "Close tab",
|
||
"help.shortcut_command_palette": "Command palette",
|
||
"help.shortcut_file_palette": "File palette (quick nav.)",
|
||
"help.shortcut_focus_search": "Focus search bar",
|
||
"help.shortcut_forge_help": "Forge editor help",
|
||
"help.shortcut_next_tab": "Next tab",
|
||
"help.shortcut_palette": "Command palette",
|
||
"help.shortcut_palette_cmd": "Command palette (command mode)",
|
||
"help.shortcut_prev_tab": "Previous tab",
|
||
"help.shortcut_quick_insert": "Quick insert (Forge editor)",
|
||
"help.shortcut_quick_search": "Quick search (outside text field)",
|
||
"help.shortcut_redo": "Redo",
|
||
"help.shortcut_save": "Save",
|
||
"help.shortcut_save_file": "Save open file",
|
||
"help.shortcut_search_doc": "Search in document",
|
||
"help.shortcut_select": "Open/select",
|
||
"help.shortcut_tip": "Hover over a document with Ctrl for a quick preview. Click Forge in the toolbar for the advanced editor.",
|
||
"help.shortcut_undo": "Undo",
|
||
"help.shortcuts": "Keyboard shortcuts",
|
||
"help.shortcuts_title": "Shortcuts & Tips",
|
||
"help.sidebar_dropdown": "Sidebar dropdown",
|
||
"help.sidebar_features": "Sidebar features:",
|
||
"help.sidebar_filtering": "Sidebar filtering",
|
||
"help.sidebar_section": "Sidebar",
|
||
"help.sidebar_tabs": "The sidebar has two tabs:",
|
||
"help.sidebar_user": "Account",
|
||
"help.desc_sidebar_user": ": Avatar, name, role and sign-out at the bottom of the sidebar",
|
||
"help.sidebar_toggle_btn": "Sidebar toggle button",
|
||
"help.simple": "Simple",
|
||
"help.simple_search": "Simple search",
|
||
"help.single_click": "Single click",
|
||
"help.smart_scoring": "Smart scoring",
|
||
"help.sort_options": "Sort options",
|
||
"help.supported_languages": "Many languages supported",
|
||
"help.syncthing": "Syncthing conflicts",
|
||
"help.syncthing_conflicts": "Syncthing conflicts",
|
||
"help.tab_bar": "Tab bar",
|
||
"help.tab_features": "Features",
|
||
"help.tab_nav": "Tab navigation",
|
||
"help.tabs_section": "Opening tabs",
|
||
"help.theme_section": "Theme",
|
||
"help.theme_sync": "Synced theme",
|
||
"help.theme_toggle": "Toggle between themes:",
|
||
"help.themes": "Themes",
|
||
"help.tip_hide_sidebar": "Hide the sidebar",
|
||
"help.tip_sidebar_filter": "Use sidebar filtering",
|
||
"help.tip_use_tags": "Use tags to organize",
|
||
"help.title": "ObsiGate Help",
|
||
"help.title_tags": "Title and tags",
|
||
"help.toc_title": "CONTENTS",
|
||
"help.assistant_panel": "🧠 Assistant panel (BooksLM)",
|
||
"help.assistant_panel_desc": "The side assistant (floating button or a folder's context menu) answers in formatted Markdown and contextualises your directories or documents. In general mode it also knows what you are looking at: open documents, current directory, active search and recently modified files.",
|
||
"help.assistant_markdown": "Formatted answers: headings, lists, tables, quotes and code blocks.",
|
||
"help.assistant_insert": "The \"Add\" button (revealed on hover of an answer) inserts the answer into the document open in the editor (Editer or Forge); each code block offers \"Add section\" to insert just that block.",
|
||
"help.assistant_links": "Cited files and paths are links: a bare filename copies the name to the clipboard, a folder is revealed in the tree, and a file path opens it in the viewer.",
|
||
"help.assistant_sessions": "The header history icon lists past sessions (reopen or delete); “+” starts a new conversation.",
|
||
"help.assistant_agent": "The \"agent mode\" button enables tools (read, list, search); modifying actions require confirmation with a change preview.",
|
||
"help.assistant_agent_run": "Actions appear in the thread: the assistant groups modifications into a single approval (\"Approve all\") and refreshes the file tree and the open document as soon as they are applied. The send button becomes \"Stop\" to interrupt the run at any time.",
|
||
"help.assistant_resize": "The left edge of the panel is resizable; the width is remembered.",
|
||
"help.assistant_at": "Type @ to attach a file or directory to the context, or to attach an image from a directory.",
|
||
"help.assistant_slash": "Type / to run a skill (research, summary, correction, plan…) or an admin command (/help, /providers, /model, /keys).",
|
||
"help.assistant_images": "Paste an image into the composer (or attach one) to analyse it with a vision-capable model. The ⓘ button shows the selected model's capabilities, and the model list is filterable by search.",
|
||
"help.toolbar_section": "AI toolbar",
|
||
"help.tree_section": "Vault tree",
|
||
"help.use_cases": "Use cases",
|
||
"help.vault_indicator": "Vault indicator",
|
||
"help.vault_selector": "Vault selector",
|
||
"help.vault_specific": "Specific vault",
|
||
"help.webhook_blog_post": "blog post when a file is marked",
|
||
"help.webhook_note": "Note: the event",
|
||
"help.webhook_notify": "automatically notify services",
|
||
"help.webhook_post": "HTTP POST to your",
|
||
"help.webhooks": "Webhooks",
|
||
"help.welcome_desc": "ObsiGate is your web gateway to your Obsidian vaults. Access, browse, and search all your notes from any device via a modern and responsive interface.",
|
||
"help.welcome_tag1": "⚡ Fast navigation",
|
||
"help.welcome_tag2": "🗂️ Multi-vault",
|
||
"help.welcome_tag3": "🏷️ Smart tags",
|
||
"help.welcome_tag4": "📝 Reading & editing",
|
||
"help.welcome_tag5": "🔍 TF-IDF search",
|
||
"help.welcome_title": "Welcome to ObsiGate",
|
||
"help.wikilinks": "Wikilinks",
|
||
"help.zoom_pan": "Zoom & Pan",
|
||
"mermaid.code": "Code",
|
||
"mermaid.copy_svg": "Copy SVG",
|
||
"mermaid.download_png": "Download PNG",
|
||
"mermaid.preview": "Preview",
|
||
"mermaid.zoom_in": "Zoom in",
|
||
"mermaid.zoom_out": "Zoom out",
|
||
"mobile.all_vaults": "📂 All vaults",
|
||
"mobile_editor.add_command": "Add a command",
|
||
"mobile_editor.backlinks": "Backlinks",
|
||
"mobile_editor.bold": "Bold",
|
||
"mobile_editor.close": "Close",
|
||
"mobile_editor.cmd_attachment": "Attachment",
|
||
"mobile_editor.cmd_bold": "Bold",
|
||
"mobile_editor.cmd_bullet": "Bullet list",
|
||
"mobile_editor.cmd_checkbox": "Checkbox",
|
||
"mobile_editor.cmd_code": "Inline code",
|
||
"mobile_editor.cmd_codeblock": "Code block",
|
||
"mobile_editor.cmd_dedent": "Outdent",
|
||
"mobile_editor.cmd_files": "Template / files",
|
||
"mobile_editor.cmd_h1": "Heading 1",
|
||
"mobile_editor.cmd_h2": "Heading 2",
|
||
"mobile_editor.cmd_h3": "Heading 3",
|
||
"mobile_editor.cmd_h4": "Heading 4",
|
||
"mobile_editor.cmd_h5": "Heading 5",
|
||
"mobile_editor.cmd_h6": "Heading 6",
|
||
"mobile_editor.cmd_highlight": "Highlight",
|
||
"mobile_editor.cmd_indent": "Indent",
|
||
"mobile_editor.cmd_italic": "Italic",
|
||
"mobile_editor.cmd_link": "External link",
|
||
"mobile_editor.cmd_ordered": "Numbered list",
|
||
"mobile_editor.cmd_quote": "Quote",
|
||
"mobile_editor.cmd_redo": "Redo",
|
||
"mobile_editor.cmd_strike": "Strikethrough",
|
||
"mobile_editor.cmd_tag": "Tag",
|
||
"mobile_editor.cmd_undo": "Undo",
|
||
"mobile_editor.cmd_wikilink": "Internal link",
|
||
"mobile_editor.code": "Code",
|
||
"mobile_editor.customize": "Customize toolbar",
|
||
"mobile_editor.customize_reset": "Reset",
|
||
"mobile_editor.customize_title": "Customize toolbar",
|
||
"mobile_editor.done": "Done",
|
||
"mobile_editor.error": "Loading error",
|
||
"mobile_editor.font_larger": "Increase font size",
|
||
"mobile_editor.font_smaller": "Decrease font size",
|
||
"mobile_editor.italic": "Italic",
|
||
"mobile_editor.link": "Link",
|
||
"mobile_editor.list": "Bullet list",
|
||
"mobile_editor.loading": "Loading…",
|
||
"mobile_editor.move_down": "Move down",
|
||
"mobile_editor.move_up": "Move up",
|
||
"mobile_editor.no_backlinks": "No backlinks",
|
||
"mobile_editor.no_headings": "No headings in this document",
|
||
"mobile_editor.no_next": "Last file in folder",
|
||
"mobile_editor.no_prev": "First file in folder",
|
||
"mobile_editor.paste": "Paste",
|
||
"mobile_editor.paste_hint": "Long-press the field then choose “Paste” (clipboard access denied).",
|
||
"mobile_editor.reading_enter": "Reading mode",
|
||
"mobile_editor.reading_exit": "Exit reading mode",
|
||
"mobile_editor.remove_command": "Remove",
|
||
"mobile_editor.resize": "Adjust editor height",
|
||
"mobile_editor.toc": "Table of contents",
|
||
"mobile_editor.toolbar": "Mobile editing toolbar",
|
||
"modal.create_btn": "Create",
|
||
"modal.create_file": "Create a file",
|
||
"modal.creating": "Creating...",
|
||
"modal.delete_dir": "Delete folder",
|
||
"modal.delete_dir_warning": "All files and subfolders will be permanently deleted.",
|
||
"modal.delete_file": "Delete file",
|
||
"modal.delete_irreversible": "This action is irreversible.",
|
||
"modal.delete_permanently": "Delete permanently",
|
||
"modal.delete_warning": "Warning!",
|
||
"modal.dir_to_delete": "Folder to delete:",
|
||
"modal.file_name": "File name",
|
||
"modal.file_to_delete": "File to delete:",
|
||
"modal.file_type": "File type",
|
||
"modal.in_folder": "In: {path}",
|
||
"month.april": "April",
|
||
"month.august": "August",
|
||
"month.december": "December",
|
||
"month.february": "February",
|
||
"month.january": "January",
|
||
"month.july": "July",
|
||
"month.june": "June",
|
||
"month.march": "March",
|
||
"month.may": "May",
|
||
"month.november": "November",
|
||
"month.october": "October",
|
||
"month.september": "September",
|
||
"offline.all_synced": "All changes synced",
|
||
"offline.conflict_title": "Sync conflict",
|
||
"offline.keep_local": "Keep local version",
|
||
"offline.keep_server": "Keep server version",
|
||
"offline.mode_offline": "Offline mode — changes will sync when back online",
|
||
"offline.pending": "{count} pending change(s)",
|
||
"offline.reconnected": "Connection restored — synchronizing...",
|
||
"offline.status": "Offline",
|
||
"offline.sync_now": "Sync now",
|
||
"palette.browse_dirs": "📂 Browse directories...",
|
||
"palette.browse_hint": "Navigate vaults to find a file",
|
||
"palette.browse_in": "In {path}",
|
||
"palette.browse_no_results": "No results — browse manually",
|
||
"palette.browse_open_file": "📂 Open a file in this directory",
|
||
"palette.browse_root": "root",
|
||
"palette.close_current": "Close current file",
|
||
"palette.close_current_desc": "Close active tab without deleting",
|
||
"palette.cmd_back_home": "🏠 Home",
|
||
"palette.cmd_back_home_desc": "Back to home",
|
||
"palette.cmd_config": "⚙️ Settings",
|
||
"palette.cmd_config_desc": "Open settings",
|
||
"palette.cmd_create_dir": "📁 Create directory",
|
||
"palette.cmd_create_dir_desc": "Choose vault, navigate, then name the directory",
|
||
"palette.cmd_create_file": "📄 Create markdown file",
|
||
"palette.cmd_create_file_desc": "Choose vault, navigate, then name the file",
|
||
"palette.cmd_delete_dir": "🗑️ Delete directory",
|
||
"palette.cmd_delete_dir_desc": "Choose vault, navigate and delete",
|
||
"palette.cmd_theme": "🌓 Toggle theme",
|
||
"palette.cmd_theme_desc": "Toggle light/dark",
|
||
"palette.del_all_content": "All content will be deleted",
|
||
"palette.delete_current": "Delete current file",
|
||
"palette.delete_current_desc": "Delete file from active tab",
|
||
"palette.delete_file_desc": "Search for a file to delete",
|
||
"palette.dir_delete_confirm": "All content will be deleted",
|
||
"palette.dir_name": "Directory name",
|
||
"palette.empty_dir": "📂 Empty directory",
|
||
"palette.error_loading": "Loading error",
|
||
"palette.error_prefix": "Error: {msg}",
|
||
"palette.file_name": "File name",
|
||
"palette.help_desc": "Open the guide",
|
||
"palette.md_hint": "(.md added if needed)",
|
||
"palette.mode_commands": "Commands",
|
||
"palette.mode_files": "Files",
|
||
"palette.no_results": "No results for \"{query}\"",
|
||
"palette.no_vaults": "No vaults found",
|
||
"palette.popout_desc": "Open document in a window",
|
||
"palette.reindex_desc": "Force full reindex",
|
||
"palette.search_commands": "Type a command...",
|
||
"palette.search_error": "Search error",
|
||
"palette.search_files": "Search files...",
|
||
"palette.type_command": "Type a command...",
|
||
"palette.type_search": "Search files... (+include -exclude)",
|
||
"palette.vault_count": "{count} files",
|
||
"pwa.dismiss": "Later",
|
||
"pwa.install_button": "Install",
|
||
"pwa.install_desc": "Install this app on your device for quick access.",
|
||
"pwa.install_title": "Install ObsiGate",
|
||
"qa.all_actions": "All actions",
|
||
"qa.audit_code": "Detect bugs and potential flaws",
|
||
"qa.audit_code.prompt": "Identify potential bugs, unhandled edge cases and security flaws in this code, with proposed fixes.",
|
||
"qa.backlinks": "Suggest vault links and backlinks",
|
||
"qa.backlinks.prompt": "Suggest relevant [[wikilinks]] to other notes in the vault and backlinks to add to this document.",
|
||
"qa.badge_code": "Code file",
|
||
"qa.badge_directory": "Directory",
|
||
"qa.badge_general": "General mode",
|
||
"qa.badge_multi": "{count} docs open",
|
||
"qa.badge_selection": "Active selection",
|
||
"qa.badge_single": "1 doc open",
|
||
"qa.capabilities": "What can you do?",
|
||
"qa.capabilities.prompt": "What can you do? Present your capabilities on this vault.",
|
||
"qa.cat_code": "Code & Scripts",
|
||
"qa.cat_cross": "Cross-documents",
|
||
"qa.cat_edition": "Editing & Rewriting",
|
||
"qa.cat_general": "Assistant",
|
||
"qa.cat_structure": "Productivity & Structuring",
|
||
"qa.cat_synthesis": "Synthesis & Analysis",
|
||
"qa.checklist": "Extract the action checklist",
|
||
"qa.checklist.prompt": "Extract every concrete action to take as a Markdown to-do list with [ ] checkboxes.",
|
||
"qa.compare": "Compare differences and convergences",
|
||
"qa.compare.prompt": "Compare all open documents and summarise their convergences, divergences and oppositions.",
|
||
"qa.concise": "Make it more concise and punchy",
|
||
"qa.concise.prompt": "Rewrite the selection to make it more concise and punchy without losing the essentials.",
|
||
"qa.create_note": "Create a meeting note",
|
||
"qa.create_note.prompt": "Create a meeting notes file in the vault.",
|
||
"qa.doc_code": "Add documentation and types",
|
||
"qa.doc_code.prompt": "Add the appropriate docstrings, JSDoc and type annotations to every function in this file.",
|
||
"qa.drawer_title": "Action library",
|
||
"qa.empty_hint": "Pick a context-aware quick action, or ask a question directly.",
|
||
"qa.explain_code": "Explain the script logic",
|
||
"qa.explain_code.prompt": "Analyse and explain step by step the structure and algorithm of this source code.",
|
||
"qa.explain_selection": "Explain the selection",
|
||
"qa.explain_selection.prompt": "Explain the selected passage: its role, its context and what it implies.",
|
||
"qa.faq": "Generate a FAQ / key questions",
|
||
"qa.faq.prompt": "Generate a list of 5 key questions and answers to check comprehension of this text.",
|
||
"qa.fix_style": "Fix and improve the style",
|
||
"qa.fix_style.prompt": "Fix spelling and grammar mistakes and improve the syntactic flow of this passage.",
|
||
"qa.frictions": "Spot frictions and contradictions",
|
||
"qa.frictions.prompt": "Analyse this document and point out inconsistencies, blind spots or contradictions.",
|
||
"qa.frontmatter": "Generate the YAML frontmatter",
|
||
"qa.frontmatter.prompt": "Generate a complete YAML frontmatter block in the vault's format and apply it to the open document (insert it at the top of the file, or replace the existing block, keeping non-empty values already present): titre, auteur, creation_date and modification_date in ISO-8601 with timezone, catégorie, tags (inline list [a, b]), aliases, status, publish, favoris, template, task, archive, draft, private (booleans), NomDeVoute (current vault name), Description (a one-sentence summary of the content).",
|
||
"qa.frontmatter_update": "Update the frontmatter",
|
||
"qa.frontmatter_update.prompt": "Update the YAML frontmatter of the open document without deleting existing fields: refresh modification_date (current ISO-8601 timestamp with timezone), recompute titre, tags, aliases, catégorie, NomDeVoute and Description from the current content, fill in any missing metadata field (auteur, creation_date, status, publish, favoris, template, task, archive, draft, private) and apply the change to the file.",
|
||
"qa.header_suggested": "Suggested actions",
|
||
"qa.memo": "Write a shareable executive memo",
|
||
"qa.memo.prompt": "Write a shareable executive memo based on this document: context, findings, recommendations.",
|
||
"qa.merge": "Merge into one synthesis note",
|
||
"qa.merge.prompt": "Merge the essential elements of all open documents into one unified, flowing synthesis note.",
|
||
"qa.no_match": "No matching action.",
|
||
"qa.plan": "Create a step-by-step action plan",
|
||
"qa.plan.prompt": "Turn this content into a step-by-step action plan with priorities and estimates.",
|
||
"qa.rephrase": "Rephrase this passage",
|
||
"qa.rephrase.prompt": "Rephrase this passage keeping the meaning but using different wording.",
|
||
"qa.search_help": "Search my notes effectively",
|
||
"qa.search_help.prompt": "How do I search my notes effectively?",
|
||
"qa.search_placeholder": "Search an action...",
|
||
"qa.sections": "Structure into hierarchical sections",
|
||
"qa.sections.prompt": "Restructure this document with a logical hierarchy of Markdown headings (H2, H3) and clean bullet lists.",
|
||
"qa.summarize_3": "Summarize in 3 key points",
|
||
"qa.summarize_3.prompt": "Provide a concise summary of this document in 3 clear key points.",
|
||
"qa.test_code": "Generate unit tests",
|
||
"qa.test_code.prompt": "Write a unit test suite covering nominal and error cases for this code.",
|
||
"qa.timeline": "Build a cross-document timeline",
|
||
"qa.timeline.prompt": "Build a cross-document timeline of the dated events mentioned in these documents.",
|
||
"qa.translate": "Translate the selection",
|
||
"qa.translate.prompt": "Translate this passage into the appropriate language (English if the text is in French, and vice versa).",
|
||
"qa.vulgarize": "Plain-language explainer",
|
||
"qa.vulgarize.prompt": "Explain the content of this document in simple, accessible language without jargon.",
|
||
"search.advanced_operators": "Advanced operators",
|
||
"search.aria_label": "Search suggestions",
|
||
"search.case_sensitive": "Case sensitive",
|
||
"search.clear": "Clear",
|
||
"search.dropdown_clear_history": "Clear history",
|
||
"search.dropdown_files": "Files",
|
||
"search.dropdown_history": "History",
|
||
"search.error": "Search error",
|
||
"search.exclude_placeholder": "Exclude: vendor/*, *.lock",
|
||
"search.facet_tags": "Tags",
|
||
"search.facet_vaults": "Vaults",
|
||
"search.files_filtered": "{count} file(s) with filters",
|
||
"search.filter_path_title": "Path filters (Alt-F)",
|
||
"search.filters": "Filters",
|
||
"search.full_text": "Search everywhere",
|
||
"search.highlighted_snippets": "Highlighted snippets",
|
||
"search.include_placeholder": "Include: **/*.md, notes/**",
|
||
"search.loading": "Searching...",
|
||
"search.no_results": "No results found",
|
||
"search.operators_help": "Operators: tag:word, vault:name, title:word, path:word, ext:md",
|
||
"search.pagination": "Pagination",
|
||
"search.previous": "← Previous",
|
||
"search.query_time": "({time} ms)",
|
||
"search.regex": "Regular expression",
|
||
"search.results_count": "{count} result(s)",
|
||
"search.results_filtered": "{count} result(s) for \"{query}\" with filters",
|
||
"search.results_for": "{count} result(s) for \"{query}\"",
|
||
"search.save_search": "Save search",
|
||
"search.saved": "Search saved",
|
||
"search.sections_all_vaults": "All vaults",
|
||
"search.semantic_score": "sim",
|
||
"search.semantic_title": "Semantic search (Alt-S)",
|
||
"search.semantic_unavailable": "Semantic search unavailable",
|
||
"search.simple_search": "Simple search",
|
||
"search.smart_scoring": "Smart scoring",
|
||
"search.sort_date": "Date",
|
||
"search.sort_relevance": "Relevance",
|
||
"search.sort_title": "Title",
|
||
"search.whole_word": "Whole word",
|
||
"settings.about": "📦 About",
|
||
"settings.ai": "🤖 AI",
|
||
"settings.backend_section": "Backend Settings",
|
||
"settings.client_label": "These settings apply immediately on the client side.",
|
||
"settings.diagnostics": "🩺 Diagnostics",
|
||
"settings.explorer": "Files",
|
||
"settings.history_count_desc": "Between 5 and 100 files (saved on server)",
|
||
"settings.history_count_label": "Files in history",
|
||
"settings.history_section": "Recent History",
|
||
"settings.no_restart_badge": "No restart needed",
|
||
"settings.profile": "👤 Profile",
|
||
"settings.reindex": "Force reindex",
|
||
"settings.search": "Search",
|
||
"settings.search_placeholder": "Search...",
|
||
"settings.sync": "🔄 Sync",
|
||
"settings.tabs": "Tabs",
|
||
"settings.themes": "🎨 Themes",
|
||
"share.copied": "Link copied!",
|
||
"share.copy_link": "Copy link",
|
||
"share.create": "Create share link",
|
||
"share.expires": "Expires on",
|
||
"share.never": "Never",
|
||
"share.revoke": "Revoke",
|
||
"share.title": "Public share",
|
||
"shortcut.ai_completion": "AI inline completion (in editor)",
|
||
"shortcut.close_editor": "Close editor / modal",
|
||
"shortcut.command_palette": "Command palette",
|
||
"shortcut.editor_help": "Forge editor help",
|
||
"shortcut.file_palette": "File palette (quick nav)",
|
||
"shortcut.focus_search": "Focus search bar",
|
||
"shortcut.quick_insert": "Quick insert (Forge editor)",
|
||
"shortcut.quick_search": "Quick search (outside text field)",
|
||
"shortcut.save_file": "Save open file",
|
||
"shortcut.search_in_doc": "Search in document",
|
||
"shortcut.tip_preview": "Hover a document with **Ctrl** for a quick preview. Click **Forge** in the toolbar for the advanced editor.",
|
||
"sidebar.all_vaults": "All vaults",
|
||
"sidebar.case_sensitive": "Case sensitive",
|
||
"sidebar.clear_filter": "Clear",
|
||
"sidebar.expand_collapse": "Expand/Collapse",
|
||
"sidebar.file_icons": "Icons",
|
||
"sidebar.filter_instant": "Instant search",
|
||
"sidebar.filter_ai": "Filter AI history...",
|
||
"sidebar.filter_recent": "Filter recent files...",
|
||
"sidebar.filter_saved": "Filter saved searches...",
|
||
"sidebar.filter_path": "Path filters",
|
||
"sidebar.filter_placeholder": "Filter files...",
|
||
"sidebar.filter_results_grouped": "Grouped results",
|
||
"sidebar.loading": "Loading...",
|
||
"sidebar.no_recent_files": "No recent files",
|
||
"sidebar.no_results": "No matching directory or file.",
|
||
"sidebar.no_saved_searches": "No saved searches",
|
||
"sidebar.open_file": "Open file",
|
||
"sidebar.saved_dirs_tab": "Folders",
|
||
"sidebar.saved_searches_tab": "Searches",
|
||
"sidebar.sidebar_dropdown": "Vault context menu",
|
||
"sidebar.sidebar_filtering": "Sidebar filtering",
|
||
"sidebar.tab_backups": "Backups",
|
||
"sidebar.tab_recent": "Recent",
|
||
"sidebar.tab_saved": "Searches",
|
||
"sidebar.tab_tags": "Tags",
|
||
"sidebar.tab_vaults": "Vaults",
|
||
"sidebar.user_role_admin": "Administrator",
|
||
"sidebar.user_role_user": "User",
|
||
"sidebar.vault_context_all": "All vaults",
|
||
"sidebar.vault_specific": "Specific vault",
|
||
"sync.autocomplete": "Autocomplete",
|
||
"sync.autocomplete_active": "Autocomplete active",
|
||
"sync.connected": "Synchronized",
|
||
"sync.connected_short": "Connected",
|
||
"sync.disconnected": "Disconnected",
|
||
"sync.event_index_progress": "Vault indexed",
|
||
"sync.event_index_start": "Index starting",
|
||
"sync.event_index_updated": "Update",
|
||
"sync.event_vault_added": "Vault added",
|
||
"sync.event_vault_removed": "Vault removed",
|
||
"sync.index_complete": "Indexing complete ({count} files)",
|
||
"sync.index_reloaded": "Full index reloaded",
|
||
"sync.index_started": "Indexing started ({count} vaults)",
|
||
"sync.install_success": "ObsiGate installed successfully!",
|
||
"sync.model_not_loaded": "Model not loaded",
|
||
"sync.no_provider": "No provider",
|
||
"sync.no_recent_events": "No recent events",
|
||
"sync.not_configured": "Not configured",
|
||
"sync.processing": "Processing…",
|
||
"sync.update": "Update",
|
||
"sync.updating": "Updating...",
|
||
"sync.vault_added": "Vault \"{vault}\" added ({count} files)",
|
||
"sync.vault_added_label": "Vault added",
|
||
"sync.vault_files": "{vault} ({files} files)",
|
||
"sync.vault_indexed_label": "Vault indexed",
|
||
"sync.vault_removed": "Vault \"{vault}\" removed",
|
||
"sync.vault_removed_label": "Vault removed",
|
||
"sync.verifying": "Verifying…",
|
||
"theme.change": "Change theme",
|
||
"theme.dark": "Dark",
|
||
"theme.light": "Light",
|
||
"theme.high_contrast": "High Contrast",
|
||
"theme.sepia": "Sepia",
|
||
"theme.title": "Theme",
|
||
"theme.export_all": "Export Themes",
|
||
"theme.import": "Import Theme",
|
||
"theme.import_success": "{count} theme(s) imported",
|
||
"theme.import_error": "Import error",
|
||
"theme.delete_confirm": "Delete this custom theme?",
|
||
"themes.name_gradients": "Subtle gradients",
|
||
"themes.name_terminal": "Pure black & green",
|
||
"toast.ai_keys_saved": "API keys saved",
|
||
"toast.ai_no_key": "No keys to save",
|
||
"toast.bookmark_added": "Added to bookmarks",
|
||
"toast.bookmark_removed": "Removed from bookmarks",
|
||
"toast.cannot_delete_self": "Cannot delete your own account",
|
||
"toast.config_client_saved": "Client settings saved",
|
||
"toast.config_reset": "Configuration reset",
|
||
"toast.config_saved": "Configuration saved",
|
||
"toast.conflict_resolved": "Conflict resolved",
|
||
"toast.copied": "Copied!",
|
||
"toast.copy_error": "Copy error",
|
||
"toast.create_error": "Creation error",
|
||
"toast.created": "Created",
|
||
"toast.delete_error": "Deletion error",
|
||
"toast.deleted": "Deleted",
|
||
"toast.dir_created": "Folder \"{name}\" created",
|
||
"toast.dir_deleted": "Folder deleted ({count} files)",
|
||
"toast.dir_renamed": "Directory renamed",
|
||
"toast.dir_saved_search": "Folder saved to searches",
|
||
"toast.error_delete": "Delete error",
|
||
"toast.error_init": "Initialization error",
|
||
"toast.error_load": "Loading error",
|
||
"toast.error_network": "Network error",
|
||
"toast.error_rename": "Cannot rename this item",
|
||
"toast.file_created": "File \"{name}\" created",
|
||
"toast.file_deleted": "File deleted",
|
||
"toast.file_renamed": "File renamed",
|
||
"toast.hidden_saved": "✓ Settings saved",
|
||
"toast.index_reloaded": "Full index reloaded",
|
||
"toast.installed": "ObsiGate installed successfully!",
|
||
"toast.link_created": "Link created!",
|
||
"toast.moved": "Moved",
|
||
"toast.no_open_file": "No file open",
|
||
"toast.not_found_tree": "Item not found in tree",
|
||
"toast.path_copied": "Path copied: {path}",
|
||
"toast.reindex_done": "Reindexing complete",
|
||
"toast.reindex_started": "Reindexing...",
|
||
"toast.rename_error": "Rename error",
|
||
"toast.renamed": "Renamed",
|
||
"toast.saved": "Saved",
|
||
"toast.search_saved": "Search saved",
|
||
"toast.share_revoked": "Share revoked",
|
||
"toast.url_required": "URL required",
|
||
"toast.user_created": "User created",
|
||
"toast.user_deleted": "User deleted",
|
||
"toast.user_modified": "User modified",
|
||
"toast.viewer_error": "Viewer loading error",
|
||
"toc.hide_panel": "Hide panel",
|
||
"toc.no_headings": "No headings in this document",
|
||
"toc.title": "ON THIS PAGE",
|
||
"tree.new_file": "New file",
|
||
"tree.new_folder": "New folder",
|
||
"tree.vault_home": "Vault home",
|
||
"ui.backups_versions": "Backups / Versions",
|
||
"ui.cannot_rename": "Cannot rename this item",
|
||
"ui.delete_name_empty": "Name cannot be empty",
|
||
"ui.element_not_found": "Element not found in tree",
|
||
"ui.vault_readonly": "Read-only vault",
|
||
"vault.add_dynamic": "Add vault",
|
||
"vault.reindex": "Reindex vault",
|
||
"vault.remove_dynamic": "Remove vault",
|
||
"vaulthome.empty": "No files in this directory",
|
||
"vaulthome.error_loading": "Loading error:",
|
||
"vaulthome.file_count": "{count} file",
|
||
"vaulthome.file_count_plural": "{count} files",
|
||
"vaulthome.loading": "Loading files...",
|
||
"vaulthome.size_bytes": "B",
|
||
"vaulthome.size_kb": "KB",
|
||
"vaulthome.size_mb": "MB",
|
||
"viewer.backlinks": "Backlinks",
|
||
"viewer.binary_download": "Download file",
|
||
"viewer.binary_unsupported": "Unsupported binary file",
|
||
"viewer.bookmark_add": "Add to bookmarks",
|
||
"viewer.bookmark_remove": "Remove bookmarks",
|
||
"viewer.bookmark_toggle": "Add/Remove bookmarks",
|
||
"viewer.breadcrumb_home": "Home",
|
||
"viewer.click_to_download": "Click to download",
|
||
"viewer.copied": "Copied!",
|
||
"viewer.copy": "Copy",
|
||
"viewer.copy_error": "Copy error",
|
||
"viewer.download": "Download",
|
||
"xlsx.lossy_title": "Simplified save",
|
||
"xlsx.lossy_hint": "ObsiGate cannot preserve these elements: saving will ask for your confirmation.",
|
||
"xlsx.lossy_confirm": "Save anyway? The following will be lost: {features}",
|
||
"xlsx.lossy_cancelled": "Save cancelled",
|
||
"xlsx.formula_toggle_title": "Treat “=” and “@” as formulas (off by default)",
|
||
"xlsx.cached_value_title": "Last value calculated by Excel",
|
||
"xlsx.truncated_title": "Truncated sheet",
|
||
"xlsx.truncated_rows": "{shown} of {total} rows displayed.",
|
||
"xlsx.truncated_cols": "{shown} of {total} columns displayed.",
|
||
"xlsx.truncated_hint": "Cells outside the displayed area cannot be edited here; the workbook is unchanged.",
|
||
"xlsx.load_more": "Load more",
|
||
"xlsx.loading_more": "Loading…",
|
||
"xlsx.load_error": "Could not load the remaining rows",
|
||
"xlsx.formula_bar_placeholder": "Active cell content",
|
||
"xlsx.active_cell": "Cell",
|
||
"xlsx.feature_cached_values": "cached values",
|
||
"xlsx.feature_slicers": "slicers and timelines",
|
||
"xlsx.feature_form_controls": "form controls",
|
||
"xlsx.feature_connections": "connections and queries",
|
||
"xlsx.feature_custom_xml": "custom XML",
|
||
"xlsx.feature_signature": "digital signature",
|
||
"xlsx.feature_rich_comments": "rich comments",
|
||
"xlsx.feature_macros": "macros",
|
||
"viewer.download_md": "Download as .md",
|
||
"viewer.download_file": "Download file",
|
||
"viewer.pretty": "Pretty",
|
||
"viewer.pretty_title": "Formatted mode: colors and line numbers",
|
||
"viewer.download_pdf": "Download as PDF",
|
||
"viewer.edit": "Edit",
|
||
"viewer.error": "Loading error",
|
||
"viewer.export": "Export",
|
||
"viewer.export_done": "Export complete",
|
||
"viewer.export_epub": "Export as ePub",
|
||
"viewer.export_error": "Export error:",
|
||
"viewer.export_html": "Export as HTML",
|
||
"viewer.export_md_bundle": "Export as Markdown bundle (.zip)",
|
||
"viewer.export_start": "Exporting...",
|
||
"viewer.export_title": "Export document",
|
||
"viewer.forge_brand": "Forge",
|
||
"viewer.forge_title": "Forge (new editor)",
|
||
"viewer.image_dimensions": "Dimensions",
|
||
"viewer.image_error": "Unable to load the image",
|
||
"viewer.image_fullscreen": "Full screen (lightbox)",
|
||
"viewer.image_metadata": "Metadata",
|
||
"viewer.image_next": "Next image",
|
||
"viewer.image_open_original": "Open original",
|
||
"viewer.image_prev": "Previous image",
|
||
"viewer.image_strip_next": "Scroll thumbnails right",
|
||
"viewer.image_strip_prev": "Scroll thumbnails left",
|
||
"viewer.image_type": "Type",
|
||
"viewer.image_zoom_in": "Zoom in",
|
||
"viewer.image_zoom_out": "Zoom out",
|
||
"viewer.image_zoom_reset": "Reset zoom",
|
||
"viewer.index_start": "Starting index...",
|
||
"viewer.index_updated": "Updated",
|
||
"viewer.loaded_from_cache": "File loaded from offline cache",
|
||
"viewer.loading": "Loading file...",
|
||
"viewer.markdown": "Markdown",
|
||
"viewer.media_too_large": "File too large for inline playback. Download it to watch.",
|
||
"viewer.media_unsupported": "This format cannot be played in your browser.",
|
||
"viewer.metadata_created": "Created",
|
||
"viewer.metadata_modified": "Modified",
|
||
"viewer.metadata_path": "Path",
|
||
"viewer.metadata_size": "Size",
|
||
"viewer.metadata_tags": "Tags",
|
||
"viewer.metadata_vault": "Vault",
|
||
"viewer.no_headings": "No headings in this document",
|
||
"viewer.on_this_page": "ON THIS PAGE",
|
||
"viewer.outline": "Outline",
|
||
"viewer.pdf_pages": "{count} pages",
|
||
"viewer.popout": "Open in popup",
|
||
"viewer.raw": "Raw",
|
||
"viewer.share": "Share",
|
||
"viewer.shared_doc_title": "Shared document — click to manage",
|
||
"viewer.source": "Source",
|
||
"viewer.syncing": "Updating...",
|
||
"viewer.toc": "Table of contents",
|
||
"viewer.unsupported_file": "This file is binary and cannot be displayed",
|
||
"webhook.trigger_create": "Creation via API or palette",
|
||
"webhook.trigger_delete": "Deletion via API or editor",
|
||
"webhook.trigger_dir_create": "Directory creation via API",
|
||
"webhook.trigger_dir_delete": "Directory deletion via API",
|
||
"webhook.trigger_dir_rename": "Directory rename via API",
|
||
"webhook.trigger_rename": "Rename via API",
|
||
"settings.security": "🔒 Account Security",
|
||
"settings.security_desc": "Enable two-factor authentication (2FA) to strengthen your account security.",
|
||
"mfa.title": "Two-Factor Authentication",
|
||
"mfa.subtitle": "Enter the 6-digit code from your authenticator app.",
|
||
"mfa.verify": "Verify",
|
||
"mfa.verifying": "Verifying...",
|
||
"mfa.use_recovery": "Use a recovery code",
|
||
"mfa.back_to_login": "Back to login",
|
||
"mfa.recovery_title": "Recovery Code",
|
||
"mfa.recovery_subtitle": "Enter one of your recovery codes (format: XXXX-XXXX).",
|
||
"mfa.use_totp": "Use authenticator code",
|
||
"mfa.status_label": "Two-Factor Authentication",
|
||
"mfa.enabled": "Enabled",
|
||
"mfa.disabled": "Disabled",
|
||
"mfa.enabled_desc": "Your account is protected by two-factor authentication.",
|
||
"mfa.setup_desc": "Add an extra layer of security to your account with TOTP.",
|
||
"mfa.enable_btn": "Enable 2FA",
|
||
"mfa.disable_btn": "Disable 2FA",
|
||
"mfa.scan_qr": "Scan this QR code with your authenticator app",
|
||
"mfa.manual_entry": "Manual entry (if you can't scan)",
|
||
"mfa.enter_code": "Enter the 6-digit code to confirm",
|
||
"mfa.confirm_enable": "Confirm & Enable",
|
||
"mfa.recovery_codes_title": "Recovery Codes",
|
||
"mfa.recovery_codes_warning": "Save these codes in a secure place. Each code can only be used once.",
|
||
"mfa.copy_codes": "Copy",
|
||
"mfa.download_codes": "Download",
|
||
"mfa.done": "Done",
|
||
"mfa.codes_copied": "Recovery codes copied!",
|
||
"mfa.disable_confirm_title": "Disable 2FA",
|
||
"mfa.disable_confirm_desc": "Enter your password and a valid TOTP code to disable two-factor authentication.",
|
||
"mfa.password_label": "Password",
|
||
"mfa.password_placeholder": "Your current password",
|
||
"mfa.totp_code_label": "TOTP Code",
|
||
"mfa.disable_confirm_btn": "Disable 2FA",
|
||
"mfa.disabled_success": "2FA has been disabled.",
|
||
"mfa.fill_all_fields": "Please fill in all fields.",
|
||
"mfa.qr_unavailable": "QR code unavailable — use manual entry below.",
|
||
"mfa.password_change_title": "Password",
|
||
"mfa.password_change_desc": "Change your account password (min. 8 characters). All other sessions are invalidated.",
|
||
"mfa.current_password_label": "Current password",
|
||
"mfa.current_password_placeholder": "Your current password",
|
||
"mfa.new_password_label": "New password",
|
||
"mfa.new_password_placeholder": "Min. 8 characters",
|
||
"mfa.new_password_confirm_label": "Confirm new password",
|
||
"mfa.new_password_confirm_placeholder": "Repeat the new password",
|
||
"mfa.password_change_btn": "Change password",
|
||
"mfa.password_mismatch": "The two passwords do not match.",
|
||
"mfa.password_changed": "Password updated.",
|
||
"mfa.challenge_unavailable": "Verification screen unavailable — please reload the page.",
|
||
"bookslm.title": "BooksLM",
|
||
"bookslm.files_indexed": "{count} files indexed",
|
||
"bookslm.chars_loaded": "{chars} chars loaded",
|
||
"bookslm.placeholder": "",
|
||
"bookslm.send": "Send",
|
||
"bookslm.new_conversation": "New conversation",
|
||
"bookslm.export": "Export conversation",
|
||
"bookslm.toggle_sidebar": "Hide/Show AI sidebar",
|
||
"bookslm.copy": "Copy",
|
||
"bookslm.insert": "Add",
|
||
"bookslm.insert_hint": "Append the answer to the document open in the editor",
|
||
"bookslm.inserted": "Answer added to the document",
|
||
"bookslm.insert_no_editor": "No document open in the editor",
|
||
"bookslm.insert_block": "Add section",
|
||
"bookslm.insert_block_hint": "Add only this code block to the document open in the editor",
|
||
"ai.steps_count": "{count} step",
|
||
"ai.steps_count_plural": "{count} steps",
|
||
"ai.activity_thinking": "Thinking…",
|
||
"ai.step.thought": "Thought: {value}",
|
||
"ai.thought_label": "Thought",
|
||
"ai.sources_label": "Sources ({count})",
|
||
"ai.steps_running": "running",
|
||
"ai.step.backlinks": "Analyzed backlinks",
|
||
"ai.step.backup_diff": "Compared backup: {value}",
|
||
"ai.step.backup_restore": "Restored backup: {value}",
|
||
"ai.step.backups": "Listed backups",
|
||
"ai.step.dir_create": "Proposed directory: {value}",
|
||
"ai.step.dir_delete": "Deleted directory: {value}",
|
||
"ai.step.dir_rename": "Renamed directory: {value}",
|
||
"ai.step.directory": "Explored directory: {value}",
|
||
"ai.step.file_append": "Appended to file: {value}",
|
||
"ai.step.file_create": "Proposed file: {value}",
|
||
"ai.step.file_delete": "Deleted file: {value}",
|
||
"ai.step.file_edit": "Edited file: {value}",
|
||
"ai.step.file_read": "Read file: {value}",
|
||
"ai.step.file_rename": "Renamed file: {value}",
|
||
"ai.step.files": "Listed files",
|
||
"ai.step.generic": "Used tool: {tool}",
|
||
"ai.step.graph": "Consulted the vault graph",
|
||
"ai.step.move": "Moved: {value}",
|
||
"ai.step.recent": "Listed recent files",
|
||
"ai.step.replace": "Replacements: {value}",
|
||
"ai.step.search": "Searched the vault: {value}",
|
||
"ai.step.search_paths": "Searched paths: {value}",
|
||
"ai.step.tags": "Listed tags",
|
||
"ai.step.tags_suggest": "Suggested tags for {value}",
|
||
"ai.step.vaults": "Listed the vaults",
|
||
"ai.step.fetch_url": "Opened a web page: {value}",
|
||
"ai.step.web_search": "Searched the web: {value}",
|
||
"ai.step.crawl": "Crawled a site: {value}",
|
||
"ai.step.git_repos": "Listed repositories ({value})",
|
||
"ai.step.git_issues": "Searched issues: {value}",
|
||
"ai.step.git_file": "Read a repo file: {value}",
|
||
"ai.step.xlsx_create": "Spreadsheet proposed: {value}",
|
||
"ai.step.xlsx_sheets": "Workbook sheets listed: {value}",
|
||
"ai.step.xlsx_read": "Workbook read: {value}",
|
||
"ai.step.xlsx_update": "Cells edited: {value}",
|
||
"ai.step.xlsx_append": "Rows appended: {value}",
|
||
"ai.step.docx_create": "Word document proposed: {value}",
|
||
"ai.step.csv_create": "CSV file proposed: {value}",
|
||
"ai.step.pdf_create": "PDF document proposed: {value}",
|
||
"bookslm.copied": "Copied to clipboard",
|
||
"bookslm.error": "AI service error",
|
||
"bookslm.regenerate": "Regenerate",
|
||
"bookslm.suggestion_summary": "Summarize this directory",
|
||
"bookslm.suggestion_themes": "What are the main themes?",
|
||
"bookslm.suggestion_contradictions": "Are there contradictions between these documents?",
|
||
"bookslm.no_context": "No files found in this directory",
|
||
"bookslm.context_too_large": "Directory too large — some files were truncated",
|
||
"bookslm.source": "Source",
|
||
"bookslm.session_history": "Session history",
|
||
"bookslm.session_delete": "Delete session",
|
||
"bookslm.history_empty": "No saved session",
|
||
"bookslm.history_no_match": "No conversation matches the search",
|
||
"bookslm.untitled": "Untitled conversation",
|
||
"bookslm.no_vault": "No active vault to open this link",
|
||
"bookslm.copied_name": "Name copied: {name}",
|
||
"bookslm.add_options": "Add options",
|
||
"bookslm.ext_files": "Upload files",
|
||
"bookslm.ext_files_hint": "Add files to the conversation context",
|
||
"bookslm.ext_image_hint": "Attach an image for vision-capable models",
|
||
"bookslm.ext_contexts": "Add contexts",
|
||
"bookslm.ext_contexts_hint": "Attach files or directories with the @ command",
|
||
"bookslm.ext_skills": "Add skills",
|
||
"bookslm.ext_skills_hint": "Select an active skill",
|
||
"bookslm.ext_deep_research": "Deep Research",
|
||
"bookslm.ext_deep_research_hint": "Multi-step in-depth research",
|
||
"bookslm.ext_web": "Internet search",
|
||
"bookslm.ext_web_hint": "Coming soon",
|
||
"bookslm.ext_canva": "Canva",
|
||
"bookslm.ext_canva_hint": "Coming soon",
|
||
"bookslm.coming_soon": "Feature coming soon",
|
||
"bookslm.soon": "Soon",
|
||
"bookslm.ext_more_coming": "More options coming…",
|
||
"bookslm.deep_research_prompt": "Perform an in-depth analysis of the request by breaking it into steps, searching for relevant information in the vault, cross-referencing them, and producing a structured summary with sources.",
|
||
"bookslm.deep_research_started": "Deep Research enabled — add your question and send.",
|
||
"bookslm.mode_general": "General",
|
||
"bookslm.mode_directory": "Directory",
|
||
"bookslm.mode_documents": "Documents",
|
||
"palette.bookslm_open": "BooksLM: Open for current directory",
|
||
"palette.bookslm_open_desc": "Opens the AI assistant for the current context (open documents or general)",
|
||
"palette.bookslm_new": "BooksLM: New conversation",
|
||
"palette.bookslm_new_desc": "Resets the AI assistant conversation",
|
||
"fab.open": "Open AI assistant",
|
||
"fab.close": "Close AI assistant",
|
||
"mfa.webauthn_title": "Security keys (WebAuthn)",
|
||
"mfa.webauthn_desc": "Authenticate with a physical key (YubiKey) or your device biometrics (Windows Hello, Touch ID).",
|
||
"mfa.webauthn_none": "No registered keys.",
|
||
"mfa.webauthn_add": "Add a security key",
|
||
"mfa.webauthn_label_prompt": "Key name (e.g. Pocket YubiKey)",
|
||
"mfa.webauthn_added": "Security key registered.",
|
||
"mfa.webauthn_removed": "Security key removed.",
|
||
"mfa.webauthn_remove": "Remove",
|
||
"mfa.webauthn_remove_confirm": "Enter your password to remove this key:",
|
||
"mfa.webauthn_prompt": "Present your security key or confirm with Windows Hello.",
|
||
"mfa.webauthn_btn": "Verify with my key",
|
||
"mfa.webauthn_cancelled": "WebAuthn ceremony cancelled.",
|
||
"mfa.webauthn_no_key": "No security key registered for this account.",
|
||
"player.now_playing": "Now playing",
|
||
"player.play": "Play",
|
||
"player.pause": "Pause",
|
||
"player.previous": "Previous",
|
||
"player.next": "Next",
|
||
"player.seek": "Seek",
|
||
"player.volume": "Volume",
|
||
"player.speed": "Playback speed",
|
||
"player.expand": "Expand player",
|
||
"player.minimize": "Minimize player",
|
||
"player.close": "Stop and close player",
|
||
"player.continues": "Playback continues — use the player to stop it.",
|
||
"player.reopen_tab": "Return to media",
|
||
"player.pip": "Picture in picture",
|
||
"player.move": "Move",
|
||
"player.resize": "Resize",
|
||
"player.resume": "Resuming last playback",
|
||
"plugins.title": "🧩 Plugins",
|
||
"plugins.description": "Extend ObsiGate with custom renderers, search filters, and editor actions.",
|
||
"plugins.install": "Install Plugin",
|
||
"plugins.template": "View Template",
|
||
"plugins.none": "No plugins installed.",
|
||
"plugins.manifest_json": "Manifest (plugin.json)",
|
||
"plugins.code": "Plugin Code (main file)",
|
||
"plugins.view_code": "View Code",
|
||
"plugins.uninstall": "Uninstall",
|
||
"plugins.enable": "Enable",
|
||
"plugins.disable": "Disable",
|
||
"plugins.enabled": "Plugin '{name}' enabled.",
|
||
"plugins.disabled": "Plugin '{name}' disabled.",
|
||
"plugins.installed": "Plugin '{name}' installed successfully.",
|
||
"plugins.uninstalled": "Plugin '{name}' uninstalled.",
|
||
"plugins.confirm_uninstall": "Uninstall plugin '{name}'? This cannot be undone.",
|
||
"help.plugins_title": "🧩 Plugins",
|
||
"help.plugins_intro": "Plugins extend ObsiGate: custom file rendering, search filters, editor actions, widgets and integrations. They run in sandboxed Web Workers — isolated from the page for security.",
|
||
"help.plugins_install": "Installation",
|
||
"help.plugins_install_1": "Open Settings → 🧩 Plugins.",
|
||
"help.plugins_install_2": "Click 'Install a plugin'.",
|
||
"help.plugins_install_3": "Select a .zip file containing the plugin.json manifest and the plugin code.",
|
||
"help.plugins_install_4": "The manifest is validated (name, semver version, hooks, permissions) before installation.",
|
||
"help.plugins_manage": "Management",
|
||
"help.plugins_manage_1": "Enable / Disable: buttons on each plugin — hooks only run if the plugin is enabled.",
|
||
"help.plugins_manage_2": "Uninstall: permanently removes the plugin from the vault.",
|
||
"help.plugins_manage_3": "Code: view the source code of the installed plugin.",
|
||
"help.plugins_dev": "Develop a plugin",
|
||
"help.plugins_dev_intro": "Download the template from Settings → Plugins → 'Get template'. A plugin consists of a plugin.json manifest and a main file (e.g. index.js).",
|
||
"help.plugins_hooks": "Available hooks",
|
||
"help.plugins_hook_render": "onFileRender",
|
||
"help.plugins_hook_render_desc": "transforms the displayed content of a file.",
|
||
"help.plugins_hook_search": "onSearchFilter",
|
||
"help.plugins_hook_search_desc": "filters search results.",
|
||
"help.plugins_hook_editor": "onEditorAction",
|
||
"help.plugins_hook_editor_desc": "intercepts editor actions.",
|
||
"help.plugins_hook_sidebar": "onSidebarItem",
|
||
"help.plugins_hook_sidebar_desc": "adds items to the sidebar.",
|
||
"help.plugins_hook_file": "onFileCreate / onFileDelete",
|
||
"help.plugins_hook_file_desc": "reacts to file creation / deletion.",
|
||
"help.plugins_hook_vault": "onVaultMount",
|
||
"help.plugins_hook_vault_desc": "runs when a vault is loaded.",
|
||
"help.plugins_security": "Security",
|
||
"help.plugins_security_1": "Web Worker sandbox: plugin code runs isolated, with no direct DOM access.",
|
||
"help.plugins_security_2": "Permissions: each declared hook must be satisfied by the manifest permissions.",
|
||
"help.plugins_security_3": "Secure packaging: the .zip is checked against path traversal on install.",
|
||
"help.plugins_security_4": "Admin only: installation and removal require the admin role.",
|
||
"help.plugins_template": "Use the <strong>Template</strong> button in Settings > Plugins to generate a valid starter plugin.",
|
||
"help.excalidraw_title": "🎨 Excalidraw diagrams",
|
||
"help.excalidraw_intro": "<code>.excalidraw</code> and <code>.excalidraw.md</code> files open in a full visual Excalidraw editor embedded in a sandboxed iframe.",
|
||
"help.excalidraw_open_title": "Opening",
|
||
"help.excalidraw_open": "Click a <code>.excalidraw</code> file in the tree: the editor opens instead of the markdown viewer.",
|
||
"help.excalidraw_edit": "Draw, add shapes, text, arrows and images — the complete Excalidraw experience.",
|
||
"help.excalidraw_save_title": "Saving",
|
||
"help.excalidraw_save": "Changes are saved automatically (2s debounce) or with <strong>Ctrl+S</strong>. The editor follows the light/dark theme.",
|
||
"help.excalidraw_search_title": "Search",
|
||
"help.excalidraw_search": "Text inside diagram elements is extracted on indexing, so it is searchable via the full-text search.",
|
||
"help.excalidraw_compat": "Files created with the Obsidian Excalidraw plugin (including the compressed <code>.excalidraw.md</code> format) are compatible.",
|
||
"help.footer_tagline": "- Web gateway for your Obsidian vaults",
|
||
"guide105.nav_architecture": "🏗️ Architecture",
|
||
"guide105.nav_library": "⭐ Library",
|
||
"guide105.nav_diagrams": "📊 Diagrams",
|
||
"guide105.nav_offline": "📴 Offline",
|
||
"guide105.nav_collab": "👥 Collaboration",
|
||
"guide105.nav_desktop": "🖥️ Desktop",
|
||
"guide105.nav_api": "🔌 API",
|
||
"guide105.nav_languages": "🌍 Languages",
|
||
"guide105.arch_intro": "ObsiGate is a full web application built as independent layers, with no external database: notes live in your Obsidian folders, app state in JSON files under <code>data/</code>, the search index in memory.",
|
||
"guide105.arch_diagram_note": "The diagram is interactive in the app: zoom, fullscreen, copy SVG or code.",
|
||
"guide105.arch_h3_layers": "The main components",
|
||
"guide105.arch_lbl_fe": "Frontend",
|
||
"guide105.arch_fe": " — vanilla-JavaScript SPA (ES modules), no framework, no npm build: <code>frontend/js/</code> (~30 modules). CSS variables drive the themes.",
|
||
"guide105.arch_lbl_be": "Backend",
|
||
"guide105.arch_be": " — FastAPI server (Python 3.11): markdown rendering (mistune + wikilinks), stemmed TF-IDF search (in-memory inverted index), watchdog file watchers, JWT + Argon2id, HMAC webhooks, PDF export (WeasyPrint).",
|
||
"guide105.arch_lbl_realtime": "Realtime & MCP",
|
||
"guide105.arch_rt": " — WebSocket gateway (Yjs collaboration, SSE/push notifications) and an MCP server (Streamable HTTP, <code>/mcp</code>) for external clients.",
|
||
"guide105.arch_lbl_ai": "AI layer",
|
||
"guide105.arch_ai": " — editor assistant and BooksLM with multiple providers (DeepSeek, OpenRouter, Gemini, Mistral…), a tool library (function calling, web search, crawl, document reading) and optional embeddings for semantic search.",
|
||
"guide105.arch_lbl_data": "Data",
|
||
"guide105.arch_data": " — Obsidian vaults on disk (the source of truth), JSON configuration (<code>data/</code>), timestamped backups (<code>.obsigate-backup/</code>), a JSON-lines audit log, encrypted API keys in <code>data/api_keys.json</code>.",
|
||
"guide105.arch_lbl_deploy": "Deployment",
|
||
"guide105.arch_deploy": " — Tauri desktop app (Rust) embedding the Python backend, a Docker container, or an installable PWA in the browser (offline mode).",
|
||
"guide105.arch_h3_flux": "Typical request flow",
|
||
"guide105.arch_flux": " Clicking a file issues <code>GET /api/file/...</code>; the backend resolves the path safely, parses frontmatter, renders the markdown and returns HTML; the frontend enriches the view (Mermaid, syntax highlighting, clickable wikilinks). Every write creates a backup before applying.",
|
||
"guide105.dia_intro": "<code>```mermaid</code> blocks in your notes render as interactive diagrams (Mermaid v11, loaded from a CDN).",
|
||
"guide105.dia_zoom": "Zoom: + / − buttons in the diagram toolbar.",
|
||
"guide105.dia_fs": "Fullscreen: ideal for large charts.",
|
||
"guide105.dia_copy": "Copy: export the SVG or the source code (dedicated buttons).",
|
||
"guide105.dia_toggle": "Preview / Code toggle to edit the source without leaving the view.",
|
||
"guide105.dia_theme": "Theme: the diagram follows the app's light/dark theme.",
|
||
"guide105.dia_types": "Supported types: flowchart, sequence, class, state, ER, gantt, pie, journey, quadrant, radar, mindmap, timeline, C4, xychart, sankey — plus a preprocessor that understands Obsidian syntax.",
|
||
"guide105.dia_excalidraw_ref": "Hand-drawn sketches (<code>.excalidraw</code>, <code>.excalidraw.md</code>) are covered in the 🎨 Excalidraw section.",
|
||
"guide105.lib_h3_bookmarks": "Bookmarks & recents",
|
||
"guide105.lib_bookmarks": "Star a file with the Bookmark button in the action bar: it joins the dashboard's bookmark list. Recently opened files are listed automatically in the sidebar's \"Recent\" tab, with a dedicated search filter.",
|
||
"guide105.lib_h3_saved": "Saved searches",
|
||
"guide105.lib_saved": "Save a search from the results page to rerun it in one click from the sidebar: each saved search keeps its operators and filters.",
|
||
"guide105.lib_h3_backlinks": "Backlinks & graph",
|
||
"guide105.lib_backlinks": "The Backlinks panel lists every note pointing to the open file. The Graph view (🕸️ button) shows links between files: drag nodes, scroll to zoom, double-click a node to open the note.",
|
||
"guide105.lib_h3_conflicts": "Sync conflicts",
|
||
"guide105.lib_conflicts": "If you sync the vault with Syncthing, ObsiGate detects conflict files (\"sync-conflict\" copies) and offers to compare then resolve them from a dedicated page in the Options menu.",
|
||
"guide105.lib_h3_attach": "Attachments & media",
|
||
"guide105.lib_attach": "Inline <code>![[image.png]]</code> images, attachments and media (audio, video, embedded PDFs) are rendered in the viewer and indexed for search. Images also appear in the file tree and open in a dedicated viewer (wheel zoom, pan, smooth navigation between images in the folder — image resized to the frame, hover side arrows, persistent thumbnail filmstrip —, metadata, lightbox); audio (.mp3, .wav, .flac…) and video (.mp4, .webm…) files open in a built-in HTML5 player (play, seek, speed, fullscreen), falling back to download when the format is not playable in the browser; playback continues while you navigate thanks to a floating mini-player (audio) or a mini video window, letting you return to the media or stop it at any time. The \"Rescan attachments\" button in Configuration rebuilds the attachment index.",
|
||
"guide105.off_pwa": "ObsiGate is a PWA: install it (install icon in the address bar) to open it like an app. The service worker caches the UI and your recently viewed documents.",
|
||
"guide105.off_edit": "Offline you can read cached documents and even edit them: changes are queued in IndexedDB.",
|
||
"guide105.off_sync": "When back online the queue replays automatically (sync badge in the header). If the server version diverged meanwhile, the file is flagged as conflict and the server copy is kept as a backup.",
|
||
"guide105.off_watch": "External changes (Obsidian on disk) are detected by the watcher: the view reloads without losing your position, or flags \"modified externally\" during an edit.",
|
||
"guide105.col_intro": "Open a document in Edit mode: several people can work on the same file simultaneously over a Yjs (CRDT) WebSocket. Changes merge without locks.",
|
||
"guide105.col_cursors": "Collaborators' cursors and selections appear with a per-person colour and name (awareness).",
|
||
"guide105.col_save": "The merge is persisted server-side after 2 s of idle; every write creates a timestamped backup before applying.",
|
||
"guide105.col_perm": "Limited to authenticated users with permission on the vault.",
|
||
"guide105.des_get": "The ObsiGate desktop app (Tauri) embeds the Python server: no Docker install needed. Download it from the repository's Releases page; it auto-updates (signed updater).",
|
||
"guide105.des_wizard": "On first launch a wizard asks for your vaults folder (or creates a demo vault). Any document can be detached into its own native window.",
|
||
"guide105.des_data": "Desktop data stays in the app directory; vaults point at your existing folders. Every web feature (search, AI, sharing) is available.",
|
||
"guide105.des_native": "Native system menu, optional global show/hide shortcut and a recents vault jumplist.",
|
||
"guide105.api_intro": "ObsiGate exposes a REST API covering the whole application (vaults, files, search, backups, export, AI, sharing, admin), documented in OpenAPI 3.1:",
|
||
"guide105.api_docs_url": "<code>/docs</code> — Swagger UI to try requests live.",
|
||
"guide105.api_redoc": "<code>/redoc</code> — compact alternative reference.",
|
||
"guide105.api_landing": "<code>/api</code> — landing page grouping endpoints by category.",
|
||
"guide105.api_schema": "<code>/openapi.json</code> — the machine schema, import into Postman or Insomnia.",
|
||
"guide105.api_h3_auth": "Authentication",
|
||
"guide105.api_auth": "Log in via <code>POST /api/auth/login</code> to get a Bearer token (the same token is accepted as an HttpOnly cookie, so browser clients can use <code>credentials: \"include\"</code>). All <code>/api/*</code> routes require it unless documented otherwise.",
|
||
"guide105.api_h3_mcp": "MCP server",
|
||
"guide105.api_mcp": "The assistant's tools (read, list, search, open, write…) are exposed to any MCP client (Claude Desktop, Cursor, Cline…) at <code>https://your-instance/mcp</code> with an API token. Setup and examples: <code>docs/MCP_GUIDE.md</code>.",
|
||
"guide105.api_h3_autom": "Automation",
|
||
"guide105.api_autom": "To automate from outside: <code>GET /api/search?q=…</code> and <code>GET /api/file/{vault}?path=…</code> let another tool index or re-read your notes; outgoing webhooks (🪝 section) avoid polling.",
|
||
"guide105.lng_how": "The interface is fully bilingual FR/EN. Settings → Profile → Language: the choice is stored on your account and follows you across devices.",
|
||
"guide105.lng_scope": "Everything is translated: menus, messages, notifications, and this guide. AI assistant answers follow the language of your documents.",
|
||
"guide105.lng_export": "This guide's Markdown / PDF buttons download the version in your language.",
|
||
"guide105.h3_semantic": "Semantic search (hybrid)",
|
||
"guide105.sem_p1": "Toggle the \"S\" button in the search bar (or Alt-S) to combine TF-IDF with vector similarity (RRF fusion): near concepts (\"velvet\" finds \"soft fabric\") surface higher.",
|
||
"guide105.sem_p2": "The embedding engine (multilingual model) is optional: without it a hash fallback keeps hybrid search working. Vectors are recomputed on each vault reindex.",
|
||
"guide105.h3_push": "Web notifications (push)",
|
||
"guide105.push_p1": "Grant notification permission (🔔 button in the header) to be alerted of offline-sync completions and important events. Subscription management lives in Configuration.",
|
||
"guide105.push_p2": "Built on the Web Push API (VAPID keys); works on desktop and mobile PWA with no third-party service: the server sends directly to browser push endpoints.",
|
||
"guide105.h3_panes": "Multi-pane split view",
|
||
"guide105.panes_p": "The \"Split\" button in the action bar opens the document in a twin pane; stack several panes to compare two notes or read and edit side by side. Pane widths drag on the border and are remembered.",
|
||
"guide105.h3_dupe": "Duplicate-proof uploads",
|
||
"guide105.dupe_p": "Bulk upload (drag a folder onto the sidebar) compares each file with existing content: an already-present file is skipped rather than duplicated with a \"(1)\" suffix. Handy when restoring a vault.",
|
||
"guide105.h3_pdf": "PDF export",
|
||
"guide105.pdf_p": "A document's \"PDF\" button renders it with the same engine as the viewer (WeasyPrint): headings, tables, lists and code are preserved. From a public link, the <code>/s/{token}/pdf</code> route produces the same PDF.",
|
||
"guide105.h3_exports": "HTML / ePub / ZIP export",
|
||
"guide105.exp_p": "The \"Export\" menu offers three formats: standalone HTML (single file, images inlined), ePub for e-readers and, for a folder, a Markdown ZIP bundle — links and resources resolved during export.",
|
||
"guide105.h3_mfa": "MFA: TOTP, WebAuthn, recovery codes",
|
||
"guide105.mfa_p": "Enable two-factor auth in Settings → Profile: TOTP apps (Authy, Aegis…), security keys and passkeys (WebAuthn, including Windows Hello) and 10 recovery codes to keep offline. Each method can be enabled and disabled independently.",
|
||
"guide105.h3_admin": "Admin dashboard",
|
||
"guide105.admin_p": "The admin role unlocks a dedicated <code>/admin.html</code> page (Options menu button): live server status, users, vaults, active sessions and the audit log. User CRUD also lives in Configuration.",
|
||
"guide105.dl_md_title": "Download this guide as Markdown",
|
||
"guide105.dl_pdf_title": "Download this guide as PDF",
|
||
"guide105.export_title": "ObsiGate User Guide",
|
||
"guide105.export_footer": "Generated from ObsiGate {version} — {date}. This document mirrors the in-app guide; the latest version always lives in the application."
|
||
}
|