diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 0f262cfe..1f8cfa9d 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -32,6 +32,7 @@ menu.view.appearance.system=System menu.view.appearance.light=Light menu.view.appearance.dark=Dark menu.view.fullscreen=Enter Full Screen +menu.view.exit.fullscreen=Exit Full Screen menu.view.bookmarks=View Bookmarks menu.terminal=Terminal menu.terminal.new=New Terminal @@ -189,6 +190,8 @@ project.new.dialog.success.title=Project created successfully! project.new.dialog.success.message=Project ''{0}'' has been created. project.new.dialog.success.countdown=Closing in {0} second{1}... project.new.dialog.success.close=Close Now +project.dialog.defaultDirective.label=Default Directive (optional) +project.dialog.defaultDirective.none=None project.dialog.url.title=Add URL Reference Material project.dialog.url.description=Enter a URL to add web content as a reference material. The URL will be validated and checked for accessibility. project.dialog.url.label=URL @@ -206,6 +209,10 @@ project.not.selected=No project selected # Projects View projects.title=Projects projects.description=Organize your chats around a topic and attach files, folders, or URLs as knowledge sources, so the AI always has the right context for that project. +projects.rag.embedding.not.configured=RAG is disabled for projects because no embedding model is configured for your current AI provider. +projects.rag.embedding.configure=Configure embedding model +projects.rag.embedding.unsupported.provider=RAG is disabled for projects because your current AI provider doesn't support embedding models. Switch to a provider that supports embeddings (e.g. OpenAI, Gemini, or an OpenAI-compatible endpoint) to enable RAG. +projects.rag.embedding.switch.provider=Switch AI provider projects.error=❌ {0} projects.empty=No projects found. projects.empty.hint=💡Create a new project to organize your chat sessions! @@ -236,6 +243,8 @@ projects.sources.add.dialog.title=Add Reference Material projects.sources.add.dialog.description=Select folders, files, or URLs to add as reference materials for this project. projects.sources.add.dialog.button.add=Add projects.sources.delete.tooltip=Delete reference material +projects.sources.watch.tooltip=Watch for changes +projects.sources.more.tooltip=More options projects.sources.guide=View Reference Materials Guide projects.error.loading=Failed to load projects. Please try again. projects.error.deleting=Failed to delete project. Please try again. @@ -246,6 +255,8 @@ project.error.loading=Failed to load project. Please try again. project.error.loading_sessions=Failed to load project sessions. Please try again. project.error.updating=Failed to update project. Please try again. project.error.deleting_knowledge_source=Failed to delete reference material. Please try again. +project.error.updating_knowledge_source=Failed to update reference material. Please try again. +project.error.rescanning_knowledge_source=Failed to rescan reference material. Please try again. project.knowledge_source.delete.success=Reference material deleted successfully. project.edit=Edit Project project.reindex=Re-index Project @@ -501,6 +512,7 @@ user.interest.environment=Environment # Actions action.delete=Delete +action.rescan=Rescan action.remove=Remove action.edit=Edit action.pin=Pin to sidebar @@ -710,6 +722,12 @@ chat.image.model.missing.title=Image model not configured chat.image.model.missing.message=No image model is set for {0}. Open Settings > AI Provider > Image Generation Models and set a model name first. chat.tools.button=Available Tools chat.tools.button.disabled=Available Tools ({0} disabled) +chat.tool.approval.required=\n\n⏸️ **Approval required** — The AI wants to run `{0}`{1}\n\n +chat.tool.approval.timed_out=Tool approval timed out: {0} +chat.tool.approval.denied=Tool execution denied by user: {0} +chat.tool.approval.prompt=The AI wants to run: {0} +chat.tool.approval.approve=Approve +chat.tool.approval.deny=Deny chat.tools.button.model.no.support=Tools are not supported by this model chat.tools.popup.title=Available Tools chat.tools.popup.loading=Loading servers... @@ -788,6 +806,7 @@ event.update.available=🚀 New Version Available event.details.action=Release Notes event.update.download=Download Now event.notification.empty=No events yet +event.notification.title=Notifications ({0}) event.notification.clear=Clear event.notification.clear.all=Clear All event.notification.group.errors=Background Errors @@ -799,6 +818,7 @@ event.indexing.started=Indexing… event.indexing.completed=Index Ready event.indexing.failed=Indexing Failed event.indexing.files_indexed={0} file(s) indexed +event.file.removed=File Removed From Index # Settings View settings.language=Language @@ -864,6 +884,8 @@ directive.import=Import directive.import.tooltip=Import directives from a JSON file directive.import.result=Import complete: {0} imported, {1} renamed, {2} skipped directive.import.error=Failed to import: invalid or unsupported file format +directive.default.set=Set as default directive +directive.default.unset=Unset as default directive # Log Levels log.level.error=Error @@ -956,10 +978,6 @@ provider.picker.description.openai=Cloud AI models from OpenAI. Requires an API provider.picker.description.anthropic=Cloud AI models from Anthropic. Requires an API key. Sign up at console.anthropic.com, create an API key, and add credits to your account before connecting. provider.picker.description.gemini=Cloud AI models from Google. Sign up at aistudio.google.com and generate a free API key. No credit card required for the free tier. provider.picker.description.xai=Cloud AI models from xAI. Requires an API key. Sign up at console.x.ai, create an API key, and add credits to your account before connecting. -provider.picker.description.ollama=Run open-source models locally. No API key needed. Download Ollama from ollama.com, then pull a model (e.g. ollama pull llama3) before connecting. -provider.picker.description.docker=Run models via Docker Desktop's built-in AI model runner. No API key needed. Requires Docker Desktop 4.40+ with the Model Runner feature enabled. -provider.picker.description.localai=Self-hosted, OpenAI-compatible local AI server. No API key needed. Install LocalAI, download a model, and start the server before connecting. -provider.picker.description.lmstudio=Run local LLMs with an easy-to-use desktop interface. No API key needed. Download LM Studio from lmstudio.ai, pull a model, load it, then enable the local server before connecting. provider.manage.title=Manage Providers provider.type.picker.title=Add AI Provider provider.type.picker.select.hint=← Select a provider from the list to see details @@ -971,6 +989,8 @@ provider.template.get.apikey=Get API key → # OpenAI-Compatible template taglines and setup help (see OpenAiCompatibleTemplate.kt) provider.template.cloudflare_ai.tagline=Run AI models on Cloudflare's global edge network with Workers AI. provider.template.cloudflare_ai.help=💡 To use Cloudflare AI:\n\n1. Find your Account ID in your Cloudflare dashboard\n2. Replace {ACCOUNT_ID} in the Base URL with it\n3. Create an API token with 'Workers AI' permission at:\n dash.cloudflare.com/profile/api-tokens +provider.template.deepseek.tagline=Reasoning and general-purpose models with a straightforward OpenAI-compatible API. +provider.template.deepseek.help=💡 To use DeepSeek:\n\n1. Create an API key at: platform.deepseek.com/api_keys\n2. Add credit to your DeepSeek account if needed\n3. Click Next to browse the available models provider.template.groq.tagline=Ultra-fast inference for open-source models — Llama, Mixtral, Gemma and more. provider.template.groq.help=💡 To use Groq:\n\n1. Get your free API key at: console.groq.com/keys\n2. Enter a model name, e.g. llama-3.1-8b-instant\n3. Click Next to browse all available models provider.template.nvidia_nim.tagline=Run optimized AI models on NVIDIA's cloud GPU infrastructure. @@ -983,6 +1003,14 @@ provider.template.lite_llm.tagline=A unified proxy that lets you call 100+ LLMs provider.search.placeholder=Search providers... provider.search.no_results=No providers found provider.template.lite_llm.help=💡 To use LiteLLM:\n\n1. Start the LiteLLM proxy: litellm --model ollama/llama3\n2. The default URL is http://localhost:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lmstudio.tagline=Run local LLMs with an easy-to-use desktop interface. No API key needed. Download LM Studio from lmstudio.ai and enable the local server. +provider.template.lmstudio.help=💡 To use LM Studio:\n\n1. Install LM Studio from: https://lmstudio.ai/\n2. Load a model and start the local server (Developer tab)\n3. Optionally change the base URL if not using the default port 1234 +provider.template.docker_ai.tagline=Run AI models via Docker Desktop's built-in model runner. No API key needed. Requires Docker Desktop 4.40+ with the Model Runner feature enabled. +provider.template.docker_ai.help=💡 To use Docker AI:\n\n1. Ensure Docker Desktop 4.40+ is installed and running\n2. Enable the Model Runner feature in Docker Desktop settings\n3. Pull a model, e.g.: docker model pull ai/qwen3-embedding:0.6B-F16\n4. The default base URL is http://localhost:12434/v1 +provider.template.localai.tagline=Self-hosted, OpenAI-compatible local AI server. No API key needed. Install LocalAI, load a model, and start the server before connecting. +provider.template.localai.help=💡 To use LocalAI:\n\n1. Install LocalAI from: https://localai.io/\n2. Pull a model and start the server\n3. The default base URL is http://localhost:8080/v1 +provider.template.ollama.tagline=Run open-source models locally. No API key needed. Download Ollama from ollama.com, then pull a model (e.g. ollama pull llama3) before connecting. +provider.template.ollama.help=💡 To use Ollama:\n\n1. Install Ollama from: https://ollama.com/\n2. Pull a model: ollama pull llama3\n3. The default base URL is http://localhost:11434/v1 provider.configure.new.title=Configure {0} @@ -1034,22 +1062,8 @@ provider.xai.apikey.description=Your XAI API key from https://console.x.ai/ provider.xai.apikey.stored=API key already stored securely. Leave blank to keep existing key, or enter a new one to update. provider.xai.setup.help=💡To use XAI, you need to provide an API key.\n\n1. Get your API key from: https://console.x.ai/\n2. Then set it in the Settings or using: :change-settings -# Provider Configuration - Ollama -provider.ollama.baseurl.description=The base URL for your Ollama instance (default: http://localhost:11434) -provider.ollama.setup.help=💡To use Ollama, you need to have it running locally.\n\n1. Install Ollama from: https://ollama.ai/\n2. Start Ollama service\n3. Optionally configure the base URL if not using default -# Provider Configuration - Docker AI -provider.docker.baseurl.description=The base URL for your Docker AI instance (default: http://localhost:12434) -provider.docker.setup.help=💡To use Docker AI, you need to have it running locally.\n\n1. Ensure Docker AI is installed and running\n2. Start Docker AI service\n3. Optionally configure the base URL if not using default -# Provider Configuration - LocalAI -provider.localai.baseurl.description=The base URL for your LocalAI instance -provider.localai.setup.help=💡To use LocalAI, you need to have it running.\n\n1. Install and start LocalAI\n2. Configure the base URL where LocalAI is accessible - -# Provider Configuration - LMStudio -provider.lmstudio.baseurl.description=The base URL for your LMStudio instance (default: http://localhost:1234) -provider.lmstudio.setup.help=💡To use LMStudio, you need to have it running locally.\n\n1. Install LMStudio from: https://lmstudio.ai/\n2. Start the local server\n3. Optionally configure the base URL if not using default -provider.lmstudio.openai.compat.info=Askimo uses OpenAI-compatible endpoints (/v1), not the native LMStudio API (/api/v1/). # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=The base URL for your OpenAI Compatible instance @@ -1139,10 +1153,6 @@ error.context_length=⚠️ Context window exceeded\n\nThe total input (conversa error.invalid_request=⚠️ Invalid request: {details}\n\nPlease check your input and try again. error.local_server=⚠️ Local AI server error!\n\nThe AI server process crashed or failed to load the model. This is not caused by Askimo.\n\nPossible causes:\n• The model file is corrupted or incomplete — try re-downloading it\n• Not enough RAM/VRAM — try a smaller quantization (e.g. Q4 instead of Q8)\n• Unsupported model format for the current server version\n• The server process was killed by the OS (out-of-memory)\n\nWhat to do:\n1. Check your local AI server logs for the full error\n2. Restart the server and try again\n3. Re-pull or re-download the model\n4. Try a different model or quantization level\n\nTechnical details: {details} error.empty_http_response=⚠️ The server closed the connection without responding!\n\nModel: {0}\n\nThis typically happens when a local AI provider silently drops the request instead of returning an error. The model''s context window is too small for the current request.\n\nCommon causes:\n• The conversation history has grown too long over multiple turns\n• Enabled tools add extra data to every request — even a short question with several tools active can exceed the limit\n• Large attached files or code snippets pushed the request over the limit\n\n{1}\n\nOther things to try:\n• Start a new conversation to reset the context\n• Disable tools that are not needed for this task\n• Reduce the size of your message or attached files -error.empty_http_response.hint.docker=To increase the context window in Docker AI / Docker Model Runner:\n• Pass --context-size when starting the model (e.g. --context-size 32768)\n• Or set it in the model run configuration -error.empty_http_response.hint.ollama=To increase the context window in Ollama:\n• Set num_ctx in your Modelfile (e.g. PARAMETER num_ctx 32768)\n• Or pass it as a parameter: ollama run --num-ctx 32768 -error.empty_http_response.hint.lmstudio=To increase the context window in LM Studio:\n• Open the model settings panel\n• Find "Context Length" and raise it (e.g. to 32768 or higher, up to the model's maximum)\n• Restart the local server after changing the setting -error.empty_http_response.hint.localai=To increase the context window in LocalAI:\n• Edit the model configuration YAML and set context_size: 32768\n• Restart the LocalAI server after changing the setting error.empty_http_response.hint.generic=To increase the context window:\n• Check your provider's settings for a context length / context size option and raise it (e.g. to 32768 tokens)\n• Restart the provider after changing the setting error.remote_server=⚠️ AI provider server error\n\nThe provider's server returned a temporary error (e.g. overloaded or unavailable). This is not caused by Askimo.\n\nWhat to do:\n• Wait a moment and try again — this is usually short-lived\n• Check the provider's status page if the issue persists\n\nTechnical details: {details} error.system=⚠️ System Error\n\nAn unexpected error occurred: {errorCode}\n\nPlease contact Askimo support with:\n• What you were doing\n• The error code above\n• The timestamp @@ -1154,6 +1164,7 @@ error.model.not_available.message.chat=Model ''{0}'' is not available. error.model.not_available.message.embedding=Embedding model ''{0}'' is not available in your local provider.\n\nGo to Settings → AI Provider and select an available embedding model under the provider configuration card. error.model.not_available.config_link=Configure Embedding Model error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration +error.embedding_model_not_configured=⚠️ No embedding model is configured for ''{provider}''.\n\nGo to Settings → AI Provider and select an embedding model under the provider configuration card. # Generic Application Errors error.app.message=An unexpected error occurred: {0} @@ -1171,6 +1182,8 @@ error.indexing.io_error.title=IO Error error.indexing.io_error.message=An IO error occurred during indexing error.indexing.unknown.title=Indexing Error error.indexing.unknown.message=An unknown error occurred during indexing +error.indexing.failed.title=Failed to Index Knowledge Source +error.indexing.failed_project.title=Failed to Index Knowledge Source for Project # RAG Configuration settings.rag.title=RAG Configuration @@ -1380,6 +1393,12 @@ mcp.tool.category.WEATHER.desc=Weather data and forecasts mcp.tool.category.WEB_SEARCH.desc=Web search and page reading mcp.tool.category.DATETIME.desc=Date and time operations mcp.tool.category.OTHER.desc=Unclassified tools +mcp.tool.approval.label=Approval +mcp.tool.approval.require_approval=Require approval +mcp.tool.approval.default=Auto +mcp.tool.approval.default.hint=Runs automatically. Write-like categories (file write, execute, git, messaging) require approval by default. +mcp.tool.approval.require_approval.hint=Always pauses and asks for your confirmation before the AI executes this tool. +mcp.tool.enabled.label=Enabled # MCP Tools Dialog mcp.tools.dialog.title=Available Tools - {0} diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index 9a882bd0..9cc3bbb8 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -32,6 +32,7 @@ menu.view.appearance.system=System menu.view.appearance.light=Hell menu.view.appearance.dark=Dunkel menu.view.fullscreen=Vollbildmodus aktivieren +menu.view.exit.fullscreen=Vollbildmodus beenden menu.view.bookmarks=Lesezeichen anzeigen menu.terminal=Terminal menu.terminal.new=Neues Terminal @@ -43,11 +44,11 @@ menu.help.discord=💬 Discord-Community beitreten menu.help.share.x=Auf X / Twitter teilen menu.help.share.linkedin=Auf LinkedIn teilen menu.help.share.facebook=Auf Facebook teilen -menu.help.share.text=Entdecke Askimo — ein kostenloser, lokaler KI-Desktop-Client. Unterstützt Ollama, OpenAI, Anthropic und mehr. https://askimo.chat +menu.help.share.text=Entdecke Askimo — ein kostenloser, lokaler KI-Desktop-Client. Unterstützt Ollama, OpenAI, Anthropic und mehr. https\://askimo.chat menu.help.share.hackernews=Auf Hacker News posten menu.eventlog=Ereignisprotokoll menu.help.model.capabilities=Modellfähigkeitsdatei öffnen -menu.dev.clear.account.preferences= [Dev] Kontoeinstellungen löschen +menu.dev.clear.account.preferences=[Dev] Kontoeinstellungen löschen menu.about=Über Askimo menu.help.check.updates=Nach Updates suchen... menu.help.diagnostics=Systemdiagnose... @@ -60,16 +61,16 @@ dialog.close=Schließen # Backup and Restore backup.export.title=Sicherung exportieren backup.export.success.title=Sicherung exportiert -backup.export.success.message=Sicherung erfolgreich exportiert nach:\n{0} +backup.export.success.message=Sicherung erfolgreich exportiert nach\:\n{0} backup.export.error.title=Export fehlgeschlagen -backup.export.error.message=Sicherung konnte nicht exportiert werden:\n{0} +backup.export.error.message=Sicherung konnte nicht exportiert werden\:\n{0} backup.import.title=Sicherung importieren backup.import.confirm.title=Import bestätigen backup.import.confirm.message=Dieser Vorgang ersetzt alle aktuellen Daten durch die Sicherung.\n\nVor dem Import wird automatisch eine Sicherheitssicherung erstellt.\n\nMöchten Sie wirklich fortfahren? backup.import.success.title=Sicherung importiert backup.import.success.message=Sicherung erfolgreich importiert.\n\nBitte starten Sie Askimo neu, damit alle Änderungen wirksam werden. backup.import.error.title=Import fehlgeschlagen -backup.import.error.message=Sicherung konnte nicht importiert werden:\n{0} +backup.import.error.message=Sicherung konnte nicht importiert werden\:\n{0} # Event Log eventlog.title=Ereignisprotokoll ({0}) @@ -87,7 +88,7 @@ eventlog.window.header=Ereignisprotokoll eventlog.window.attach=An Hauptfenster anfügen eventlog.window.events.count={0} Ereignisse eventlog.window.empty.message=Noch keine Ereignisse. Sie erscheinen hier, sobald sie auftreten. -eventlog.footer.warning=Die ältesten Einträge wurden gekürzt (Limit: {0}) +eventlog.footer.warning=Die ältesten Einträge wurden gekürzt (Limit\: {0}) # Chat Interface chat.new=Neuer Chat @@ -165,7 +166,7 @@ session.rename.error.empty=Der Titel darf nicht leer sein session.export.file.chooser.title=Chatverlauf speichern session.export.button.export=Exportieren session.export.success.title=Erfolgreich exportiert -session.export.success.message=Die Chatsitzung wurde erfolgreich exportiert nach: +session.export.success.message=Die Chatsitzung wurde erfolgreich exportiert nach\: # Projects project.title=Projekte @@ -181,14 +182,16 @@ project.new.dialog.file.browse=Dateien zum Verarbeiten auswählen... project.new.dialog.sources.label=Referenzmaterialien (optional) project.new.dialog.sources.add=Quelle hinzufügen project.new.dialog.error.empty.name=Projektname darf nicht leer sein -project.new.dialog.error.create.failed=Projekt konnte nicht erstellt werden: {0} +project.new.dialog.error.create.failed=Projekt konnte nicht erstellt werden\: {0} project.new.dialog.name.error.empty=Projektname darf nicht leer sein project.new.dialog.button.create=Projekt erstellen project.new.dialog.button.cancel=Abbrechen -project.new.dialog.success.title=Projekt erfolgreich erstellt! +project.new.dialog.success.title=Projekt erfolgreich erstellt\! project.new.dialog.success.message=Projekt ''{0}'' wurde erstellt. project.new.dialog.success.countdown=Schließt in {0} Sekunde{1}... project.new.dialog.success.close=Jetzt schließen +project.dialog.defaultDirective.label=Standard-Direktive (optional) +project.dialog.defaultDirective.none=Keine project.dialog.url.title=URL-Referenzmaterial hinzufügen project.dialog.url.description=Geben Sie eine URL ein, um Webinhalte als Referenzmaterial hinzuzufügen. Die URL wird validiert und auf Erreichbarkeit geprüft. project.dialog.url.label=URL @@ -206,9 +209,13 @@ project.not.selected=Kein Projekt ausgewählt # Projects View projects.title=Projekte projects.description=Organisieren Sie Ihre Chats rund um ein Thema und hängen Sie Dateien, Ordner oder URLs als Wissensquellen an, damit die KI immer den richtigen Kontext für das jeweilige Projekt hat. +projects.rag.embedding.not.configured=RAG ist für Projekte deaktiviert, da für Ihren aktuellen KI-Anbieter kein Embedding-Modell konfiguriert ist. +projects.rag.embedding.configure=Embedding-Modell konfigurieren +projects.rag.embedding.unsupported.provider=RAG ist für Projekte deaktiviert, da Ihr aktueller KI-Anbieter keine Embedding-Modelle unterstützt. Wechseln Sie zu einem Anbieter, der Embeddings unterstützt (z. B. OpenAI, Gemini oder ein OpenAI-kompatibler Endpunkt), um RAG zu aktivieren. +projects.rag.embedding.switch.provider=KI-Anbieter wechseln projects.error=❌ {0} projects.empty=Keine Projekte gefunden. -projects.empty.hint=💡 Erstellen Sie ein neues Projekt, um Ihre Chat-Sitzungen zu organisieren! +projects.empty.hint=💡 Erstellen Sie ein neues Projekt, um Ihre Chat-Sitzungen zu organisieren\! projects.search.placeholder=Nach Name suchen… projects.search.empty=Keine Projekte entsprechen "{0}". projects.col.name=Name @@ -219,13 +226,16 @@ projects.sources.expand=Referenzmaterialien anzeigen projects.sources.collapse=Referenzmaterialien ausblenden projects.sources.empty.title=Noch keine Referenzmaterialien projects.sources.empty.description=Fügen Sie Dokumente hinzu, damit Askimo sie bei der Beantwortung Ihrer Fragen berücksichtigen kann -projects.sources.info.tooltip=Referenzmaterialien helfen Askimo, Ihren spezifischen Kontext zu verstehen.\n\n\ -Fügen Sie Ordner, Dateien oder Websites hinzu, die Informationen enthalten, auf die Askimo bei der Beantwortung Ihrer Fragen zurückgreifen soll.\n\n\ -Zum Beispiel:\n\ +projects.sources.info.tooltip=Referenzmaterialien helfen Askimo, Ihren spezifischen Kontext zu verstehen.\n\ +\n\ +Fügen Sie Ordner, Dateien oder Websites hinzu, die Informationen enthalten, auf die Askimo bei der Beantwortung Ihrer Fragen zurückgreifen soll.\n\ +\n\ +Zum Beispiel\:\n\ • Ihre Projektdokumentation\n\ • Unternehmens-Wissensdatenbank\n\ • Technische Spezifikationen\n\ -• Forschungsarbeiten\n\n\ +• Forschungsarbeiten\n\ +\n\ Askimo durchsucht diese Materialien, um genauere und kontextbezogene Antworten zu liefern. projects.sources.type.local_folders=Lokale Ordner projects.sources.type.local_files=Lokale Dateien @@ -236,6 +246,8 @@ projects.sources.add.dialog.title=Referenzmaterial hinzufügen projects.sources.add.dialog.description=Wählen Sie Ordner, Dateien oder URLs aus, um sie als Referenzmaterial für dieses Projekt hinzuzufügen. projects.sources.add.dialog.button.add=Hinzufügen projects.sources.delete.tooltip=Referenzmaterial löschen +projects.sources.watch.tooltip=Auf Änderungen überwachen +projects.sources.more.tooltip=Weitere Optionen projects.sources.guide=Leitfaden für Referenzmaterialien anzeigen projects.error.loading=Projekte konnten nicht geladen werden. Bitte versuchen Sie es erneut. projects.error.deleting=Projekt konnte nicht gelöscht werden. Bitte versuchen Sie es erneut. @@ -246,14 +258,16 @@ project.error.loading=Projekt konnte nicht geladen werden. Bitte versuchen Sie e project.error.loading_sessions=Projektsitzungen konnten nicht geladen werden. Bitte versuchen Sie es erneut. project.error.updating=Projekt konnte nicht aktualisiert werden. Bitte versuchen Sie es erneut. project.error.deleting_knowledge_source=Referenzmaterial konnte nicht gelöscht werden. Bitte versuchen Sie es erneut. +project.error.updating_knowledge_source=Referenzmaterial konnte nicht aktualisiert werden. Bitte versuchen Sie es erneut. +project.error.rescanning_knowledge_source=Referenzmaterial konnte nicht erneut gescannt werden. Bitte versuchen Sie es erneut. project.knowledge_source.delete.success=Referenzmaterial erfolgreich gelöscht. project.edit=Projekt bearbeiten project.reindex=Projekt neu indexieren project.menu.tooltip=Projektmenü project.new.chat.placeholder=Neuer Chat in {0} project.recent.chats=Letzte Chats -project.no.chats=Noch keine Chats. Starten Sie unten einen neuen Chat! -project.indexing.label=Indexierung der Wissensquelle: {0} +project.no.chats=Noch keine Chats. Starten Sie unten einen neuen Chat\! +project.indexing.label=Indexierung der Wissensquelle\: {0} project.indexing.queued=Indizierung in der Warteschlange - warten auf den Abschluss eines anderen Projekts... project.indexing.failed=Indizierung fehlgeschlagen. Versuchen Sie, über das Projektmenü neu zu indizieren. project.indexing.ready.label=Indiziert @@ -272,7 +286,7 @@ settings.appearance=Erscheinungsbild settings.appearance.accent=Akzentfarbe settings.appearance.accent.description=Passen Sie eine einzelne Akzentfarbe sicher an. Askimo wendet sie auf primäre UI-Akzente an und leitet weitere Farben für gute Lesbarkeit ab. settings.appearance.accent.label=Akzentfarbe (Hex) -settings.appearance.accent.invalid=Geben Sie eine gültige Hex-Farbe wie #0284C7 ein +settings.appearance.accent.invalid=Geben Sie eine gültige Hex-Farbe wie \#0284C7 ein settings.appearance.accent.swatch.primary=Primär settings.appearance.accent.swatch.primary.container=Container settings.appearance.accent.swatch.on.primary.container=Auf dem Container @@ -296,7 +310,7 @@ settings.network.description=Netzwerk- und Proxy-Einstellungen konfigurieren settings.mcp.servers=MCP-Server settings.skills=Fähigkeiten settings.skills.description=Skills sind wiederverwendbare KI-Agenten, die direkt auf Ihrer Maschine laufen. Jeder Skill ist eine Markdown-Datei mit einem System-Prompt und Anweisungen. Wenn Sie einen Skill ausführen, wird er über {0} ausgeführt — liest und schreibt Ihre Dateien, führt Shell-Befehle aus und iteriert, bis die Aufgabe erledigt ist. Kein Kopieren und Einfügen erforderlich. -settings.skills.runtimes=Unterstützte Laufzeitumgebungen: +settings.skills.runtimes=Unterstützte Laufzeitumgebungen\: settings.skills.directory=Fähigkeitenverzeichnis settings.skills.open.folder=Ordner öffnen settings.skills.new.skill=Neue Fähigkeit @@ -376,11 +390,11 @@ settings.log.viewer=Log-Dateien settings.log.viewer.description=Anwendungslogs und Diagnosen anzeigen settings.log.viewer.view=Logs anzeigen settings.log.viewer.open_folder=Log-Ordner öffnen -settings.log.viewer.path=Log-Datei: {0} +settings.log.viewer.path=Log-Datei\: {0} settings.log.viewer.dialog.title=Anwendungslogs settings.log.viewer.refresh=Aktualisieren settings.log.viewer.copy=Kopieren -settings.log.viewer.copied=Kopiert! +settings.log.viewer.copied=Kopiert\! settings.log.viewer.loading=Logs werden geladen... settings.log.viewer.error=Fehler beim Laden der Logs settings.log.viewer.empty=Keine Logs verfügbar @@ -434,7 +448,7 @@ settings.web_search.api_key=API-Schlüssel settings.web_search.api_key.placeholder=API-Schlüssel hier einfügen settings.web_search.get_api_key=Kostenlosen API-Schlüssel erhalten ↗ settings.web_search.endpoint=SearxNG-Instanz-URL -settings.web_search.endpoint.placeholder=https://search.example.com +settings.web_search.endpoint.placeholder=https\://search.example.com settings.web_search.test=Suche testen settings.web_search.test.running=Wird getestet... settings.web_search.test.success=✅ Suche funktioniert @@ -463,7 +477,7 @@ user.profile.interests.custom.placeholder=z. B. Maschinelles Lernen, Fotografie user.profile.interests.custom.hint=Mehrere Interessen durch Kommas trennen # Welcome Dialog (First Run) -welcome.title=Willkommen bei Askimo! +welcome.title=Willkommen bei Askimo\! welcome.subtitle=Helfen Sie uns, Ihr KI-Erlebnis zu personalisieren welcome.avatar.optional=Klicken, um ein Foto hinzuzufügen (optional) welcome.name=Ihr Name @@ -501,6 +515,7 @@ user.interest.environment=Umwelt # Actions action.delete=Löschen +action.rescan=Erneut scannen action.remove=Entfernen action.edit=Bearbeiten action.pin=An Seitenleiste anheften @@ -526,7 +541,7 @@ action.refresh=Aktualisieren # Happiness Gate (shown before Star Prompt) happiness.gate.title=Wie gefällt Ihnen Askimo? happiness.gate.subtitle=Ihr ehrliches Feedback hilft uns, uns stetig zu verbessern -happiness.gate.happy=Ich liebe es! 😍 +happiness.gate.happy=Ich liebe es\! 😍 happiness.gate.neutral=Es geht 🙂 happiness.gate.unhappy=Nicht wirklich 😕 @@ -549,11 +564,11 @@ feedback.email.placeholder=you@example.com feedback.email.hint=Wird nur verwendet, um bei deinem Feedback nachzufassen. Wir werden dich niemals zuspammen. feedback.action.skip=Überspringen feedback.action.send=Feedback senden -feedback.thanks.title=Vielen Dank für dein Feedback! +feedback.thanks.title=Vielen Dank für dein Feedback\! feedback.thanks.message=Dein Input hilft uns, Askimo zu verbessern. Wir wissen das wirklich zu schätzen. feedback.thanks.close=Schließen -feedback.remind.title=Kein Problem! +feedback.remind.title=Kein Problem\! feedback.remind.message=Du kannst jederzeit über das Hilfe-Menü → Feedback senden Rückmeldung geben. feedback.remind.got.it=Verstanden @@ -577,10 +592,10 @@ star.prompt.share.description=Erzählen Sie Ihrem Netzwerk von Askimo auf X, Lin star.prompt.maybe.later=Jetzt nicht star.prompt.already.starred=Bereits mit Stern markiert ✓ star.prompt.social.proof=⭐ Schließen Sie sich {0} Personen an, die Askimo bereits mit einem Stern markiert haben -star.prompt.thanks.title=Vielen Dank! 🌟 +star.prompt.thanks.title=Vielen Dank\! 🌟 star.prompt.thanks.message=Deine Unterstützung bedeutet uns viel und hilft uns, Askimo weiterzuentwickeln. star.prompt.thanks.done=Fertig ✓ -star.prompt.remind.title=Kein Problem! +star.prompt.remind.title=Kein Problem\! star.prompt.remind.message=Du kannst uns jederzeit über das Hilfe-Menü → Askimo unterstützen. star.prompt.remind.got.it=Verstanden @@ -654,7 +669,7 @@ shortcut.send.message=Nachricht senden shortcut.new.line=Neue Zeile # Chat View -chat.welcome=Willkommen bei Askimo!\nBeginnen Sie eine Unterhaltung, indem Sie unten eine Nachricht eingeben. +chat.welcome=Willkommen bei Askimo\!\nBeginnen Sie eine Unterhaltung, indem Sie unten eine Nachricht eingeben. chat.no.active.session=Wählen Sie eine Sitzung in der Seitenleiste aus oder starten Sie einen neuen Chat chat.search.placeholder=Im Gespräch suchen... chat.search.no.results=Keine Ergebnisse @@ -710,6 +725,12 @@ chat.image.model.missing.title=Bildmodell nicht konfiguriert chat.image.model.missing.message=Für {0} ist kein Bildmodell festgelegt. Öffnen Sie Einstellungen > KI-Anbieter > Modelle zur Bilderzeugung und legen Sie zuerst einen Modellnamen fest. chat.tools.button=Verfügbare Tools chat.tools.button.disabled=Verfügbare Tools ({0} deaktiviert) +chat.tool.approval.required=\n\n⏸️ **Genehmigung erforderlich** — Die KI möchte ausführen `{0}`{1}\n\n +chat.tool.approval.timed_out=Tool-Genehmigung abgelaufen\: {0} +chat.tool.approval.denied=Tool-Ausführung durch Benutzer verweigert\: {0} +chat.tool.approval.prompt=Die KI möchte ausführen\: {0} +chat.tool.approval.approve=Genehmigen +chat.tool.approval.deny=Ablehnen chat.tools.button.model.no.support=Tools werden von diesem Modell nicht unterstützt chat.tools.popup.title=Verfügbare Tools chat.tools.popup.loading=Server werden geladen... @@ -736,7 +757,7 @@ chat.attachment.remove=Anhang entfernen chat.attachment.preview.loading=Vorschau wird geladen… chat.attachment.preview.file.not.found=(Datei nicht gefunden) chat.attachment.preview.too.large=(Datei zu groß für eine Vorschau) -chat.attachment.preview.cannot.read=(Datei kann nicht gelesen werden: {0}) +chat.attachment.preview.cannot.read=(Datei kann nicht gelesen werden\: {0}) chat.attachment.preview.more.lines={0} weitere Zeilen # Sessions View @@ -748,12 +769,12 @@ sessions.col.created=Erstellt sessions.col.updated=Aktualisiert sessions.error=❌ {0} sessions.empty=Keine Chatsitzungen gefunden. -sessions.empty.hint=💡 Starten Sie eine neue Unterhaltung, um Ihre erste Sitzung zu erstellen! +sessions.empty.hint=💡 Starten Sie eine neue Unterhaltung, um Ihre erste Sitzung zu erstellen\! sessions.search.placeholder=Nach Titel suchen… sessions.search.empty=Keine Sitzungen entsprechen "{0}". # Generic table pagination controls -table.page.size.label=Zeilen pro Seite: +table.page.size.label=Zeilen pro Seite\: table.page=Seite {0} von {1} table.page.previous=Vorherige Seite table.page.next=Nächste Seite @@ -769,7 +790,7 @@ sessions.error.rename.failed=Umbenennen fehlgeschlagen. # ChatSessionService Errors # Update Check update.dialog.title=Software-Update -update.dialog.new.version.available=Eine neue Version von Askimo ist verfügbar! +update.dialog.new.version.available=Eine neue Version von Askimo ist verfügbar\! update.urgency.medium=Sie liegen {0} Versionen zurück — Sie könnten wichtige Fehlerbehebungen und neue Funktionen verpassen. update.urgency.high=Sie liegen {0} Versionen zurück — Sie verpassen erhebliche Verbesserungen. Bitte bald aktualisieren. update.dialog.current.version.label=Aktuelle Version @@ -780,7 +801,7 @@ update.dialog.download=Jetzt herunterladen update.dialog.how.to.update=So aktualisieren Sie update.dialog.later=Später update.dialog.skip.version=Diese Version überspringen -update.check.up.to.date=Sie verwenden die neueste Version! +update.check.up.to.date=Sie verwenden die neueste Version\! update.check.failed=Update-Prüfung fehlgeschlagen # Event Names @@ -788,6 +809,7 @@ event.update.available=🚀 Neue Version verfügbar event.details.action=Release Notes event.update.download=Jetzt herunterladen event.notification.empty=Keine Ereignisse +event.notification.title=Benachrichtigungen ({0}) event.notification.clear=Zurücksetzen event.notification.clear.all=Alle zurücksetzen event.notification.group.errors=Hintergrundfehler @@ -799,6 +821,7 @@ event.indexing.started=Indizierung… event.indexing.completed=Index bereit event.indexing.failed=Indizierung fehlgeschlagen event.indexing.files_indexed={0} Datei(en) indiziert +event.file.removed=Datei aus Index entfernt # Settings View settings.language=Sprache @@ -817,8 +840,8 @@ settings.app.language.translation.contribute=Auf Crowdin beitragen settings.ai.response.language=Bevorzugte Antwortsprache settings.ai.response.language.description=KI auf eine bestimmte Sprache für Antworten festlegen (leer lassen für automatische Erkennung) settings.ai.response.language.auto=Automatische Erkennung -settings.ai.response.language.tooltip=KI erkennt Ihre Sprache automatisch, aber überschreiben wenn:\n• Sprachenlernen (immersive Praxis)\n• Professionelle Konsistenz (z.B. Code-Dokumentation immer auf Englisch)\n• RAG-Optimierung (Wissensdatenbank-Sprache abgleichen)\n• Lehre (in einer Sprache fragen, in einer anderen erklären)\n• Unerwünschte Sprachwechsel verhindern -settings.model.select=Modell für {0} auswählen: +settings.ai.response.language.tooltip=KI erkennt Ihre Sprache automatisch, aber überschreiben wenn\:\n• Sprachenlernen (immersive Praxis)\n• Professionelle Konsistenz (z.B. Code-Dokumentation immer auf Englisch)\n• RAG-Optimierung (Wissensdatenbank-Sprache abgleichen)\n• Lehre (in einer Sprache fragen, in einer anderen erklären)\n• Unerwünschte Sprachwechsel verhindern +settings.model.select=Modell für {0} auswählen\: settings.model.loading=Modelle werden geladen... settings.model.none=Keine Modelle verfügbar settings.model.select.title=Modell auswählen @@ -826,7 +849,7 @@ settings.model.current=Aktuelles Modell settings.model.selected=Ausgewähltes Modell settings.model.new=Neues Modell settings.model.use.default=Standard verwenden -settings.model.change.description=Wählen Sie ein Modell aus der folgenden Liste aus: +settings.model.change.description=Wählen Sie ein Modell aus der folgenden Liste aus\: settings.model.search=Modelle durchsuchen settings.model.search.placeholder=Eingeben, um Modelle zu filtern... settings.model.filtered={0} von {1} Modellen angezeigt @@ -835,22 +858,22 @@ settings.model.chat.filter.label=Chat-Modelle · {0} angezeigt settings.model.chat.filter.show.all=Alle {0} anzeigen settings.configure.title={0} konfigurieren settings.test.connection.testing=Teste... -settings.placeholder.baseurl=http://localhost:11434 +settings.placeholder.baseurl=http\://localhost\:11434 provider.connection.failed=Verbindung zum Anbieter konnte nicht hergestellt werden. Bitte überprüfen Sie, ob Ihr API-Schlüssel korrekt ist (für Cloud-Anbieter) oder Ihre Basis-URL erreichbar ist (für lokale Anbieter). Installationsanweisungen finden Sie über den obigen Hilfe-Link. # Directives Dialog directive.manage.title=Direktiven verwalten -directive.manage.empty=Keine Direktiven verfügbar. Erstellen Sie eine, um zu beginnen! +directive.manage.empty=Keine Direktiven verfügbar. Erstellen Sie eine, um zu beginnen\! directive.edit.name.label=Name directive.edit.name.placeholder=Direktivenname eingeben... directive.edit.content.label=Inhalt directive.edit.content.placeholder=Direktivenanweisungen eingeben... directive.edit.name.required=Name ist erforderlich directive.edit.content.required=Inhalt ist erforderlich -directive.created=Erstellt: {0} +directive.created=Erstellt\: {0} directive.new.title=Neue Direktive directive.new.guidelines=Direktiven leiten, wie die KI auf Ihre Nachrichten antwortet. Seien Sie spezifisch über Ton, Detailgrad, Format oder besondere Anforderungen, die Sie benötigen. -directive.new.name.placeholder=z. B.: concise-code, explain-like-im-5 +directive.new.name.placeholder=z. B.\: concise-code, explain-like-im-5 directive.new.content.placeholder=Anweisungen eingeben... directive.new.apply.current=Auf aktuelle Sitzung anwenden directive.new.create=Erstellen @@ -862,8 +885,10 @@ directive.export.tooltip=Alle Anweisungen in eine JSON-Datei exportieren, um sie directive.export.filename=askimo-directives directive.import=Importieren directive.import.tooltip=Anweisungen aus einer JSON-Datei importieren -directive.import.result=Import abgeschlossen: {0} importiert, {1} umbenannt, {2} übersprungen -directive.import.error=Import fehlgeschlagen: ungültiges oder nicht unterstütztes Dateiformat +directive.import.result=Import abgeschlossen\: {0} importiert, {1} umbenannt, {2} übersprungen +directive.import.error=Import fehlgeschlagen\: ungültiges oder nicht unterstütztes Dateiformat +directive.default.set=Als Standardanweisung festlegen +directive.default.unset=Als Standardanweisung entfernen # Log Levels log.level.error=Fehler @@ -919,7 +944,7 @@ message.edited.indicator=(bearbeitet) message.date.today=Heute message.date.yesterday=Gestern message.token.usage={0} Tokens · {1} in / {2} out -message.token.usage.tooltip=Von dieser Antwort verwendete Tokens.\nEingabe: Ihr Prompt + Kontext, der an die KI gesendet wurde.\nAusgabe: die KI-generierte Antwort. +message.token.usage.tooltip=Von dieser Antwort verwendete Tokens.\nEingabe\: Ihr Prompt + Kontext, der an die KI gesendet wurde.\nAusgabe\: die KI-generierte Antwort. # Bookmarks chat.bookmarks.button.tooltip=Lesezeichen @@ -956,10 +981,6 @@ provider.picker.description.openai=Cloud-KI-Modelle von OpenAI. Erfordert einen provider.picker.description.anthropic=Cloud-KI-Modelle von Anthropic. Erfordert einen API-Schlüssel. Registrieren Sie sich auf console.anthropic.com, erstellen Sie einen API-Schlüssel und fügen Sie Credits zu Ihrem Konto hinzu, bevor Sie sich verbinden. provider.picker.description.gemini=Cloud-KI-Modelle von Google. Registrieren Sie sich auf aistudio.google.com und erstellen Sie einen kostenlosen API-Schlüssel. Keine Kreditkarte für den kostenlosen Tarif erforderlich. provider.picker.description.xai=Cloud-KI-Modelle von xAI. Erfordert einen API-Schlüssel. Registrieren Sie sich auf console.x.ai, erstellen Sie einen API-Schlüssel und fügen Sie Credits zu Ihrem Konto hinzu, bevor Sie sich verbinden. -provider.picker.description.ollama=Open-Source-Modelle lokal ausführen. Kein API-Schlüssel erforderlich. Laden Sie Ollama von ollama.com herunter, dann laden Sie ein Modell (z. B. ollama pull llama3), bevor Sie sich verbinden. -provider.picker.description.docker=Modelle über den integrierten KI-Modell-Runner von Docker Desktop ausführen. Kein API-Schlüssel erforderlich. Erfordert Docker Desktop 4.40+ mit aktivierter Model Runner-Funktion. -provider.picker.description.localai=Selbst gehosteter, OpenAI-kompatibler lokaler KI-Server. Kein API-Schlüssel erforderlich. Installieren Sie LocalAI, laden Sie ein Modell herunter und starten Sie den Server, bevor Sie sich verbinden. -provider.picker.description.lmstudio=Lokale LLMs mit einer benutzerfreundlichen Desktop-Oberfläche ausführen. Kein API-Schlüssel erforderlich. Laden Sie LM Studio von lmstudio.ai herunter, laden Sie ein Modell, starten Sie es und aktivieren Sie den lokalen Server, bevor Sie sich verbinden. provider.manage.title=Anbieter verwalten provider.type.picker.title=KI-Anbieter hinzufügen provider.type.picker.select.hint=← Wählen Sie einen Anbieter aus der Liste, um Details zu sehen @@ -970,19 +991,30 @@ provider.template.get.apikey=API-Schlüssel abrufen → # OpenAI-Compatible template taglines and setup help (see OpenAiCompatibleTemplate.kt) provider.template.cloudflare_ai.tagline=Führen Sie KI-Modelle in Cloudflares globalem Edge-Netzwerk mit Workers AI aus. -provider.template.cloudflare_ai.help=💡 So verwenden Sie Cloudflare AI:\n\n1. Suchen Sie Ihre Account-ID in Ihrem Cloudflare-Dashboard\n2. Ersetzen Sie {ACCOUNT_ID} in der Basis-URL damit\n3. Erstellen Sie ein API-Token mit der Berechtigung „Workers AI“ unter:\n dash.cloudflare.com/profile/api-tokens +provider.template.cloudflare_ai.help=💡 So verwenden Sie Cloudflare AI\:\n\n1. Suchen Sie Ihre Account-ID in Ihrem Cloudflare-Dashboard\n2. Ersetzen Sie {ACCOUNT_ID} in der Basis-URL damit\n3. Erstellen Sie ein API-Token mit der Berechtigung „Workers AI“ unter\:\n dash.cloudflare.com/profile/api-tokens +provider.template.deepseek.tagline=Modelle für Reasoning und allgemeine Zwecke mit einer unkomplizierten, OpenAI-kompatiblen API. +provider.template.deepseek.help=💡 So verwenden Sie DeepSeek\:\n\n1. Erstellen Sie einen API-Schlüssel unter\: platform.deepseek.com/api_keys\n2. Laden Sie bei Bedarf Guthaben auf Ihr DeepSeek-Konto auf\n3. Klicken Sie auf „Weiter“, um die verfügbaren Modelle zu durchsuchen provider.template.groq.tagline=Ultraschnelle Inferenz für Open-Source-Modelle — Llama, Mixtral, Gemma und mehr. -provider.template.groq.help=💡 So verwenden Sie Groq:\n\n1. Holen Sie sich Ihren kostenlosen API-Schlüssel unter: console.groq.com/keys\n2. Geben Sie einen Modellnamen ein, z. B. llama-3.1-8b-instant\n3. Klicken Sie auf Weiter, um alle verfügbaren Modelle zu durchsuchen +provider.template.groq.help=💡 So verwenden Sie Groq\:\n\n1. Holen Sie sich Ihren kostenlosen API-Schlüssel unter\: console.groq.com/keys\n2. Geben Sie einen Modellnamen ein, z. B. llama-3.1-8b-instant\n3. Klicken Sie auf Weiter, um alle verfügbaren Modelle zu durchsuchen provider.template.nvidia_nim.tagline=Führen Sie optimierte KI-Modelle auf NVIDIAs Cloud-GPU-Infrastruktur aus. -provider.template.nvidia_nim.help=💡 So verwenden Sie NVIDIA NIM:\n\n1. Holen Sie sich Ihren API-Schlüssel unter: build.nvidia.com\n2. Geben Sie einen Modellnamen ein, z. B. meta/llama-3.1-8b-instruct\n3. Klicken Sie auf Weiter, um alle verfügbaren Modelle zu durchsuchen +provider.template.nvidia_nim.help=💡 So verwenden Sie NVIDIA NIM\:\n\n1. Holen Sie sich Ihren API-Schlüssel unter\: build.nvidia.com\n2. Geben Sie einen Modellnamen ein, z. B. meta/llama-3.1-8b-instruct\n3. Klicken Sie auf Weiter, um alle verfügbaren Modelle zu durchsuchen provider.template.openrouter.tagline=Zugriff auf über 300 Modelle — GPT, Claude, Llama, Gemini, Mistral und mehr über eine API. -provider.template.openrouter.help=💡 So verwenden Sie OpenRouter:\n\n1. Holen Sie sich Ihren kostenlosen API-Schlüssel unter: openrouter.ai/keys\n2. Klicken Sie auf Weiter, um über 300 verfügbare Modelle zu durchsuchen\n3. Viele Modelle bieten eine kostenlose Stufe — keine Kreditkarte erforderlich +provider.template.openrouter.help=💡 So verwenden Sie OpenRouter\:\n\n1. Holen Sie sich Ihren kostenlosen API-Schlüssel unter\: openrouter.ai/keys\n2. Klicken Sie auf Weiter, um über 300 verfügbare Modelle zu durchsuchen\n3. Viele Modelle bieten eine kostenlose Stufe — keine Kreditkarte erforderlich provider.template.together_ai.tagline=Schnelle, erschwingliche Inferenz für über 100 Open-Source-Modelle. -provider.template.together_ai.help=💡 So verwenden Sie Together AI:\n\n1. Holen Sie sich Ihren API-Schlüssel unter: api.together.ai/settings/api-keys\n2. Klicken Sie auf Weiter, um verfügbare Modelle zu durchsuchen,\n z. B. meta-llama/Llama-3-8b-chat-hf +provider.template.together_ai.help=💡 So verwenden Sie Together AI\:\n\n1. Holen Sie sich Ihren API-Schlüssel unter\: api.together.ai/settings/api-keys\n2. Klicken Sie auf Weiter, um verfügbare Modelle zu durchsuchen,\n z. B. meta-llama/Llama-3-8b-chat-hf provider.template.lite_llm.tagline=A unified proxy that lets you call 100+ LLMs using the OpenAI format. provider.search.placeholder=Search providers... provider.search.no_results=No providers found -provider.template.lite_llm.help=💡 To use LiteLLM:\n\n1. Start the LiteLLM proxy: litellm --model ollama/llama3\n2. The default URL is http://localhost:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lite_llm.help=💡 To use LiteLLM\:\n\n1. Start the LiteLLM proxy\: litellm --model ollama/llama3\n2. The default URL is http\://localhost\:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lmstudio.tagline=Lokale LLMs mit einer benutzerfreundlichen Desktop-Oberfläche ausführen. Kein API-Schlüssel erforderlich. Laden Sie LM Studio von lmstudio.ai herunter und aktivieren Sie den lokalen Server. +provider.template.lmstudio.help=💡 So verwenden Sie LM Studio\:\n\n1. Installieren Sie LM Studio von\: https\://lmstudio.ai/\n2. Laden Sie ein Modell und starten Sie den lokalen Server (Entwickler-Tab)\n3. Ändern Sie optional die Basis-URL, falls nicht Port 1234 verwendet wird +provider.template.docker_ai.tagline=KI-Modelle über den integrierten Modell-Runner von Docker Desktop ausführen. Kein API-Schlüssel erforderlich. Erfordert Docker Desktop 4.40+ mit aktivierter Modell-Runner-Funktion. +provider.template.docker_ai.help=💡 So verwenden Sie Docker AI\:\n\n1. Stellen Sie sicher, dass Docker Desktop 4.40+ installiert ist und ausgeführt wird\n2. Aktivieren Sie die Modell-Runner-Funktion in den Docker Desktop-Einstellungen\n3. Laden Sie ein Modell herunter, z. B.\: docker model pull ai/qwen3-embedding\:0.6B-F16\n4. Die Standard-Basis-URL lautet http\://localhost\:12434/v1 +provider.template.localai.tagline=Selbstgehosteter, OpenAI-kompatibler lokaler KI-Server. Kein API-Schlüssel erforderlich. Installieren Sie LocalAI, laden Sie ein Modell und starten Sie den Server vor dem Verbinden. +provider.template.localai.help=💡 So verwenden Sie LocalAI\:\n\n1. Installieren Sie LocalAI von\: https\://localai.io/\n2. Laden Sie ein Modell herunter und starten Sie den Server\n3. Die Standard-Basis-URL lautet http\://localhost\:8080/v1 +provider.template.ollama.tagline=Open-Source-Modelle lokal ausführen. Kein API-Schlüssel erforderlich. Laden Sie Ollama von ollama.com herunter und rufen Sie ein Modell ab (z. B. ollama pull llama3), bevor Sie eine Verbindung herstellen. +provider.template.ollama.help=💡 So verwenden Sie Ollama\:\n\n1. Installieren Sie Ollama von\: https\://ollama.com/\n2. Laden Sie ein Modell herunter\: ollama pull llama3\n3. Die Standard-Basis-URL lautet http\://localhost\:11434/v1 + provider.configure.new.title=Configure {0} provider.edit.title=Edit "{0}" @@ -999,7 +1031,7 @@ provider.setup.required.message=Bevor Sie mit dem Chatten beginnen können, müs provider.setup.required.button=Anbieter einrichten provider.setup.required.skip=Später einrichten provider.setup.empty.state.button=Anbieter hinzufügen -provider.configure.prompt=Anbieter konfigurieren: +provider.configure.prompt=Anbieter konfigurieren\: provider.setup.guide=So richten Sie {0} ein provider.apikey.stored=API-Schlüssel sicher gespeichert provider.apikey.enter=API-Schlüssel eingeben @@ -1008,14 +1040,14 @@ provider.apikey.security.link=Erfahren Sie, wie wir Ihre Daten schützen provider.not.set=Nicht festgelegt # Provider Configuration - OpenAI -provider.openai.apikey.description=Ihr OpenAI API-Schlüssel: https://platform.openai.com/account/api-keys +provider.openai.apikey.description=Ihr OpenAI API-Schlüssel\: https\://platform.openai.com/account/api-keys provider.openai.apikey.stored=API-Schlüssel ist bereits gespeichert. Leer lassen, um den aktuellen beizubehalten. -provider.openai.setup.help=💡 Für die Nutzung von OpenAI benötigen Sie einen API-Schlüssel.\n\n1. Hier erhalten: https://platform.openai.com/account/api-keys\n2. In den Einstellungen eintragen oder :change-settings verwenden +provider.openai.setup.help=💡 Für die Nutzung von OpenAI benötigen Sie einen API-Schlüssel.\n\n1. Hier erhalten\: https\://platform.openai.com/account/api-keys\n2. In den Einstellungen eintragen oder \:change-settings verwenden # Provider Configuration - Anthropic -provider.anthropic.apikey.description=Ihr Anthropic API-Schlüssel: https://console.anthropic.com/ +provider.anthropic.apikey.description=Ihr Anthropic API-Schlüssel\: https\://console.anthropic.com/ provider.anthropic.apikey.stored=API-Schlüssel ist bereits gespeichert. -provider.anthropic.setup.help=💡 Für die Nutzung von Anthropic benötigen Sie einen API-Schlüssel.\n\n1. Hier erhalten: https://console.anthropic.com/\n2. In den Einstellungen eintragen oder :change-settings verwenden +provider.anthropic.setup.help=💡 Für die Nutzung von Anthropic benötigen Sie einen API-Schlüssel.\n\n1. Hier erhalten\: https\://console.anthropic.com/\n2. In den Einstellungen eintragen oder \:change-settings verwenden provider.anthropic.max_tokens.label=Max Tokens provider.anthropic.max_tokens.description=Maximale Anzahl an Tokens, die das Modell pro Antwort generieren kann (Denken + Antwort kombiniert). provider.anthropic.thinking_budget_tokens.label=Thinking Budget Tokens @@ -1024,31 +1056,17 @@ provider.anthropic.thinking_max_tokens.label=Thinking Max Tokens provider.anthropic.thinking_max_tokens.description=Gesamtes Token-Limit bei aktivem Denkprozess (Denken + Antwort). Auf 0 setzen, um stattdessen "Max Tokens" zu verwenden. # Provider Configuration - Gemini -provider.gemini.apikey.description=Ihr Google AI Studio API-Schlüssel: https://aistudio.google.com/app/apikey +provider.gemini.apikey.description=Ihr Google AI Studio API-Schlüssel\: https\://aistudio.google.com/app/apikey provider.gemini.apikey.stored=API-Schlüssel ist bereits gespeichert. -provider.gemini.setup.help=💡 Für die Nutzung von Gemini benötigen Sie einen API-Schlüssel.\n\n1. Hier erhalten: https://aistudio.google.com/app/apikey\n2. In den Einstellungen eintragen oder :change-settings verwenden +provider.gemini.setup.help=💡 Für die Nutzung von Gemini benötigen Sie einen API-Schlüssel.\n\n1. Hier erhalten\: https\://aistudio.google.com/app/apikey\n2. In den Einstellungen eintragen oder \:change-settings verwenden # Provider Configuration - XAI -provider.xai.apikey.description=Ihr XAI API-Schlüssel: https://console.x.ai/ +provider.xai.apikey.description=Ihr XAI API-Schlüssel\: https\://console.x.ai/ provider.xai.apikey.stored=API-Schlüssel ist bereits gespeichert. -provider.xai.setup.help=💡 Für die Nutzung von XAI benötigen Sie einen API-Schlüssel.\n\n1. Hier erhalten: https://console.x.ai/\n2. In den Einstellungen eintragen oder :change-settings verwenden - -# Provider Configuration - Ollama -provider.ollama.baseurl.description=Ollama Basis-URL (Standard: http://localhost:11434) -provider.ollama.setup.help=💡 Für die Nutzung von Ollama muss es lokal ausgeführt werden.\n\n1. Installieren: https://ollama.ai/\n2. Dienst starten\n3. Basis-URL bei Bedarf ändern +provider.xai.setup.help=💡 Für die Nutzung von XAI benötigen Sie einen API-Schlüssel.\n\n1. Hier erhalten\: https\://console.x.ai/\n2. In den Einstellungen eintragen oder \:change-settings verwenden -# Provider Configuration - Docker AI -provider.docker.baseurl.description=Docker AI Basis-URL (Standard: http://localhost:12434) -provider.docker.setup.help=💡 Für die Nutzung von Docker AI muss es lokal ausgeführt werden.\n\n1. Stellen Sie sicher, dass Docker AI installiert ist und läuft\n2. Dienst starten\n3. Basis-URL bei Bedarf ändern -# Provider Configuration - LocalAI -provider.localai.baseurl.description=LocalAI Basis-URL -provider.localai.setup.help=💡 Für die Nutzung von LocalAI müssen Sie es zuerst ausführen.\n\n1. LocalAI installieren und starten\n2. Basis-URL konfigurieren -# Provider Configuration - LMStudio -provider.lmstudio.baseurl.description=LMStudio Basis-URL (Standard: http://localhost:1234) -provider.lmstudio.setup.help=💡 So verwenden Sie LMStudio:\n\n1. Installieren: https://lmstudio.ai/\n2. Lokalen Server starten\n3. Basis-URL bei Bedarf ändern -provider.lmstudio.openai.compat.info=Askimo verwendet OpenAI-kompatible Endpunkte (/v1), nicht die native LMStudio-API (/api/v1/). # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=Die Basis-URL für Ihre OpenAI-kompatible Instanz @@ -1066,7 +1084,7 @@ provider.openai_compatible.httpversion.http2=Schneller für Endpunkte, die HTTP/ # System Resources system.share.feedback=Feedback teilen -system.ai.provider.tooltip=KI-Anbieter: {0}\nKlicken, um zu konfigurieren +system.ai.provider.tooltip=KI-Anbieter\: {0}\nKlicken, um zu konfigurieren system.diagnostics.title=Systemdiagnose system.diagnostics.resources=Ressourcen system.diagnostics.jvm.memory=JVM-Speicher (verwendet / gesamt) @@ -1077,7 +1095,7 @@ system.diagnostics.telemetry=Telemetrie telemetry.export.csv=CSV exportieren telemetry.export.dialog.title=Telemetrie als ZIP exportieren telemetry.export.error.title=Export fehlgeschlagen -telemetry.export.error.message=Telemetriedaten konnten nicht exportiert werden: {0} +telemetry.export.error.message=Telemetriedaten konnten nicht exportiert werden\: {0} # Telemetry telemetry.reset=Telemetriedaten zurücksetzen @@ -1127,24 +1145,20 @@ export.format.html.benefit.3=Professionelles Erscheinungsbild export.format.html.benefit.4=Einfach zu teilen # Error Messages -error.network=⚠️ Verbindung zum KI-Dienst{endpoint} konnte nicht hergestellt werden\n\nBitte überprüfen Sie:\n• Ihre Internetverbindung\n• Die URL des KI-Dienstes (Einstellungen prüfen)\n• Firewall-Einstellungen\n• Die Verfügbarkeit des Dienstes +error.network=⚠️ Verbindung zum KI-Dienst{endpoint} konnte nicht hergestellt werden\n\nBitte überprüfen Sie\:\n• Ihre Internetverbindung\n• Die URL des KI-Dienstes (Einstellungen prüfen)\n• Firewall-Einstellungen\n• Die Verfügbarkeit des Dienstes error.authentication=⚠️ API-Schlüssel ist ungültig oder fehlt{provider}\n\nBeheben Sie dies, indem Sie Ihren API-Schlüssel in den Einstellungen festlegen. -error.model_not_found=⚠️ Modell nicht gefunden: {model}\n\nDieses Modell wurde möglicherweise vom Anbieter veraltet oder entfernt. Bitte wählen Sie ein anderes Modell aus. -error.provider_not_configured=⚠️ Kein KI-Anbieter konfiguriert.\n\nUm zu chatten:\n1. Öffnen Sie die Einstellungen\n2. Wählen Sie einen KI-Anbieter (OpenAI, Ollama, Anthropic usw.)\n3. Geben Sie Ihren API-Schlüssel ein oder konfigurieren Sie die Verbindung +error.model_not_found=⚠️ Modell nicht gefunden\: {model}\n\nDieses Modell wurde möglicherweise vom Anbieter veraltet oder entfernt. Bitte wählen Sie ein anderes Modell aus. +error.provider_not_configured=⚠️ Kein KI-Anbieter konfiguriert.\n\nUm zu chatten\:\n1. Öffnen Sie die Einstellungen\n2. Wählen Sie einen KI-Anbieter (OpenAI, Ollama, Anthropic usw.)\n3. Geben Sie Ihren API-Schlüssel ein oder konfigurieren Sie die Verbindung error.rate_limit=⚠️ Ratenlimit überschritten\n{retryAfter}\n\nSie haben Ihr API-Nutzungslimit erreicht. Bitte warten Sie, bevor Sie weitere Nachrichten senden. error.insufficient_credits=⚠️ Unzureichendes Guthaben\n\nIhr Guthaben ist zu niedrig, um diesen KI-Anbieter zu nutzen.\n\nBitte gehen Sie zur Abrechnungsseite Ihres Anbieters. -error.timeout=⚠️ Anfrage nach {timeout} Sekunden abgelaufen\n\nMögliche Ursachen:\n• Hohe Serverlast – versuchen Sie es später erneut\n• Komplexe Anfrage – vereinfachen Sie Ihre Eingabe\n• Netzwerkverzögerungen -error.context_length=⚠️ Kontextfenster überschritten\n\nDie gesamte Eingabe (Konversationsverlauf + Ihre Nachricht + Anhänge) ist zu groß, als dass dieses Modell sie verarbeiten könnte.\n\nSo beheben Sie das Problem:\n• Starten Sie eine neue Chat-Sitzung, um den Konversationsverlauf zu löschen\n• Kürzen Sie Ihre Nachricht oder entfernen Sie große Anhänge\n• Wenn Sie ein lokales Modell verwenden (Ollama / LM Studio / Docker), erhöhen Sie die Kontextgröße in den Einstellungen\n• Wechseln Sie zu einem Modell mit einem größeren Kontextfenster -error.invalid_request=⚠️ Ungültige Anfrage: {details}\n\nBitte überprüfen Sie Ihre Eingabe und versuchen Sie es erneut. -error.local_server=⚠️ Fehler beim lokalen KI-Server!\n\nDer KI-Serverprozess ist abgestürzt oder konnte das Modell nicht laden. Dies wird nicht durch Askimo verursacht.\n\nMögliche Ursachen:\n• Die Modelldatei ist beschädigt oder unvollständig — versuchen Sie, sie erneut herunterzuladen\n• Nicht genug RAM/VRAM — versuchen Sie eine kleinere Quantisierung (z. B. Q4 statt Q8)\n• Nicht unterstütztes Modellformat für die aktuelle Serverversion\n• Der Serverprozess wurde vom Betriebssystem beendet (Out-of-Memory)\n\nWas zu tun ist:\n1. Überprüfen Sie die Logs Ihres lokalen KI-Servers\n2. Starten Sie den Server neu und versuchen Sie es erneut\n3. Laden Sie das Modell erneut herunter\n4. Versuchen Sie ein anderes Modell oder eine andere Quantisierungsstufe\n\nTechnische Details: {details} -error.empty_http_response=⚠️ Der Server hat die Verbindung ohne Antwort geschlossen!\n\nModell: {0}\n\nDies geschieht normalerweise, wenn ein lokaler KI-Anbieter die Anfrage stillschweigend verwirft, anstatt einen Fehler zurückzugeben. Das Kontextfenster des Modells ist zu klein für die aktuelle Anfrage.\n\nHäufige Ursachen:\n• Der Konversationsverlauf ist über mehrere Runden zu lang geworden\n• Aktivierte Tools fügen jeder Anfrage zusätzliche Daten hinzu — selbst eine kurze Frage bei mehreren aktiven Tools kann das Limit überschreiten\n• Große angehängte Dateien oder Code-Snippets haben die Anfrage über das Limit hinausgehen lassen\n\n{1}\n\nWeitere Lösungsvorschläge:\n• Starten Sie eine neue Konversation, um den Kontext zurückzusetzen\n• Deaktivieren Sie Tools, die für diese Aufgabe nicht benötigt werden\n• Reduzieren Sie die Größe Ihrer Nachricht oder der angehängten Dateien -error.empty_http_response.hint.docker=So erhöhen Sie das Kontextfenster in Docker AI / Docker Model Runner:\n• Übergeben Sie --context-size beim Starten des Modells (z. B. --context-size 32768)\n• Oder legen Sie es in der Modell-Konfiguration fest -error.empty_http_response.hint.ollama=So erhöhen Sie das Kontextfenster in Ollama:\n• Setzen Sie num_ctx in Ihrer Modelfile (z. B. PARAMETER num_ctx 32768)\n• Oder übergeben Sie es als Parameter: ollama run --num-ctx 32768 -error.empty_http_response.hint.lmstudio=So erhöhen Sie das Kontextfenster in LM Studio:\n• Öffnen Sie das Panel für Modelleinstellungen\n• Suchen Sie "Context Length" und erhöhen Sie den Wert (z. B. auf 32768 oder höher, bis zum Maximum des Modells)\n• Starten Sie den lokalen Server nach dem Ändern der Einstellung neu -error.empty_http_response.hint.localai=So erhöhen Sie das Kontextfenster in LocalAI:\n• Bearbeiten Sie die Modellkonfigurations-YAML und setzen Sie context_size: 32768\n• Starten Sie den LocalAI-Server nach dem Ändern der Einstellung neu -error.empty_http_response.hint.generic=So erhöhen Sie das Kontextfenster:\n• Überprüfen Sie die Einstellungen Ihres Anbieters auf eine Option für Kontextlänge / Kontextgröße und erhöhen Sie diese (z. B. auf 32768 Tokens)\n• Starten Sie den Anbieter nach dem Ändern der Einstellung neu -error.remote_server=⚠️ Fehler beim KI-Anbieter-Server\n\nDer Server des Anbieters hat einen vorübergehenden Fehler zurückgegeben (z. B. überlastet oder nicht verfügbar). Dies wird nicht durch Askimo verursacht.\n\nWas zu tun ist:\n• Warten Sie einen Moment und versuchen Sie es erneut — dies ist in der Regel kurzzeitig\n• Überprüfen Sie die Statusseite des Anbieters, wenn das Problem weiterhin besteht\n\nTechnische Details: {details} -error.system=⚠️ Systemfehler\n\nEin unerwarteter Fehler ist aufgetreten: {errorCode}\n\nBitte wenden Sie sich an den Askimo-Support mit:\n• Ihrer letzten Aktion\n• Dem obigen Fehlercode\n• Dem Zeitstempel +error.timeout=⚠️ Anfrage nach {timeout} Sekunden abgelaufen\n\nMögliche Ursachen\:\n• Hohe Serverlast – versuchen Sie es später erneut\n• Komplexe Anfrage – vereinfachen Sie Ihre Eingabe\n• Netzwerkverzögerungen +error.context_length=⚠️ Kontextfenster überschritten\n\nDie gesamte Eingabe (Konversationsverlauf + Ihre Nachricht + Anhänge) ist zu groß, als dass dieses Modell sie verarbeiten könnte.\n\nSo beheben Sie das Problem\:\n• Starten Sie eine neue Chat-Sitzung, um den Konversationsverlauf zu löschen\n• Kürzen Sie Ihre Nachricht oder entfernen Sie große Anhänge\n• Wenn Sie ein lokales Modell verwenden (Ollama / LM Studio / Docker), erhöhen Sie die Kontextgröße in den Einstellungen\n• Wechseln Sie zu einem Modell mit einem größeren Kontextfenster +error.invalid_request=⚠️ Ungültige Anfrage\: {details}\n\nBitte überprüfen Sie Ihre Eingabe und versuchen Sie es erneut. +error.local_server=⚠️ Fehler beim lokalen KI-Server\!\n\nDer KI-Serverprozess ist abgestürzt oder konnte das Modell nicht laden. Dies wird nicht durch Askimo verursacht.\n\nMögliche Ursachen\:\n• Die Modelldatei ist beschädigt oder unvollständig — versuchen Sie, sie erneut herunterzuladen\n• Nicht genug RAM/VRAM — versuchen Sie eine kleinere Quantisierung (z. B. Q4 statt Q8)\n• Nicht unterstütztes Modellformat für die aktuelle Serverversion\n• Der Serverprozess wurde vom Betriebssystem beendet (Out-of-Memory)\n\nWas zu tun ist\:\n1. Überprüfen Sie die Logs Ihres lokalen KI-Servers\n2. Starten Sie den Server neu und versuchen Sie es erneut\n3. Laden Sie das Modell erneut herunter\n4. Versuchen Sie ein anderes Modell oder eine andere Quantisierungsstufe\n\nTechnische Details\: {details} +error.empty_http_response=⚠️ Der Server hat die Verbindung ohne Antwort geschlossen\!\n\nModell\: {0}\n\nDies geschieht normalerweise, wenn ein lokaler KI-Anbieter die Anfrage stillschweigend verwirft, anstatt einen Fehler zurückzugeben. Das Kontextfenster des Modells ist zu klein für die aktuelle Anfrage.\n\nHäufige Ursachen\:\n• Der Konversationsverlauf ist über mehrere Runden zu lang geworden\n• Aktivierte Tools fügen jeder Anfrage zusätzliche Daten hinzu — selbst eine kurze Frage bei mehreren aktiven Tools kann das Limit überschreiten\n• Große angehängte Dateien oder Code-Snippets haben die Anfrage über das Limit hinausgehen lassen\n\n{1}\n\nWeitere Lösungsvorschläge\:\n• Starten Sie eine neue Konversation, um den Kontext zurückzusetzen\n• Deaktivieren Sie Tools, die für diese Aufgabe nicht benötigt werden\n• Reduzieren Sie die Größe Ihrer Nachricht oder der angehängten Dateien +error.empty_http_response.hint.generic=So erhöhen Sie das Kontextfenster\:\n• Überprüfen Sie die Einstellungen Ihres Anbieters auf eine Option für Kontextlänge / Kontextgröße und erhöhen Sie diese (z. B. auf 32768 Tokens)\n• Starten Sie den Anbieter nach dem Ändern der Einstellung neu +error.remote_server=⚠️ Fehler beim KI-Anbieter-Server\n\nDer Server des Anbieters hat einen vorübergehenden Fehler zurückgegeben (z. B. überlastet oder nicht verfügbar). Dies wird nicht durch Askimo verursacht.\n\nWas zu tun ist\:\n• Warten Sie einen Moment und versuchen Sie es erneut — dies ist in der Regel kurzzeitig\n• Überprüfen Sie die Statusseite des Anbieters, wenn das Problem weiterhin besteht\n\nTechnische Details\: {details} +error.system=⚠️ Systemfehler\n\nEin unerwarteter Fehler ist aufgetreten\: {errorCode}\n\nBitte wenden Sie sich an den Askimo-Support mit\:\n• Ihrer letzten Aktion\n• Dem obigen Fehlercode\n• Dem Zeitstempel # Model Availability Errors error.model.not_available.title.chat=Modell nicht verfügbar @@ -1152,10 +1166,11 @@ error.model.not_available.title.embedding=Einbettungsmodell nicht verfügbar error.model.not_available.message.chat=Das Modell ''{0}'' ist nicht verfügbar. error.model.not_available.message.embedding=Das Einbettungsmodell ''{0}'' ist in Ihrem lokalen Anbieter nicht verfügbar.\n\nGehen Sie zu Einstellungen → KI-Anbieter und wählen Sie ein verfügbares Einbettungsmodell in der Anbieterkonfigurationskarte aus. error.model.not_available.config_link=Einbettungsmodell konfigurieren -error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration +error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration +error.embedding_model_not_configured=⚠️ Für ''{provider}'' ist kein Einbettungsmodell konfiguriert.\n\nGehen Sie zu Einstellungen → KI-Anbieter und wählen Sie ein Einbettungsmodell in der Anbieterkonfigurationskarte aus. # Generic Application Errors -error.app.message=Ein unerwarteter Fehler ist aufgetreten: {0} +error.app.message=Ein unerwarteter Fehler ist aufgetreten\: {0} # Send Message Errors error.send_message.title=Nachricht konnte nicht gesendet werden @@ -1170,26 +1185,28 @@ error.indexing.io_error.title=E/A-Fehler error.indexing.io_error.message=Während der Indexierung ist ein E/A-Fehler aufgetreten error.indexing.unknown.title=Indexierungsfehler error.indexing.unknown.message=Während der Indexierung ist ein unbekannter Fehler aufgetreten +error.indexing.failed.title=Fehler beim Indizieren der Wissensquelle +error.indexing.failed_project.title=Fehler beim Indizieren der Wissensquelle für das Projekt # RAG Configuration settings.rag.title=RAG-Konfiguration settings.rag.description=Konfiguration der Parameter für Retrieval-Augmented Generation zur projektbasierten Wissensabfrage settings.rag.vector.max.results=Maximale Ergebnisse der Vektorsuche -settings.rag.vector.max.results.hint=Maximale Anzahl von Dokumenten aus der Vektorsuche (Standard: 20) +settings.rag.vector.max.results.hint=Maximale Anzahl von Dokumenten aus der Vektorsuche (Standard\: 20) settings.rag.vector.min.score=Minimaler Score der Vektorsuche -settings.rag.vector.min.score.hint=Minimaler Ähnlichkeitswert 0,0–1,0 (Standard: 0,3) +settings.rag.vector.min.score.hint=Minimaler Ähnlichkeitswert 0,0–1,0 (Standard\: 0,3) settings.rag.hybrid.max.results=Maximale Hybrid-Ergebnisse -settings.rag.hybrid.max.results.hint=Endgültige Dokumentanzahl nach Fusion (Standard: 15) +settings.rag.hybrid.max.results.hint=Endgültige Dokumentanzahl nach Fusion (Standard\: 15) settings.rag.rank.fusion.constant=Rank-Fusion-Konstante -settings.rag.rank.fusion.constant.hint=RRF-Konstante für hybrides Ranking (Standard: 60) +settings.rag.rank.fusion.constant.hint=RRF-Konstante für hybrides Ranking (Standard\: 60) settings.rag.use.absolute.paths=Absolute Pfade in Zitaten verwenden settings.rag.use.absolute.paths.hint=Vollständige Dateipfade in KI-Antworten anzeigen, um bei mehreren Dateien mit demselben Namen mehr Klarheit zu schaffen settings.rag.embedding.title=Embedding-Konfiguration settings.rag.embedding.description=Konfigurieren Sie Parameter für Textsegmentierung und Embeddings settings.rag.embedding.max.chars.per.chunk=Maximale Zeichen pro Segment -settings.rag.embedding.max.chars.per.chunk.hint=Maximale Anzahl an Zeichen pro Textsegment (Standard: 1500) +settings.rag.embedding.max.chars.per.chunk.hint=Maximale Anzahl an Zeichen pro Textsegment (Standard\: 1500) settings.rag.embedding.chunk.overlap=Segmentüberlappung -settings.rag.embedding.chunk.overlap.hint=Anzahl überlappender Zeichen zwischen Segmenten (Standard: 100) +settings.rag.embedding.chunk.overlap.hint=Anzahl überlappender Zeichen zwischen Segmenten (Standard\: 100) settings.rag.embedding.models=Embedding-Modelle nach Anbieter settings.rag.indexing.title=Indizierungskonfiguration settings.rag.indexing.description=Steuern Sie, welche Dateien indiziert werden und die maximal zulässige Dateigröße @@ -1208,7 +1225,7 @@ settings.rag.indexing.embedding.batch.size.hint=Anzahl der Textsegmente, die pro settings.models.title=Modelle settings.models.description=Konfigurieren Sie das globale KI-Modellverhalten, das über alle Anbieter hinweg geteilt wird. settings.models.max.tool.calling.round.trips=Maximale Tool-Aufruf-Runden -settings.models.max.tool.calling.round.trips.hint=Maximale Anzahl an Tool-Aufrufen, die die KI in einer einzelnen Antwort durchführen kann (Standard: 10). Höhere Werte ermöglichen komplexere Agenten-Aufgaben, erhöhen jedoch Latenz und Kosten. +settings.models.max.tool.calling.round.trips.hint=Maximale Anzahl an Tool-Aufrufen, die die KI in einer einzelnen Antwort durchführen kann (Standard\: 10). Höhere Werte ermöglichen komplexere Agenten-Aufgaben, erhöhen jedoch Latenz und Kosten. # Memory Settings settings.memory.title=Speichereinstellungen @@ -1251,11 +1268,11 @@ file.viewer.title=Dateibetrachter file.viewer.title.with.name=Dateibetrachter – {0} file.viewer.dialog.close=Schließen file.viewer.copy.clipboard=In die Zwischenablage kopieren -file.viewer.copied=Kopiert! +file.viewer.copied=Kopiert\! # Mermaid Chart Renderer mermaid.setup.required.title=Mermaid-CLI erforderlich -mermaid.setup.instructions.link=https://askimo.chat/docs/desktop/mermaid-diagrams/ +mermaid.setup.instructions.link=https\://askimo.chat/docs/desktop/mermaid-diagrams/ mermaid.setup.button.open.guide=Einrichtungsanleitung öffnen mermaid.rendering.progress=Diagramm wird gerendert... mermaid.error.rendering.title=Fehler beim Rendern des Diagramms @@ -1268,14 +1285,14 @@ mermaid.button.zoom.in=Vergrößern mermaid.button.zoom.out=Verkleinern mermaid.button.reset.zoom=Zoom zurücksetzen mermaid.button.retry=Erneut versuchen -mermaid.feedback.copied=Kopiert! +mermaid.feedback.copied=Kopiert\! mermaid.setup.button.install=Mermaid CLI installieren mermaid.setup.button.check.again=Erneut prüfen mermaid.setup.button.download.node=Node.js herunterladen mermaid.setup.installing=Mermaid CLI wird installiert... mermaid.setup.install.failed=Installation fehlgeschlagen. Details finden Sie in der Ausgabe unten. mermaid.setup.node.required=Node.js und npm wurden nicht gefunden. Installieren Sie zuerst Node.js, um die Ein-Klick-Installation zu aktivieren. -mermaid.setup.node.link=https://nodejs.org/en/download +mermaid.setup.node.link=https\://nodejs.org/en/download mermaid.error.code.show=Diagramm-Code anzeigen mermaid.error.code.hide=Diagramm-Code ausblenden @@ -1294,7 +1311,7 @@ mcp.instances.title=MCP-Instanzen mcp.instances.description=Diese MCP-Instanzen stehen zur Verfügung mcp.instances.empty=Keine MCP-Instanzen konfiguriert mcp.instances.count={0} Instanz(en) -mcp.instance.server.label=Server: {0} +mcp.instance.server.label=Server\: {0} mcp.instance.delete.confirm.title=MCP-Instanz löschen? mcp.instance.delete.confirm.message=Sind Sie sicher, dass Sie die mcp-Instanz "{0}" löschen möchten? Dies kann nicht rückgängig gemacht werden. mcp.instance.enable.tooltip=Diese MCP-Instanz aktivieren @@ -1320,7 +1337,7 @@ mcp.instance.field.description=Beschreibung mcp.instance.field.description.placeholder=Kurze Beschreibung, was dieser Server tut mcp.instance.field.transport=Transport-Typ mcp.instance.field.command=Befehlsvorlage -mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2:--flag}} +mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2\:--flag}} mcp.instance.field.command.hint=Leerzeichengetrennter Befehl mit {{parameter}}-Platzhaltern mcp.instance.validation.error.empty.id=Die Server-ID darf nicht leer sein mcp.instance.validation.error.invalid.id.pattern=Die Server-ID darf nur Kleinbuchstaben, Zahlen und Bindestriche enthalten @@ -1329,20 +1346,20 @@ mcp.instance.validation.error.empty.command=Die Befehlsvorlage darf nicht leer s mcp.instance.validation.error.empty.parameter.key=Der Parameter-Schlüssel darf nicht leer sein mcp.instance.validation.error.empty.parameter.label=Die Parameter-Bezeichnung darf nicht leer sein mcp.instance.env.label=Umgebungsvariablen (Optional) -mcp.instance.env.placeholder=API_KEY={{apiKey}}\nDEBUG={{debug}} -mcp.instance.env.hint=Format: SCHLÜSSEL=wert oder SCHLÜSSEL={{parameter}} (einer pro Zeile) +mcp.instance.env.placeholder=API_KEY\={{apiKey}}\nDEBUG\={{debug}} +mcp.instance.env.hint=Format\: SCHLÜSSEL\=wert oder SCHLÜSSEL\={{parameter}} (einer pro Zeile) mcp.instance.transport.stdio=Stdio (Lokaler Prozess) mcp.instance.transport.http=HTTP (Remotes Server) mcp.instance.http.url.label=URL-Vorlage -mcp.instance.http.url.placeholder=https://{{host}}/mcp oder https://api.example.com/mcp +mcp.instance.http.url.placeholder=https\://{{host}}/mcp oder https\://api.example.com/mcp mcp.instance.http.url.hint=Der Endpunkt-URL des Servers. Verwenden Sie {{parameter}}-Platzhalter für dynamische Werte mcp.instance.http.headers.label=HTTP-Header (Optional) -mcp.instance.http.headers.placeholder=Authorization=Bearer {{apiKey}}\nX-Tenant-Id={{tenantId}} -mcp.instance.http.headers.hint=Format: Header-Name=wert oder Header-Name={{parameter}} (einer pro Zeile) +mcp.instance.http.headers.placeholder=Authorization\=Bearer {{apiKey}}\nX-Tenant-Id\={{tenantId}} +mcp.instance.http.headers.hint=Format\: Header-Name\=wert oder Header-Name\={{parameter}} (einer pro Zeile) mcp.instance.http.timeout.label=Timeout (ms) mcp.instance.http.timeout.hint=Anfrage-Timeout in Millisekunden mcp.instance.validation.error.empty.url=Die URL-Vorlage darf nicht leer sein -mcp.instance.validation.error.invalid.url=Die URL-Vorlage muss mit http:// oder https:// beginnen +mcp.instance.validation.error.invalid.url=Die URL-Vorlage muss mit http\:// oder https\:// beginnen # MCP Integrations (Project View) mcp.instance.delete.tooltip=MCP-Instanz löschen @@ -1379,6 +1396,12 @@ mcp.tool.category.WEATHER.desc=Wetterdaten und Vorhersagen mcp.tool.category.WEB_SEARCH.desc=Websuche und Seitenlesen mcp.tool.category.DATETIME.desc=Datum- und Zeitoperationen mcp.tool.category.OTHER.desc=Nicht klassifizierte Tools +mcp.tool.approval.label=Freigabe +mcp.tool.approval.require_approval=Freigabe erforderlich +mcp.tool.approval.default=Automatisch +mcp.tool.approval.default.hint=Läuft automatisch. Schreibähnliche Kategorien (Datei schreiben, Ausführen, Git, Messaging) erfordern standardmäßig eine Freigabe. +mcp.tool.approval.require_approval.hint=Hält immer an und bittet um Ihre Bestätigung, bevor die KI dieses Tool ausführt. +mcp.tool.enabled.label=Aktiviert # MCP Tools Dialog mcp.tools.dialog.title=Verfügbare Tools - {0} @@ -1392,7 +1415,7 @@ mcp.tools.dialog.search.count={0} von {1} Tool(s) mcp.tools.dialog.search.empty=Keine Tools stimmen mit Ihrer Suche überein mcp.tools.dialog.export=Tools exportieren mcp.tools.dialog.export.success=Tools nach {0} exportiert -mcp.tools.dialog.export.failed=Fehler beim Exportieren der Tools: {0} +mcp.tools.dialog.export.failed=Fehler beim Exportieren der Tools\: {0} # MCP Server Catalog Dialog mcp.catalog.dialog.title=MCP-Server hinzufügen @@ -1448,7 +1471,7 @@ file.viewer.close=Viewer schließen file.viewer.open.external=Extern öffnen file.viewer.binary=Binärdatei — Vorschau als Text nicht möglich. file.viewer.too.large=Datei ist zu groß für eine Vorschau ({0} KB). Das Maximum liegt bei 512 KB. -file.viewer.error=Datei konnte nicht gelesen werden: {0} +file.viewer.error=Datei konnte nicht gelesen werden\: {0} file.viewer.select.prompt=Wählen Sie eine Datei aus dem Baum oben aus, um ihren Inhalt als Vorschau anzuzeigen # Project Side Panel @@ -1464,7 +1487,7 @@ panel.collapse=Panel ausblenden # RAG Status rag.status.started=Indizierung gestartet -rag.status.inprogress=Indizierung: {0}% +rag.status.inprogress=Indizierung\: {0}% rag.status.inprogress.unknown=Indizierung... rag.status.queued=In Warteschlange — wartet darauf, dass ein anderes Projekt die Indizierung abschließt rag.status.ready=Bereit @@ -1473,7 +1496,7 @@ rag.status.not.indexed=Nicht indiziert # RAG Empty State rag.empty.title=Keine Wissensquellen -rag.empty.description=Fügen Sie Dateien oder Ordner hinzu,\um RAG für dieses Projekt zu aktivieren +rag.empty.description=Fügen Sie Dateien oder Ordner hinzu,\num RAG für dieses Projekt zu aktivieren rag.empty.button.add=Quellen hinzufügen # Plans @@ -1514,7 +1537,7 @@ plans.editor.label=YAML-Inhalt plans.editor.placeholder=Fügen Sie hier Ihr Plan-YAML ein oder geben Sie es ein... plans.editor.valid=Gültiges YAML plans.editor.hint.title=Referenz -plans.editor.hint.fields=Erforderlich: id, name, steps\nOptional: description, icon, inputs, workflow\nSchritttypen: text, multiline, toggle, number\nWorkflow-Typen: sequence, parallel, conditional +plans.editor.hint.fields=Erforderlich\: id, name, steps\nOptional\: description, icon, inputs, workflow\nSchritttypen\: text, multiline, toggle, number\nWorkflow-Typen\: sequence, parallel, conditional plans.editor.menu.edit=YAML bearbeiten plans.editor.ai.label=Mit KI generieren plans.editor.ai.placeholder=Beschreibe in einfachen Worten, was dieser Plan tun soll... @@ -1573,12 +1596,12 @@ skills.view.panel.collapse=Panel einklappen skills.view.panel.expand=Panel ausklappen skills.view.tab.skills=Fähigkeiten skills.view.tab.workspace=Arbeitsbereich -skills.view.last.run=Letzte Ausführung: {0} +skills.view.last.run=Letzte Ausführung\: {0} skills.view.category.uncategorized=Sonstige skills.view.search.placeholder=Fähigkeiten suchen ... skills.view.search.clear=Suche leeren skills.view.context.placeholder=Was möchtest du tun? (optional) -skills.view.command.mode.hint=Befehlsmodus: Eine Eingabe, die mit / beginnt, wird als Agenten-Befehl ausgeführt. +skills.view.command.mode.hint=Befehlsmodus\: Eine Eingabe, die mit / beginnt, wird als Agenten-Befehl ausgeführt. skills.view.system.prompt.preview=System-Prompt skills.view.response.title=Antwort skills.view.followup.label=Nachfrage @@ -1588,7 +1611,7 @@ skills.view.history.empty=Noch keine Ausführungen skills.view.copy=Kopieren skills.view.system.prompt.file=Datei skills.view.system.prompt.files=Dateien -skills.view.system.prompt.also.included=Ebenfalls im Agent-Kontext enthalten: +skills.view.system.prompt.also.included=Ebenfalls im Agent-Kontext enthalten\: skills.view.docs.tooltip=Fertigkeitsanleitung anzeigen skills.view.mode.agentic=Agentisch skills.view.mode.manual=Manuell @@ -1628,7 +1651,7 @@ onboarding.step.analytics.section.never=Was wir niemals sammeln onboarding.step.analytics.toggle.subtitle=Hilft uns, uns auf das Wichtigste zu konzentrieren · jederzeit änderbar unter Einstellungen → Erweitert # Onboarding Step 1: Welcome -onboarding.step.welcome.title=👋 Willkommen bei Askimo! +onboarding.step.welcome.title=👋 Willkommen bei Askimo\! onboarding.step.welcome.description=Ihr persönlicher KI-Assistent. Chatten Sie mit mehreren KI-Modellen, organisieren Sie Wissen in Projekten und automatisieren Sie Abläufe mit Skills und Plänen. onboarding.step.welcome.feature1.title=💬 Mit KI chatten onboarding.step.welcome.feature1.description=Stellen Sie Fragen, lassen Sie sich bei Aufgaben helfen oder führen Sie ein Gespräch mit einem beliebigen KI-Modell. @@ -1657,7 +1680,7 @@ onboarding.step.directives.feature3.description=Benötigen Sie einen geduldigen onboarding.step.directives.link=Beispiele und Tipps ansehen # Onboarding Step 6: Ready -onboarding.step.ready.title=🚀 Sie sind fertig! +onboarding.step.ready.title=🚀 Sie sind fertig\! onboarding.step.ready.description=Alles ist eingerichtet und bereit. Starten Sie Ihren ersten Chat oder stöbern Sie in den untenstehenden Ressourcen. onboarding.step.ready.link.docs=📚 Dokumentation durchsuchen onboarding.step.ready.link.providers=🔧 KI-Anbieter konfigurieren @@ -1667,13 +1690,13 @@ onboarding.step.ready.link.github=⭐ Uns auf GitHub favorisieren onboarding.step.persona.title=🎯 Was möchten Sie hauptsächlich tun? onboarding.step.persona.description=Wählen Sie die Option, die am ehesten Ihrer Arbeit entspricht. Askimo wird die relevantesten Funktionen anzeigen. Sie können dies jederzeit über das Menü „Ansicht“ ändern. onboarding.step.persona.developer.description=Code lesen und schreiben, Dateien refaktorieren, Gerüste generieren oder agentische Aufgaben in Ihrem lokalen Projekt ausführen. -onboarding.step.persona.developer.features=Aktiviert: Skills (Gemini CLI, Claude Code), Projects +onboarding.step.persona.developer.features=Aktiviert\: Skills (Gemini CLI, Claude Code), Projects onboarding.step.persona.researcher.description=Themen recherchieren, Daten analysieren, strukturierte Berichte schreiben und wissensbasierte Antworten erhalten. -onboarding.step.persona.researcher.features=Aktiviert: Plans, Projects (RAG) +onboarding.step.persona.researcher.features=Aktiviert\: Plans, Projects (RAG) onboarding.step.persona.manager.description=E-Mails entwerfen, Besprechungsnotizen verarbeiten, Statusberichte schreiben oder mehrstufige Content-Workflows ausführen. -onboarding.step.persona.manager.features=Aktiviert: Plans +onboarding.step.persona.manager.features=Aktiviert\: Plans onboarding.step.persona.everything.description=Ich mache eine Mischung aus verschiedenen Dingen — zeigen Sie mir alle Funktionen und ich werde entscheiden, was ich verwende. -onboarding.step.persona.everything.features=Aktiviert: Skills, Plans, Projects, MCP, RAG +onboarding.step.persona.everything.features=Aktiviert\: Skills, Plans, Projects, MCP, RAG # Persona labels persona.developer=💻 Code schreiben und überprüfen diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index c04836fe..510284e3 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -32,6 +32,7 @@ menu.view.appearance.system=Sistema menu.view.appearance.light=Claro menu.view.appearance.dark=Oscuro menu.view.fullscreen=Entrar en pantalla completa +menu.view.exit.fullscreen=Salir de pantalla completa menu.view.bookmarks=Ver marcadores menu.terminal=Terminal menu.terminal.new=Nuevo terminal @@ -43,7 +44,7 @@ menu.help.discord=💬 Unirse a la comunidad de Discord menu.help.share.x=Compartir en X / Twitter menu.help.share.linkedin=Compartir en LinkedIn menu.help.share.facebook=Compartir en Facebook -menu.help.share.text=Descubre Askimo: un cliente de escritorio de IA gratuito y local. Funciona con Ollama, OpenAI, Anthropic y más. https://askimo.chat +menu.help.share.text=Descubre Askimo\: un cliente de escritorio de IA gratuito y local. Funciona con Ollama, OpenAI, Anthropic y más. https\://askimo.chat menu.help.share.hackernews=Publicar en Hacker News menu.eventlog=Registro de eventos menu.help.model.capabilities=Abrir archivo de capacidades del modelo @@ -60,16 +61,16 @@ dialog.close=Cerrar # Backup and Restore backup.export.title=Exportar copia de seguridad backup.export.success.title=Copia de seguridad exportada -backup.export.success.message=Copia de seguridad exportada correctamente a:\n{0} +backup.export.success.message=Copia de seguridad exportada correctamente a\:\n{0} backup.export.error.title=Error al exportar -backup.export.error.message=No se pudo exportar la copia de seguridad:\n{0} +backup.export.error.message=No se pudo exportar la copia de seguridad\:\n{0} backup.import.title=Importar copia de seguridad backup.import.confirm.title=Confirmar importación backup.import.confirm.message=Esta acción reemplazará todos los datos actuales con la copia de seguridad.\n\nSe creará automáticamente una copia de seguridad de seguridad antes de importar.\n\n¿Está seguro de que desea continuar? backup.import.success.title=Copia de seguridad importada backup.import.success.message=Copia de seguridad importada correctamente.\n\nReinicie Askimo para que todos los cambios surtan efecto. backup.import.error.title=Error al importar -backup.import.error.message=No se pudo importar la copia de seguridad:\n{0} +backup.import.error.message=No se pudo importar la copia de seguridad\:\n{0} # Event Log eventlog.title=Registro de eventos ({0}) @@ -87,7 +88,7 @@ eventlog.window.header=Registro de eventos eventlog.window.attach=Volver a unir a la ventana principal eventlog.window.events.count={0} eventos eventlog.window.empty.message=No hay eventos aún. Aparecerán aquí al ocurrir. -eventlog.footer.warning=Se han recortado las entradas más antiguas (límite: {0}) +eventlog.footer.warning=Se han recortado las entradas más antiguas (límite\: {0}) # Chat Interface chat.new=Nuevo chat @@ -165,7 +166,7 @@ session.rename.error.empty=El título no puede estar vacío session.export.file.chooser.title=Guardar historial del chat session.export.button.export=Exportar session.export.success.title=Exportación exitosa -session.export.success.message=La sesión ha sido exportada correctamente a: +session.export.success.message=La sesión ha sido exportada correctamente a\: # Projects project.title=Proyectos @@ -181,14 +182,16 @@ project.new.dialog.file.browse=Seleccionar archivos para procesar... project.new.dialog.sources.label=Materiales de referencia (opcional) project.new.dialog.sources.add=Agregar fuente project.new.dialog.error.empty.name=El nombre del proyecto no puede estar vacío -project.new.dialog.error.create.failed=No se pudo crear el proyecto: {0} +project.new.dialog.error.create.failed=No se pudo crear el proyecto\: {0} project.new.dialog.name.error.empty=El nombre del proyecto no puede estar vacío project.new.dialog.button.create=Crear proyecto project.new.dialog.button.cancel=Cancelar -project.new.dialog.success.title=¡Proyecto creado con éxito! +project.new.dialog.success.title=¡Proyecto creado con éxito\! project.new.dialog.success.message=El proyecto ''{0}'' ha sido creado. project.new.dialog.success.countdown=Cerrando en {0} segundo{1}... project.new.dialog.success.close=Cerrar ahora +project.dialog.defaultDirective.label=Directiva predeterminada (opcional) +project.dialog.defaultDirective.none=Ninguna project.dialog.url.title=Agregar material de referencia por URL project.dialog.url.description=Introduzca una URL para agregar contenido web como material de referencia. La URL será validada y verificada para comprobar su accesibilidad. project.dialog.url.label=URL @@ -206,9 +209,13 @@ project.not.selected=No se ha seleccionado ningún proyecto # Projects View projects.title=Proyectos projects.description=Organiza tus chats en torno a un tema y adjunta archivos, carpetas o URL como fuentes de conocimiento, para que la IA siempre tenga el contexto adecuado para ese proyecto. +projects.rag.embedding.not.configured=RAG está deshabilitado para los proyectos porque no hay un modelo de embeddings configurado para tu proveedor de IA actual. +projects.rag.embedding.configure=Configurar modelo de embeddings +projects.rag.embedding.unsupported.provider=RAG está deshabilitado para los proyectos porque tu proveedor de IA actual no admite modelos de embeddings. Cambia a un proveedor que admita embeddings (por ejemplo, OpenAI, Gemini o un endpoint compatible con OpenAI) para habilitar RAG. +projects.rag.embedding.switch.provider=Cambiar proveedor de IA projects.error=❌ {0} projects.empty=No se encontraron proyectos. -projects.empty.hint=💡 ¡Crea un nuevo proyecto para organizar tus sesiones de chat! +projects.empty.hint=💡 ¡Crea un nuevo proyecto para organizar tus sesiones de chat\! projects.search.placeholder=Buscar por nombre… projects.search.empty=Ningún proyecto coincide con "{0}". projects.col.name=Nombre @@ -219,13 +226,16 @@ projects.sources.expand=Mostrar materiales de referencia projects.sources.collapse=Ocultar materiales de referencia projects.sources.empty.title=Aún no hay materiales de referencia projects.sources.empty.description=Añada documentos para que Askimo pueda consultarlos al responder a sus preguntas -projects.sources.info.tooltip=Los materiales de referencia ayudan a Askimo a comprender su contexto específico.\n\n\ -Añada carpetas, archivos o sitios web que contengan la información que desea que Askimo utilice al responder preguntas.\n\n\ -Por ejemplo:\n\ +projects.sources.info.tooltip=Los materiales de referencia ayudan a Askimo a comprender su contexto específico.\n\ +\n\ +Añada carpetas, archivos o sitios web que contengan la información que desea que Askimo utilice al responder preguntas.\n\ +\n\ +Por ejemplo\:\n\ • Documentación de su proyecto\n\ • Base de conocimiento de la empresa\n\ • Especificaciones técnicas\n\ -• Artículos de investigación\n\n\ +• Artículos de investigación\n\ +\n\ Askimo buscará en estos materiales para proporcionar respuestas más precisas y contextualizadas. projects.sources.type.local_folders=Carpetas Locales projects.sources.type.local_files=Archivos Locales @@ -236,6 +246,8 @@ projects.sources.add.dialog.title=Agregar material de referencia projects.sources.add.dialog.description=Seleccione carpetas, archivos o URLs para agregarlos como material de referencia para este proyecto. projects.sources.add.dialog.button.add=Agregar projects.sources.delete.tooltip=Eliminar material de referencia +projects.sources.watch.tooltip=Vigilar cambios +projects.sources.more.tooltip=Más opciones projects.sources.guide=Ver guía de materiales de referencia projects.error.loading=No se pudieron cargar los proyectos. Por favor, inténtalo de nuevo. projects.error.deleting=No se pudo eliminar el proyecto. Por favor, inténtalo de nuevo. @@ -246,14 +258,16 @@ project.error.loading=Error al cargar el proyecto. Por favor, inténtelo de nuev project.error.loading_sessions=Error al cargar las sesiones del proyecto. Por favor, inténtelo de nuevo. project.error.updating=Error al actualizar el proyecto. Por favor, inténtelo de nuevo. project.error.deleting_knowledge_source=Error al eliminar el material de referencia. Por favor, inténtelo de nuevo. +project.error.updating_knowledge_source=Error al actualizar el material de referencia. Por favor, inténtelo de nuevo. +project.error.rescanning_knowledge_source=Error al volver a escanear el material de referencia. Por favor, inténtelo de nuevo. project.knowledge_source.delete.success=Material de referencia eliminado correctamente. project.edit=Editar proyecto project.reindex=Reindexar proyecto project.menu.tooltip=Menú del proyecto project.new.chat.placeholder=Nuevo chat en {0} project.recent.chats=Chats recientes -project.no.chats=Aún no hay chats. ¡Comienza uno nuevo abajo! -project.indexing.label=Indexación de la fuente de conocimiento: {0} +project.no.chats=Aún no hay chats. ¡Comienza uno nuevo abajo\! +project.indexing.label=Indexación de la fuente de conocimiento\: {0} project.indexing.queued=Indexación en cola - esperando a que termine otro proyecto... project.indexing.failed=La indexación falló. Intente volver a indexar desde el menú del proyecto. project.indexing.ready.label=Indexado @@ -272,7 +286,7 @@ settings.appearance=Apariencia settings.appearance.accent=Color de acento settings.appearance.accent.description=Personaliza con seguridad un solo color de acento. Askimo lo aplica a los acentos principales de la interfaz y deriva colores relacionados para mantener la legibilidad. settings.appearance.accent.label=Color de acento (Hex) -settings.appearance.accent.invalid=Introduce un color hexadecimal válido como #0284C7 +settings.appearance.accent.invalid=Introduce un color hexadecimal válido como \#0284C7 settings.appearance.accent.swatch.primary=Primario settings.appearance.accent.swatch.primary.container=Contenedor settings.appearance.accent.swatch.on.primary.container=Sobre el contenedor @@ -296,7 +310,7 @@ settings.network.description=Configurar ajustes de red y proxy settings.mcp.servers=Servidores MCP settings.skills=Habilidades settings.skills.description=Skills son agentes de IA reutilizables que se ejecutan directamente en su máquina. Cada skill es un archivo Markdown con un prompt de sistema e instrucciones. Cuando ejecutas un skill, se ejecuta a través de {0} — leyendo y escribiendo sus archivos, ejecutando comandos de shell e iterando hasta que la tarea esté completa. No es necesario copiar y pegar. -settings.skills.runtimes=Entornos de ejecución compatibles: +settings.skills.runtimes=Entornos de ejecución compatibles\: settings.skills.directory=Directorio de habilidades settings.skills.open.folder=Abrir carpeta settings.skills.new.skill=Nueva habilidad @@ -363,7 +377,7 @@ layout.density.relaxed.description=Espaciado ligeramente mayor para mejorar la l layout.density.spacious=Espacioso layout.density.spacious.description=Espaciado máximo para pantallas de ultra alta DPI settings.background.image=Imagen de fondo -settings.background.image.description=Elige una imagen de fondo: selecciona una predefinida o usa tu propia imagen. Una superposición translúcida mantiene el texto legible. Las imágenes de fondo son independientes del tema seleccionado. +settings.background.image.description=Elige una imagen de fondo\: selecciona una predefinida o usa tu propia imagen. Una superposición translúcida mantiene el texto legible. Las imágenes de fondo son independientes del tema seleccionado. settings.background.image.browse=Examinar settings.background.image.custom=Imagen personalizada settings.appearance.avatar.ai=Avatar del asistente de IA @@ -376,11 +390,11 @@ settings.log.viewer=Archivos de registro settings.log.viewer.description=Ver registros y diagnósticos settings.log.viewer.view=Ver registros settings.log.viewer.open_folder=Abrir carpeta de registros -settings.log.viewer.path=Archivo de registro: {0} +settings.log.viewer.path=Archivo de registro\: {0} settings.log.viewer.dialog.title=Registros de la aplicación settings.log.viewer.refresh=Actualizar settings.log.viewer.copy=Copiar -settings.log.viewer.copied=¡Copiado! +settings.log.viewer.copied=¡Copiado\! settings.log.viewer.loading=Cargando registros... settings.log.viewer.error=Error al cargar registros settings.log.viewer.empty=No hay registros disponibles @@ -434,7 +448,7 @@ settings.web_search.api_key=Clave API settings.web_search.api_key.placeholder=Pega tu clave API aquí settings.web_search.get_api_key=Obtener una clave API gratuita ↗ settings.web_search.endpoint=URL de instancia SearxNG -settings.web_search.endpoint.placeholder=https://search.example.com +settings.web_search.endpoint.placeholder=https\://search.example.com settings.web_search.test=Probar búsqueda settings.web_search.test.running=Probando... settings.web_search.test.success=✅ La búsqueda funciona @@ -463,7 +477,7 @@ user.profile.interests.custom.placeholder=p. ej., Aprendizaje automático, Fotog user.profile.interests.custom.hint=Separe varios intereses con comas # Welcome Dialog (First Run) -welcome.title=¡Bienvenido a Askimo! +welcome.title=¡Bienvenido a Askimo\! welcome.subtitle=Ayúdenos a personalizar su experiencia con la IA welcome.avatar.optional=Haga clic para añadir una foto (opcional) welcome.name=Su nombre @@ -501,6 +515,7 @@ user.interest.environment=Medio ambiente # Actions action.delete=Eliminar +action.rescan=Volver a escanear action.remove=Eliminar action.edit=Editar action.pin=Fijar en la barra lateral @@ -526,7 +541,7 @@ action.refresh=Actualizar # Happiness Gate (shown before Star Prompt) happiness.gate.title=¿Cómo te está yendo con Askimo? happiness.gate.subtitle=Tu opinión sincera nos ayuda a seguir mejorando -happiness.gate.happy=¡Me encanta! 😍 +happiness.gate.happy=¡Me encanta\! 😍 happiness.gate.neutral=Está bien 🙂 happiness.gate.unhappy=No mucho 😕 @@ -549,11 +564,11 @@ feedback.email.placeholder=you@example.com feedback.email.hint=Solo se usará para hacer seguimiento de tu feedback. Nunca te enviaremos spam. feedback.action.skip=Omitir feedback.action.send=Enviar feedback -feedback.thanks.title=¡Gracias por tu feedback! +feedback.thanks.title=¡Gracias por tu feedback\! feedback.thanks.message=Tu aporte nos ayuda a mejorar Askimo. Lo apreciamos mucho. feedback.thanks.close=Cerrar -feedback.remind.title=¡No te preocupes! +feedback.remind.title=¡No te preocupes\! feedback.remind.message=Puedes compartir tus comentarios en cualquier momento desde el menú de Ayuda → Compartir Feedback. feedback.remind.got.it=Entendido @@ -577,7 +592,7 @@ star.prompt.share.description=Cuéntale a tu red sobre Askimo en X, LinkedIn o F star.prompt.maybe.later=Ahora no star.prompt.already.starred=Ya destacado ✓ star.prompt.social.proof=⭐ Únete a {0} personas que ya han destacado Askimo -star.prompt.thanks.title=¡Muchas gracias! 🌟 +star.prompt.thanks.title=¡Muchas gracias\! 🌟 star.prompt.thanks.message=Tu apoyo significa mucho y nos ayuda a seguir construyendo Askimo. star.prompt.thanks.done=Hecho ✓ star.prompt.remind.title=No te preocupes. @@ -654,7 +669,7 @@ shortcut.send.message=Enviar mensaje shortcut.new.line=Nueva línea # Chat View -chat.welcome=¡Bienvenido a Askimo!\nComienza una conversación escribiendo un mensaje abajo. +chat.welcome=¡Bienvenido a Askimo\!\nComienza una conversación escribiendo un mensaje abajo. chat.no.active.session=Seleccione una sesión en la barra lateral o inicie un nuevo chat chat.search.placeholder=Buscar en la conversación... chat.search.no.results=Sin resultados @@ -692,7 +707,7 @@ global.search.results.count={0} resultado encontrado global.search.results.count.plural={0} resultados encontrados # Rest of chat view strings -chat.directive=Directiva: +chat.directive=Directiva\: chat.directive.new=Nueva directiva chat.directive.manage=Gestionar directivas chat.directive.learn.more=Aprenda a usar directivas @@ -710,6 +725,12 @@ chat.image.model.missing.title=Modelo de imagen no configurado chat.image.model.missing.message=No hay ningún modelo de imagen configurado para {0}. Abre Configuración > Proveedor de IA > Modelos de generación de imágenes y establece primero un nombre de modelo. chat.tools.button=Herramientas disponibles chat.tools.button.disabled=Herramientas disponibles ({0} deshabilitadas) +chat.tool.approval.required=\n\n⏸️ **Aprobación requerida** — La IA quiere ejecutar `{0}`{1}\n\n +chat.tool.approval.timed_out=Tiempo de espera agotado para la aprobación de la herramienta\: {0} +chat.tool.approval.denied=Ejecución de la herramienta denegada por el usuario\: {0} +chat.tool.approval.prompt=La IA quiere ejecutar\: {0} +chat.tool.approval.approve=Aprobar +chat.tool.approval.deny=Denegar chat.tools.button.model.no.support=Las herramientas no son compatibles con este modelo chat.tools.popup.title=Herramientas disponibles chat.tools.popup.loading=Cargando servidores... @@ -736,7 +757,7 @@ chat.attachment.remove=Eliminar archivo adjunto chat.attachment.preview.loading=Cargando vista previa… chat.attachment.preview.file.not.found=(Archivo no encontrado) chat.attachment.preview.too.large=(Archivo demasiado grande para la vista previa) -chat.attachment.preview.cannot.read=(No se puede leer el archivo: {0}) +chat.attachment.preview.cannot.read=(No se puede leer el archivo\: {0}) chat.attachment.preview.more.lines={0} líneas más # Sessions View @@ -748,12 +769,12 @@ sessions.col.created=Creado sessions.col.updated=Actualizado sessions.error=❌ {0} sessions.empty=No se encontraron sesiones. -sessions.empty.hint=💡 ¡Inicia un chat nuevo para crear tu primera sesión! +sessions.empty.hint=💡 ¡Inicia un chat nuevo para crear tu primera sesión\! sessions.search.placeholder=Buscar por título… sessions.search.empty=Ninguna sesión coincide con "{0}". # Generic table pagination controls -table.page.size.label=Filas por página: +table.page.size.label=Filas por página\: table.page=Página {0} de {1} table.page.previous=Página anterior table.page.next=Página siguiente @@ -769,7 +790,7 @@ sessions.error.rename.failed=Fallo al renombrar sesión. # ChatSessionService Errors # Update Check update.dialog.title=Actualización de software -update.dialog.new.version.available=¡Hay una nueva versión de Askimo disponible! +update.dialog.new.version.available=¡Hay una nueva versión de Askimo disponible\! update.urgency.medium=Llevas {0} versiones de retraso — puede que te estés perdiendo correcciones importantes y nuevas funciones. update.urgency.high=Llevas {0} versiones de retraso — te estás perdiendo mejoras significativas. Por favor, actualiza pronto. update.dialog.current.version.label=Versión actual @@ -780,7 +801,7 @@ update.dialog.download=Descargar ahora update.dialog.how.to.update=Cómo actualizar update.dialog.later=Más tarde update.dialog.skip.version=Omitir esta versión -update.check.up.to.date=¡Ya estás usando la última versión! +update.check.up.to.date=¡Ya estás usando la última versión\! update.check.failed=Fallo al buscar actualizaciones # Event Names @@ -788,6 +809,7 @@ event.update.available=🚀 Nueva versión disponible event.details.action=Release Notes event.update.download=Descargar ahora event.notification.empty=Sin eventos +event.notification.title=Notificaciones ({0}) event.notification.clear=Limpiar event.notification.clear.all=Limpiar todo event.notification.group.errors=Errores en segundo plano @@ -799,6 +821,7 @@ event.indexing.started=Indexando… event.indexing.completed=Índice listo event.indexing.failed=Error de indexación event.indexing.files_indexed={0} archivo(s) indexado(s) +event.file.removed=Archivo eliminado del índice # Settings View settings.language=Idioma @@ -817,8 +840,8 @@ settings.app.language.translation.contribute=Contribuir en Crowdin settings.ai.response.language=Idioma de respuesta preferido settings.ai.response.language.description=Forzar a la IA a responder en un idioma específico (dejar vacío para detección automática) settings.ai.response.language.auto=Detección automática -settings.ai.response.language.tooltip=La IA detecta automáticamente tu idioma, pero anúlalo cuando:\n• Aprendizaje de idiomas (práctica inmersiva)\n• Consistencia profesional (ej: docs de código siempre en inglés)\n• Optimización RAG (coincidir con el idioma de la base de conocimientos)\n• Enseñanza (preguntar en un idioma, explicar en otro)\n• Evitar cambios de idioma no deseados -settings.model.select=Seleccionar modelo para {0}: +settings.ai.response.language.tooltip=La IA detecta automáticamente tu idioma, pero anúlalo cuando\:\n• Aprendizaje de idiomas (práctica inmersiva)\n• Consistencia profesional (ej\: docs de código siempre en inglés)\n• Optimización RAG (coincidir con el idioma de la base de conocimientos)\n• Enseñanza (preguntar en un idioma, explicar en otro)\n• Evitar cambios de idioma no deseados +settings.model.select=Seleccionar modelo para {0}\: settings.model.loading=Cargando modelos... settings.model.none=No hay modelos disponibles settings.model.select.title=Seleccionar modelo @@ -826,7 +849,7 @@ settings.model.current=Modelo actual settings.model.selected=Modelo seleccionado settings.model.new=Nuevo modelo settings.model.use.default=Usar predeterminado -settings.model.change.description=Elige un modelo de la lista a continuación: +settings.model.change.description=Elige un modelo de la lista a continuación\: settings.model.search=Buscar modelos settings.model.search.placeholder=Escribe para filtrar modelos... settings.model.filtered=Mostrando {0} de {1} modelos @@ -835,22 +858,22 @@ settings.model.chat.filter.label=Modelos de chat · {0} mostrados settings.model.chat.filter.show.all=Mostrar todos {0} settings.configure.title=Configurar {0} settings.test.connection.testing=Probando... -settings.placeholder.baseurl=http://localhost:11434 +settings.placeholder.baseurl=http\://localhost\:11434 provider.connection.failed=No se pudo conectar al proveedor. Verifique que su clave API sea correcta (para proveedores en la nube) o que su URL base sea accesible (para proveedores locales). Puede encontrar instrucciones de configuración usando el enlace de ayuda de arriba. # Directives Dialog directive.manage.title=Gestionar directivas -directive.manage.empty=No hay directivas. ¡Crea una para comenzar! +directive.manage.empty=No hay directivas. ¡Crea una para comenzar\! directive.edit.name.label=Nombre directive.edit.name.placeholder=Escribe el nombre de la directiva... directive.edit.content.label=Contenido directive.edit.content.placeholder=Escribe las instrucciones de la directiva... directive.edit.name.required=El nombre es obligatorio directive.edit.content.required=El contenido es obligatorio -directive.created=Creado: {0} +directive.created=Creado\: {0} directive.new.title=Nueva directiva directive.new.guidelines=Las directivas guían cómo responde la IA a tus mensajes. Sé específico sobre el tono, nivel de detalle, formato o cualquier requisito especial que necesites. -directive.new.name.placeholder=ej.: concise-code, explain-like-im-5 +directive.new.name.placeholder=ej.\: concise-code, explain-like-im-5 directive.new.content.placeholder=Escribe las instrucciones... directive.new.apply.current=Aplicar a la sesión actual directive.new.create=Crear @@ -862,8 +885,10 @@ directive.export.tooltip=Exportar todas las directivas a un archivo JSON para co directive.export.filename=askimo-directives directive.import=Importar directive.import.tooltip=Importar directivas desde un archivo JSON -directive.import.result=Importación completa: {0} importadas, {1} renombradas, {2} omitidas -directive.import.error=Error al importar: formato de archivo no válido o no compatible +directive.import.result=Importación completa\: {0} importadas, {1} renombradas, {2} omitidas +directive.import.error=Error al importar\: formato de archivo no válido o no compatible +directive.default.set=Establecer como directiva predeterminada +directive.default.unset=Quitar como directiva predeterminada # Log Levels log.level.error=Error @@ -919,7 +944,7 @@ message.edited.indicator=(editado) message.date.today=Hoy message.date.yesterday=Ayer message.token.usage={0} tokens · {1} de entrada / {2} de salida -message.token.usage.tooltip=Tokens utilizados por esta respuesta.\nEntrada: su prompt + contexto enviado a la IA.\nSalida: la respuesta generada por la IA. +message.token.usage.tooltip=Tokens utilizados por esta respuesta.\nEntrada\: su prompt + contexto enviado a la IA.\nSalida\: la respuesta generada por la IA. # Bookmarks chat.bookmarks.button.tooltip=Marcadores @@ -956,10 +981,6 @@ provider.picker.description.openai=Modelos de IA en la nube de OpenAI. Requiere provider.picker.description.anthropic=Modelos de IA en la nube de Anthropic. Requiere una clave API. Regístrese en console.anthropic.com, cree una clave API y añada créditos a su cuenta antes de conectarse. provider.picker.description.gemini=Modelos de IA en la nube de Google. Regístrese en aistudio.google.com y genere una clave API gratuita. No se requiere tarjeta de crédito para el nivel gratuito. provider.picker.description.xai=Modelos de IA en la nube de xAI. Requiere una clave API. Regístrese en console.x.ai, cree una clave API y añada créditos a su cuenta antes de conectarse. -provider.picker.description.ollama=Ejecute modelos de código abierto localmente. No se requiere clave API. Descargue Ollama de ollama.com, luego descargue un modelo (p. ej. ollama pull llama3) antes de conectarse. -provider.picker.description.docker=Ejecute modelos a través del ejecutor de modelos de IA integrado de Docker Desktop. No se requiere clave API. Requiere Docker Desktop 4.40+ con la función Model Runner habilitada. -provider.picker.description.localai=Servidor de IA local autoalojado y compatible con OpenAI. No se requiere clave API. Instale LocalAI, descargue un modelo e inicie el servidor antes de conectarse. -provider.picker.description.lmstudio=Ejecute LLMs locales con una interfaz de escritorio fácil de usar. No se requiere clave API. Descargue LM Studio de lmstudio.ai, descargue un modelo, cárguelo y habilite el servidor local antes de conectarse. provider.manage.title=Gestionar proveedores provider.type.picker.title=Agregar proveedor de IA provider.type.picker.select.hint=← Seleccione un proveedor de la lista para ver detalles @@ -970,19 +991,30 @@ provider.template.get.apikey=Obtener clave de API → # OpenAI-Compatible template taglines and setup help (see OpenAiCompatibleTemplate.kt) provider.template.cloudflare_ai.tagline=Ejecuta modelos de IA en la red perimetral global de Cloudflare con Workers AI. -provider.template.cloudflare_ai.help=💡 Para usar Cloudflare AI:\n\n1. Busca tu ID de cuenta en tu panel de Cloudflare\n2. Reemplaza {ACCOUNT_ID} en la URL base con él\n3. Crea un token de API con permiso 'Workers AI' en:\n dash.cloudflare.com/profile/api-tokens +provider.template.cloudflare_ai.help=💡 Para usar Cloudflare AI\:\n\n1. Busca tu ID de cuenta en tu panel de Cloudflare\n2. Reemplaza {ACCOUNT_ID} en la URL base con él\n3. Crea un token de API con permiso ''Workers AI'' en\:\n dash.cloudflare.com/profile/api-tokens +provider.template.deepseek.tagline=Modelos de razonamiento y de propósito general con una API directa y compatible con OpenAI. +provider.template.deepseek.help=💡 Para usar DeepSeek\:\n\n1. Crea una clave de API en\: platform.deepseek.com/api_keys\n2. Añade saldo a tu cuenta de DeepSeek si es necesario\n3. Haz clic en Siguiente para explorar los modelos disponibles provider.template.groq.tagline=Inferencia ultrarrápida para modelos de código abierto — Llama, Mixtral, Gemma y más. -provider.template.groq.help=💡 Para usar Groq:\n\n1. Consigue tu clave API gratuita en: console.groq.com/keys\n2. Ingresa un nombre de modelo, p. ej. llama-3.1-8b-instant\n3. Haz clic en Siguiente para explorar todos los modelos disponibles +provider.template.groq.help=💡 Para usar Groq\:\n\n1. Consigue tu clave API gratuita en\: console.groq.com/keys\n2. Ingresa un nombre de modelo, p. ej. llama-3.1-8b-instant\n3. Haz clic en Siguiente para explorar todos los modelos disponibles provider.template.nvidia_nim.tagline=Ejecuta modelos de IA optimizados en la infraestructura de GPU en la nube de NVIDIA. -provider.template.nvidia_nim.help=💡 Para usar NVIDIA NIM:\n\n1. Consigue tu clave API en: build.nvidia.com\n2. Ingresa un nombre de modelo, p. ej. meta/llama-3.1-8b-instruct\n3. Haz clic en Siguiente para explorar todos los modelos disponibles +provider.template.nvidia_nim.help=💡 Para usar NVIDIA NIM\:\n\n1. Consigue tu clave API en\: build.nvidia.com\n2. Ingresa un nombre de modelo, p. ej. meta/llama-3.1-8b-instruct\n3. Haz clic en Siguiente para explorar todos los modelos disponibles provider.template.openrouter.tagline=Accede a más de 300 modelos — GPT, Claude, Llama, Gemini, Mistral y más a través de una sola API. -provider.template.openrouter.help=💡 Para usar OpenRouter:\n\n1. Consigue tu clave API gratuita en: openrouter.ai/keys\n2. Haz clic en Siguiente para explorar más de 300 modelos disponibles\n3. Muchos modelos tienen un nivel gratuito — no se requiere tarjeta de crédito +provider.template.openrouter.help=💡 Para usar OpenRouter\:\n\n1. Consigue tu clave API gratuita en\: openrouter.ai/keys\n2. Haz clic en Siguiente para explorar más de 300 modelos disponibles\n3. Muchos modelos tienen un nivel gratuito — no se requiere tarjeta de crédito provider.template.together_ai.tagline=Inferencia rápida y económica para más de 100 modelos de código abierto. -provider.template.together_ai.help=💡 Para usar Together AI:\n\n1. Consigue tu clave API en: api.together.ai/settings/api-keys\n2. Haz clic en Siguiente para explorar los modelos disponibles,\n p. ej. meta-llama/Llama-3-8b-chat-hf +provider.template.together_ai.help=💡 Para usar Together AI\:\n\n1. Consigue tu clave API en\: api.together.ai/settings/api-keys\n2. Haz clic en Siguiente para explorar los modelos disponibles,\n p. ej. meta-llama/Llama-3-8b-chat-hf provider.template.lite_llm.tagline=A unified proxy that lets you call 100+ LLMs using the OpenAI format. provider.search.placeholder=Search providers... provider.search.no_results=No providers found -provider.template.lite_llm.help=💡 To use LiteLLM:\n\n1. Start the LiteLLM proxy: litellm --model ollama/llama3\n2. The default URL is http://localhost:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lite_llm.help=💡 To use LiteLLM\:\n\n1. Start the LiteLLM proxy\: litellm --model ollama/llama3\n2. The default URL is http\://localhost\:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lmstudio.tagline=Ejecuta LLM locales con una interfaz de escritorio fácil de usar. No se necesita clave de API. Descarga LM Studio desde lmstudio.ai y activa el servidor local. +provider.template.lmstudio.help=💡 Para usar LM Studio\:\n\n1. Instala LM Studio desde\: https\://lmstudio.ai/\n2. Carga un modelo e inicia el servidor local (pestaña Desarrollador)\n3. Opcionalmente, cambia la URL base si no usas el puerto predeterminado 1234 +provider.template.docker_ai.tagline=Ejecuta modelos de IA a través del ejecutor de modelos integrado de Docker Desktop. No se necesita clave de API. Requiere Docker Desktop 4.40+ con la función de ejecución de modelos habilitada. +provider.template.docker_ai.help=💡 Para usar Docker AI\:\n\n1. Asegúrate de que Docker Desktop 4.40+ esté instalado y en ejecución\n2. Habilita la función Model Runner en la configuración de Docker Desktop\n3. Descarga un modelo, por ejemplo\: docker model pull ai/qwen3-embedding\:0.6B-F16\n4. La URL base predeterminada es http\://localhost\:12434/v1 +provider.template.localai.tagline=Servidor de IA local autohospedado y compatible con OpenAI. No se necesita clave de API. Instala LocalAI, carga un modelo e inicia el servidor antes de conectarte. +provider.template.localai.help=💡 Para usar LocalAI\:\n\n1. Instala LocalAI desde\: https\://localai.io/\n2. Descarga un modelo e inicia el servidor\n3. La URL base predeterminada es http\://localhost\:8080/v1 +provider.template.ollama.tagline=Ejecuta modelos de código abierto localmente. No se necesita clave de API. Descarga Ollama desde ollama.com y luego descarga un modelo (p. ej., ollama pull llama3) antes de conectarte. +provider.template.ollama.help=💡 Para usar Ollama\:\n\n1. Instala Ollama desde\: https\://ollama.com/\n2. Descarga un modelo\: ollama pull llama3\n3. La URL base predeterminada es http\://localhost\:11434/v1 + provider.configure.new.title=Configure {0} provider.edit.title=Edit "{0}" @@ -999,7 +1031,7 @@ provider.setup.required.message=Antes de comenzar a chatear, debe configurar un provider.setup.required.button=Configurar proveedor provider.setup.required.skip=Configurar más tarde provider.setup.empty.state.button=Agregar proveedor -provider.configure.prompt=Configurar proveedor: +provider.configure.prompt=Configurar proveedor\: provider.setup.guide=Cómo configurar {0} provider.apikey.stored=Clave API guardada de forma segura provider.apikey.enter=Introducir clave API @@ -1008,14 +1040,14 @@ provider.apikey.security.link=Descubra cómo protegemos sus datos provider.not.set=No establecido # Provider Configuration - OpenAI -provider.openai.apikey.description=Tu clave API de OpenAI: https://platform.openai.com/account/api-keys +provider.openai.apikey.description=Tu clave API de OpenAI\: https\://platform.openai.com/account/api-keys provider.openai.apikey.stored=Clave API ya almacenada. Deja en blanco para mantener la actual. -provider.openai.setup.help=💡 Para usar OpenAI necesitas una clave API.\n\n1. Consíguela aquí: https://platform.openai.com/account/api-keys\n2. Configúrala en los ajustes o con :change-settings +provider.openai.setup.help=💡 Para usar OpenAI necesitas una clave API.\n\n1. Consíguela aquí\: https\://platform.openai.com/account/api-keys\n2. Configúrala en los ajustes o con \:change-settings # Provider Configuration - Anthropic -provider.anthropic.apikey.description=Tu clave API de Anthropic: https://console.anthropic.com/ +provider.anthropic.apikey.description=Tu clave API de Anthropic\: https\://console.anthropic.com/ provider.anthropic.apikey.stored=Clave API ya almacenada. -provider.anthropic.setup.help=💡 Para usar Anthropic, necesitas una clave API.\n\n1. Consíguela en: https://console.anthropic.com/\n2. Configúrala en los ajustes o con :change-settings +provider.anthropic.setup.help=💡 Para usar Anthropic, necesitas una clave API.\n\n1. Consíguela en\: https\://console.anthropic.com/\n2. Configúrala en los ajustes o con \:change-settings provider.anthropic.max_tokens.label=Max Tokens provider.anthropic.max_tokens.description=Máximo de tokens que el modelo puede generar por respuesta (pensamiento + respuesta combinados). provider.anthropic.thinking_budget_tokens.label=Tokens de presupuesto de pensamiento @@ -1024,35 +1056,21 @@ provider.anthropic.thinking_max_tokens.label=Máximo de tokens de pensamiento provider.anthropic.thinking_max_tokens.description=Límite total de tokens cuando el pensamiento está activo (pensamiento + respuesta). Configura en 0 para usar Max Tokens en su lugar. # Provider Configuration - Gemini -provider.gemini.apikey.description=Tu clave API de Google AI Studio: https://aistudio.google.com/app/apikey +provider.gemini.apikey.description=Tu clave API de Google AI Studio\: https\://aistudio.google.com/app/apikey provider.gemini.apikey.stored=Clave API ya almacenada. -provider.gemini.setup.help=💡 Para usar Gemini, necesitas una clave API.\n\n1. Consíguela en: https://aistudio.google.com/app/apikey\n2. Configúrala en los ajustes o con :change-settings +provider.gemini.setup.help=💡 Para usar Gemini, necesitas una clave API.\n\n1. Consíguela en\: https\://aistudio.google.com/app/apikey\n2. Configúrala en los ajustes o con \:change-settings # Provider Configuration - XAI -provider.xai.apikey.description=Tu clave API de XAI: https://console.x.ai/ +provider.xai.apikey.description=Tu clave API de XAI\: https\://console.x.ai/ provider.xai.apikey.stored=Clave API ya almacenada. -provider.xai.setup.help=💡 Para usar XAI, necesitas una clave API.\n\n1. Consíguela en: https://console.x.ai/\n2. Configúrala en los ajustes o con :change-settings - -# Provider Configuration - Ollama -provider.ollama.baseurl.description=Base URL de Ollama (por defecto: http://localhost:11434) -provider.ollama.setup.help=💡 Para usar Ollama, debe estar ejecutándose localmente.\n\n1. Instálalo desde: https://ollama.ai/\n2. Ejecuta el servicio\n3. Ajusta la URL base si es necesario +provider.xai.setup.help=💡 Para usar XAI, necesitas una clave API.\n\n1. Consíguela en\: https\://console.x.ai/\n2. Configúrala en los ajustes o con \:change-settings -# Provider Configuration - Docker AI -provider.docker.baseurl.description=Base URL de Docker AI (por defecto: http://localhost:12434) -provider.docker.setup.help=💡 Para usar Docker AI, debe estar ejecutándose localmente.\n\n1. Asegúrate de que Docker AI esté instalado y ejecutándose\n2. Ejecuta el servicio\n3. Ajusta la URL base si es necesario -# Provider Configuration - LocalAI -provider.localai.baseurl.description=Base URL de LocalAI -provider.localai.setup.help=💡 Para usar LocalAI, debes ejecutarlo primero.\n\n1. Instala y ejecuta LocalAI\n2. Configura la URL base -# Provider Configuration - LMStudio -provider.lmstudio.baseurl.description=Base URL de LMStudio (por defecto: http://localhost:1234) -provider.lmstudio.setup.help=💡 Para usar LMStudio:\n\n1. Instálalo desde: https://lmstudio.ai/\n2. Ejecuta el servidor local\n3. Ajusta la URL base si es necesario -provider.lmstudio.openai.compat.info=Askimo utiliza los endpoints compatibles con OpenAI (/v1), no la API nativa de LMStudio (/api/v1/). # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=La URL base para su instancia compatible con OpenAI -provider.openai_compatible.apikey.description=Clave API del proveedor (opcional: déjela en blanco si el punto de conexión no requiere autenticación) +provider.openai_compatible.apikey.description=Clave API del proveedor (opcional\: déjela en blanco si el punto de conexión no requiere autenticación) provider.openai_compatible.apikey.stored=La clave API ya está almacenada de forma segura. Déjelo en blanco para mantener la clave existente o introduzca una nueva para actualizarla. provider.openai_compatible.apimode.label=Formato de API provider.openai_compatible.apimode.description=Qué endpoint de la API de OpenAI utiliza este proveedor @@ -1066,7 +1084,7 @@ provider.openai_compatible.httpversion.http2=Más rápido para endpoints que sop # System Resources system.share.feedback=Compartir comentarios -system.ai.provider.tooltip=Proveedor de IA: {0}\nHaz clic para configurar +system.ai.provider.tooltip=Proveedor de IA\: {0}\nHaz clic para configurar system.diagnostics.title=Diagnóstico del sistema system.diagnostics.resources=Recursos system.diagnostics.jvm.memory=Memoria JVM (usada / total) @@ -1077,7 +1095,7 @@ system.diagnostics.telemetry=Telemetría telemetry.export.csv=Exportar CSV telemetry.export.dialog.title=Exportar Telemetría como ZIP telemetry.export.error.title=Error de Exportación -telemetry.export.error.message=Error al exportar datos de telemetría: {0} +telemetry.export.error.message=Error al exportar datos de telemetría\: {0} # Telemetry telemetry.reset=Restablecer datos de telemetría @@ -1127,24 +1145,20 @@ export.format.html.benefit.3=Apariencia profesional export.format.html.benefit.4=Fácil de compartir # Error Messages -error.network=⚠️ No se puede conectar al servicio de IA{endpoint}\n\nPor favor, compruebe:\n• Su conexión a Internet\n• La URL del servicio de IA (revise la configuración)\n• La configuración del firewall\n• La disponibilidad del servicio +error.network=⚠️ No se puede conectar al servicio de IA{endpoint}\n\nPor favor, compruebe\:\n• Su conexión a Internet\n• La URL del servicio de IA (revise la configuración)\n• La configuración del firewall\n• La disponibilidad del servicio error.authentication=⚠️ La clave API no es válida o falta{provider}\n\nSolucione esto configurando su clave API en Ajustes. -error.model_not_found=⚠️ Modelo no encontrado: {model}\n\nEste modelo puede haber sido desactivado o eliminado por el proveedor. Por favor, seleccione un modelo diferente. -error.provider_not_configured=⚠️ No hay ningún proveedor de IA configurado.\n\nPara comenzar a chatear:\n1. Abre los Ajustes\n2. Selecciona un proveedor de IA (OpenAI, Ollama, Anthropic, etc.)\n3. Introduce tu API key o configura la conexión +error.model_not_found=⚠️ Modelo no encontrado\: {model}\n\nEste modelo puede haber sido desactivado o eliminado por el proveedor. Por favor, seleccione un modelo diferente. +error.provider_not_configured=⚠️ No hay ningún proveedor de IA configurado.\n\nPara comenzar a chatear\:\n1. Abre los Ajustes\n2. Selecciona un proveedor de IA (OpenAI, Ollama, Anthropic, etc.)\n3. Introduce tu API key o configura la conexión error.rate_limit=⚠️ Límite de uso excedido\n{retryAfter}\n\nHa alcanzado su límite de uso de la API. Espere antes de enviar más mensajes. error.insufficient_credits=⚠️ Créditos insuficientes\n\nSu saldo de créditos es demasiado bajo.\n\nVaya a la página de facturación para añadir créditos. -error.timeout=⚠️ La solicitud expiró después de {timeout} segundos\n\nPosibles causas:\n• Alta carga del servidor – intente nuevamente más tarde\n• Consulta compleja – intente simplificarla\n• Latencia de red -error.context_length=⚠️ Ventana de contexto excedida\n\nLa entrada total (historial de la conversación + su mensaje + archivos adjuntos) es demasiado grande para que este modelo la procese.\n\nPara solucionar esto:\n• Inicie una nueva sesión de chat para borrar el historial de la conversación\n• Acorte su mensaje o elimine archivos adjuntos grandes\n• Si utiliza un modelo local (Ollama / LM Studio / Docker), aumente el tamaño del contexto en su configuración\n• Cambie a un modelo con una ventana de contexto más grande -error.invalid_request=⚠️ Solicitud no válida: {details}\n\nRevise su entrada e inténtelo de nuevo. -error.local_server=⚠️ ¡Error del servidor de IA local!\n\nEl proceso del servidor de IA se bloqueó o no pudo cargar el modelo. Esto no es causado por Askimo.\n\nPosibles causas:\n• El archivo del modelo está corrupto o incompleto — intente descargarlo nuevamente\n• RAM/VRAM insuficiente — pruebe una cuantización menor (p. ej. Q4 en lugar de Q8)\n• Formato de modelo no compatible con la versión actual del servidor\n• El proceso del servidor fue terminado por el sistema operativo (sin memoria)\n\nQué hacer:\n1. Revise los registros de su servidor de IA local\n2. Reinicie el servidor e inténtelo de nuevo\n3. Vuelva a descargar el modelo\n4. Pruebe un modelo diferente o un nivel de cuantización distinto\n\nDetalles técnicos: {details} -error.empty_http_response=⚠️ ¡El servidor cerró la conexión sin responder!\n\nModelo: {0}\n\nEsto suele ocurrir cuando un proveedor de IA local descarta la solicitud silenciosamente en lugar de devolver un error. La ventana de contexto del modelo es demasiado pequeña para la solicitud actual.\n\nCausas comunes:\n• El historial de la conversación se ha vuelto demasiado largo tras varios turnos\n• Las herramientas habilitadas añaden datos extra a cada solicitud; incluso una pregunta corta con varias herramientas activas puede superar el límite\n• Archivos adjuntos grandes o fragmentos de código han hecho que la solicitud supere el límite\n\n{1}\n\nOtras cosas que intentar:\n• Inicie una nueva conversación para restablecer el contexto\n• Deshabilite las herramientas que no sean necesarias para esta tarea\n• Reduzca el tamaño de su mensaje o de los archivos adjuntos -error.empty_http_response.hint.docker=Para aumentar la ventana de contexto en Docker AI / Docker Model Runner:\n• Pase --context-size al iniciar el modelo (ej. --context-size 32768)\n• O configúrelo en la configuración de ejecución del modelo -error.empty_http_response.hint.ollama=Para aumentar la ventana de contexto en Ollama:\n• Establezca num_ctx en su Modelfile (ej. PARAMETER num_ctx 32768)\n• O páselo como parámetro: ollama run --num-ctx 32768 -error.empty_http_response.hint.lmstudio=Para aumentar la ventana de contexto en LM Studio:\n• Abra el panel de configuración del modelo\n• Busque "Context Length" y auméntelo (ej. a 32768 o superior, hasta el máximo del modelo)\n• Reinicie el servidor local después de cambiar la configuración -error.empty_http_response.hint.localai=Para aumentar la ventana de contexto en LocalAI:\n• Edite el YAML de configuración del modelo y establezca context_size: 32768\n• Reinicie el servidor de LocalAI después de cambiar la configuración -error.empty_http_response.hint.generic=Para aumentar la ventana de contexto:\n• Compruebe los ajustes de su proveedor para ver si hay una opción de longitud de contexto / tamaño de contexto y auméntela (ej. a 32768 tokens)\n• Reinicie el proveedor después de cambiar la configuración -error.remote_server=⚠️ Error del servidor del proveedor de IA\n\nEl servidor del proveedor devolvió un error temporal (p. ej. sobrecargado o no disponible). Esto no es causado por Askimo.\n\nQué hacer:\n• Espere un momento y vuelva a intentarlo — suele ser temporal\n• Consulte la página de estado del proveedor si el problema persiste\n\nDetalles técnicos: {details} -error.system=⚠️ Error del sistema\n\nOcurrió un error inesperado: {errorCode}\n\nContacte al soporte de Askimo con:\n• Lo que estaba haciendo\n• El código de error anterior\n• La marca de tiempo +error.timeout=⚠️ La solicitud expiró después de {timeout} segundos\n\nPosibles causas\:\n• Alta carga del servidor – intente nuevamente más tarde\n• Consulta compleja – intente simplificarla\n• Latencia de red +error.context_length=⚠️ Ventana de contexto excedida\n\nLa entrada total (historial de la conversación + su mensaje + archivos adjuntos) es demasiado grande para que este modelo la procese.\n\nPara solucionar esto\:\n• Inicie una nueva sesión de chat para borrar el historial de la conversación\n• Acorte su mensaje o elimine archivos adjuntos grandes\n• Si utiliza un modelo local (Ollama / LM Studio / Docker), aumente el tamaño del contexto en su configuración\n• Cambie a un modelo con una ventana de contexto más grande +error.invalid_request=⚠️ Solicitud no válida\: {details}\n\nRevise su entrada e inténtelo de nuevo. +error.local_server=⚠️ ¡Error del servidor de IA local\!\n\nEl proceso del servidor de IA se bloqueó o no pudo cargar el modelo. Esto no es causado por Askimo.\n\nPosibles causas\:\n• El archivo del modelo está corrupto o incompleto — intente descargarlo nuevamente\n• RAM/VRAM insuficiente — pruebe una cuantización menor (p. ej. Q4 en lugar de Q8)\n• Formato de modelo no compatible con la versión actual del servidor\n• El proceso del servidor fue terminado por el sistema operativo (sin memoria)\n\nQué hacer\:\n1. Revise los registros de su servidor de IA local\n2. Reinicie el servidor e inténtelo de nuevo\n3. Vuelva a descargar el modelo\n4. Pruebe un modelo diferente o un nivel de cuantización distinto\n\nDetalles técnicos\: {details} +error.empty_http_response=⚠️ ¡El servidor cerró la conexión sin responder\!\n\nModelo\: {0}\n\nEsto suele ocurrir cuando un proveedor de IA local descarta la solicitud silenciosamente en lugar de devolver un error. La ventana de contexto del modelo es demasiado pequeña para la solicitud actual.\n\nCausas comunes\:\n• El historial de la conversación se ha vuelto demasiado largo tras varios turnos\n• Las herramientas habilitadas añaden datos extra a cada solicitud; incluso una pregunta corta con varias herramientas activas puede superar el límite\n• Archivos adjuntos grandes o fragmentos de código han hecho que la solicitud supere el límite\n\n{1}\n\nOtras cosas que intentar\:\n• Inicie una nueva conversación para restablecer el contexto\n• Deshabilite las herramientas que no sean necesarias para esta tarea\n• Reduzca el tamaño de su mensaje o de los archivos adjuntos +error.empty_http_response.hint.generic=Para aumentar la ventana de contexto\:\n• Compruebe los ajustes de su proveedor para ver si hay una opción de longitud de contexto / tamaño de contexto y auméntela (ej. a 32768 tokens)\n• Reinicie el proveedor después de cambiar la configuración +error.remote_server=⚠️ Error del servidor del proveedor de IA\n\nEl servidor del proveedor devolvió un error temporal (p. ej. sobrecargado o no disponible). Esto no es causado por Askimo.\n\nQué hacer\:\n• Espere un momento y vuelva a intentarlo — suele ser temporal\n• Consulte la página de estado del proveedor si el problema persiste\n\nDetalles técnicos\: {details} +error.system=⚠️ Error del sistema\n\nOcurrió un error inesperado\: {errorCode}\n\nContacte al soporte de Askimo con\:\n• Lo que estaba haciendo\n• El código de error anterior\n• La marca de tiempo # Model Availability Errors error.model.not_available.title.chat=Modelo no disponible @@ -1152,10 +1166,11 @@ error.model.not_available.title.embedding=Modelo de incrustación no disponible error.model.not_available.message.chat=El modelo ''{0}'' no está disponible. error.model.not_available.message.embedding=El modelo de incrustación ''{0}'' no está disponible en tu proveedor local.\n\nVe a Configuración → Proveedor IA y selecciona un modelo de incrustación disponible en la tarjeta de configuración del proveedor. error.model.not_available.config_link=Configurar modelo de incrustación -error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration +error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration +error.embedding_model_not_configured=⚠️ No hay ningún modelo de incrustación configurado para ''{provider}''.\n\nVe a Configuración → Proveedor IA y selecciona un modelo de incrustación en la tarjeta de configuración del proveedor. # Generic Application Errors -error.app.message=Ocurrió un error inesperado: {0} +error.app.message=Ocurrió un error inesperado\: {0} # Send Message Errors error.send_message.title=No se pudo enviar el mensaje @@ -1170,26 +1185,28 @@ error.indexing.io_error.title=Error de E/S error.indexing.io_error.message=Se produjo un error de E/S durante la indexación error.indexing.unknown.title=Error de indexación error.indexing.unknown.message=Se produjo un error desconocido durante la indexación +error.indexing.failed.title=No se pudo indexar la fuente de conocimiento +error.indexing.failed_project.title=No se pudo indexar la fuente de conocimiento del proyecto # RAG Configuration settings.rag.title=Configuración de RAG settings.rag.description=Configura los parámetros de Retrieval-Augmented Generation para la recuperación de conocimiento basada en proyectos settings.rag.vector.max.results=Máximo de resultados de búsqueda vectorial -settings.rag.vector.max.results.hint=Número máximo de documentos de la búsqueda vectorial (predeterminado: 20) +settings.rag.vector.max.results.hint=Número máximo de documentos de la búsqueda vectorial (predeterminado\: 20) settings.rag.vector.min.score=Puntuación mínima de búsqueda vectorial -settings.rag.vector.min.score.hint=Puntuación mínima de similitud 0.0–1.0 (predeterminado: 0.3) +settings.rag.vector.min.score.hint=Puntuación mínima de similitud 0.0–1.0 (predeterminado\: 0.3) settings.rag.hybrid.max.results=Máximo de resultados híbridos -settings.rag.hybrid.max.results.hint=Recuento final de documentos tras la fusión (predeterminado: 15) +settings.rag.hybrid.max.results.hint=Recuento final de documentos tras la fusión (predeterminado\: 15) settings.rag.rank.fusion.constant=Constante de fusión de ranking -settings.rag.rank.fusion.constant.hint=Constante RRF para el ranking híbrido (predeterminado: 60) +settings.rag.rank.fusion.constant.hint=Constante RRF para el ranking híbrido (predeterminado\: 60) settings.rag.use.absolute.paths=Absolute Pfade in Zitaten verwenden settings.rag.use.absolute.paths.hint=Vollständige Dateipfade in KI-Antworten anzeigen, um bei mehreren Dateien mit demselben Namen mehr Klarheit zu schaffen settings.rag.embedding.title=Configuración de embeddings settings.rag.embedding.description=Configura los parámetros de segmentación de texto y embeddings settings.rag.embedding.max.chars.per.chunk=Máximo de caracteres por segmento -settings.rag.embedding.max.chars.per.chunk.hint=Número máximo de caracteres en cada segmento de texto (predeterminado: 1500) +settings.rag.embedding.max.chars.per.chunk.hint=Número máximo de caracteres en cada segmento de texto (predeterminado\: 1500) settings.rag.embedding.chunk.overlap=Superposición de segmentos -settings.rag.embedding.chunk.overlap.hint=Número de caracteres superpuestos entre segmentos (predeterminado: 100) +settings.rag.embedding.chunk.overlap.hint=Número de caracteres superpuestos entre segmentos (predeterminado\: 100) settings.rag.embedding.models=Modelos de embedding por proveedor settings.rag.indexing.title=Configuración de indexación settings.rag.indexing.description=Controla qué archivos se indexan y el tamaño máximo de archivo permitido @@ -1208,7 +1225,7 @@ settings.rag.indexing.embedding.batch.size.hint=Número de segmentos de texto en settings.models.title=Modelos settings.models.description=Configura el comportamiento global de los modelos de IA compartido entre todos los proveedores. settings.models.max.tool.calling.round.trips=Máximo de rondas de llamadas a herramientas -settings.models.max.tool.calling.round.trips.hint=Número máximo de llamadas a herramientas que la IA puede realizar en una sola respuesta (predeterminado: 10). Valores más altos permiten tareas de agente más complejas pero aumentan la latencia y el costo. +settings.models.max.tool.calling.round.trips.hint=Número máximo de llamadas a herramientas que la IA puede realizar en una sola respuesta (predeterminado\: 10). Valores más altos permiten tareas de agente más complejas pero aumentan la latencia y el costo. # Memory Settings settings.memory.title=Configuración de memoria @@ -1251,11 +1268,11 @@ file.viewer.title=Visor de archivos file.viewer.title.with.name=Visor de archivos - {0} file.viewer.dialog.close=Cerrar file.viewer.copy.clipboard=Copiar al portapapeles -file.viewer.copied=¡Copiado! +file.viewer.copied=¡Copiado\! # Mermaid Chart Renderer mermaid.setup.required.title=Se requiere Mermaid CLI -mermaid.setup.instructions.link=https://askimo.chat/docs/desktop/mermaid-diagrams/ +mermaid.setup.instructions.link=https\://askimo.chat/docs/desktop/mermaid-diagrams/ mermaid.setup.button.open.guide=Abrir guía de configuración mermaid.rendering.progress=Renderizando diagrama... mermaid.error.rendering.title=Error al renderizar el diagrama @@ -1268,14 +1285,14 @@ mermaid.button.zoom.in=Acercar mermaid.button.zoom.out=Alejar mermaid.button.reset.zoom=Restablecer zoom mermaid.button.retry=Reintentar -mermaid.feedback.copied=¡Copiado! +mermaid.feedback.copied=¡Copiado\! mermaid.setup.button.install=Instalar Mermaid CLI mermaid.setup.button.check.again=Comprobar de nuevo mermaid.setup.button.download.node=Descargar Node.js mermaid.setup.installing=Instalando Mermaid CLI... mermaid.setup.install.failed=La instalación falló. Consulte la salida a continuación para más detalles. mermaid.setup.node.required=No se encontraron Node.js ni npm. Instale Node.js primero para habilitar la instalación con un clic. -mermaid.setup.node.link=https://nodejs.org/en/download +mermaid.setup.node.link=https\://nodejs.org/en/download mermaid.error.code.show=Ver código del diagrama mermaid.error.code.hide=Ocultar código del diagrama @@ -1294,7 +1311,7 @@ mcp.instances.title=Instancias MCP mcp.instances.description=Estas instancias MCP están disponibles mcp.instances.empty=No hay instancias MCP configuradas mcp.instances.count={0} instancia(s) -mcp.instance.server.label=Servidor: {0} +mcp.instance.server.label=Servidor\: {0} mcp.instance.delete.confirm.title=¿Eliminar instancia MCP? mcp.instance.delete.confirm.message=¿Está seguro de que desea eliminar la instancia mcp "{0}"? Esto no se puede deshacer. mcp.instance.enable.tooltip=Activar esta instancia MCP @@ -1320,7 +1337,7 @@ mcp.instance.field.description=Descripción mcp.instance.field.description.placeholder=Breve descripción de lo que hace este servidor mcp.instance.field.transport=Tipo de transporte mcp.instance.field.command=Plantilla de comando -mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2:--flag}} +mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2\:--flag}} mcp.instance.field.command.hint=Comando separado por espacios con marcadores de posición {{parameter}} mcp.instance.validation.error.empty.id=La ID del servidor no puede estar vacía mcp.instance.validation.error.invalid.id.pattern=La ID del servidor solo debe contener letras minúsculas, números y guiones @@ -1329,20 +1346,20 @@ mcp.instance.validation.error.empty.command=La plantilla de comando no puede est mcp.instance.validation.error.empty.parameter.key=La clave del parámetro no puede estar vacía mcp.instance.validation.error.empty.parameter.label=La etiqueta del parámetro no puede estar vacía mcp.instance.env.label=Variables de entorno (Opcional) -mcp.instance.env.placeholder=API_KEY={{apiKey}}\nDEBUG={{debug}} -mcp.instance.env.hint=Formato: CLAVE=valor o CLAVE={{parameter}} (uno por línea) +mcp.instance.env.placeholder=API_KEY\={{apiKey}}\nDEBUG\={{debug}} +mcp.instance.env.hint=Formato\: CLAVE\=valor o CLAVE\={{parameter}} (uno por línea) mcp.instance.transport.stdio=Stdio (Proceso local) mcp.instance.transport.http=HTTP (Servidor remoto) mcp.instance.http.url.label=Plantilla de URL -mcp.instance.http.url.placeholder=https://{{host}}/mcp o https://api.example.com/mcp +mcp.instance.http.url.placeholder=https\://{{host}}/mcp o https\://api.example.com/mcp mcp.instance.http.url.hint=URL del endpoint del servidor. Use marcadores de posición {{parameter}} para valores dinámicos mcp.instance.http.headers.label=Encabezados HTTP (Opcional) -mcp.instance.http.headers.placeholder=Authorization=Bearer {{apiKey}}\nX-Tenant-Id={{tenantId}} -mcp.instance.http.headers.hint=Formato: Nombre-Encabezado=valor o Nombre-Encabezado={{parameter}} (uno por línea) +mcp.instance.http.headers.placeholder=Authorization\=Bearer {{apiKey}}\nX-Tenant-Id\={{tenantId}} +mcp.instance.http.headers.hint=Formato\: Nombre-Encabezado\=valor o Nombre-Encabezado\={{parameter}} (uno por línea) mcp.instance.http.timeout.label=Tiempo de espera (ms) mcp.instance.http.timeout.hint=Tiempo de espera de la solicitud en milisegundos mcp.instance.validation.error.empty.url=La plantilla de URL no puede estar vacía -mcp.instance.validation.error.invalid.url=La plantilla de URL debe comenzar con http:// o https:// +mcp.instance.validation.error.invalid.url=La plantilla de URL debe comenzar con http\:// o https\:// # MCP Integrations (Project View) mcp.instance.delete.tooltip=Eliminar instancia MCP @@ -1379,6 +1396,12 @@ mcp.tool.category.WEATHER.desc=Datos meteorológicos y pronósticos mcp.tool.category.WEB_SEARCH.desc=Búsqueda web y lectura de páginas mcp.tool.category.DATETIME.desc=Operaciones de fecha y hora mcp.tool.category.OTHER.desc=Herramientas no clasificadas +mcp.tool.approval.label=Aprobación +mcp.tool.approval.require_approval=Requerir aprobación +mcp.tool.approval.default=Automatique +mcp.tool.approval.default.hint=Se ejecuta automáticamente. Las categorías de escritura (escritura de archivos, ejecución, git, mensajería) requieren aprobación por defecto. +mcp.tool.approval.require_approval.hint=Siempre se detiene y pide confirmación antes de que la IA ejecute esta herramienta. +mcp.tool.enabled.label=Activado # MCP Tools Dialog mcp.tools.dialog.title=Herramientas disponibles - {0} @@ -1392,7 +1415,7 @@ mcp.tools.dialog.search.count={0} de {1} herramienta(s) mcp.tools.dialog.search.empty=Ninguna herramienta coincide con su búsqueda mcp.tools.dialog.export=Exportar herramientas mcp.tools.dialog.export.success=Herramientas exportadas a {0} -mcp.tools.dialog.export.failed=Error al exportar herramientas: {0} +mcp.tools.dialog.export.failed=Error al exportar herramientas\: {0} # MCP Server Catalog Dialog mcp.catalog.dialog.title=Añadir servidor MCP @@ -1448,7 +1471,7 @@ file.viewer.close=Cerrar visor file.viewer.open.external=Abrir externamente file.viewer.binary=Archivo binario — no se puede previsualizar como texto. file.viewer.too.large=El archivo es demasiado grande para previsualizarlo ({0} KB). El máximo es 512 KB. -file.viewer.error=No se pudo leer el archivo: {0} +file.viewer.error=No se pudo leer el archivo\: {0} file.viewer.select.prompt=Selecciona un archivo del árbol superior para previsualizar su contenido # Project Side Panel @@ -1464,7 +1487,7 @@ panel.collapse=Colapsar panel # RAG Status rag.status.started=Indexación iniciada -rag.status.inprogress=Indexando: {0}% +rag.status.inprogress=Indexando\: {0}% rag.status.inprogress.unknown=Indexando... rag.status.queued=En cola — esperando a que otro proyecto termine de indexar rag.status.ready=Listo @@ -1514,7 +1537,7 @@ plans.editor.label=Contenido YAML plans.editor.placeholder=Pega o escribe aquí el YAML de tu plan... plans.editor.valid=YAML válido plans.editor.hint.title=Referencia -plans.editor.hint.fields=Obligatorio: id, name, steps\nOpcional: description, icon, inputs, workflow\nTipos de paso: text, multiline, toggle, number\nTipos de flujo de trabajo: sequence, parallel, conditional +plans.editor.hint.fields=Obligatorio\: id, name, steps\nOpcional\: description, icon, inputs, workflow\nTipos de paso\: text, multiline, toggle, number\nTipos de flujo de trabajo\: sequence, parallel, conditional plans.editor.menu.edit=Editar YAML plans.editor.ai.label=Generar con IA plans.editor.ai.placeholder=Describe lo que quieres que haga este plan con palabras sencillas... @@ -1573,12 +1596,12 @@ skills.view.panel.collapse=Contraer panel skills.view.panel.expand=Expandir panel skills.view.tab.skills=Habilidades skills.view.tab.workspace=Espacio de trabajo -skills.view.last.run=Última ejecución: {0} +skills.view.last.run=Última ejecución\: {0} skills.view.category.uncategorized=Otros skills.view.search.placeholder=Buscar habilidades ... skills.view.search.clear=Borrar búsqueda skills.view.context.placeholder=¿Qué te gustaría hacer? (opcional) -skills.view.command.mode.hint=Modo comando: una entrada que comienza con / se ejecuta como comando de agente. +skills.view.command.mode.hint=Modo comando\: una entrada que comienza con / se ejecuta como comando de agente. skills.view.system.prompt.preview=Prompt del sistema skills.view.response.title=Respuesta skills.view.followup.label=Seguimiento @@ -1588,7 +1611,7 @@ skills.view.history.empty=Aún no hay ejecuciones skills.view.copy=Copiar skills.view.system.prompt.file=archivo skills.view.system.prompt.files=archivos -skills.view.system.prompt.also.included=También incluido en el contexto del agente: +skills.view.system.prompt.also.included=También incluido en el contexto del agente\: skills.view.docs.tooltip=Ver Guía de Habilidades skills.view.mode.agentic=Agente skills.view.mode.manual=Manual @@ -1628,7 +1651,7 @@ onboarding.step.analytics.section.never=Lo que nunca recopilamos onboarding.step.analytics.toggle.subtitle=Nos ayuda a centrarnos en lo que más importa · se puede cambiar en cualquier momento en Ajustes → Avanzado # Onboarding Step 1: Welcome -onboarding.step.welcome.title=👋 ¡Bienvenido a Askimo! +onboarding.step.welcome.title=👋 ¡Bienvenido a Askimo\! onboarding.step.welcome.description=Tu asistente personal de IA. Chatea con varios modelos de IA, organiza el conocimiento en proyectos y automatiza flujos de trabajo con skills y planes. onboarding.step.welcome.feature1.title=💬 Chatea con IA onboarding.step.welcome.feature1.description=Haz preguntas, recibe ayuda con tareas o conversa con cualquier modelo de IA. @@ -1657,7 +1680,7 @@ onboarding.step.directives.feature3.description=¿Necesitas un tutor paciente pa onboarding.step.directives.link=Ver ejemplos y consejos # Onboarding Step 6: Ready -onboarding.step.ready.title=🚀 ¡Todo listo! +onboarding.step.ready.title=🚀 ¡Todo listo\! onboarding.step.ready.description=Todo está configurado y listo para empezar. Inicia tu primer chat o explora los recursos a continuación. onboarding.step.ready.link.docs=📚 Explorar la documentación onboarding.step.ready.link.providers=🔧 Configurar proveedores de IA @@ -1667,13 +1690,13 @@ onboarding.step.ready.link.github=⭐ Danos una estrella en GitHub onboarding.step.persona.title=🎯 ¿Qué es lo que principalmente quieres hacer? onboarding.step.persona.description=Elige la opción que más se parezca a tu trabajo. Askimo mostrará las funciones más relevantes. Siempre puedes cambiar esto desde el menú Ver. onboarding.step.persona.developer.description=Leer y escribir código, refactorizar archivos, generar andamiajes o ejecutar tareas agénticas en tu proyecto local. -onboarding.step.persona.developer.features=Habilita: Skills (Gemini CLI, Claude Code), Projects +onboarding.step.persona.developer.features=Habilita\: Skills (Gemini CLI, Claude Code), Projects onboarding.step.persona.researcher.description=Investigar temas, analizar datos, escribir informes estructurados y obtener respuestas fundamentadas en el conocimiento. -onboarding.step.persona.researcher.features=Habilita: Plans, Projects (RAG) +onboarding.step.persona.researcher.features=Habilita\: Plans, Projects (RAG) onboarding.step.persona.manager.description=Redactar correos electrónicos, procesar notas de reuniones, escribir informes de estado o ejecutar flujos de trabajo de contenido de varios pasos. -onboarding.step.persona.manager.features=Habilita: Plans +onboarding.step.persona.manager.features=Habilita\: Plans onboarding.step.persona.everything.description=Hago una mezcla de cosas — muéstrame todas las funciones y yo decidiré qué usar. -onboarding.step.persona.everything.features=Habilita: Skills, Plans, Projects, MCP, RAG +onboarding.step.persona.everything.features=Habilita\: Skills, Plans, Projects, MCP, RAG # Persona labels persona.developer=💻 Escribir y revisar código diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index 46736c9a..e323677e 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -32,6 +32,7 @@ menu.view.appearance.system=Système menu.view.appearance.light=Clair menu.view.appearance.dark=Sombre menu.view.fullscreen=Entrer en plein écran +menu.view.exit.fullscreen=Quitter le plein écran menu.view.bookmarks=Voir les signets menu.terminal=Terminal menu.terminal.new=Nouveau terminal @@ -43,7 +44,7 @@ menu.help.discord=💬 Rejoindre la communauté Discord menu.help.share.x=Partager sur X / Twitter menu.help.share.linkedin=Partager sur LinkedIn menu.help.share.facebook=Partager sur Facebook -menu.help.share.text=Découvrez Askimo — un client IA gratuit et local pour bureau. Compatible avec Ollama, OpenAI, Anthropic et plus. https://askimo.chat +menu.help.share.text=Découvrez Askimo — un client IA gratuit et local pour bureau. Compatible avec Ollama, OpenAI, Anthropic et plus. https\://askimo.chat menu.help.share.hackernews=Publier sur Hacker News menu.eventlog=Journal des événements menu.help.model.capabilities=Ouvrir le fichier des capacités du modèle @@ -60,16 +61,16 @@ dialog.close=Fermer # Backup and Restore backup.export.title=Exporter la sauvegarde backup.export.success.title=Sauvegarde exportée -backup.export.success.message=Sauvegarde exportée avec succès vers :\n{0} +backup.export.success.message=Sauvegarde exportée avec succès vers \:\n{0} backup.export.error.title=Échec de l'exportation -backup.export.error.message=Impossible d'exporter la sauvegarde :\n{0} +backup.export.error.message=Impossible d''exporter la sauvegarde \:\n{0} backup.import.title=Importer la sauvegarde backup.import.confirm.title=Confirmer l'importation backup.import.confirm.message=Cette action remplacera toutes les données actuelles par la sauvegarde.\n\nUne sauvegarde de sécurité sera créée automatiquement avant l'importation.\n\nÊtes-vous sûr de vouloir continuer ? backup.import.success.title=Sauvegarde importée backup.import.success.message=Sauvegarde importée avec succès.\n\nVeuillez redémarrer Askimo pour que tous les changements prennent effet. backup.import.error.title=Échec de l'importation -backup.import.error.message=Impossible d'importer la sauvegarde :\n{0} +backup.import.error.message=Impossible d''importer la sauvegarde \:\n{0} # Event Log eventlog.title=Journal des événements ({0}) @@ -87,7 +88,7 @@ eventlog.window.header=Journal des événements eventlog.window.attach=Réattacher à la fenêtre principale eventlog.window.events.count={0} événements eventlog.window.empty.message=Aucun événement pour le moment. Ils apparaîtront ici lorsqu’ils se produiront. -eventlog.footer.warning=Les entrées les plus anciennes ont été supprimées (limite: {0}) +eventlog.footer.warning=Les entrées les plus anciennes ont été supprimées (limite\: {0}) # Chat Interface chat.new=Nouvelle conversation @@ -165,7 +166,7 @@ session.rename.error.empty=Le titre ne peut pas être vide session.export.file.chooser.title=Enregistrer l’historique session.export.button.export=Exporter session.export.success.title=Exportation réussie -session.export.success.message=La session a été exportée avec succès vers : +session.export.success.message=La session a été exportée avec succès vers \: # Projects project.title=Projets @@ -181,14 +182,16 @@ project.new.dialog.file.browse=Sélectionner les fichiers à traiter... project.new.dialog.sources.label=Matériaux de référence (optionnel) project.new.dialog.sources.add=Ajouter une source project.new.dialog.error.empty.name=Le nom du projet ne peut pas être vide -project.new.dialog.error.create.failed=Échec de la création du projet : {0} +project.new.dialog.error.create.failed=Échec de la création du projet \: {0} project.new.dialog.name.error.empty=Le nom du projet ne peut pas être vide project.new.dialog.button.create=Créer le projet project.new.dialog.button.cancel=Annuler -project.new.dialog.success.title=Projet créé avec succès ! +project.new.dialog.success.title=Projet créé avec succès \! project.new.dialog.success.message=Le projet ''{0}'' a été créé. project.new.dialog.success.countdown=Fermeture dans {0} seconde{1}... project.new.dialog.success.close=Fermer maintenant +project.dialog.defaultDirective.label=Directive par défaut (facultatif) +project.dialog.defaultDirective.none=Aucune project.dialog.url.title=Ajouter un contenu de référence via URL project.dialog.url.description=Saisissez une URL pour ajouter du contenu web comme matériel de référence. L’URL sera validée et vérifiée pour son accessibilité. project.dialog.url.label=URL @@ -206,9 +209,13 @@ project.not.selected=Aucun projet sélectionné # Projects View projects.title=Projets projects.description=Organisez vos discussions autour d'un sujet et joignez des fichiers, des dossiers ou des URL comme sources de connaissances, afin que l'IA dispose toujours du contexte approprié pour ce projet. +projects.rag.embedding.not.configured=Le RAG est désactivé pour les projets car aucun modèle d'embedding n'est configuré pour votre fournisseur d'IA actuel. +projects.rag.embedding.configure=Configurer le modèle d'embedding +projects.rag.embedding.unsupported.provider=Le RAG est désactivé pour les projets car votre fournisseur d'IA actuel ne prend pas en charge les modèles d'embedding. Passez à un fournisseur qui prend en charge les embeddings (par ex. OpenAI, Gemini ou un point de terminaison compatible OpenAI) pour activer le RAG. +projects.rag.embedding.switch.provider=Changer de fournisseur d'IA projects.error=❌ {0} projects.empty=Aucun projet trouvé. -projects.empty.hint=💡 Créez un nouveau projet pour organiser vos sessions de chat ! +projects.empty.hint=💡 Créez un nouveau projet pour organiser vos sessions de chat \! projects.search.placeholder=Rechercher par nom… projects.search.empty=Aucun projet ne correspond à "{0}". projects.col.name=Nom @@ -219,13 +226,16 @@ projects.sources.expand=Afficher les matériaux de référence projects.sources.collapse=Masquer les matériaux de référence projects.sources.empty.title=Aucun document de référence pour le moment projects.sources.empty.description=Ajoutez des documents afin qu’Askimo puisse s’y référer lorsqu’il répond à vos questions -projects.sources.info.tooltip=Les documents de référence aident Askimo à comprendre votre contexte spécifique.\n\n\ -Ajoutez des dossiers, des fichiers ou des sites web contenant les informations auxquelles Askimo doit se référer pour répondre à vos questions.\n\n\ -Par exemple :\n\ +projects.sources.info.tooltip=Les documents de référence aident Askimo à comprendre votre contexte spécifique.\n\ +\n\ +Ajoutez des dossiers, des fichiers ou des sites web contenant les informations auxquelles Askimo doit se référer pour répondre à vos questions.\n\ +\n\ +Par exemple \:\n\ • Documentation de votre projet\n\ • Base de connaissances de l’entreprise\n\ • Spécifications techniques\n\ -• Articles de recherche\n\n\ +• Articles de recherche\n\ +\n\ Askimo analysera ces documents afin de fournir des réponses plus précises et adaptées au contexte. projects.sources.type.local_folders=Dossiers Locaux projects.sources.type.local_files=Fichiers Locaux @@ -236,6 +246,8 @@ projects.sources.add.dialog.title=Ajouter du matériel de référence projects.sources.add.dialog.description=Sélectionnez des dossiers, fichiers ou URL à ajouter comme matériel de référence pour ce projet. projects.sources.add.dialog.button.add=Ajouter projects.sources.delete.tooltip=Supprimer le matériel de référence +projects.sources.watch.tooltip=Surveiller les modifications +projects.sources.more.tooltip=Plus d'options projects.sources.guide=Voir le guide des matériaux de référence projects.error.loading=Impossible de charger les projets. Veuillez réessayer. projects.error.deleting=Impossible de supprimer le projet. Veuillez réessayer. @@ -246,14 +258,16 @@ project.error.loading=Échec du chargement du projet. Veuillez réessayer. project.error.loading_sessions=Échec du chargement des sessions du projet. Veuillez réessayer. project.error.updating=Échec de la mise à jour du projet. Veuillez réessayer. project.error.deleting_knowledge_source=Échec de la suppression du matériel de référence. Veuillez réessayer. +project.error.updating_knowledge_source=Échec de la mise à jour du matériel de référence. Veuillez réessayer. +project.error.rescanning_knowledge_source=Échec de la nouvelle analyse du matériel de référence. Veuillez réessayer. project.knowledge_source.delete.success=Matériel de référence supprimé avec succès. project.edit=Modifier le projet project.reindex=Réindexer le projet project.menu.tooltip=Menu du projet project.new.chat.placeholder=Nouvelle conversation dans {0} project.recent.chats=Conversations récentes -project.no.chats=Pas encore de conversations. Commencez-en une nouvelle ci-dessous ! -project.indexing.label=Indexation de la source de connaissances: {0} +project.no.chats=Pas encore de conversations. Commencez-en une nouvelle ci-dessous \! +project.indexing.label=Indexation de la source de connaissances\: {0} project.indexing.queued=Indexation mise en file d'attente - en attente de la fin d'un autre projet... project.indexing.failed=L'indexation a échoué. Essayez de réindexer à partir du menu du projet. project.indexing.ready.label=Indexé @@ -272,7 +286,7 @@ settings.appearance=Apparence settings.appearance.accent=Couleur d’accent settings.appearance.accent.description=Personnalisez en toute sécurité une seule couleur d’accent. Askimo l’applique aux accents principaux de l’interface et dérive des couleurs associées pour préserver la lisibilité. settings.appearance.accent.label=Couleur d’accent (Hex) -settings.appearance.accent.invalid=Entrez une couleur hexadécimale valide comme #0284C7 +settings.appearance.accent.invalid=Entrez une couleur hexadécimale valide comme \#0284C7 settings.appearance.accent.swatch.primary=Primaire settings.appearance.accent.swatch.primary.container=Conteneur settings.appearance.accent.swatch.on.primary.container=Sur le conteneur @@ -295,8 +309,8 @@ settings.network=Réseau settings.network.description=Configurer les paramètres réseau et proxy settings.mcp.servers=Serveurs MCP settings.skills=Compétences -settings.skills.description=Les Skills sont des agents IA réutilisables qui fonctionnent directement sur votre machine. Chaque skill est un fichier Markdown contenant un prompt système et des instructions. Lorsque vous exécutez un skill, il s'exécute via {0} — lecture et écriture de vos fichiers, exécution de commandes shell et itération jusqu'à ce que la tâche soit terminée. Aucun copier-coller requis. -settings.skills.runtimes=Environnements d'exécution pris en charge : +settings.skills.description=Les Skills sont des agents IA réutilisables qui fonctionnent directement sur votre machine. Chaque skill est un fichier Markdown contenant un prompt système et des instructions. Lorsque vous exécutez un skill, il s''exécute via {0} — lecture et écriture de vos fichiers, exécution de commandes shell et itération jusqu''à ce que la tâche soit terminée. Aucun copier-coller requis. +settings.skills.runtimes=Environnements d'exécution pris en charge \: settings.skills.directory=Répertoire des compétences settings.skills.open.folder=Ouvrir le dossier settings.skills.new.skill=Nouvelle compétence @@ -376,11 +390,11 @@ settings.log.viewer=Fichiers journaux settings.log.viewer.description=Voir les journaux et diagnostics settings.log.viewer.view=Voir les journaux settings.log.viewer.open_folder=Ouvrir le dossier des journaux -settings.log.viewer.path=Fichier journal : {0} +settings.log.viewer.path=Fichier journal \: {0} settings.log.viewer.dialog.title=Journaux de l’application settings.log.viewer.refresh=Rafraîchir settings.log.viewer.copy=Copier -settings.log.viewer.copied=Copié ! +settings.log.viewer.copied=Copié \! settings.log.viewer.loading=Chargement des journaux... settings.log.viewer.error=Erreur lors du chargement des journaux settings.log.viewer.empty=Aucun journal disponible @@ -434,7 +448,7 @@ settings.web_search.api_key=Clé API settings.web_search.api_key.placeholder=Collez votre clé API ici settings.web_search.get_api_key=Obtenir une clé API gratuite ↗ settings.web_search.endpoint=URL de l’instance SearxNG -settings.web_search.endpoint.placeholder=https://search.example.com +settings.web_search.endpoint.placeholder=https\://search.example.com settings.web_search.test=Tester la recherche settings.web_search.test.running=Test en cours... settings.web_search.test.success=✅ La recherche fonctionne @@ -463,7 +477,7 @@ user.profile.interests.custom.placeholder=ex. Apprentissage automatique, Photogr user.profile.interests.custom.hint=Séparez plusieurs centres d’intérêt par des virgules # Welcome Dialog (First Run) -welcome.title=Bienvenue sur Askimo ! +welcome.title=Bienvenue sur Askimo \! welcome.subtitle=Aidez-nous à personnaliser votre expérience IA welcome.avatar.optional=Cliquez pour ajouter une photo (facultatif) welcome.name=Votre nom @@ -501,6 +515,7 @@ user.interest.environment=Environnement # Actions action.delete=Supprimer +action.rescan=Réanalyser action.remove=Supprimer action.edit=Modifier action.pin=Épingler à la barre latérale @@ -526,7 +541,7 @@ action.refresh=Rafraîchir # Happiness Gate (shown before Star Prompt) happiness.gate.title=Comment trouvez-vous Askimo ? happiness.gate.subtitle=Votre avis honnête nous aide à continuer à nous améliorer -happiness.gate.happy=Je l'adore ! 😍 +happiness.gate.happy=Je l'adore \! 😍 happiness.gate.neutral=Ça va 🙂 happiness.gate.unhappy=Pas vraiment 😕 @@ -538,22 +553,22 @@ feedback.comment.placeholder=Décrivez le problème ou partagez vos réflexions feedback.unhappy.dialog.title=Nous adorerions savoir ce qui ne fonctionne pas feedback.unhappy.dialog.subtitle=Parlez-nous de votre expérience avec Askimo pour que nous puissions l'améliorer. feedback.comment.label.unhappy=Qu'est-ce qui ne fonctionne pas pour vous ? -feedback.comment.placeholder.unhappy=ex. : L'historique de session est difficile à trouver, les réponses semblent lentes… +feedback.comment.placeholder.unhappy=ex. \: L'historique de session est difficile à trouver, les réponses semblent lentes… feedback.neutral.dialog.title=Qu'est-ce qui rendrait Askimo meilleur pour vous ? feedback.neutral.dialog.subtitle=Vos idées nous aident à déterminer ce que nous devons créer ensuite. feedback.comment.label.neutral=Qu'est-ce que nous pourrions améliorer ? -feedback.comment.placeholder.neutral=ex. : Je voudrais de meilleurs raccourcis clavier, une commutation de modèle plus rapide… +feedback.comment.placeholder.neutral=ex. \: Je voudrais de meilleurs raccourcis clavier, une commutation de modèle plus rapide… feedback.comment.encourage.hint=Quelques mots font une grande différence — votre feedback va directement à l'équipe. feedback.email.label=Votre e-mail (facultatif) feedback.email.placeholder=you@example.com feedback.email.hint=Utilisé uniquement pour assurer le suivi de votre retour. Nous ne vous enverrons jamais de spam. feedback.action.skip=Passer feedback.action.send=Envoyer le feedback -feedback.thanks.title=Merci pour votre retour ! +feedback.thanks.title=Merci pour votre retour \! feedback.thanks.message=Votre contribution nous aide à améliorer Askimo. Nous l'apprécions vraiment. feedback.thanks.close=Fermer -feedback.remind.title=Pas de souci ! +feedback.remind.title=Pas de souci \! feedback.remind.message=Vous pouvez envoyer un feedback à tout moment depuis le menu Aide → Partager un feedback. feedback.remind.got.it=C'est noté @@ -577,10 +592,10 @@ star.prompt.share.description=Parlez d'Askimo à votre réseau sur X, LinkedIn o star.prompt.maybe.later=Pas maintenant star.prompt.already.starred=Déjà mis en favori ✓ star.prompt.social.proof=⭐ Rejoignez {0} personnes qui ont déjà ajouté une étoile à Askimo -star.prompt.thanks.title=Merci beaucoup ! 🌟 +star.prompt.thanks.title=Merci beaucoup \! 🌟 star.prompt.thanks.message=Votre soutien compte beaucoup et nous aide à continuer à développer Askimo. star.prompt.thanks.done=Terminé ✓ -star.prompt.remind.title=Pas de souci ! +star.prompt.remind.title=Pas de souci \! star.prompt.remind.message=Vous pouvez nous soutenir à tout moment via le menu Aide → Soutenir Askimo. star.prompt.remind.got.it=Compris @@ -619,7 +634,7 @@ about.buildJdk=JDK de compilation about.license=Licence about.description=Description about.description.text=Une plateforme d’agents IA local-first pour ordinateur et CLI. Discutez avec plusieurs fournisseurs (OpenAI, Anthropic, Gemini, xAI, Ollama, LM Studio et plus encore), récupérez des connaissances depuis des fichiers locaux et des URL via le RAG, exécutez des workflows IA en plusieurs étapes avec les Plans, lancez des scripts et connectez des outils externes via MCP — le tout sur votre propre machine. -about.copyright=Droits d'auteur (c) {0} {1} +about.copyright=Droits d''auteur (c) {0} {1} about.runtime.info=Informations d'exécution about.links=Liens @@ -654,7 +669,7 @@ shortcut.send.message=Envoyer le message shortcut.new.line=Nouvelle ligne # Chat View -chat.welcome=Bienvenue sur Askimo !\nCommencez une conversation en tapant un message ci-dessous. +chat.welcome=Bienvenue sur Askimo \!\nCommencez une conversation en tapant un message ci-dessous. chat.no.active.session=Sélectionnez une session dans la barre latérale ou démarrez une nouvelle conversation chat.search.placeholder=Rechercher dans la conversation... chat.search.no.results=Aucun résultat @@ -707,9 +722,15 @@ chat.rag.web_search.chip=Web chat.rag.web_search.tooltip.off=Inclure des résultats web en direct dans le contexte RAG (cliquer pour activer) chat.rag.web_search.tooltip.on=Résultats web en direct inclus dans le contexte RAG (cliquer pour désactiver) chat.image.model.missing.title=Modèle d'image non configuré -chat.image.model.missing.message=Aucun modèle d'image n'est défini pour {0}. Ouvrez Paramètres > Fournisseur d'IA > Modèles de génération d'images et définissez d'abord un nom de modèle. +chat.image.model.missing.message=Aucun modèle d''image n''est défini pour {0}. Ouvrez Paramètres > Fournisseur d''IA > Modèles de génération d''images et définissez d''abord un nom de modèle. chat.tools.button=Outils disponibles chat.tools.button.disabled=Outils disponibles ({0} désactivés) +chat.tool.approval.required=\n\n⏸️ **Approbation requise** — L''IA souhaite exécuter `{0}`{1}\n\n +chat.tool.approval.timed_out=Délai d''approbation de l''outil expiré\: {0} +chat.tool.approval.denied=Exécution de l''outil refusée par l''utilisateur\: {0} +chat.tool.approval.prompt=L''IA souhaite exécuter \: {0} +chat.tool.approval.approve=Approuver +chat.tool.approval.deny=Refuser chat.tools.button.model.no.support=Les outils ne sont pas pris en charge par ce modèle chat.tools.popup.title=Outils disponibles chat.tools.popup.loading=Chargement des serveurs... @@ -736,7 +757,7 @@ chat.attachment.remove=Supprimer la pièce jointe chat.attachment.preview.loading=Chargement de l'aperçu… chat.attachment.preview.file.not.found=(Fichier introuvable) chat.attachment.preview.too.large=(Fichier trop volumineux pour l'aperçu) -chat.attachment.preview.cannot.read=(Impossible de lire le fichier : {0}) +chat.attachment.preview.cannot.read=(Impossible de lire le fichier \: {0}) chat.attachment.preview.more.lines={0} lignes supplémentaires # Sessions View @@ -748,12 +769,12 @@ sessions.col.created=Créé sessions.col.updated=Mis à jour sessions.error=❌ {0} sessions.empty=Aucune session trouvée. -sessions.empty.hint=💡 Démarrez une nouvelle conversation pour créer votre première session ! +sessions.empty.hint=💡 Démarrez une nouvelle conversation pour créer votre première session \! sessions.search.placeholder=Rechercher par titre… sessions.search.empty=Aucune session ne correspond à "{0}". # Generic table pagination controls -table.page.size.label=Lignes par page: +table.page.size.label=Lignes par page\: table.page=Page {0} sur {1} table.page.previous=Page précédente table.page.next=Page suivante @@ -769,7 +790,7 @@ sessions.error.rename.failed=Renommage impossible. # ChatSessionService Errors # Update Check update.dialog.title=Mise à jour du logiciel -update.dialog.new.version.available=Une nouvelle version d’Askimo est disponible ! +update.dialog.new.version.available=Une nouvelle version d’Askimo est disponible \! update.urgency.medium=Vous avez {0} versions de retard — vous pourriez manquer des correctifs importants et de nouvelles fonctionnalités. update.urgency.high=Vous avez {0} versions de retard — vous manquez des améliorations importantes. Veuillez mettre à jour bientôt. update.dialog.current.version.label=Version actuelle @@ -780,7 +801,7 @@ update.dialog.download=Télécharger maintenant update.dialog.how.to.update=Comment mettre à jour update.dialog.later=Plus tard update.dialog.skip.version=Ignorer cette version -update.check.up.to.date=Vous utilisez la dernière version ! +update.check.up.to.date=Vous utilisez la dernière version \! update.check.failed=Échec de la vérification # Event Names @@ -788,6 +809,7 @@ event.update.available=🚀 Nouvelle version disponible event.details.action=Release Notes event.update.download=Télécharger maintenant event.notification.empty=Aucun événement +event.notification.title=Notifications ({0}) event.notification.clear=Effacer event.notification.clear.all=Tout effacer event.notification.group.errors=Erreurs d'arrière-plan @@ -799,6 +821,7 @@ event.indexing.started=Indexation… event.indexing.completed=Index prêt event.indexing.failed=Échec de l'indexation event.indexing.files_indexed={0} fichier(s) indexé(s) +event.file.removed=Fichier supprimé de l'index # Settings View settings.language=Langue @@ -817,8 +840,8 @@ settings.app.language.translation.contribute=Contribuer sur Crowdin settings.ai.response.language=Langue de réponse préférée settings.ai.response.language.description=Forcer l'IA à répondre dans une langue spécifique (laisser vide pour détection automatique) settings.ai.response.language.auto=Détection automatique -settings.ai.response.language.tooltip=L'IA détecte automatiquement votre langue, mais remplacez quand :\n• Apprentissage de langues (pratique immersive)\n• Cohérence professionnelle (ex : docs de code toujours en anglais)\n• Optimisation RAG (correspondre à la langue de la base de connaissances)\n• Enseignement (poser une question dans une langue, expliquer dans une autre)\n• Éviter les changements de langue indésirables -settings.model.select=Sélectionner un modèle pour {0} : +settings.ai.response.language.tooltip=L'IA détecte automatiquement votre langue, mais remplacez quand \:\n• Apprentissage de langues (pratique immersive)\n• Cohérence professionnelle (ex \: docs de code toujours en anglais)\n• Optimisation RAG (correspondre à la langue de la base de connaissances)\n• Enseignement (poser une question dans une langue, expliquer dans une autre)\n• Éviter les changements de langue indésirables +settings.model.select=Sélectionner un modèle pour {0} \: settings.model.loading=Chargement des modèles... settings.model.none=Aucun modèle disponible settings.model.select.title=Sélection du modèle @@ -826,7 +849,7 @@ settings.model.current=Modèle actuel settings.model.selected=Modèle sélectionné settings.model.new=Nouveau modèle settings.model.use.default=Utiliser par défaut -settings.model.change.description=Choisissez un modèle dans la liste ci-dessous : +settings.model.change.description=Choisissez un modèle dans la liste ci-dessous \: settings.model.search=Rechercher un modèle settings.model.search.placeholder=Filtrer les modèles... settings.model.filtered=Affichage de {0} sur {1} modèles @@ -835,22 +858,22 @@ settings.model.chat.filter.label=Modèles de chat · {0} affichés settings.model.chat.filter.show.all=Afficher tout {0} settings.configure.title=Configurer {0} settings.test.connection.testing=Test en cours... -settings.placeholder.baseurl=http://localhost:11434 +settings.placeholder.baseurl=http\://localhost\:11434 provider.connection.failed=Impossible de se connecter au fournisseur. Veuillez vérifier que votre clé API est correcte (pour les fournisseurs cloud) ou que votre URL de base est accessible (pour les fournisseurs locaux). Vous pouvez trouver des instructions de configuration en utilisant le lien d'aide ci-dessus. # Directives Dialog directive.manage.title=Gérer les directives -directive.manage.empty=Aucune directive disponible. Créez-en une pour commencer ! +directive.manage.empty=Aucune directive disponible. Créez-en une pour commencer \! directive.edit.name.label=Nom directive.edit.name.placeholder=Entrez le nom de la directive... directive.edit.content.label=Contenu directive.edit.content.placeholder=Entrez les instructions de la directive... directive.edit.name.required=Le nom est obligatoire directive.edit.content.required=Le contenu est obligatoire -directive.created=Créée : {0} +directive.created=Créée \: {0} directive.new.title=Nouvelle directive directive.new.guidelines=Les directives guident la manière dont l'IA répond à vos messages. Soyez précis sur le ton, le niveau de détail, le format ou toute exigence particulière dont vous avez besoin. -directive.new.name.placeholder=ex.: concise-code, explain-like-im-5 +directive.new.name.placeholder=ex.\: concise-code, explain-like-im-5 directive.new.content.placeholder=Entrez les instructions... directive.new.apply.current=Appliquer à la session actuelle directive.new.create=Créer @@ -862,8 +885,10 @@ directive.export.tooltip=Exporter toutes les directives vers un fichier JSON pou directive.export.filename=askimo-directives directive.import=Importer directive.import.tooltip=Importer des directives à partir d'un fichier JSON -directive.import.result=Importation terminée : {0} importées, {1} renommées, {2} ignorées -directive.import.error=Échec de l'importation : format de fichier non valide ou non pris en charge +directive.import.result=Importation terminée \: {0} importées, {1} renommées, {2} ignorées +directive.import.error=Échec de l'importation \: format de fichier non valide ou non pris en charge +directive.default.set=Définir comme directive par défaut +directive.default.unset=Supprimer comme directive par défaut # Log Levels log.level.error=Erreur @@ -919,7 +944,7 @@ message.edited.indicator=(modifié) message.date.today=Aujourd'hui message.date.yesterday=Hier message.token.usage={0} tokens · {1} en entrée / {2} en sortie -message.token.usage.tooltip=Tokens utilisés par cette réponse.\nEntrée: votre prompt + contexte envoyé à l'IA.\nSortie: la réponse générée par l'IA. +message.token.usage.tooltip=Tokens utilisés par cette réponse.\nEntrée\: votre prompt + contexte envoyé à l'IA.\nSortie\: la réponse générée par l'IA. # Bookmarks chat.bookmarks.button.tooltip=Signets @@ -956,10 +981,6 @@ provider.picker.description.openai=Modèles d'IA dans le cloud d'OpenAI. Nécess provider.picker.description.anthropic=Modèles d'IA dans le cloud d'Anthropic. Nécessite une clé API. Inscrivez-vous sur console.anthropic.com, créez une clé API et ajoutez des crédits à votre compte avant de vous connecter. provider.picker.description.gemini=Modèles d'IA dans le cloud de Google. Inscrivez-vous sur aistudio.google.com et générez une clé API gratuite. Aucune carte de crédit requise pour le niveau gratuit. provider.picker.description.xai=Modèles d'IA dans le cloud de xAI. Nécessite une clé API. Inscrivez-vous sur console.x.ai, créez une clé API et ajoutez des crédits à votre compte avant de vous connecter. -provider.picker.description.ollama=Exécutez des modèles open source localement. Aucune clé API nécessaire. Téléchargez Ollama depuis ollama.com, puis téléchargez un modèle (p. ex. ollama pull llama3) avant de vous connecter. -provider.picker.description.docker=Exécutez des modèles via l'exécuteur de modèles d'IA intégré de Docker Desktop. Aucune clé API nécessaire. Nécessite Docker Desktop 4.40+ avec la fonctionnalité Model Runner activée. -provider.picker.description.localai=Serveur d'IA local auto-hébergé compatible avec OpenAI. Aucune clé API nécessaire. Installez LocalAI, téléchargez un modèle et démarrez le serveur avant de vous connecter. -provider.picker.description.lmstudio=Exécutez des LLM locaux avec une interface de bureau facile à utiliser. Aucune clé API nécessaire. Téléchargez LM Studio depuis lmstudio.ai, téléchargez un modèle, chargez-le, puis activez le serveur local avant de vous connecter. provider.manage.title=Gérer les fournisseurs provider.type.picker.title=Ajouter un fournisseur d'IA provider.type.picker.select.hint=← Sélectionnez un fournisseur dans la liste pour voir les détails @@ -970,19 +991,30 @@ provider.template.get.apikey=Obtenir une clé API → # OpenAI-Compatible template taglines and setup help (see OpenAiCompatibleTemplate.kt) provider.template.cloudflare_ai.tagline=Exécutez des modèles d'IA sur le réseau périphérique mondial de Cloudflare avec Workers AI. -provider.template.cloudflare_ai.help=💡 Pour utiliser Cloudflare AI :\n\n1. Trouvez votre ID de compte dans votre tableau de bord Cloudflare\n2. Remplacez {ACCOUNT_ID} dans l'URL de base par celui-ci\n3. Créez un jeton API avec l'autorisation « Workers AI » sur :\n dash.cloudflare.com/profile/api-tokens +provider.template.cloudflare_ai.help=💡 Pour utiliser Cloudflare AI \:\n\n1. Trouvez votre ID de compte dans votre tableau de bord Cloudflare\n2. Remplacez {ACCOUNT_ID} dans l''URL de base par celui-ci\n3. Créez un jeton API avec l''autorisation « Workers AI » sur \:\n dash.cloudflare.com/profile/api-tokens +provider.template.deepseek.tagline=Modèles de raisonnement et polyvalents dotés d'une API simple compatible avec OpenAI. +provider.template.deepseek.help=💡 Pour utiliser DeepSeek \:\n\n1. Créez une clé API sur \: platform.deepseek.com/api_keys\n2. Ajoutez du crédit à votre compte DeepSeek si nécessaire\n3. Cliquez sur Suivant pour parcourir les modèles disponibles provider.template.groq.tagline=Inférence ultra-rapide pour les modèles open source — Llama, Mixtral, Gemma et plus encore. -provider.template.groq.help=💡 Pour utiliser Groq :\n\n1. Obtenez votre clé API gratuite sur : console.groq.com/keys\n2. Saisissez un nom de modèle, par ex. llama-3.1-8b-instant\n3. Cliquez sur Suivant pour parcourir tous les modèles disponibles +provider.template.groq.help=💡 Pour utiliser Groq \:\n\n1. Obtenez votre clé API gratuite sur \: console.groq.com/keys\n2. Saisissez un nom de modèle, par ex. llama-3.1-8b-instant\n3. Cliquez sur Suivant pour parcourir tous les modèles disponibles provider.template.nvidia_nim.tagline=Exécutez des modèles d'IA optimisés sur l'infrastructure GPU cloud de NVIDIA. -provider.template.nvidia_nim.help=💡 Pour utiliser NVIDIA NIM :\n\n1. Obtenez votre clé API sur : build.nvidia.com\n2. Saisissez un nom de modèle, par ex. meta/llama-3.1-8b-instruct\n3. Cliquez sur Suivant pour parcourir tous les modèles disponibles +provider.template.nvidia_nim.help=💡 Pour utiliser NVIDIA NIM \:\n\n1. Obtenez votre clé API sur \: build.nvidia.com\n2. Saisissez un nom de modèle, par ex. meta/llama-3.1-8b-instruct\n3. Cliquez sur Suivant pour parcourir tous les modèles disponibles provider.template.openrouter.tagline=Accédez à plus de 300 modèles — GPT, Claude, Llama, Gemini, Mistral et plus, via une seule API. -provider.template.openrouter.help=💡 Pour utiliser OpenRouter :\n\n1. Obtenez votre clé API gratuite sur : openrouter.ai/keys\n2. Cliquez sur Suivant pour parcourir plus de 300 modèles disponibles\n3. De nombreux modèles offrent un niveau gratuit — aucune carte de crédit requise +provider.template.openrouter.help=💡 Pour utiliser OpenRouter \:\n\n1. Obtenez votre clé API gratuite sur \: openrouter.ai/keys\n2. Cliquez sur Suivant pour parcourir plus de 300 modèles disponibles\n3. De nombreux modèles offrent un niveau gratuit — aucune carte de crédit requise provider.template.together_ai.tagline=Inférence rapide et abordable pour plus de 100 modèles open source. -provider.template.together_ai.help=💡 Pour utiliser Together AI :\n\n1. Obtenez votre clé API sur : api.together.ai/settings/api-keys\n2. Cliquez sur Suivant pour parcourir les modèles disponibles,\n par ex. meta-llama/Llama-3-8b-chat-hf +provider.template.together_ai.help=💡 Pour utiliser Together AI \:\n\n1. Obtenez votre clé API sur \: api.together.ai/settings/api-keys\n2. Cliquez sur Suivant pour parcourir les modèles disponibles,\n par ex. meta-llama/Llama-3-8b-chat-hf provider.template.lite_llm.tagline=A unified proxy that lets you call 100+ LLMs using the OpenAI format. provider.search.placeholder=Search providers... provider.search.no_results=No providers found -provider.template.lite_llm.help=💡 To use LiteLLM:\n\n1. Start the LiteLLM proxy: litellm --model ollama/llama3\n2. The default URL is http://localhost:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lite_llm.help=💡 To use LiteLLM\:\n\n1. Start the LiteLLM proxy\: litellm --model ollama/llama3\n2. The default URL is http\://localhost\:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lmstudio.tagline=Exécutez des LLM locaux avec une interface de bureau simple d'utilisation. Aucune clé API requise. Téléchargez LM Studio sur lmstudio.ai et activez le serveur local. +provider.template.lmstudio.help=💡 Pour utiliser LM Studio \:\n\n1. Installez LM Studio depuis \: https\://lmstudio.ai/\n2. Chargez un modèle et démarrez le serveur local (onglet Développeur)\n3. Modifiez éventuellement l'URL de base si vous n'utilisez pas le port par défaut 1234 +provider.template.docker_ai.tagline=Exécutez des modèles d'IA via l'exécuteur de modèles intégré de Docker Desktop. Aucune clé API requise. Nécessite Docker Desktop 4.40+ avec la fonctionnalité Model Runner activée. +provider.template.docker_ai.help=💡 Pour utiliser Docker AI \:\n\n1. Assurez-vous que Docker Desktop 4.40+ est installé et en cours d'exécution\n2. Activez la fonctionnalité Model Runner dans les paramètres de Docker Desktop\n3. Téléchargez un modèle, ex. \: docker model pull ai/qwen3-embedding\:0.6B-F16\n4. L'URL de base par défaut est http\://localhost\:12434/v1 +provider.template.localai.tagline=Serveur IA local auto-hébergé et compatible OpenAI. Aucune clé API requise. Installez LocalAI, chargez un modèle et démarrez le serveur avant de vous connecter. +provider.template.localai.help=💡 Pour utiliser LocalAI \:\n\n1. Installez LocalAI depuis \: https\://localai.io/\n2. Téléchargez un modèle et démarrez le serveur\n3. L'URL de base par défaut est http\://localhost\:8080/v1 +provider.template.ollama.tagline=Exécutez des modèles open source localement. Aucune clé API requise. Téléchargez Ollama sur ollama.com, puis téléchargez un modèle (ex. \: ollama pull llama3) avant de vous connecter. +provider.template.ollama.help=💡 Pour utiliser Ollama \:\n\n1. Installez Ollama depuis \: https\://ollama.com/\n2. Téléchargez un modèle \: ollama pull llama3\n3. L'URL de base par défaut est http\://localhost\:11434/v1 + provider.configure.new.title=Configure {0} provider.edit.title=Edit "{0}" @@ -999,7 +1031,7 @@ provider.setup.required.message=Avant de pouvoir commencer à discuter, vous dev provider.setup.required.button=Configurer le fournisseur provider.setup.required.skip=Configurer plus tard provider.setup.empty.state.button=Ajouter un fournisseur -provider.configure.prompt=Configurer le fournisseur : +provider.configure.prompt=Configurer le fournisseur \: provider.setup.guide=Comment configurer {0} provider.apikey.stored=Clé API stockée de manière sécurisée provider.apikey.enter=Saisir la clé API @@ -1008,14 +1040,14 @@ provider.apikey.security.link=Découvrez comment nous protégeons vos données provider.not.set=Non défini # Provider Configuration - OpenAI -provider.openai.apikey.description=Votre clé API OpenAI : https://platform.openai.com/account/api-keys +provider.openai.apikey.description=Votre clé API OpenAI \: https\://platform.openai.com/account/api-keys provider.openai.apikey.stored=Clé API déjà stockée. Laissez vide pour conserver l’actuelle. -provider.openai.setup.help=💡 Pour utiliser OpenAI, une clé API est nécessaire.\n\n1. Obtenez-la ici : https://platform.openai.com/account/api-keys\n2. Configurez-la dans les paramètres ou via :change-settings +provider.openai.setup.help=💡 Pour utiliser OpenAI, une clé API est nécessaire.\n\n1. Obtenez-la ici \: https\://platform.openai.com/account/api-keys\n2. Configurez-la dans les paramètres ou via \:change-settings # Provider Configuration - Anthropic -provider.anthropic.apikey.description=Votre clé API Anthropic : https://console.anthropic.com/ +provider.anthropic.apikey.description=Votre clé API Anthropic \: https\://console.anthropic.com/ provider.anthropic.apikey.stored=Clé API déjà stockée. -provider.anthropic.setup.help=💡 Pour utiliser Anthropic, une clé API est nécessaire.\n\n1. Obtenez-la ici : https://console.anthropic.com/\n2. Configurez-la dans les paramètres ou via :change-settings +provider.anthropic.setup.help=💡 Pour utiliser Anthropic, une clé API est nécessaire.\n\n1. Obtenez-la ici \: https\://console.anthropic.com/\n2. Configurez-la dans les paramètres ou via \:change-settings provider.anthropic.max_tokens.label=Max Tokens provider.anthropic.max_tokens.description=Nombre maximal de jetons que le modèle peut générer par réponse (réflexion + réponse combinées). provider.anthropic.thinking_budget_tokens.label=Jetons de budget de réflexion @@ -1024,31 +1056,17 @@ provider.anthropic.thinking_max_tokens.label=Max de jetons de réflexion provider.anthropic.thinking_max_tokens.description=Plafond total de jetons lorsque la réflexion est activée (réflexion + réponse). Définissez sur 0 pour utiliser Max Tokens à la place. # Provider Configuration - Gemini -provider.gemini.apikey.description=Votre clé API Google AI Studio : https://aistudio.google.com/app/apikey +provider.gemini.apikey.description=Votre clé API Google AI Studio \: https\://aistudio.google.com/app/apikey provider.gemini.apikey.stored=Clé API déjà stockée. -provider.gemini.setup.help=💡 Pour utiliser Gemini, une clé API est nécessaire.\n\n1. Obtenez-la ici : https://aistudio.google.com/app/apikey\n2. Configurez-la dans les paramètres ou via :change-settings +provider.gemini.setup.help=💡 Pour utiliser Gemini, une clé API est nécessaire.\n\n1. Obtenez-la ici \: https\://aistudio.google.com/app/apikey\n2. Configurez-la dans les paramètres ou via \:change-settings # Provider Configuration - XAI -provider.xai.apikey.description=Votre clé API XAI : https://console.x.ai/ +provider.xai.apikey.description=Votre clé API XAI \: https\://console.x.ai/ provider.xai.apikey.stored=Clé API déjà stockée. -provider.xai.setup.help=💡 Pour utiliser XAI, une clé API est nécessaire.\n\n1. Obtenez-la ici : https://console.x.ai/\n2. Configurez-la dans les paramètres ou via :change-settings - -# Provider Configuration - Ollama -provider.ollama.baseurl.description=Base URL Ollama (défaut : http://localhost:11434) -provider.ollama.setup.help=💡 Pour utiliser Ollama, il doit s'exécuter localement.\n\n1. Installez : https://ollama.ai/\n2. Lancez le service\n3. Ajustez l'URL de base si nécessaire +provider.xai.setup.help=💡 Pour utiliser XAI, une clé API est nécessaire.\n\n1. Obtenez-la ici \: https\://console.x.ai/\n2. Configurez-la dans les paramètres ou via \:change-settings -# Provider Configuration - Docker AI -provider.docker.baseurl.description=Base URL Docker AI (défaut : http://localhost:12434) -provider.docker.setup.help=💡 Pour utiliser Docker AI, il doit s'exécuter localement.\n\n1. Assurez-vous que Docker AI est installé et en cours d'exécution\n2. Lancez le service\n3. Ajustez l'URL de base si nécessaire -# Provider Configuration - LocalAI -provider.localai.baseurl.description=Base URL LocalAI -provider.localai.setup.help=💡 Pour utiliser LocalAI, vous devez l’exécuter d’abord.\n\n1. Installez et lancez LocalAI\n2. Configurez l’URL de base -# Provider Configuration - LMStudio -provider.lmstudio.baseurl.description=Base URL LMStudio (défaut : http://localhost:1234) -provider.lmstudio.setup.help=💡 Pour utiliser LMStudio :\n\n1. Installez : https://lmstudio.ai/\n2. Lancez le serveur local\n3. Modifier l’URL de base si nécessaire -provider.lmstudio.openai.compat.info=Askimo utilise les points de terminaison compatibles OpenAI (/v1), pas l’API LMStudio native (/api/v1/). # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=L'URL de base pour votre instance compatible OpenAI @@ -1066,7 +1084,7 @@ provider.openai_compatible.httpversion.http2=Plus rapide pour les points de term # System Resources system.share.feedback=Partager vos commentaires -system.ai.provider.tooltip=Fournisseur d’IA : {0}\nCliquez pour configurer +system.ai.provider.tooltip=Fournisseur d’IA \: {0}\nCliquez pour configurer system.diagnostics.title=Diagnostics système system.diagnostics.resources=Ressources system.diagnostics.jvm.memory=Mémoire JVM (utilisée / totale) @@ -1077,7 +1095,7 @@ system.diagnostics.telemetry=Télémétrie telemetry.export.csv=Exporter CSV telemetry.export.dialog.title=Exporter la télémétrie en ZIP telemetry.export.error.title=Échec de l'exportation -telemetry.export.error.message=Échec de l'exportation des données de télémétrie : {0} +telemetry.export.error.message=Échec de l''exportation des données de télémétrie \: {0} # Telemetry telemetry.reset=Réinitialiser les données de télémétrie @@ -1127,24 +1145,20 @@ export.format.html.benefit.3=Aspect professionnel export.format.html.benefit.4=Facile à partager # Error Messages -error.network=⚠️ Impossible de se connecter au service IA{endpoint}\n\nVeuillez vérifier :\n• Votre connexion Internet\n• L’URL du service IA (vérifiez les paramètres)\n• Les paramètres du pare-feu\n• La disponibilité du service +error.network=⚠️ Impossible de se connecter au service IA{endpoint}\n\nVeuillez vérifier \:\n• Votre connexion Internet\n• L’URL du service IA (vérifiez les paramètres)\n• Les paramètres du pare-feu\n• La disponibilité du service error.authentication=⚠️ La clé API est manquante ou invalide{provider}\n\nCorrigez cela en configurant votre clé API dans les paramètres. -error.model_not_found=⚠️ Modèle introuvable : {model}\n\nCe modèle a peut-être été déprécié ou supprimé par le fournisseur. Veuillez sélectionner un autre modèle. -error.provider_not_configured=⚠️ Aucun fournisseur IA configuré.\n\nPour commencer à discuter :\n1. Ouvrez les paramètres\n2. Sélectionnez un fournisseur IA (OpenAI, Ollama, Anthropic, etc.)\n3. Entrez votre clé API ou configurez la connexion +error.model_not_found=⚠️ Modèle introuvable \: {model}\n\nCe modèle a peut-être été déprécié ou supprimé par le fournisseur. Veuillez sélectionner un autre modèle. +error.provider_not_configured=⚠️ Aucun fournisseur IA configuré.\n\nPour commencer à discuter \:\n1. Ouvrez les paramètres\n2. Sélectionnez un fournisseur IA (OpenAI, Ollama, Anthropic, etc.)\n3. Entrez votre clé API ou configurez la connexion error.rate_limit=⚠️ Limite d’utilisation atteinte\n{retryAfter}\n\nVous avez atteint votre limite d’utilisation de l’API. Veuillez patienter avant d’envoyer d’autres messages. error.insufficient_credits=⚠️ Crédits insuffisants\n\nVotre solde est trop faible pour utiliser ce fournisseur.\n\nVisitez la page de facturation pour ajouter des crédits. -error.timeout=⚠️ La requête a expiré après {timeout} secondes\n\nCauses possibles :\n• Charge serveur élevée – réessayez plus tard\n• Requête complexe – simplifiez-la\n• Latence réseau -error.context_length=⚠️ Fenêtre de contexte dépassée\n\nL'entrée totale (historique de la conversation + votre message + pièces jointes) est trop volumineuse pour être traitée par ce modèle.\n\nPour corriger cela :\n• Démarrez une nouvelle session de chat pour effacer l'historique de la conversation\n• Raccourcissez votre message ou supprimez les pièces jointes volumineuses\n• Si vous utilisez un modèle local (Ollama / LM Studio / Docker), augmentez la taille du contexte dans ses paramètres\n• Passez à un modèle avec une fenêtre de contexte plus grande -error.invalid_request=⚠️ Requête invalide : {details}\n\nVeuillez vérifier votre saisie et réessayer. -error.local_server=⚠️ Erreur du serveur IA local !\n\nLe processus du serveur IA a planté ou n'a pas pu charger le modèle. Ce n'est pas causé par Askimo.\n\nCauses possibles :\n• Le fichier modèle est corrompu ou incomplet — essayez de le retélécharger\n• RAM/VRAM insuffisante — essayez une quantification plus petite (ex. Q4 au lieu de Q8)\n• Format de modèle non pris en charge par la version actuelle du serveur\n• Le processus serveur a été tué par le système d'exploitation (mémoire insuffisante)\n\nQue faire :\n1. Consultez les journaux de votre serveur IA local\n2. Redémarrez le serveur et réessayez\n3. Re-téléchargez le modèle\n4. Essayez un autre modèle ou niveau de quantification\n\nDétails techniques : {details} -error.empty_http_response=⚠️ Le serveur a fermé la connexion sans répondre !\n\nModèle : {0}\n\nCela se produit généralement lorsqu'un fournisseur d'IA local ignore silencieusement la requête au lieu de renvoyer une erreur. La fenêtre de contexte du modèle est trop petite pour la requête actuelle.\n\nCauses courantes :\n• L'historique de la conversation est devenu trop long au fil des tours\n• Les outils activés ajoutent des données supplémentaires à chaque requête — même une question courte avec plusieurs outils actifs peut dépasser la limite\n• Des fichiers joints volumineux ou des extraits de code ont fait dépasser la limite à la requête\n\n{1}\n\nAutres pistes à explorer :\n• Démarrez une nouvelle conversation pour réinitialiser le contexte\n• Désactivez les outils qui ne sont pas nécessaires pour cette tâche\n• Réduisez la taille de votre message ou des fichiers joints -error.empty_http_response.hint.docker=Pour augmenter la fenêtre de contexte dans Docker AI / Docker Model Runner :\n• Passez --context-size lors du démarrage du modèle (ex. --context-size 32768)\n• Ou définissez-le dans la configuration d'exécution du modèle -error.empty_http_response.hint.ollama=Pour augmenter la fenêtre de contexte dans Ollama :\n• Définissez num_ctx dans votre Modelfile (ex. PARAMETER num_ctx 32768)\n• Ou passez-le comme paramètre : ollama run --num-ctx 32768 -error.empty_http_response.hint.lmstudio=Pour augmenter la fenêtre de contexte dans LM Studio :\n• Ouvrez le panneau des paramètres du modèle\n• Recherchez "Context Length" et augmentez-le (ex. à 32768 ou plus, jusqu'au maximum du modèle)\n• Redémarrez le serveur local après avoir modifié le paramètre -error.empty_http_response.hint.localai=Pour augmenter la fenêtre de contexte dans LocalAI :\n• Modifiez le YAML de configuration du modèle et définissez context_size : 32768\n• Redémarrez le serveur LocalAI après avoir modifié le paramètre -error.empty_http_response.hint.generic=Pour augmenter la fenêtre de contexte :\n• Vérifiez les paramètres de votre fournisseur pour une option de longueur de contexte / taille de contexte et augmentez-la (ex. à 32768 jetons)\n• Redémarrez le fournisseur après avoir modifié le paramètre -error.remote_server=⚠️ Erreur du serveur du fournisseur IA\n\nLe serveur du fournisseur a retourné une erreur temporaire (ex. surchargé ou indisponible). Ce n'est pas causé par Askimo.\n\nQue faire :\n• Attendez un moment et réessayez — c'est généralement passager\n• Consultez la page de statut du fournisseur si le problème persiste\n\nDétails techniques : {details} -error.system=⚠️ Erreur système\n\nUne erreur inattendue est survenue : {errorCode}\n\nVeuillez contacter le support Askimo avec :\n• Ce que vous faisiez\n• Le code d’erreur ci-dessus\n• L’horodatage +error.timeout=⚠️ La requête a expiré après {timeout} secondes\n\nCauses possibles \:\n• Charge serveur élevée – réessayez plus tard\n• Requête complexe – simplifiez-la\n• Latence réseau +error.context_length=⚠️ Fenêtre de contexte dépassée\n\nL'entrée totale (historique de la conversation + votre message + pièces jointes) est trop volumineuse pour être traitée par ce modèle.\n\nPour corriger cela \:\n• Démarrez une nouvelle session de chat pour effacer l'historique de la conversation\n• Raccourcissez votre message ou supprimez les pièces jointes volumineuses\n• Si vous utilisez un modèle local (Ollama / LM Studio / Docker), augmentez la taille du contexte dans ses paramètres\n• Passez à un modèle avec une fenêtre de contexte plus grande +error.invalid_request=⚠️ Requête invalide \: {details}\n\nVeuillez vérifier votre saisie et réessayer. +error.local_server=⚠️ Erreur du serveur IA local \!\n\nLe processus du serveur IA a planté ou n''a pas pu charger le modèle. Ce n''est pas causé par Askimo.\n\nCauses possibles \:\n• Le fichier modèle est corrompu ou incomplet — essayez de le retélécharger\n• RAM/VRAM insuffisante — essayez une quantification plus petite (ex. Q4 au lieu de Q8)\n• Format de modèle non pris en charge par la version actuelle du serveur\n• Le processus serveur a été tué par le système d''exploitation (mémoire insuffisante)\n\nQue faire \:\n1. Consultez les journaux de votre serveur IA local\n2. Redémarrez le serveur et réessayez\n3. Re-téléchargez le modèle\n4. Essayez un autre modèle ou niveau de quantification\n\nDétails techniques \: {details} +error.empty_http_response=⚠️ Le serveur a fermé la connexion sans répondre \!\n\nModèle \: {0}\n\nCela se produit généralement lorsqu''un fournisseur d''IA local ignore silencieusement la requête au lieu de renvoyer une erreur. La fenêtre de contexte du modèle est trop petite pour la requête actuelle.\n\nCauses courantes \:\n• L''historique de la conversation est devenu trop long au fil des tours\n• Les outils activés ajoutent des données supplémentaires à chaque requête — même une question courte avec plusieurs outils actifs peut dépasser la limite\n• Des fichiers joints volumineux ou des extraits de code ont fait dépasser la limite à la requête\n\n{1}\n\nAutres pistes à explorer \:\n• Démarrez une nouvelle conversation pour réinitialiser le contexte\n• Désactivez les outils qui ne sont pas nécessaires pour cette tâche\n• Réduisez la taille de votre message ou des fichiers joints +error.empty_http_response.hint.generic=Pour augmenter la fenêtre de contexte \:\n• Vérifiez les paramètres de votre fournisseur pour une option de longueur de contexte / taille de contexte et augmentez-la (ex. à 32768 jetons)\n• Redémarrez le fournisseur après avoir modifié le paramètre +error.remote_server=⚠️ Erreur du serveur du fournisseur IA\n\nLe serveur du fournisseur a retourné une erreur temporaire (ex. surchargé ou indisponible). Ce n''est pas causé par Askimo.\n\nQue faire \:\n• Attendez un moment et réessayez — c''est généralement passager\n• Consultez la page de statut du fournisseur si le problème persiste\n\nDétails techniques \: {details} +error.system=⚠️ Erreur système\n\nUne erreur inattendue est survenue \: {errorCode}\n\nVeuillez contacter le support Askimo avec \:\n• Ce que vous faisiez\n• Le code d’erreur ci-dessus\n• L’horodatage # Model Availability Errors error.model.not_available.title.chat=Modèle non disponible @@ -1152,10 +1166,11 @@ error.model.not_available.title.embedding=Modèle d’embedding non disponible error.model.not_available.message.chat=Le modèle ''{0}'' n’est pas disponible. error.model.not_available.message.embedding=Le modèle d’embedding ''{0}'' n’est pas disponible dans votre fournisseur local.\n\nAccédez à Paramètres → Fournisseur IA et sélectionnez un modèle d’embedding disponible dans la carte de configuration du fournisseur. error.model.not_available.config_link=Configurer le modèle d’embedding -error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration +error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration +error.embedding_model_not_configured=⚠️ Aucun modèle d’embedding n’est configuré pour ''{provider}''.\n\nAccédez à Paramètres → Fournisseur IA et sélectionnez un modèle d’embedding dans la carte de configuration du fournisseur. # Generic Application Errors -error.app.message=Une erreur inattendue s’est produite : {0} +error.app.message=Une erreur inattendue s’est produite \: {0} # Send Message Errors error.send_message.title=Échec de l’envoi du message @@ -1165,31 +1180,33 @@ error.action.configure_provider=Configurer le fournisseur error.indexing.model_not_found.title=Modèle d’embedding introuvable error.indexing.model_not_found.message=Le modèle d’embedding ''{0}'' est introuvable. Veuillez télécharger ou activer ce modèle depuis {1} avant l’indexation. error.indexing.input_too_large.title=Entrée d'embedding trop grande -error.indexing.input_too_large.message=Le modèle d'embedding a rejeté un ou plusieurs segments de [{0}] car le nombre de jetons dépasse la taille maximale de contexte du modèle. Réduisez la taille des segments dans Paramètres → Indexation → Max. caractères par segment, puis relancez l'indexation. +error.indexing.input_too_large.message=Le modèle d''embedding a rejeté un ou plusieurs segments de [{0}] car le nombre de jetons dépasse la taille maximale de contexte du modèle. Réduisez la taille des segments dans Paramètres → Indexation → Max. caractères par segment, puis relancez l''indexation. error.indexing.io_error.title=Erreur d’E/S error.indexing.io_error.message=Une erreur d’E/S s’est produite lors de l’indexation error.indexing.unknown.title=Erreur d’indexation error.indexing.unknown.message=Une erreur inconnue s’est produite lors de l’indexation +error.indexing.failed.title=Échec de l'indexation de la source de connaissances +error.indexing.failed_project.title=Échec de l'indexation de la source de connaissances pour le projet # RAG Configuration settings.rag.title=Configuration RAG settings.rag.description=Configurez les paramètres de la génération augmentée par la recherche pour la récupération de connaissances basée sur les projets settings.rag.vector.max.results=Nombre maximal de résultats de recherche vectorielle -settings.rag.vector.max.results.hint=Nombre maximal de documents issus de la recherche vectorielle (par défaut : 20) +settings.rag.vector.max.results.hint=Nombre maximal de documents issus de la recherche vectorielle (par défaut \: 20) settings.rag.vector.min.score=Score minimal de recherche vectorielle -settings.rag.vector.min.score.hint=Score de similarité minimal 0,0–1,0 (par défaut : 0,3) +settings.rag.vector.min.score.hint=Score de similarité minimal 0,0–1,0 (par défaut \: 0,3) settings.rag.hybrid.max.results=Résultats hybrides maximaux -settings.rag.hybrid.max.results.hint=Nombre final de documents après fusion (par défaut : 15) +settings.rag.hybrid.max.results.hint=Nombre final de documents après fusion (par défaut \: 15) settings.rag.rank.fusion.constant=Constante de fusion de classement -settings.rag.rank.fusion.constant.hint=Constante RRF pour le classement hybride (par défaut : 60) +settings.rag.rank.fusion.constant.hint=Constante RRF pour le classement hybride (par défaut \: 60) settings.rag.use.absolute.paths=Utiliser des chemins absolus dans les citations settings.rag.use.absolute.paths.hint=Afficher les chemins de fichiers complets dans les réponses de l’IA pour plus de clarté lorsque plusieurs fichiers portent le même nom settings.rag.embedding.title=Configuration des embeddings settings.rag.embedding.description=Configurez les paramètres de segmentation du texte et des embeddings settings.rag.embedding.max.chars.per.chunk=Nombre maximal de caractères par segment -settings.rag.embedding.max.chars.per.chunk.hint=Nombre maximal de caractères dans chaque segment de texte (par défaut : 1500) +settings.rag.embedding.max.chars.per.chunk.hint=Nombre maximal de caractères dans chaque segment de texte (par défaut \: 1500) settings.rag.embedding.chunk.overlap=Chevauchement des segments -settings.rag.embedding.chunk.overlap.hint=Nombre de caractères chevauchants entre les segments (par défaut : 100) +settings.rag.embedding.chunk.overlap.hint=Nombre de caractères chevauchants entre les segments (par défaut \: 100) settings.rag.embedding.models=Modèles d’embedding par fournisseur settings.rag.indexing.title=Configuration de l'indexation settings.rag.indexing.description=Contrôlez les fichiers indexés et la taille maximale de fichier autorisée @@ -1208,7 +1225,7 @@ settings.rag.indexing.embedding.batch.size.hint=Nombre de segments de texte envo settings.models.title=Modèles settings.models.description=Configurez le comportement global du modèle IA partagé entre tous les fournisseurs. settings.models.max.tool.calling.round.trips=Nombre maximal d'allers-retours d'appel d'outils -settings.models.max.tool.calling.round.trips.hint=Nombre maximum d'appels d'outils que l'IA peut effectuer dans une seule réponse (défaut : 10). Des valeurs plus élevées permettent des tâches d'agent plus complexes mais augmentent la latence et le coût. +settings.models.max.tool.calling.round.trips.hint=Nombre maximum d'appels d'outils que l'IA peut effectuer dans une seule réponse (défaut \: 10). Des valeurs plus élevées permettent des tâches d'agent plus complexes mais augmentent la latence et le coût. # Memory Settings settings.memory.title=Paramètres de mémoire @@ -1251,11 +1268,11 @@ file.viewer.title=Visionneuse de fichiers file.viewer.title.with.name=Visionneuse de fichiers - {0} file.viewer.dialog.close=Fermer file.viewer.copy.clipboard=Copier dans le presse-papiers -file.viewer.copied=Copié ! +file.viewer.copied=Copié \! # Mermaid Chart Renderer mermaid.setup.required.title=Mermaid CLI requis -mermaid.setup.instructions.link=https://askimo.chat/docs/desktop/mermaid-diagrams/ +mermaid.setup.instructions.link=https\://askimo.chat/docs/desktop/mermaid-diagrams/ mermaid.setup.button.open.guide=Ouvrir le guide de configuration mermaid.rendering.progress=Rendu du diagramme en cours... mermaid.error.rendering.title=Erreur lors du rendu du diagramme @@ -1268,14 +1285,14 @@ mermaid.button.zoom.in=Zoom avant mermaid.button.zoom.out=Zoom arrière mermaid.button.reset.zoom=Réinitialiser le zoom mermaid.button.retry=Réessayer -mermaid.feedback.copied=Copié ! +mermaid.feedback.copied=Copié \! mermaid.setup.button.install=Installer Mermaid CLI mermaid.setup.button.check.again=Vérifier à nouveau mermaid.setup.button.download.node=Télécharger Node.js mermaid.setup.installing=Installation de Mermaid CLI... mermaid.setup.install.failed=L'installation a échoué. Consultez la sortie ci-dessous pour plus de détails. mermaid.setup.node.required=Node.js et npm sont introuvables. Installez d'abord Node.js pour activer l'installation en un clic. -mermaid.setup.node.link=https://nodejs.org/en/download +mermaid.setup.node.link=https\://nodejs.org/en/download mermaid.error.code.show=Afficher le code du diagramme mermaid.error.code.hide=Masquer le code du diagramme @@ -1294,9 +1311,9 @@ mcp.instances.title=Instances MCP mcp.instances.description=Ces instances MCP sont disponibles mcp.instances.empty=Aucune instance MCP configurée mcp.instances.count={0} instance(s) -mcp.instance.server.label=Serveur: {0} +mcp.instance.server.label=Serveur\: {0} mcp.instance.delete.confirm.title=Supprimer l'instance MCP ? -mcp.instance.delete.confirm.message=Êtes-vous sûr de vouloir supprimer l'instance mcp "{0}"? Cette action est irréversible. +mcp.instance.delete.confirm.message=Êtes-vous sûr de vouloir supprimer l''instance mcp "{0}"? Cette action est irréversible. mcp.instance.enable.tooltip=Activer cette instance MCP mcp.instance.disable.tooltip=Désactiver cette instance MCP mcp.instance.add.dialog.title=Ajouter une instance MCP @@ -1320,7 +1337,7 @@ mcp.instance.field.description=Description mcp.instance.field.description.placeholder=Brève description de ce que fait ce serveur mcp.instance.field.transport=Type de transport mcp.instance.field.command=Modèle de commande -mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2:--flag}} +mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2\:--flag}} mcp.instance.field.command.hint=Commande séparée par des espaces avec des espaces réservés {{parameter}} mcp.instance.validation.error.empty.id=L'ID du serveur ne peut pas être vide mcp.instance.validation.error.invalid.id.pattern=L'ID du serveur doit contenir uniquement des minuscules, des chiffres et des tirets @@ -1329,20 +1346,20 @@ mcp.instance.validation.error.empty.command=Le modèle de commande ne peut pas mcp.instance.validation.error.empty.parameter.key=La clé du paramètre ne peut pas être vide mcp.instance.validation.error.empty.parameter.label=L'étiquette du paramètre ne peut pas être vide mcp.instance.env.label=Variables d'environnement (Optionnel) -mcp.instance.env.placeholder=API_KEY={{apiKey}}\nDEBUG={{debug}} -mcp.instance.env.hint=Format : CLÉ=valeur ou CLÉ={{parameter}} (une par ligne) +mcp.instance.env.placeholder=API_KEY\={{apiKey}}\nDEBUG\={{debug}} +mcp.instance.env.hint=Format \: CLÉ\=valeur ou CLÉ\={{parameter}} (une par ligne) mcp.instance.transport.stdio=Stdio (Processus local) mcp.instance.transport.http=HTTP (Serveur distant) mcp.instance.http.url.label=Modèle d'URL -mcp.instance.http.url.placeholder=https://{{host}}/mcp ou https://api.example.com/mcp +mcp.instance.http.url.placeholder=https\://{{host}}/mcp ou https\://api.example.com/mcp mcp.instance.http.url.hint=URL du point de terminaison du serveur. Utilisez des espaces réservés {{parameter}} pour les valeurs dynamiques mcp.instance.http.headers.label=En-têtes HTTP (Optionnel) -mcp.instance.http.headers.placeholder=Authorization=Bearer {{apiKey}}\nX-Tenant-Id={{tenantId}} -mcp.instance.http.headers.hint=Format : Nom-en-tête=valeur ou Nom-en-tête={{parameter}} (une par ligne) +mcp.instance.http.headers.placeholder=Authorization\=Bearer {{apiKey}}\nX-Tenant-Id\={{tenantId}} +mcp.instance.http.headers.hint=Format \: Nom-en-tête\=valeur ou Nom-en-tête\={{parameter}} (une par ligne) mcp.instance.http.timeout.label=Délai (ms) mcp.instance.http.timeout.hint=Délai de la requête en millisecondes mcp.instance.validation.error.empty.url=Le modèle d'URL ne peut pas être vide -mcp.instance.validation.error.invalid.url=Le modèle d'URL doit commencer par http:// ou https:// +mcp.instance.validation.error.invalid.url=Le modèle d'URL doit commencer par http\:// ou https\:// # MCP Integrations (Project View) mcp.instance.delete.tooltip=Supprimer l'instance MCP @@ -1379,6 +1396,12 @@ mcp.tool.category.WEATHER.desc=Données météorologiques et prévisions mcp.tool.category.WEB_SEARCH.desc=Recherche web et lecture de pages mcp.tool.category.DATETIME.desc=Opérations de date et heure mcp.tool.category.OTHER.desc=Outils non classifiés +mcp.tool.approval.label=Approbation +mcp.tool.approval.require_approval=Exiger une approbation +mcp.tool.approval.default=Automatique +mcp.tool.approval.default.hint=S'exécute automatiquement. Les catégories d'écriture (écriture de fichiers, exécution, git, messagerie) nécessitent une approbation par défaut. +mcp.tool.approval.require_approval.hint=Se met toujours en pause et demande votre confirmation avant que l'IA n'exécute cet outil. +mcp.tool.enabled.label=Activé # MCP Tools Dialog mcp.tools.dialog.title=Outils disponibles - {0} @@ -1392,7 +1415,7 @@ mcp.tools.dialog.search.count={0} de {1} outil(s) mcp.tools.dialog.search.empty=Aucun outil ne correspond à votre recherche mcp.tools.dialog.export=Exporter les outils mcp.tools.dialog.export.success=Outils exportés vers {0} -mcp.tools.dialog.export.failed=Échec de l'exportation des outils : {0} +mcp.tools.dialog.export.failed=Échec de l''exportation des outils \: {0} # MCP Server Catalog Dialog mcp.catalog.dialog.title=Ajouter un serveur MCP @@ -1448,7 +1471,7 @@ file.viewer.close=Fermer la visionneuse file.viewer.open.external=Ouvrir en externe file.viewer.binary=Fichier binaire — impossible de prévisualiser sous forme de texte. file.viewer.too.large=Le fichier est trop volumineux pour être prévisualisé ({0} KB). Le maximum est de 512 KB. -file.viewer.error=Impossible de lire le fichier : {0} +file.viewer.error=Impossible de lire le fichier \: {0} file.viewer.select.prompt=Sélectionnez un fichier dans l'arborescence ci-dessus pour prévisualiser son contenu # Project Side Panel @@ -1457,14 +1480,14 @@ panel.context.menu=Menu contextuel panel.context.add.material=Ajouter du matériel de référence panel.context.reindex=Réindexer le projet panel.reindex.confirm.title=Arrêter et réindexer ? -panel.reindex.confirm.message="{0}" est en cours d'indexation. Arrêter l'indexation en cours et réindexer depuis le début ? +panel.reindex.confirm.message="{0}" est en cours d''indexation. Arrêter l''indexation en cours et réindexer depuis le début ? panel.reindex.confirm.button=Arrêter et réindexer panel.reindex.confirm.cancel=Annuler panel.collapse=Réduire le panneau # RAG Status rag.status.started=Indexation démarrée -rag.status.inprogress=Indexation : {0}% +rag.status.inprogress=Indexation \: {0}% rag.status.inprogress.unknown=Indexation... rag.status.queued=En file d'attente — en attente de la fin de l'indexation d'un autre projet rag.status.ready=Prêt @@ -1514,7 +1537,7 @@ plans.editor.label=Contenu YAML plans.editor.placeholder=Collez ou saisissez ici le YAML de votre plan... plans.editor.valid=YAML valide plans.editor.hint.title=Référence -plans.editor.hint.fields=Requis : id, name, steps\nOptionnel : description, icon, inputs, workflow\nTypes d’étape : text, multiline, toggle, number\nTypes de workflow : sequence, parallel, conditional +plans.editor.hint.fields=Requis \: id, name, steps\nOptionnel \: description, icon, inputs, workflow\nTypes d’étape \: text, multiline, toggle, number\nTypes de workflow \: sequence, parallel, conditional plans.editor.menu.edit=Modifier le YAML plans.editor.ai.label=Générer avec l'IA plans.editor.ai.placeholder=Décrivez ce que vous souhaitez que ce plan fasse en mots simples... @@ -1573,12 +1596,12 @@ skills.view.panel.collapse=Réduire le panneau skills.view.panel.expand=Développer le panneau skills.view.tab.skills=Compétences skills.view.tab.workspace=Espace de travail -skills.view.last.run=Dernière exécution : {0} +skills.view.last.run=Dernière exécution \: {0} skills.view.category.uncategorized=Autres skills.view.search.placeholder=Rechercher des compétences ... skills.view.search.clear=Effacer la recherche skills.view.context.placeholder=Que souhaitez-vous faire ? (facultatif) -skills.view.command.mode.hint=Mode commande : une saisie commençant par / est exécutée comme commande d'agent. +skills.view.command.mode.hint=Mode commande \: une saisie commençant par / est exécutée comme commande d'agent. skills.view.system.prompt.preview=Prompt système skills.view.response.title=Réponse skills.view.followup.label=Suivi @@ -1588,7 +1611,7 @@ skills.view.history.empty=Aucun résultat pour le moment skills.view.copy=Copier skills.view.system.prompt.file=fichier skills.view.system.prompt.files=fichiers -skills.view.system.prompt.also.included=Également inclus dans le contexte de l’agent : +skills.view.system.prompt.also.included=Également inclus dans le contexte de l’agent \: skills.view.docs.tooltip=Voir le guide des compétences skills.view.mode.agentic=Agentique skills.view.mode.manual=Manuel @@ -1628,7 +1651,7 @@ onboarding.step.analytics.section.never=Ce que nous ne collectons jamais onboarding.step.analytics.toggle.subtitle=Nous aide à nous concentrer sur l'essentiel · modifiable à tout moment dans Paramètres → Avancé # Onboarding Step 1: Welcome -onboarding.step.welcome.title=👋 Bienvenue sur Askimo ! +onboarding.step.welcome.title=👋 Bienvenue sur Askimo \! onboarding.step.welcome.description=Votre assistant IA personnel. Discutez avec plusieurs modèles IA, organisez vos connaissances en projets, et automatisez des workflows avec des skills et des plans. onboarding.step.welcome.feature1.title=💬 Discutez avec l’IA onboarding.step.welcome.feature1.description=Posez des questions, obtenez de l’aide pour des tâches ou discutez avec n’importe quel modèle IA. @@ -1657,7 +1680,7 @@ onboarding.step.directives.feature3.description=Besoin d’un tuteur patient pou onboarding.step.directives.link=Voir exemples et astuces # Onboarding Step 6: Ready -onboarding.step.ready.title=🚀 Tout est prêt ! +onboarding.step.ready.title=🚀 Tout est prêt \! onboarding.step.ready.description=Tout est configuré et prêt à l’emploi. Démarrez votre première discussion ou explorez les ressources ci-dessous. onboarding.step.ready.link.docs=📚 Parcourir la documentation onboarding.step.ready.link.providers=🔧 Configurer les fournisseurs IA @@ -1667,13 +1690,13 @@ onboarding.step.ready.link.github=⭐ Ajoutez-nous à vos favoris sur GitHub onboarding.step.persona.title=🎯 Que voulez-vous faire principalement ? onboarding.step.persona.description=Choisissez l'option qui ressemble le plus à votre travail. Askimo affichera les fonctionnalités les plus pertinentes. Vous pourrez toujours modifier cela depuis le menu Affichage. onboarding.step.persona.developer.description=Lire et écrire du code, remanier des fichiers, générer des structures ou exécuter des tâches agentiques sur votre projet local. -onboarding.step.persona.developer.features=Active : Skills (Gemini CLI, Claude Code), Projects +onboarding.step.persona.developer.features=Active \: Skills (Gemini CLI, Claude Code), Projects onboarding.step.persona.researcher.description=Rechercher des sujets, analyser des données, rédiger des rapports structurés et obtenir des réponses basées sur les connaissances. -onboarding.step.persona.researcher.features=Active : Plans, Projects (RAG) +onboarding.step.persona.researcher.features=Active \: Plans, Projects (RAG) onboarding.step.persona.manager.description=Rédiger des e-mails, traiter des notes de réunion, écrire des rapports d'état ou exécuter des flux de travail de contenu en plusieurs étapes. -onboarding.step.persona.manager.features=Active : Plans +onboarding.step.persona.manager.features=Active \: Plans onboarding.step.persona.everything.description=Je fais un mélange de choses — montrez-moi toutes les fonctionnalités et je déciderai quoi utiliser. -onboarding.step.persona.everything.features=Active : Skills, Plans, Projects, MCP, RAG +onboarding.step.persona.everything.features=Active \: Skills, Plans, Projects, MCP, RAG # Persona labels persona.developer=💻 Écrire et réviser du code diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index fef6d0f4..8f409946 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -32,6 +32,7 @@ menu.view.appearance.system=システム menu.view.appearance.light=ライト menu.view.appearance.dark=ダーク menu.view.fullscreen=フルスクリーンにする +menu.view.exit.fullscreen=フルスクリーンを終了 menu.view.bookmarks=ブックマークを表示 menu.terminal=ターミナル menu.terminal.new=新しいターミナル @@ -43,7 +44,7 @@ menu.help.discord=💬 Discord コミュニティに参加 menu.help.share.x=X / Twitter でシェア menu.help.share.linkedin=LinkedIn でシェア menu.help.share.facebook=Facebook でシェア -menu.help.share.text=Askimo をチェックアウト — Ollama、OpenAI、Anthropic などに対応した無料のローカル AI デスクトップクライアント。 https://askimo.chat +menu.help.share.text=Askimo をチェックアウト — Ollama、OpenAI、Anthropic などに対応した無料のローカル AI デスクトップクライアント。 https\://askimo.chat menu.help.share.hackernews=Hacker Newsに投稿 menu.eventlog=イベントログ menu.help.model.capabilities=モデル機能ファイルを開く @@ -87,7 +88,7 @@ eventlog.window.header=イベントログ eventlog.window.attach=メインウィンドウに再接続 eventlog.window.events.count={0} 件のイベント eventlog.window.empty.message=まだイベントはありません。発生するとここに表示されます。 -eventlog.footer.warning=最も古いエントリが削除されました (制限: {0}) +eventlog.footer.warning=最も古いエントリが削除されました (制限\: {0}) # Chat Interface chat.new=新しいチャット @@ -165,7 +166,7 @@ session.rename.error.empty=タイトルは必須です session.export.file.chooser.title=チャット履歴を保存 session.export.button.export=エクスポート session.export.success.title=エクスポート成功 -session.export.success.message=チャットセッションは次の場所に正常にエクスポートされました: +session.export.success.message=チャットセッションは次の場所に正常にエクスポートされました\: # Projects project.title=プロジェクト @@ -181,7 +182,7 @@ project.new.dialog.file.browse=処理するファイルを選択... project.new.dialog.sources.label=参考資料(任意) project.new.dialog.sources.add=ソースを追加 project.new.dialog.error.empty.name=プロジェクト名は空にできません -project.new.dialog.error.create.failed=プロジェクトの作成に失敗しました: {0} +project.new.dialog.error.create.failed=プロジェクトの作成に失敗しました\: {0} project.new.dialog.name.error.empty=プロジェクト名は空にできません project.new.dialog.button.create=プロジェクトを作成 project.new.dialog.button.cancel=キャンセル @@ -189,6 +190,8 @@ project.new.dialog.success.title=プロジェクトが正常に作成されま project.new.dialog.success.message=プロジェクト「{0}」が作成されました。 project.new.dialog.success.countdown={0}秒後に閉じます… project.new.dialog.success.close=今すぐ閉じる +project.dialog.defaultDirective.label=デフォルトのディレクティブ (オプション) +project.dialog.defaultDirective.none=なし project.dialog.url.title=URL参照資料を追加 project.dialog.url.description=Webコンテンツを参照資料として追加するためのURLを入力してください。URLは検証され、アクセス可能か確認されます。 project.dialog.url.label=URL @@ -206,6 +209,10 @@ project.not.selected=プロジェクトが選択されていません # Projects View projects.title=プロジェクト projects.description=トピックごとにチャットを整理し、知識ソースとしてファイル、フォルダ、またはURLを添付することで、AIが常にそのプロジェクトに適切なコンテキストを把握できるようにします。 +projects.rag.embedding.not.configured=現在のAIプロバイダーに埋め込みモデルが設定されていないため、プロジェクトのRAGは無効になっています。 +projects.rag.embedding.configure=埋め込みモデルを設定 +projects.rag.embedding.unsupported.provider=現在のAIプロバイダーは埋め込みモデルに対応していないため、プロジェクトのRAGは無効になっています。RAGを有効にするには、埋め込みに対応したプロバイダー(OpenAI、Gemini、またはOpenAI互換エンドポイントなど)に切り替えてください。 +projects.rag.embedding.switch.provider=AIプロバイダーを切り替え projects.error=❌ {0} projects.empty=プロジェクトが見つかりません。 projects.empty.hint=💡 新しいプロジェクトを作成して、チャットセッションを整理しましょう! @@ -219,13 +226,16 @@ projects.sources.expand=参考資料を表示 projects.sources.collapse=参考資料を非表示 projects.sources.empty.title=参照資料がまだありません projects.sources.empty.description=ドキュメントを追加すると、Askimo が質問に回答する際に参照できるようになります -projects.sources.info.tooltip=参照資料は、Askimo があなた固有のコンテキストを理解するのに役立ちます。\n\n\ -質問に回答する際に Askimo が参照すべき情報を含むフォルダー、ファイル、または Web サイトを追加してください。\n\n\ -例:\n\ +projects.sources.info.tooltip=参照資料は、Askimo があなた固有のコンテキストを理解するのに役立ちます。\n\ +\n\ +質問に回答する際に Askimo が参照すべき情報を含むフォルダー、ファイル、または Web サイトを追加してください。\n\ +\n\ +例\:\n\ • プロジェクトのドキュメント\n\ • 会社のナレッジベース\n\ • 技術仕様書\n\ -• 研究論文\n\n\ +• 研究論文\n\ +\n\ Askimo はこれらの資料を検索し、より正確で文脈に沿った回答を提供します。 projects.sources.type.local_folders=ローカルフォルダー projects.sources.type.local_files=ローカルファイル @@ -236,6 +246,8 @@ projects.sources.add.dialog.title=参照資料を追加 projects.sources.add.dialog.description=このプロジェクトの参照資料として、フォルダー、ファイル、またはURLを選択してください。 projects.sources.add.dialog.button.add=追加 projects.sources.delete.tooltip=参照資料を削除 +projects.sources.watch.tooltip=変更を監視 +projects.sources.more.tooltip=その他のオプション projects.sources.guide=参照資料ガイドを見る projects.error.loading=プロジェクトの読み込みに失敗しました。もう一度お試しください。 projects.error.deleting=プロジェクトの削除に失敗しました。もう一度お試しください。 @@ -246,6 +258,8 @@ project.error.loading=プロジェクトの読み込みに失敗しました。 project.error.loading_sessions=プロジェクトセッションの読み込みに失敗しました。もう一度やり直してください。 project.error.updating=プロジェクトの更新に失敗しました。もう一度やり直してください。 project.error.deleting_knowledge_source=参照マテリアルの削除に失敗しました。もう一度やり直してください。 +project.error.updating_knowledge_source=参照マテリアルの更新に失敗しました。もう一度やり直してください。 +project.error.rescanning_knowledge_source=参照マテリアルの再スキャンに失敗しました。もう一度やり直してください。 project.knowledge_source.delete.success=参照マテリアルが正常に削除されました。 project.edit=プロジェクトを編集 project.reindex=プロジェクトを再インデックス @@ -253,7 +267,7 @@ project.menu.tooltip=プロジェクトメニュー project.new.chat.placeholder={0} で新しいチャット project.recent.chats=最近のチャット project.no.chats=まだチャットがありません。下から新しいチャットを開始してください! -project.indexing.label=知識ソースのインデックス化: {0} +project.indexing.label=知識ソースのインデックス化\: {0} project.indexing.queued=インデックス作成をキューに入れました - 他のプロジェクトの完了を待機中です... project.indexing.failed=インデックス作成に失敗しました。プロジェクトメニューから再インデックスをお試しください。 project.indexing.ready.label=インデックス済み @@ -272,7 +286,7 @@ settings.appearance=外観 settings.appearance.accent=アクセントカラー settings.appearance.accent.description=単一のアクセントカラーを安全にカスタマイズします。Askimo は主要な UI アクセントに適用し、読みやすさのために関連色を自動生成します。 settings.appearance.accent.label=アクセントカラー (Hex) -settings.appearance.accent.invalid=#0284C7 のような有効な16進カラーを入力してください +settings.appearance.accent.invalid=\#0284C7 のような有効な16進カラーを入力してください settings.appearance.accent.swatch.primary=プライマリ settings.appearance.accent.swatch.primary.container=コンテナ settings.appearance.accent.swatch.on.primary.container=コンテナ上 @@ -376,11 +390,11 @@ settings.log.viewer=ログファイル settings.log.viewer.description=アプリのログと診断を表示 settings.log.viewer.view=ログを見る settings.log.viewer.open_folder=ログフォルダを開く -settings.log.viewer.path=ログファイル: {0} +settings.log.viewer.path=ログファイル\: {0} settings.log.viewer.dialog.title=アプリケーションログ settings.log.viewer.refresh=再読み込み settings.log.viewer.copy=コピー -settings.log.viewer.copied=コピーしました! +settings.log.viewer.copied=コピーしました\! settings.log.viewer.loading=ログを読み込み中... settings.log.viewer.error=ログの読み込みに失敗 settings.log.viewer.empty=ログがありません @@ -434,7 +448,7 @@ settings.web_search.api_key=APIキー settings.web_search.api_key.placeholder=APIキーをここに貼り付けてください settings.web_search.get_api_key=無料のAPIキーを取得 ↗ settings.web_search.endpoint=SearxNGインスタンスURL -settings.web_search.endpoint.placeholder=https://search.example.com +settings.web_search.endpoint.placeholder=https\://search.example.com settings.web_search.test=検索テスト settings.web_search.test.running=テスト中... settings.web_search.test.success=✅ 検索は正常に動作しています @@ -501,6 +515,7 @@ user.interest.environment=環境 # Actions action.delete=削除 +action.rescan=再スキャン action.remove=削除 action.edit=編集 action.pin=サイドバーに固定 @@ -710,6 +725,12 @@ chat.image.model.missing.title=画像モデルが設定されていません chat.image.model.missing.message={0} に画像モデルが設定されていません。設定 > AI プロバイダー > 画像生成モデルを開き、まずモデル名を設定してください。 chat.tools.button=利用可能なツール chat.tools.button.disabled=利用可能なツール({0} 無効) +chat.tool.approval.required=\n\n⏸️ **承認が必要です** — AIが `{0}`{1} を実行しようとしています\n\n +chat.tool.approval.timed_out=ツールの承認がタイムアウトしました\: {0} +chat.tool.approval.denied=ユーザーによってツールの実行が拒否されました\: {0} +chat.tool.approval.prompt=AIが実行しようとしています\: {0} +chat.tool.approval.approve=承認 +chat.tool.approval.deny=拒否 chat.tools.button.model.no.support=ツールはこのモデルではサポートされていません chat.tools.popup.title=利用可能なツール chat.tools.popup.loading=サーバーを読み込み中... @@ -736,7 +757,7 @@ chat.attachment.remove=添付ファイルを削除 chat.attachment.preview.loading=プレビューを読み込み中… chat.attachment.preview.file.not.found=(ファイルが見つかりません) chat.attachment.preview.too.large=(ファイルが大きすぎてプレビューできません) -chat.attachment.preview.cannot.read=(ファイルを読み込めません: {0}) +chat.attachment.preview.cannot.read=(ファイルを読み込めません\: {0}) chat.attachment.preview.more.lines=さらに {0} 行 # Sessions View @@ -753,7 +774,7 @@ sessions.search.placeholder=タイトルで検索… sessions.search.empty="{0}" に一致するセッションはありません。 # Generic table pagination controls -table.page.size.label=1ページあたりの行数: +table.page.size.label=1ページあたりの行数\: table.page=ページ {0} / {1} table.page.previous=前のページ table.page.next=次のページ @@ -788,6 +809,7 @@ event.update.available=🚀 新バージョンが利用可能 event.details.action=Release Notes event.update.download=今すぐダウンロード event.notification.empty=イベントなし +event.notification.title=通知 ({0}) event.notification.clear=クリア event.notification.clear.all=すべてクリア event.notification.group.errors=バックグラウンドエラー @@ -799,6 +821,7 @@ event.indexing.started=インデックス作成中… event.indexing.completed=インデックス準備完了 event.indexing.failed=インデックス作成失敗 event.indexing.files_indexed={0} 件のファイルをインデックス済み +event.file.removed=インデックスからファイルを削除しました # Settings View settings.language=言語 @@ -818,7 +841,7 @@ settings.ai.response.language=優先応答言語 settings.ai.response.language.description=AIに特定の言語で応答させる(空欄で自動検出) settings.ai.response.language.auto=自動検出 settings.ai.response.language.tooltip=AIは自動的に言語を検出しますが、以下の場合は上書きしてください:\n• 言語学習(実践的な練習)\n• 専門的な一貫性(例:コード文書は常に英語)\n• RAG最適化(ナレッジベースの言語に合わせる)\n• 教育(ある言語で質問し、別の言語で説明)\n• 不要な言語切り替えを防止 -settings.model.select={0} のモデル選択: +settings.model.select={0} のモデル選択\: settings.model.loading=モデル読み込み中... settings.model.none=使用可能なモデルなし settings.model.select.title=モデルを選択 @@ -835,7 +858,7 @@ settings.model.chat.filter.label=チャットモデル · {0}件表示 settings.model.chat.filter.show.all=すべての{0}を表示 settings.configure.title={0} 設定構成 settings.test.connection.testing=テスト中... -settings.placeholder.baseurl=http://localhost:11434 +settings.placeholder.baseurl=http\://localhost\:11434 provider.connection.failed=プロバイダーに接続できませんでした。APIキーが正しいこと(クラウドプロバイダーの場合)、またはベースURLに到達可能であること(ローカルプロバイダーの場合)を確認してください。セットアップ手順については、上のヘルプリンクを使用してください。 # Directives Dialog @@ -847,10 +870,10 @@ directive.edit.content.label=内容 directive.edit.content.placeholder=ディレクティブ内容を入力... directive.edit.name.required=名前は必須です directive.edit.content.required=内容は必須です -directive.created=作成日: {0} +directive.created=作成日\: {0} directive.new.title=新しいディレクティブ directive.new.guidelines=ディレクティブは、AIがメッセージに応答する方法を指示します。トーン、詳細レベル、形式、または必要な特別な要件について具体的に指定してください。 -directive.new.name.placeholder=例: concise-code, explain-like-im-5 +directive.new.name.placeholder=例\: concise-code, explain-like-im-5 directive.new.content.placeholder=ディレクティブ内容を入力... directive.new.apply.current=現在のセッションに適用 directive.new.create=作成 @@ -862,8 +885,10 @@ directive.export.tooltip=すべてのディレクティブをJSONファイルに directive.export.filename=askimo-directives directive.import=インポート directive.import.tooltip=JSONファイルからディレクティブをインポートします -directive.import.result=インポート完了: {0}件をインポート、{1}件を名前変更、{2}件をスキップしました -directive.import.error=インポート失敗: 無効またはサポートされていないファイル形式です +directive.import.result=インポート完了\: {0}件をインポート、{1}件を名前変更、{2}件をスキップしました +directive.import.error=インポート失敗\: 無効またはサポートされていないファイル形式です +directive.default.set=デフォルトのディレクティブとして設定 +directive.default.unset=デフォルトのディレクティブから解除 # Log Levels log.level.error=エラー @@ -919,7 +944,7 @@ message.edited.indicator=(編集済み) message.date.today=今日 message.date.yesterday=昨日 message.token.usage={0} トークン · {1} 入力 / {2} 出力 -message.token.usage.tooltip=この応答で使用されたトークン。\n入力: AIに送信されたプロンプトとコンテキスト。\n出力: AIが生成した返信。 +message.token.usage.tooltip=この応答で使用されたトークン。\n入力\: AIに送信されたプロンプトとコンテキスト。\n出力\: AIが生成した返信。 # Bookmarks chat.bookmarks.button.tooltip=ブックマーク @@ -956,10 +981,6 @@ provider.picker.description.openai=OpenAIのクラウドAIモデル。APIキー provider.picker.description.anthropic=AnthropicのクラウドAIモデル。APIキーが必要です。console.anthropic.comでサインアップし、APIキーを作成して、接続前にアカウントにクレジットを追加してください。 provider.picker.description.gemini=GoogleのクラウドAIモデル。aistudio.google.comでサインアップして、無料のAPIキーを生成してください。無料枠はクレジットカード不要です。 provider.picker.description.xai=xAIのクラウドAIモデル。APIキーが必要です。console.x.aiでサインアップし、APIキーを作成して、接続前にアカウントにクレジットを追加してください。 -provider.picker.description.ollama=オープンソースモデルをローカルで実行。APIキー不要。ollama.comからOllamaをダウンロードし、接続前にモデルを取得してください(例:ollama pull llama3)。 -provider.picker.description.docker=Docker Desktop内蔵のAIモデルランナーを使用してモデルを実行。APIキー不要。Model Runner機能を有効にしたDocker Desktop 4.40以降が必要です。 -provider.picker.description.localai=自己ホスト型のOpenAI互換ローカルAIサーバー。APIキー不要。LocalAIをインストールし、モデルをダウンロードして、接続前にサーバーを起動してください。 -provider.picker.description.lmstudio=使いやすいデスクトップインターフェースでローカルLLMを実行。APIキー不要。lmstudio.aiからLM Studioをダウンロードし、モデルを取得して読み込み、接続前にローカルサーバーを有効にしてください。 provider.manage.title=プロバイダーの管理 provider.type.picker.title=AIプロバイダーを追加 provider.type.picker.select.hint=← リストからプロバイダーを選択して詳細を表示 @@ -970,19 +991,30 @@ provider.template.get.apikey=APIキーを取得 → # OpenAI-Compatible template taglines and setup help (see OpenAiCompatibleTemplate.kt) provider.template.cloudflare_ai.tagline=Workers AI を使って、Cloudflare のグローバルエッジネットワークで AI モデルを実行。 -provider.template.cloudflare_ai.help=💡 Cloudflare AI の使い方:\n\n1. Cloudflare ダッシュボードでアカウント ID を確認\n2. ベース URL 内の {ACCOUNT_ID} をそれに置き換え\n3. 「Workers AI」権限を持つ API トークンを以下で作成:\n dash.cloudflare.com/profile/api-tokens +provider.template.cloudflare_ai.help=💡 Cloudflare AI の使い方\:\n\n1. Cloudflare ダッシュボードでアカウント ID を確認\n2. ベース URL 内の {ACCOUNT_ID} をそれに置き換え\n3. 「Workers AI」権限を持つ API トークンを以下で作成\:\n dash.cloudflare.com/profile/api-tokens +provider.template.deepseek.tagline=OpenAI互換のシンプルなAPIを備えた、推論および汎用モデル。 +provider.template.deepseek.help=💡 DeepSeekの使用方法\:\n\n1. platform.deepseek.com/api_keys でAPIキーを作成します\n2. 必要に応じてDeepSeekアカウントに残高を追加します\n3. 「次へ」をクリックして利用可能なモデルを参照します provider.template.groq.tagline=オープンソースモデル向けの超高速推論 — Llama、Mixtral、Gemma など。 -provider.template.groq.help=💡 Groq の使い方:\n\n1. console.groq.com/keys で無料の API キーを取得\n2. モデル名を入力(例: llama-3.1-8b-instant)\n3. 「次へ」をクリックして利用可能なモデルを閲覧 +provider.template.groq.help=💡 Groq の使い方\:\n\n1. console.groq.com/keys で無料の API キーを取得\n2. モデル名を入力(例\: llama-3.1-8b-instant)\n3. 「次へ」をクリックして利用可能なモデルを閲覧 provider.template.nvidia_nim.tagline=NVIDIA のクラウド GPU インフラで最適化された AI モデルを実行。 -provider.template.nvidia_nim.help=💡 NVIDIA NIM の使い方:\n\n1. build.nvidia.com で API キーを取得\n2. モデル名を入力(例: meta/llama-3.1-8b-instruct)\n3. 「次へ」をクリックして利用可能なモデルを閲覧 +provider.template.nvidia_nim.help=💡 NVIDIA NIM の使い方\:\n\n1. build.nvidia.com で API キーを取得\n2. モデル名を入力(例\: meta/llama-3.1-8b-instruct)\n3. 「次へ」をクリックして利用可能なモデルを閲覧 provider.template.openrouter.tagline=300 以上のモデルにアクセス — GPT、Claude、Llama、Gemini、Mistral などを 1 つの API で。 -provider.template.openrouter.help=💡 OpenRouter の使い方:\n\n1. openrouter.ai/keys で無料の API キーを取得\n2. 「次へ」をクリックして 300 以上の利用可能なモデルを閲覧\n3. 多くのモデルに無料プランあり — クレジットカード不要 +provider.template.openrouter.help=💡 OpenRouter の使い方\:\n\n1. openrouter.ai/keys で無料の API キーを取得\n2. 「次へ」をクリックして 300 以上の利用可能なモデルを閲覧\n3. 多くのモデルに無料プランあり — クレジットカード不要 provider.template.together_ai.tagline=100 以上のオープンソースモデル向けの高速で手頃な推論。 -provider.template.together_ai.help=💡 Together AI の使い方:\n\n1. api.together.ai/settings/api-keys で API キーを取得\n2. 「次へ」をクリックして利用可能なモデルを閲覧\n (例: meta-llama/Llama-3-8b-chat-hf) +provider.template.together_ai.help=💡 Together AI の使い方\:\n\n1. api.together.ai/settings/api-keys で API キーを取得\n2. 「次へ」をクリックして利用可能なモデルを閲覧\n (例\: meta-llama/Llama-3-8b-chat-hf) provider.template.lite_llm.tagline=A unified proxy that lets you call 100+ LLMs using the OpenAI format. provider.search.placeholder=Search providers... provider.search.no_results=No providers found -provider.template.lite_llm.help=💡 To use LiteLLM:\n\n1. Start the LiteLLM proxy: litellm --model ollama/llama3\n2. The default URL is http://localhost:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lite_llm.help=💡 To use LiteLLM\:\n\n1. Start the LiteLLM proxy\: litellm --model ollama/llama3\n2. The default URL is http\://localhost\:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lmstudio.tagline=使いやすいデスクトップインターフェースでローカルLLMを実行します。APIキーは不要です。lmstudio.aiからLM Studioをダウンロードし、ローカルサーバーを有効にしてください。 +provider.template.lmstudio.help=💡 LM Studioの使い方\:\n\n1. https\://lmstudio.ai/ からLM Studioをインストールします\n2. モデルを読み込み、ローカルサーバー(Developerタブ)を起動します\n3. デフォルトのポート1234を使用していない場合は、必要に応じてベースURLを変更します +provider.template.docker_ai.tagline=Docker Desktopの内蔵モデルランナー経由でAIモデルを実行します。APIキーは不要です。Model Runner機能が有効なDocker Desktop 4.40以降が必要です。 +provider.template.docker_ai.help=💡 Docker AIの使い方\:\n\n1. Docker Desktop 4.40以降がインストールされ、実行されていることを確認します\n2. Docker Desktopの設定でModel Runner機能を有効にします\n3. モデルをプルします(例\: docker model pull ai/qwen3-embedding\:0.6B-F16)\n4. デフォルトのベースURLは http\://localhost\:12434/v1 です +provider.template.localai.tagline=セルフホスト型、OpenAI互換のローカルAIサーバー。APIキーは不要です。接続する前にLocalAIをインストールし、モデルを読み込んでサーバーを起動してください。 +provider.template.localai.help=💡 LocalAIの使い方\:\n\n1. https\://localai.io/ からLocalAIをインストールします\n2. モデルをプルし、サーバーを起動します\n3. デフォルトのベースURLは http\://localhost\:8080/v1 です +provider.template.ollama.tagline=オープンソースモデルをローカルで実行します。APIキーは不要です。ollama.comからOllamaをダウンロードし、接続する前にモデルをプル(例\: ollama pull llama3)してください。 +provider.template.ollama.help=💡 Ollamaの使い方\:\n\n1. https\://ollama.com/ からOllamaをインストールします\n2. モデルをプルします\: ollama pull llama3\n3. デフォルトのベースURLは http\://localhost\:11434/v1 です + provider.configure.new.title=Configure {0} provider.edit.title=Edit "{0}" @@ -992,14 +1024,14 @@ provider.model.panel.select.hint=左側のプロバイダーを選択してモ provider.model.panel.model.count={0} モデル provider.model.default.badge=デフォルト provider.instance.name.label=インスタンス名 -provider.instance.name.placeholder=例: "Work OpenAI", "ollama-macbook" +provider.instance.name.placeholder=例\: "Work OpenAI", "ollama-macbook" provider.instance.name.duplicate="{0}" という名前のプロバイダーはすでに存在します provider.setup.required.title=AIプロバイダーのセットアップ provider.setup.required.message=チャットを開始する前に、AIプロバイダーをセットアップする必要があります。リストからプロバイダーを選択し、設定を行ってください。 provider.setup.required.button=プロバイダーをセットアップ provider.setup.required.skip=後で設定する provider.setup.empty.state.button=プロバイダーを追加 -provider.configure.prompt=プロバイダーの設定: +provider.configure.prompt=プロバイダーの設定\: provider.setup.guide={0} のセットアップ方法 provider.apikey.stored=APIキーは安全に保存されています provider.apikey.enter=APIキーを入力 @@ -1008,14 +1040,14 @@ provider.apikey.security.link=データの保護方法について詳しくは provider.not.set=未設定 # Provider Configuration - OpenAI -provider.openai.apikey.description=OpenAI API キー: https://platform.openai.com/account/api-keys +provider.openai.apikey.description=OpenAI API キー\: https\://platform.openai.com/account/api-keys provider.openai.apikey.stored=API キーは既に保存されています。空欄のままにすると現在のキーが維持されます。 -provider.openai.setup.help=💡 OpenAI を使うには API キーが必要です。\n\n1. https://platform.openai.com/account/api-keys で取得\n2. 設定で追加するか :change-settings を使用 +provider.openai.setup.help=💡 OpenAI を使うには API キーが必要です。\n\n1. https\://platform.openai.com/account/api-keys で取得\n2. 設定で追加するか \:change-settings を使用 # Provider Configuration - Anthropic -provider.anthropic.apikey.description=Anthropic API キー: https://console.anthropic.com/ +provider.anthropic.apikey.description=Anthropic API キー\: https\://console.anthropic.com/ provider.anthropic.apikey.stored=API キーは既に保存されています。 -provider.anthropic.setup.help=💡 Anthropic を使うには API キーが必要です。\n\n1. https://console.anthropic.com/ で取得\n2. 設定で構成するか :change-settings を使用 +provider.anthropic.setup.help=💡 Anthropic を使うには API キーが必要です。\n\n1. https\://console.anthropic.com/ で取得\n2. 設定で構成するか \:change-settings を使用 provider.anthropic.max_tokens.label=最大トークン数 provider.anthropic.max_tokens.description=モデルが応答ごとに生成できる最大トークン数(思考 + 回答の合計)。 provider.anthropic.thinking_budget_tokens.label=思考予算トークン数 @@ -1024,31 +1056,17 @@ provider.anthropic.thinking_max_tokens.label=思考時最大トークン数 provider.anthropic.thinking_max_tokens.description=思考がアクティブな時の合計トークン上限(思考 + 回答)。0に設定すると、代わりに「Max Tokens」が使用されます。 # Provider Configuration - Gemini -provider.gemini.apikey.description=Google AI Studio API キー: https://aistudio.google.com/app/apikey +provider.gemini.apikey.description=Google AI Studio API キー\: https\://aistudio.google.com/app/apikey provider.gemini.apikey.stored=API キーは既に保存されています。 -provider.gemini.setup.help=💡 Gemini を使用するには API キーが必要です。\n\n1. https://aistudio.google.com/app/apikey で取得\n2. 設定または :change-settings で構成 +provider.gemini.setup.help=💡 Gemini を使用するには API キーが必要です。\n\n1. https\://aistudio.google.com/app/apikey で取得\n2. 設定または \:change-settings で構成 # Provider Configuration - XAI -provider.xai.apikey.description=XAI API キー: https://console.x.ai/ +provider.xai.apikey.description=XAI API キー\: https\://console.x.ai/ provider.xai.apikey.stored=API キーは既に保存されています。 -provider.xai.setup.help=💡 XAI を使用するには API キーが必要です。\n\n1. https://console.x.ai/ で取得\n2. 設定または :change-settings で構成 - -# Provider Configuration - Ollama -provider.ollama.baseurl.description=Ollama ベース URL (デフォルト: http://localhost:11434) -provider.ollama.setup.help=💡 Ollama を使用するにはローカルで実行する必要があります。\n\n1. https://ollama.ai/ からインストール\n2. サービスを開始\n3. 必要に応じてベース URL を変更 +provider.xai.setup.help=💡 XAI を使用するには API キーが必要です。\n\n1. https\://console.x.ai/ で取得\n2. 設定または \:change-settings で構成 -# Provider Configuration - Docker AI -provider.docker.baseurl.description=Docker AI ベース URL (デフォルト: http://localhost:12434) -provider.docker.setup.help=💡 Docker AI を使用するにはローカルで実行する必要があります。\n\n1. Docker AI がインストールされ実行されていることを確認\n2. サービスを開始\n3. 必要に応じてベース URL を変更 -# Provider Configuration - LocalAI -provider.localai.baseurl.description=LocalAI ベース URL -provider.localai.setup.help=💡 LocalAI を使用するには先に実行してください。\n\n1. LocalAI をインストールして起動\n2. 利用可能なベース URL を構成 -# Provider Configuration - LMStudio -provider.lmstudio.baseurl.description=LMStudio ベース URL (デフォルト: http://localhost:1234) -provider.lmstudio.setup.help=💡 LMStudio の利用方法:\n\n1. https://lmstudio.ai/ でインストール\n2. ローカルサーバーを起動\n3. 必要に応じてベース URL を変更 -provider.lmstudio.openai.compat.info=Askimo はネイティブ LMStudio API(/api/v1/)ではなく、OpenAI 互換エンドポイント(/v1)を使用します。 # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=OpenAI互換インスタンスのベースURL @@ -1077,7 +1095,7 @@ system.diagnostics.telemetry=テレメトリ telemetry.export.csv=CSV エクスポート telemetry.export.dialog.title=テレメトリを ZIP としてエクスポート telemetry.export.error.title=エクスポート失敗 -telemetry.export.error.message=テレメトリデータのエクスポートに失敗しました: {0} +telemetry.export.error.message=テレメトリデータのエクスポートに失敗しました\: {0} # Telemetry telemetry.reset=テレメトリデータをリセット @@ -1137,12 +1155,8 @@ error.timeout=⚠️ {timeout} 秒後にリクエストがタイムアウトし error.context_length=⚠️ コンテキストウィンドウの制限を超えました\n\n入力の合計(会話履歴 + あなたのメッセージ + 添付ファイル)が大きすぎて、このモデルでは処理できません。\n\n解決するには:\n• 新しいチャットセッションを開始して会話履歴をクリアしてください\n• メッセージを短くするか、大きな添付ファイルを削除してください\n• ローカルモデル(Ollama / LM Studio / Docker)を使用している場合は、設定でコンテキストサイズを増やしてください\n• より大きなコンテキストウィンドウを持つモデルに切り替えてください error.invalid_request=⚠️ 無効なリクエスト:{details}\n\n入力内容を確認して、もう一度お試しください。 error.local_server=⚠️ ローカルAIサーバーエラー!\n\nAIサーバープロセスがクラッシュするか、モデルの読み込みに失敗しました。これはAskimoが原因ではありません。\n\n考えられる原因:\n• モデルファイルが破損または不完全 — 再ダウンロードをお試しください\n• RAM/VRAMが不足 — より小さい量子化(例:Q8ではなくQ4)をお試しください\n• 現在のサーバーバージョンでサポートされていないモデル形式\n• サーバープロセスがOSによって強制終了された(メモリ不足)\n\n対処方法:\n1. ローカルAIサーバーのログを確認してください\n2. サーバーを再起動して再試行してください\n3. モデルを再ダウンロードしてください\n4. 別のモデルまたは量子化レベルをお試しください\n\n技術的詳細:{details} -error.empty_http_response=⚠️ サーバーが応答なしに接続を閉じました!\n\nモデル: {0}\n\nこれは通常、ローカルAIプロバイダーがエラーを返す代わりにリクエストを黙って破棄した場合に発生します。モデルのコンテキストウィンドウが現在のリクエストに対して小さすぎます。\n\n一般的な原因:\n• 会話履歴が何度もやり取りするうちに長くなりすぎた\n• 有効なツールがリクエストごとにデータを追加している(ツールを複数有効にすると、短い質問でも制限を超える可能性がある)\n• 添付ファイルやコードスニペットが大きく、リクエストが制限を超えた\n\n{1}\n\nその他の対処法:\n• 新しい会話を開始してコンテキストをリセットする\n• このタスクに不要なツールを無効にする\n• メッセージや添付ファイルのサイズを小さくする -error.empty_http_response.hint.docker=Docker AI / Docker Model Runnerでコンテキストウィンドウを増やす方法:\n• モデル起動時に --context-size <値> を渡す (例: --context-size 32768)\n• または、モデルの実行設定で指定する -error.empty_http_response.hint.ollama=Ollamaでコンテキストウィンドウを増やす方法:\n• Modelfile内で num_ctx を設定する (例: PARAMETER num_ctx 32768)\n• または、パラメーターとして渡す: ollama run <モデル> --num-ctx 32768 -error.empty_http_response.hint.lmstudio=LM Studioでコンテキストウィンドウを増やす方法:\n• モデル設定パネルを開く\n• "Context Length" を見つけて値を増やす (例: 32768以上、モデルの最大値まで)\n• 設定変更後、ローカルサーバーを再起動する -error.empty_http_response.hint.localai=LocalAIでコンテキストウィンドウを増やす方法:\n• モデル設定のYAMLを編集し、 context_size: 32768 を設定する\n• 設定変更後、LocalAIサーバーを再起動する -error.empty_http_response.hint.generic=コンテキストウィンドウを増やす方法:\n• プロバイダーの設定でコンテキストの長さ/コンテキストサイズを確認し、値を増やす (例: 32768トークン)\n• 設定変更後、プロバイダーを再起動する +error.empty_http_response=⚠️ サーバーが応答なしに接続を閉じました!\n\nモデル\: {0}\n\nこれは通常、ローカルAIプロバイダーがエラーを返す代わりにリクエストを黙って破棄した場合に発生します。モデルのコンテキストウィンドウが現在のリクエストに対して小さすぎます。\n\n一般的な原因\:\n• 会話履歴が何度もやり取りするうちに長くなりすぎた\n• 有効なツールがリクエストごとにデータを追加している(ツールを複数有効にすると、短い質問でも制限を超える可能性がある)\n• 添付ファイルやコードスニペットが大きく、リクエストが制限を超えた\n\n{1}\n\nその他の対処法\:\n• 新しい会話を開始してコンテキストをリセットする\n• このタスクに不要なツールを無効にする\n• メッセージや添付ファイルのサイズを小さくする +error.empty_http_response.hint.generic=コンテキストウィンドウを増やす方法\:\n• プロバイダーの設定でコンテキストの長さ/コンテキストサイズを確認し、値を増やす (例\: 32768トークン)\n• 設定変更後、プロバイダーを再起動する error.remote_server=⚠️ AIプロバイダーサーバーエラー\n\nプロバイダーのサーバーが一時的なエラーを返しました(例:過負荷または利用不可)。これはAskimoが原因ではありません。\n\n対処方法:\n• しばらく待ってから再試行してください — 通常は短時間で解消されます\n• 問題が続く場合はプロバイダーのステータスページをご確認ください\n\n技術的詳細:{details} error.system=⚠️ システムエラー\n\n予期しないエラーが発生しました:{errorCode}\n\nAskimo サポートへ次を添えてご連絡ください:\n• 実行していた操作\n• 上記のエラーコード\n• タイムスタンプ @@ -1152,10 +1166,11 @@ error.model.not_available.title.embedding=埋め込みモデルを利用でき error.model.not_available.message.chat=モデル ''{0}'' は利用できません。 error.model.not_available.message.embedding=埋め込みモデル ''{0}'' はローカルプロバイダーで利用できません。\n\n設定 → AIプロバイダー に移動し、プロバイダー設定カードから利用可能な埋め込みモデルを選択してください。 error.model.not_available.config_link=埋め込みモデルを設定 -error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration +error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration +error.embedding_model_not_configured=⚠️ ''{provider}'' に埋め込みモデルが設定されていません。\n\n設定 → AI プロバイダー に移動し、プロバイダー設定カードから埋め込みモデルを選択してください。 # Generic Application Errors -error.app.message=予期しないエラーが発生しました: {0} +error.app.message=予期しないエラーが発生しました\: {0} # Send Message Errors error.send_message.title=メッセージの送信に失敗しました @@ -1170,37 +1185,39 @@ error.indexing.io_error.title=IO エラー error.indexing.io_error.message=インデックス作成中に IO エラーが発生しました error.indexing.unknown.title=インデックスエラー error.indexing.unknown.message=インデックス作成中に不明なエラーが発生しました +error.indexing.failed.title=ナレッジソースのインデックス作成に失敗しました +error.indexing.failed_project.title=プロジェクトのナレッジソースのインデックス作成に失敗しました # RAG Configuration settings.rag.title=RAG 設定 settings.rag.description=プロジェクトベースの知識検索のための Retrieval-Augmented Generation パラメータを設定します settings.rag.vector.max.results=ベクトル検索の最大結果数 -settings.rag.vector.max.results.hint=ベクトル検索から取得する最大ドキュメント数(デフォルト: 20) +settings.rag.vector.max.results.hint=ベクトル検索から取得する最大ドキュメント数(デフォルト\: 20) settings.rag.vector.min.score=ベクトル検索の最小スコア -settings.rag.vector.min.score.hint=最小類似度スコア 0.0~1.0(デフォルト: 0.3) +settings.rag.vector.min.score.hint=最小類似度スコア 0.0~1.0(デフォルト\: 0.3) settings.rag.hybrid.max.results=ハイブリッド最大結果数 -settings.rag.hybrid.max.results.hint=融合後の最終ドキュメント数(デフォルト: 15) +settings.rag.hybrid.max.results.hint=融合後の最終ドキュメント数(デフォルト\: 15) settings.rag.rank.fusion.constant=ランキング融合定数 -settings.rag.rank.fusion.constant.hint=ハイブリッドランキング用の RRF 定数(デフォルト: 60) +settings.rag.rank.fusion.constant.hint=ハイブリッドランキング用の RRF 定数(デフォルト\: 60) settings.rag.use.absolute.paths=引用で絶対パスを使用 settings.rag.use.absolute.paths.hint=同じ名前のファイルが複数ある場合に分かりやすくするため、AIの回答に完全なファイルパスを表示します settings.rag.embedding.title=埋め込み設定 settings.rag.embedding.description=テキスト分割および埋め込みのパラメータを設定します settings.rag.embedding.max.chars.per.chunk=チャンクあたりの最大文字数 -settings.rag.embedding.max.chars.per.chunk.hint=各テキストチャンクの最大文字数(デフォルト: 1500) +settings.rag.embedding.max.chars.per.chunk.hint=各テキストチャンクの最大文字数(デフォルト\: 1500) settings.rag.embedding.chunk.overlap=チャンクの重なり -settings.rag.embedding.chunk.overlap.hint=チャンク間で重複する文字数(デフォルト: 100) +settings.rag.embedding.chunk.overlap.hint=チャンク間で重複する文字数(デフォルト\: 100) settings.rag.embedding.models=プロバイダー別の埋め込みモデル settings.rag.indexing.title=インデックス設定 settings.rag.indexing.description=インデックス対象のファイルと許可される最大ファイルサイズを設定します settings.rag.indexing.max.file.bytes=最大ファイルサイズ(バイト) settings.rag.indexing.max.file.bytes.hint=この値より大きいファイルはインデックス作成時にスキップされます。値を高く設定しすぎると、インデックス作成が大幅に遅くなる場合があります。 settings.rag.indexing.supported.extensions=対応する拡張子 -settings.rag.indexing.supported.extensions.hint=インデックスするファイル拡張子をカンマ区切りで指定します(例: kt, java, py, md)。空欄にするとビルトインのデフォルトを使用します。 +settings.rag.indexing.supported.extensions.hint=インデックスするファイル拡張子をカンマ区切りで指定します(例\: kt, java, py, md)。空欄にするとビルトインのデフォルトを使用します。 settings.rag.indexing.exclude.file.names=除外するファイル名 -settings.rag.indexing.exclude.file.names.hint=常にスキップするファイル名をカンマ区切りで指定します(例: package-lock.json, yarn.lock)。 +settings.rag.indexing.exclude.file.names.hint=常にスキップするファイル名をカンマ区切りで指定します(例\: package-lock.json, yarn.lock)。 settings.rag.indexing.binary.extensions=バイナリ拡張子 -settings.rag.indexing.binary.extensions.hint=インデックス中にバイナリとして扱いスキップするファイル拡張子をカンマ区切りで指定します(例: png, jpg, zip, exe)。空欄にするとビルトインのデフォルトを使用します。 +settings.rag.indexing.binary.extensions.hint=インデックス中にバイナリとして扱いスキップするファイル拡張子をカンマ区切りで指定します(例\: png, jpg, zip, exe)。空欄にするとビルトインのデフォルトを使用します。 settings.rag.indexing.embedding.batch.size=埋め込みバッチサイズ settings.rag.indexing.embedding.batch.size.hint=1回のリクエストで埋め込みモデルに送信するテキストセグメント数です。リモートプロバイダー(OpenAI、Gemini)を使用していてインデックスが遅い場合は、100〜500に増やすことを検討してください。ローカルモデル(Ollama、LM Studio)の場合はタイムアウトを避けるために低く保ってください。 @@ -1208,7 +1225,7 @@ settings.rag.indexing.embedding.batch.size.hint=1回のリクエストで埋め settings.models.title=モデル settings.models.description=すべてのプロバイダーで共有されるグローバル AI モデルの動作を設定します。 settings.models.max.tool.calling.round.trips=最大ツール呼び出しラウンドトリップ数 -settings.models.max.tool.calling.round.trips.hint=AI が 1 回の応答で実行できるツール呼び出しの最大回数です(デフォルト: 10)。値を大きくするほど複雑なエージェントタスクが可能になりますが、レイテンシとコストが増加します。 +settings.models.max.tool.calling.round.trips.hint=AI が 1 回の応答で実行できるツール呼び出しの最大回数です(デフォルト\: 10)。値を大きくするほど複雑なエージェントタスクが可能になりますが、レイテンシとコストが増加します。 # Memory Settings settings.memory.title=メモリ設定 @@ -1255,7 +1272,7 @@ file.viewer.copied=コピーしました! # Mermaid Chart Renderer mermaid.setup.required.title=Mermaid CLI が必要です -mermaid.setup.instructions.link=https://askimo.chat/docs/desktop/mermaid-diagrams/ +mermaid.setup.instructions.link=https\://askimo.chat/docs/desktop/mermaid-diagrams/ mermaid.setup.button.open.guide=セットアップガイドを開く mermaid.rendering.progress=図をレンダリング中... mermaid.error.rendering.title=図のレンダリングエラー @@ -1275,7 +1292,7 @@ mermaid.setup.button.download.node=Node.js をダウンロード mermaid.setup.installing=Mermaid CLI をインストールしています... mermaid.setup.install.failed=インストールに失敗しました。詳細は以下の出力を確認してください。 mermaid.setup.node.required=Node.js と npm が見つかりませんでした。ワンクリックインストールを有効にするには、先に Node.js をインストールしてください。 -mermaid.setup.node.link=https://nodejs.org/en/download +mermaid.setup.node.link=https\://nodejs.org/en/download mermaid.error.code.show=ダイアグラムコードを表示 mermaid.error.code.hide=ダイアグラムコードを非表示 @@ -1294,7 +1311,7 @@ mcp.instances.title=MCP インスタンス mcp.instances.description=これらの MCP インスタンスが利用可能です mcp.instances.empty=設定された MCP インスタンスはありません mcp.instances.count={0} インスタンス -mcp.instance.server.label=サーバー: {0} +mcp.instance.server.label=サーバー\: {0} mcp.instance.delete.confirm.title=MCP インスタンスを削除しますか? mcp.instance.delete.confirm.message=MCP インスタンス「{0}」を削除してもよろしいですか?この操作は元に戻せません。 mcp.instance.enable.tooltip=この MCP インスタンスを有効にする @@ -1320,7 +1337,7 @@ mcp.instance.field.description=説明 mcp.instance.field.description.placeholder=このサーバーが何をするかの簡単な説明 mcp.instance.field.transport=トランスポートタイプ mcp.instance.field.command=コマンドテンプレート -mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2:--flag}} +mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2\:--flag}} mcp.instance.field.command.hint={{parameter}} プレースホルダーを含むスペース区切りコマンド mcp.instance.validation.error.empty.id=サーバーIDは空にできません mcp.instance.validation.error.invalid.id.pattern=サーバーIDは小文字のアルファベット、数字、ハイフンのみを含む必要があります @@ -1329,20 +1346,20 @@ mcp.instance.validation.error.empty.command=コマンドテンプレートは空 mcp.instance.validation.error.empty.parameter.key=パラメータキーは空にできません mcp.instance.validation.error.empty.parameter.label=パラメータラベルは空にできません mcp.instance.env.label=環境変数 (オプション) -mcp.instance.env.placeholder=API_KEY={{apiKey}}\nDEBUG={{debug}} -mcp.instance.env.hint=書式: キー=値 または キー={{parameter}} (1行に1組) +mcp.instance.env.placeholder=API_KEY\={{apiKey}}\nDEBUG\={{debug}} +mcp.instance.env.hint=書式\: キー\=値 または キー\={{parameter}} (1行に1組) mcp.instance.transport.stdio=Stdio (ローカルプロセス) mcp.instance.transport.http=HTTP (リモートサーバー) mcp.instance.http.url.label=URLテンプレート -mcp.instance.http.url.placeholder=https://{{host}}/mcp または https://api.example.com/mcp +mcp.instance.http.url.placeholder=https\://{{host}}/mcp または https\://api.example.com/mcp mcp.instance.http.url.hint=サーバーエンドポイントURL。動的な値には {{parameter}} プレースホルダーを使用します mcp.instance.http.headers.label=HTTPヘッダー (オプション) -mcp.instance.http.headers.placeholder=Authorization=Bearer {{apiKey}}\nX-Tenant-Id={{tenantId}} -mcp.instance.http.headers.hint=書式: ヘッダー名=値 または ヘッダー名={{parameter}} (1行に1組) +mcp.instance.http.headers.placeholder=Authorization\=Bearer {{apiKey}}\nX-Tenant-Id\={{tenantId}} +mcp.instance.http.headers.hint=書式\: ヘッダー名\=値 または ヘッダー名\={{parameter}} (1行に1組) mcp.instance.http.timeout.label=タイムアウト (ms) mcp.instance.http.timeout.hint=ミリ秒単位のリクエストタイムアウト mcp.instance.validation.error.empty.url=URLテンプレートは空にできません -mcp.instance.validation.error.invalid.url=URLテンプレートはhttp://またはhttps://で始める必要があります +mcp.instance.validation.error.invalid.url=URLテンプレートはhttp\://またはhttps\://で始める必要があります # MCP Integrations (Project View) mcp.instance.delete.tooltip=MCP インスタンスを削除 @@ -1353,7 +1370,7 @@ mcp.instance.field.serverId=サーバータイプ # Add MCP Integration Dialog mcp.instance.name=MCP 名 -mcp.instance.name.placeholder=例: 本番データベース、プロジェクトファイル +mcp.instance.name.placeholder=例\: 本番データベース、プロジェクトファイル mcp.instance.tools.title=利用可能なツール mcp.instance.tools.count={0} ツールが利用可能です mcp.instance.tool.strategy.intent=意図ベース @@ -1379,6 +1396,12 @@ mcp.tool.category.WEATHER.desc=天気データと予報 mcp.tool.category.WEB_SEARCH.desc=ウェブ検索およびページ読み取り mcp.tool.category.DATETIME.desc=日付および時刻操作 mcp.tool.category.OTHER.desc=未分類ツール +mcp.tool.approval.label=承認 +mcp.tool.approval.require_approval=承認を必要とする +mcp.tool.approval.default=自動 +mcp.tool.approval.default.hint=自動的に実行されます。書き込み系のカテゴリ(ファイルの書き込み、実行、git、メッセージング)はデフォルトで承認が必要です。 +mcp.tool.approval.require_approval.hint=AIがこのツールを実行する前に、常に一時停止して確認を求めます。 +mcp.tool.enabled.label=有効 # MCP Tools Dialog mcp.tools.dialog.title=利用可能なツール - {0} @@ -1392,7 +1415,7 @@ mcp.tools.dialog.search.count={0} / {1} ツール mcp.tools.dialog.search.empty=検索に一致するツールはありません mcp.tools.dialog.export=ツールのエクスポート mcp.tools.dialog.export.success={0} にツールをエクスポートしました -mcp.tools.dialog.export.failed=ツールのエクスポートに失敗しました: {0} +mcp.tools.dialog.export.failed=ツールのエクスポートに失敗しました\: {0} # MCP Server Catalog Dialog mcp.catalog.dialog.title=MCPサーバーを追加 @@ -1448,7 +1471,7 @@ file.viewer.close=ビューアーを閉じる file.viewer.open.external=外部で開く file.viewer.binary=バイナリファイル — テキストとしてプレビューできません。 file.viewer.too.large=ファイルが大きすぎてプレビューできません({0} KB)。最大サイズは 512 KB です。 -file.viewer.error=ファイルを読み込めませんでした: {0} +file.viewer.error=ファイルを読み込めませんでした\: {0} file.viewer.select.prompt=上のツリーからファイルを選択して内容をプレビューします # Project Side Panel @@ -1464,7 +1487,7 @@ panel.collapse=パネルを折りたたむ # RAG Status rag.status.started=インデックス作成を開始しました -rag.status.inprogress=インデックス作成中: {0}% +rag.status.inprogress=インデックス作成中\: {0}% rag.status.inprogress.unknown=インデックス作成中... rag.status.queued=キュー済み — 他のプロジェクトのインデックス作成が完了するのを待機中 rag.status.ready=準備完了 @@ -1514,7 +1537,7 @@ plans.editor.label=YAML コンテンツ plans.editor.placeholder=ここにプランの YAML を貼り付けるか入力してください... plans.editor.valid=有効な YAML plans.editor.hint.title=リファレンス -plans.editor.hint.fields=必須: id, name, steps\n任意: description, icon, inputs, workflow\nステップタイプ: text, multiline, toggle, number\nワークフロータイプ: sequence, parallel, conditional +plans.editor.hint.fields=必須\: id, name, steps\n任意\: description, icon, inputs, workflow\nステップタイプ\: text, multiline, toggle, number\nワークフロータイプ\: sequence, parallel, conditional plans.editor.menu.edit=YAML を編集 plans.editor.ai.label=AIで生成 plans.editor.ai.placeholder=このプランにさせたいことをわかりやすい言葉で説明してください... @@ -1573,7 +1596,7 @@ skills.view.panel.collapse=パネルを閉じる skills.view.panel.expand=パネルを開く skills.view.tab.skills=スキル skills.view.tab.workspace=ワークスペース -skills.view.last.run=最後の実行: {0} +skills.view.last.run=最後の実行\: {0} skills.view.category.uncategorized=その他 skills.view.search.placeholder=スキルを検索 ... skills.view.search.clear=検索をクリア @@ -1588,7 +1611,7 @@ skills.view.history.empty=まだ実行履歴がありません skills.view.copy=コピー skills.view.system.prompt.file=ファイル skills.view.system.prompt.files=ファイル -skills.view.system.prompt.also.included=エージェントコンテキストにも含まれています: +skills.view.system.prompt.also.included=エージェントコンテキストにも含まれています\: skills.view.docs.tooltip=スキルガイドを表示 skills.view.mode.agentic=エージェント型 skills.view.mode.manual=手動 diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index 03e29f20..ce319492 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -32,6 +32,7 @@ menu.view.appearance.system=시스템 menu.view.appearance.light=라이트 menu.view.appearance.dark=다크 menu.view.fullscreen=전체 화면으로 전환 +menu.view.exit.fullscreen=전체 화면 종료 menu.view.bookmarks=북마크 보기 menu.terminal=터미널 menu.terminal.new=새 터미널 @@ -43,7 +44,7 @@ menu.help.discord=💬 Discord 커뮤니티 참여 menu.help.share.x=X / 트위터에서 공유 menu.help.share.linkedin=링크드인에서 공유 menu.help.share.facebook=페이스북에서 공유 -menu.help.share.text=Askimo을 확인해보세요 — 무료로 사용 가능한 로컬 우선 AI 데스크톱 클라이언트입니다. Ollama, OpenAI, Anthropic 및 기타 등과 연동됩니다. https://askimo.chat +menu.help.share.text=Askimo을 확인해보세요 — 무료로 사용 가능한 로컬 우선 AI 데스크톱 클라이언트입니다. Ollama, OpenAI, Anthropic 및 기타 등과 연동됩니다. https\://askimo.chat menu.help.share.hackernews=Hacker News에 게시 menu.eventlog=이벤트 로그 menu.help.model.capabilities=모델 기능 파일 열기 @@ -60,16 +61,16 @@ dialog.close=닫기 # Backup and Restore backup.export.title=백업 내보내기 backup.export.success.title=백업을 내보냈습니다 -backup.export.success.message=백업을 성공적으로 내보냈습니다:\n{0} +backup.export.success.message=백업을 성공적으로 내보냈습니다\:\n{0} backup.export.error.title=내보내기 실패 -backup.export.error.message=백업을 내보내지 못했습니다:\n{0} +backup.export.error.message=백업을 내보내지 못했습니다\:\n{0} backup.import.title=백업 가져오기 backup.import.confirm.title=가져오기 확인 backup.import.confirm.message=이 작업은 현재 모든 데이터를 백업으로 교체합니다.\n\n가져오기 전에 안전 백업이 자동으로 생성됩니다.\n\n계속하시겠습니까? backup.import.success.title=백업을 가져왔습니다 backup.import.success.message=백업을 성공적으로 가져왔습니다.\n\n모든 변경 사항을 적용하려면 Askimo를 다시 시작하십시오. backup.import.error.title=가져오기 실패 -backup.import.error.message=백업을 가져오지 못했습니다:\n{0} +backup.import.error.message=백업을 가져오지 못했습니다\:\n{0} # Event Log eventlog.title=이벤트 로그 ({0}) @@ -87,7 +88,7 @@ eventlog.window.header=이벤트 로그 eventlog.window.attach=메인 창에 다시 연결 eventlog.window.events.count={0}개 이벤트 eventlog.window.empty.message=아직 이벤트가 없습니다. 발생 시 여기에 표시됩니다. -eventlog.footer.warning=가장 오래된 항목이 잘렸습니다(한도: {0}). +eventlog.footer.warning=가장 오래된 항목이 잘렸습니다(한도\: {0}). # Chat Interface chat.new=새 채팅 @@ -165,7 +166,7 @@ session.rename.error.empty=제목은 비울 수 없습니다 session.export.file.chooser.title=채팅 기록 저장 session.export.button.export=내보내기 session.export.success.title=내보내기 완료 -session.export.success.message=채팅 세션이 성공적으로 내보내졌습니다: +session.export.success.message=채팅 세션이 성공적으로 내보내졌습니다\: # Projects project.title=프로젝트 @@ -181,14 +182,16 @@ project.new.dialog.file.browse=처리할 파일 선택... project.new.dialog.sources.label=참고 자료 (선택 사항) project.new.dialog.sources.add=소스 추가 project.new.dialog.error.empty.name=프로젝트 이름은 비울 수 없습니다 -project.new.dialog.error.create.failed=프로젝트 생성에 실패했습니다: {0} +project.new.dialog.error.create.failed=프로젝트 생성에 실패했습니다\: {0} project.new.dialog.name.error.empty=프로젝트 이름은 비워둘 수 없습니다 project.new.dialog.button.create=프로젝트 생성 project.new.dialog.button.cancel=취소 -project.new.dialog.success.title=프로젝트가 성공적으로 생성되었습니다! +project.new.dialog.success.title=프로젝트가 성공적으로 생성되었습니다\! project.new.dialog.success.message=프로젝트 ''{0}''가 생성되었습니다. project.new.dialog.success.countdown={0}초 후에 닫힙니다... project.new.dialog.success.close=지금 닫기 +project.dialog.defaultDirective.label=기본 지시문 (선택 사항) +project.dialog.defaultDirective.none=없음 project.dialog.url.title=URL 참조 자료 추가 project.dialog.url.description=웹 콘텐츠를 참조 자료로 추가하려면 URL을 입력하세요. URL은 유효성 검사 및 접근 가능 여부를 확인합니다. project.dialog.url.label=URL @@ -206,9 +209,13 @@ project.not.selected=선택된 프로젝트가 없습니다 # Projects View projects.title=프로젝트 projects.description=주제별로 채팅을 구성하고 파일, 폴더 또는 URL을 지식 소스로 첨부하여, AI가 항상 해당 프로젝트에 대한 올바른 컨텍스트를 갖도록 합니다. +projects.rag.embedding.not.configured=현재 AI 공급자에 임베딩 모델이 구성되어 있지 않아 프로젝트의 RAG 기능이 비활성화되어 있습니다. +projects.rag.embedding.configure=임베딩 모델 구성 +projects.rag.embedding.unsupported.provider=현재 AI 공급자가 임베딩 모델을 지원하지 않아 프로젝트의 RAG 기능이 비활성화되어 있습니다. RAG를 사용하려면 임베딩을 지원하는 공급자(예\: OpenAI, Gemini 또는 OpenAI 호환 엔드포인트)로 전환하세요. +projects.rag.embedding.switch.provider=AI 공급자 전환 projects.error=❌ {0} projects.empty=프로젝트를 찾을 수 없습니다. -projects.empty.hint=💡 새 프로젝트를 생성하여 채팅 세션을 정리하세요! +projects.empty.hint=💡 새 프로젝트를 생성하여 채팅 세션을 정리하세요\! projects.search.placeholder=이름으로 검색… projects.search.empty="{0}"과(와) 일치하는 프로젝트가 없습니다. projects.col.name=이름 @@ -219,13 +226,16 @@ projects.sources.expand=참고 자료 표시 projects.sources.collapse=참고 자료 숨기기 projects.sources.empty.title=아직 참조 자료가 없습니다 projects.sources.empty.description=문서를 추가하면 Askimo가 질문에 답변할 때 이를 참조할 수 있습니다 -projects.sources.info.tooltip=참조 자료는 Askimo가 사용자의 구체적인 맥락을 이해하는 데 도움이 됩니다.\n\n\ -질문에 답변할 때 Askimo가 참조해야 할 정보가 포함된 폴더, 파일 또는 웹사이트를 추가하세요.\n\n\ -예:\n\ +projects.sources.info.tooltip=참조 자료는 Askimo가 사용자의 구체적인 맥락을 이해하는 데 도움이 됩니다.\n\ +\n\ +질문에 답변할 때 Askimo가 참조해야 할 정보가 포함된 폴더, 파일 또는 웹사이트를 추가하세요.\n\ +\n\ +예\:\n\ • 프로젝트 문서\n\ • 회사 지식 베이스\n\ • 기술 사양서\n\ -• 연구 논문\n\n\ +• 연구 논문\n\ +\n\ Askimo는 이러한 자료를 검색하여 더 정확하고 맥락에 맞는 답변을 제공합니다. projects.sources.type.local_folders=로컬 폴더 projects.sources.type.local_files=로컬 파일 @@ -236,6 +246,8 @@ projects.sources.add.dialog.title=참조 자료 추가 projects.sources.add.dialog.description=이 프로젝트의 참조 자료로 사용할 폴더, 파일 또는 URL을 선택하세요. projects.sources.add.dialog.button.add=추가 projects.sources.delete.tooltip=참조 자료 삭제 +projects.sources.watch.tooltip=변경 사항 감시 +projects.sources.more.tooltip=추가 옵션 projects.sources.guide=참조 자료 가이드 보기 projects.error.loading=프로젝트를 불러오지 못했습니다. 다시 시도하세요. projects.error.deleting=프로젝트를 삭제하지 못했습니다. 다시 시도하세요. @@ -246,14 +258,16 @@ project.error.loading=프로젝트를 로드하지 못했습니다. 다시 시 project.error.loading_sessions=프로젝트 세션을 로드하지 못했습니다. 다시 시도해 주세요. project.error.updating=프로젝트를 업데이트하지 못했습니다. 다시 시도해 주세요. project.error.deleting_knowledge_source=참조 자료를 삭제하지 못했습니다. 다시 시도해 주세요. +project.error.updating_knowledge_source=참조 자료를 업데이트하지 못했습니다. 다시 시도해 주세요. +project.error.rescanning_knowledge_source=참조 자료를 다시 스캔하지 못했습니다. 다시 시도해 주세요. project.knowledge_source.delete.success=참조 자료가 성공적으로 삭제되었습니다. project.edit=프로젝트 편집 project.reindex=프로젝트 재인덱싱 project.menu.tooltip=프로젝트 메뉴 project.new.chat.placeholder={0}에서 새 채팅 project.recent.chats=최근 채팅 -project.no.chats=아직 채팅이 없습니다. 아래에서 새 채팅을 시작하세요! -project.indexing.label=지식 소스 인덱싱: {0} +project.no.chats=아직 채팅이 없습니다. 아래에서 새 채팅을 시작하세요\! +project.indexing.label=지식 소스 인덱싱\: {0} project.indexing.queued=인덱싱 대기 중 - 다른 프로젝트가 완료되기를 기다리는 중... project.indexing.failed=인덱싱에 실패했습니다. 프로젝트 메뉴에서 다시 인덱싱을 시도하세요. project.indexing.ready.label=인덱싱됨 @@ -272,7 +286,7 @@ settings.appearance=모양 settings.appearance.accent=강조 색상 settings.appearance.accent.description=단일 강조 색상을 안전하게 사용자 지정합니다. Askimo는 이를 주요 UI 강조에 적용하고, 읽기 쉬움을 위해 관련 색상을 파생합니다. settings.appearance.accent.label=강조 색상 (Hex) -settings.appearance.accent.invalid=유효한 16진수 색상을 입력하세요. 예: #0284C7 +settings.appearance.accent.invalid=유효한 16진수 색상을 입력하세요. 예\: \#0284C7 settings.appearance.accent.swatch.primary=기본 settings.appearance.accent.swatch.primary.container=컨테이너 settings.appearance.accent.swatch.on.primary.container=컨테이너 위 @@ -296,7 +310,7 @@ settings.network.description=네트워크 및 프록시 설정 구성 settings.mcp.servers=MCP 서버 settings.skills=스킬 settings.skills.description=스킬은 사용자의 기기에서 직접 실행되는 재사용 가능한 AI 에이전트입니다. 각 스킬은 시스템 프롬프트와 지침을 담고 있는 Markdown 파일입니다. 스킬을 실행하면 {0}를 통해 실행되며 장치 파일을 읽고 쓰고, 셸 명령을 실행하며, 작업을 완료할 때까지 반복합니다. 복사 및 붙여넣기가 필요하지 않습니다. -settings.skills.runtimes=지원되는 런타임: +settings.skills.runtimes=지원되는 런타임\: settings.skills.directory=스킬 디렉터리 settings.skills.open.folder=폴더 열기 settings.skills.new.skill=새 스킬 @@ -376,11 +390,11 @@ settings.log.viewer=로그 파일 settings.log.viewer.description=애플리케이션 로그 및 진단 보기 settings.log.viewer.view=로그 보기 settings.log.viewer.open_folder=로그 폴더 열기 -settings.log.viewer.path=로그 파일: {0} +settings.log.viewer.path=로그 파일\: {0} settings.log.viewer.dialog.title=애플리케이션 로그 settings.log.viewer.refresh=새로 고침 settings.log.viewer.copy=복사 -settings.log.viewer.copied=복사됨! +settings.log.viewer.copied=복사됨\! settings.log.viewer.loading=로그 불러오는 중... settings.log.viewer.error=로그 불러오기 실패 settings.log.viewer.empty=로그 없음 @@ -434,7 +448,7 @@ settings.web_search.api_key=API 키 settings.web_search.api_key.placeholder=여기에 API 키를 붙여넣으세요 settings.web_search.get_api_key=무료 API 키 받기 ↗ settings.web_search.endpoint=SearxNG 인스턴스 URL -settings.web_search.endpoint.placeholder=https://search.example.com +settings.web_search.endpoint.placeholder=https\://search.example.com settings.web_search.test=검색 테스트 settings.web_search.test.running=테스트 중... settings.web_search.test.success=✅ 검색이 정상 작동 중 @@ -451,25 +465,25 @@ user.profile.name=이름 user.profile.email=이메일 user.profile.email.placeholder=your.email@example.com user.profile.occupation=직업 -user.profile.occupation.placeholder=예: 소프트웨어 개발자, 디자이너, 학생 +user.profile.occupation.placeholder=예\: 소프트웨어 개발자, 디자이너, 학생 user.profile.location=위치 -user.profile.location.placeholder=예: 샌프란시스코, CA +user.profile.location.placeholder=예\: 샌프란시스코, CA user.profile.bio=소개 user.profile.bio.placeholder=자신에 대해 간단히 알려주세요… user.profile.interests=관심사 user.profile.interests.description=관심 있는 주제를 선택하여 AI 경험을 개인화하세요 user.profile.interests.custom=사용자 지정 관심사 -user.profile.interests.custom.placeholder=예: 머신 러닝, 사진 +user.profile.interests.custom.placeholder=예\: 머신 러닝, 사진 user.profile.interests.custom.hint=여러 관심사는 쉼표로 구분하세요 # Welcome Dialog (First Run) -welcome.title=Askimo에 오신 것을 환영합니다! +welcome.title=Askimo에 오신 것을 환영합니다\! welcome.subtitle=AI 경험을 개인화할 수 있도록 도와주세요 welcome.avatar.optional=클릭하여 사진 추가 (선택 사항) welcome.name=이름 -welcome.name.placeholder=예: 홍길동 +welcome.name.placeholder=예\: 홍길동 welcome.occupation=직업 -welcome.occupation.placeholder=예: 소프트웨어 개발자 +welcome.occupation.placeholder=예\: 소프트웨어 개발자 welcome.interests=관심 있는 분야는 무엇인가요? welcome.interests.description=경험을 맞춤화할 수 있도록 몇 가지 주제를 선택하세요 welcome.skip=나중에 설정 @@ -501,6 +515,7 @@ user.interest.environment=환경 # Actions action.delete=삭제 +action.rescan=다시 스캔 action.remove=삭제 action.edit=편집 action.pin=사이드바에 고정 @@ -526,7 +541,7 @@ action.refresh=새로고침 # Happiness Gate (shown before Star Prompt) happiness.gate.title=Askimo는 어떠신가요? happiness.gate.subtitle=솔직한 의견이 저희의 지속적인 개선에 도움이 됩니다 -happiness.gate.happy=정말 마음에 들어요! 😍 +happiness.gate.happy=정말 마음에 들어요\! 😍 happiness.gate.neutral=괜찮아요 🙂 happiness.gate.unhappy=별로예요 😕 @@ -538,22 +553,22 @@ feedback.comment.placeholder=문제에 대한 설명이나 의견을 공유해 feedback.unhappy.dialog.title=무엇이 문제인지 알고 싶습니다 feedback.unhappy.dialog.subtitle=Askimo에 대한 경험을 알려주시면 개선하겠습니다. feedback.comment.label.unhappy=어떤 점이 불편하셨나요? -feedback.comment.placeholder.unhappy=예: 세션 기록을 찾기 어렵거나, 응답이 느린 것 같습니다… +feedback.comment.placeholder.unhappy=예\: 세션 기록을 찾기 어렵거나, 응답이 느린 것 같습니다… feedback.neutral.dialog.title=Askimo가 어떻게 개선되면 더 좋을까요? feedback.neutral.dialog.subtitle=여러분의 아이디어가 다음 개발 방향을 결정하는 데 도움이 됩니다. feedback.comment.label.neutral=어떤 점을 개선할 수 있을까요? -feedback.comment.placeholder.neutral=예: 더 나은 단축키나 더 빠른 모델 전환이 있으면 좋겠습니다… +feedback.comment.placeholder.neutral=예\: 더 나은 단축키나 더 빠른 모델 전환이 있으면 좋겠습니다… feedback.comment.encourage.hint=몇 마디만으로도 큰 차이를 만들 수 있습니다 — 여러분의 피드백은 팀에게 직접 전달됩니다. feedback.email.label=이메일 (선택 사항) feedback.email.placeholder=you@example.com feedback.email.hint=피드백에 대한 후속 조치를 위해서만 사용됩니다. 스팸 메일은 절대 보내지 않습니다. feedback.action.skip=건너뛰기 feedback.action.send=피드백 보내기 -feedback.thanks.title=소중한 의견 감사합니다! +feedback.thanks.title=소중한 의견 감사합니다\! feedback.thanks.message=보내주신 의견은 Askimo를 개선하는 데 큰 도움이 됩니다. 정말 감사합니다. feedback.thanks.close=닫기 -feedback.remind.title=괜찮습니다! +feedback.remind.title=괜찮습니다\! feedback.remind.message=도움말 메뉴 → 피드백 보내기를 통해 언제든지 의견을 보내주실 수 있습니다. feedback.remind.got.it=알겠습니다 @@ -577,10 +592,10 @@ star.prompt.share.description=X, LinkedIn 또는 Facebook에서 네트워크에 star.prompt.maybe.later=지금은 아니요 star.prompt.already.starred=이미 별표 표시됨 ✓ star.prompt.social.proof=⭐ 이미 Askimo에 별표를 표시한 {0}명과 함께하세요 -star.prompt.thanks.title=정말 감사합니다! 🌟 +star.prompt.thanks.title=정말 감사합니다\! 🌟 star.prompt.thanks.message=여러분의 성원은 저희가 Askimo를 계속 발전시키는 데 큰 힘이 됩니다. star.prompt.thanks.done=완료 ✓ -star.prompt.remind.title=괜찮습니다! +star.prompt.remind.title=괜찮습니다\! star.prompt.remind.message=언제든지 도움말 메뉴 → Askimo 지원하기를 통해 저희를 후원하실 수 있습니다. star.prompt.remind.got.it=확인 @@ -654,7 +669,7 @@ shortcut.send.message=메시지 전송 shortcut.new.line=새 줄 # Chat View -chat.welcome=Askimo에 오신 것을 환영합니다!\n아래에 메시지를 입력하여 대화를 시작하세요. +chat.welcome=Askimo에 오신 것을 환영합니다\!\n아래에 메시지를 입력하여 대화를 시작하세요. chat.no.active.session=사이드바에서 세션을 선택하거나 새 채팅을 시작하세요 chat.search.placeholder=대화 내 검색... chat.search.no.results=결과 없음 @@ -710,6 +725,12 @@ chat.image.model.missing.title=이미지 모델이 구성되지 않았습니다 chat.image.model.missing.message={0}에 설정된 이미지 모델이 없습니다. 설정 > AI 제공업체 > 이미지 생성 모델을 열고 먼저 모델 이름을 설정하세요. chat.tools.button=사용 가능한 도구 chat.tools.button.disabled=사용 가능한 도구 ({0} 비활성화됨) +chat.tool.approval.required=\n\n⏸️ **승인 필요** — AI가 `{0}`{1}을(를) 실행하려고 합니다\n\n +chat.tool.approval.timed_out=도구 승인 시간 초과\: {0} +chat.tool.approval.denied=사용자가 도구 실행을 거부했습니다\: {0} +chat.tool.approval.prompt=AI가 다음을 실행하려고 합니다\: {0} +chat.tool.approval.approve=승인 +chat.tool.approval.deny=거부 chat.tools.button.model.no.support=이 모델은 도구를 지원하지 않습니다 chat.tools.popup.title=사용 가능한 도구 chat.tools.popup.loading=서버 로딩 중... @@ -736,7 +757,7 @@ chat.attachment.remove=첨부 파일 삭제 chat.attachment.preview.loading=미리보기 불러오는 중… chat.attachment.preview.file.not.found=(파일을 찾을 수 없음) chat.attachment.preview.too.large=(파일이 너무 커서 미리볼 수 없음) -chat.attachment.preview.cannot.read=(파일을 읽을 수 없음: {0}) +chat.attachment.preview.cannot.read=(파일을 읽을 수 없음\: {0}) chat.attachment.preview.more.lines={0}줄 더 # Sessions View @@ -748,12 +769,12 @@ sessions.col.created=생성됨 sessions.col.updated=업데이트됨 sessions.error=❌ {0} sessions.empty=세션을 찾을 수 없습니다. -sessions.empty.hint=💡 새 대화를 시작해 첫 세션을 만들어 보세요! +sessions.empty.hint=💡 새 대화를 시작해 첫 세션을 만들어 보세요\! sessions.search.placeholder=제목으로 검색… sessions.search.empty="{0}"과(와) 일치하는 세션이 없습니다. # Generic table pagination controls -table.page.size.label=페이지당 행 수: +table.page.size.label=페이지당 행 수\: table.page=페이지 {0} / {1} table.page.previous=이전 페이지 table.page.next=다음 페이지 @@ -769,7 +790,7 @@ sessions.error.rename.failed=이름 변경 실패. # ChatSessionService Errors # Update Check update.dialog.title=소프트웨어 업데이트 -update.dialog.new.version.available=새로운 Askimo 버전 이용 가능! +update.dialog.new.version.available=새로운 Askimo 버전 이용 가능\! update.urgency.medium={0}개 버전 뒤처져 있습니다 — 중요한 버그 수정 및 신기능을 놓쳤을 수 있습니다. update.urgency.high={0}개 버전 뒤처져 있습니다 — 상당한 개선 사항을 놓치고 있습니다. 빨리 업데이트하세요. update.dialog.current.version.label=현재 버전 @@ -780,7 +801,7 @@ update.dialog.download=지금 다운로드 update.dialog.how.to.update=업데이트 방법 update.dialog.later=나중에 update.dialog.skip.version=이 버전 건너뛰기 -update.check.up.to.date=최신 버전을 사용 중입니다! +update.check.up.to.date=최신 버전을 사용 중입니다\! update.check.failed=업데이트 확인 실패 # Event Names @@ -788,6 +809,7 @@ event.update.available=🚀 새 버전 사용 가능 event.details.action=Release Notes event.update.download=지금 다운로드 event.notification.empty=이벤트 없음 +event.notification.title=알림 ({0}) event.notification.clear=지우기 event.notification.clear.all=모두 지우기 event.notification.group.errors=백그라운드 오류 @@ -799,6 +821,7 @@ event.indexing.started=인덱싱 중… event.indexing.completed=인덱스 준비 완료 event.indexing.failed=인덱싱 실패 event.indexing.files_indexed={0}개 파일 인덱싱 완료 +event.file.removed=인덱스에서 파일 제거됨 # Settings View settings.language=언어 @@ -817,8 +840,8 @@ settings.app.language.translation.contribute=Crowdin에서 기여하기 settings.ai.response.language=선호 응답 언어 settings.ai.response.language.description=AI가 특정 언어로 응답하도록 강제 (비워두면 자동 감지) settings.ai.response.language.auto=자동 감지 -settings.ai.response.language.tooltip=AI가 자동으로 언어를 감지하지만 다음 경우 재정의하세요:\n• 언어 학습 (몰입형 연습)\n• 전문적 일관성 (예: 코드 문서는 항상 영어로)\n• RAG 최적화 (지식 베이스 언어와 일치)\n• 교육 (한 언어로 질문하고 다른 언어로 설명)\n• 원치 않는 언어 전환 방지 -settings.model.select={0}의 모델 선택: +settings.ai.response.language.tooltip=AI가 자동으로 언어를 감지하지만 다음 경우 재정의하세요\:\n• 언어 학습 (몰입형 연습)\n• 전문적 일관성 (예\: 코드 문서는 항상 영어로)\n• RAG 최적화 (지식 베이스 언어와 일치)\n• 교육 (한 언어로 질문하고 다른 언어로 설명)\n• 원치 않는 언어 전환 방지 +settings.model.select={0}의 모델 선택\: settings.model.loading=모델 불러오는 중... settings.model.none=사용 가능한 모델 없음 settings.model.select.title=모델 선택 @@ -826,7 +849,7 @@ settings.model.current=현재 모델 settings.model.selected=선택된 모델 settings.model.new=새 모델 settings.model.use.default=기본값 사용 -settings.model.change.description=아래 목록에서 모델을 선택하세요: +settings.model.change.description=아래 목록에서 모델을 선택하세요\: settings.model.search=모델 검색 settings.model.search.placeholder=모델 필터링 입력... settings.model.filtered={0}/{1} 모델 표시 중 @@ -835,22 +858,22 @@ settings.model.chat.filter.label=챗 모델 · {0}개 표시됨 settings.model.chat.filter.show.all=모든 {0} 표시 settings.configure.title={0} 설정 구성 settings.test.connection.testing=테스트 중... -settings.placeholder.baseurl=http://localhost:11434 +settings.placeholder.baseurl=http\://localhost\:11434 provider.connection.failed=제공자에 연결할 수 없습니다. API 키가 올바른지(클라우드 제공자의 경우) 또는 기본 URL에 도달할 수 있는지(로컬 제공자의 경우) 확인하십시오. 위의 도움말 링크를 사용하여 설정 지침을 찾을 수 있습니다. # Directives Dialog directive.manage.title=지시문 관리 -directive.manage.empty=지시문이 없습니다. 새로 만들어보세요! +directive.manage.empty=지시문이 없습니다. 새로 만들어보세요\! directive.edit.name.label=이름 directive.edit.name.placeholder=지시문 이름 입력... directive.edit.content.label=내용 directive.edit.content.placeholder=지시문 내용을 입력하세요... directive.edit.name.required=이름은 필수입니다 directive.edit.content.required=내용은 필수입니다 -directive.created=생성됨: {0} +directive.created=생성됨\: {0} directive.new.title=새 지시문 directive.new.guidelines=지시문은 AI가 메시지에 응답하는 방식을 안내합니다. 어조, 세부 수준, 형식 또는 필요한 특별 요구 사항에 대해 구체적으로 작성하세요. -directive.new.name.placeholder=예: concise-code, explain-like-im-5 +directive.new.name.placeholder=예\: concise-code, explain-like-im-5 directive.new.content.placeholder=지시문 내용을 입력... directive.new.apply.current=현재 세션에 적용 directive.new.create=생성 @@ -862,8 +885,10 @@ directive.export.tooltip=모든 지시문을 JSON 파일로 내보내 공유합 directive.export.filename=askimo-directives directive.import=가져오기 directive.import.tooltip=JSON 파일에서 지시문을 가져옵니다 -directive.import.result=가져오기 완료: {0}개 가져옴, {1}개 이름 변경됨, {2}개 건너뜀 -directive.import.error=가져오기 실패: 잘못되었거나 지원되지 않는 파일 형식입니다 +directive.import.result=가져오기 완료\: {0}개 가져옴, {1}개 이름 변경됨, {2}개 건너뜀 +directive.import.error=가져오기 실패\: 잘못되었거나 지원되지 않는 파일 형식입니다 +directive.default.set=기본 디렉티브로 설정 +directive.default.unset=기본 디렉티브에서 해제 # Log Levels log.level.error=오류 @@ -919,7 +944,7 @@ message.edited.indicator=(편집됨) message.date.today=오늘 message.date.yesterday=어제 message.token.usage={0} 토큰 · {1} 입력 / {2} 출력 -message.token.usage.tooltip=이 응답에 사용된 토큰입니다.\n입력: AI로 전송된 프롬프트 및 컨텍스트.\n출력: AI가 생성한 응답. +message.token.usage.tooltip=이 응답에 사용된 토큰입니다.\n입력\: AI로 전송된 프롬프트 및 컨텍스트.\n출력\: AI가 생성한 응답. # Bookmarks chat.bookmarks.button.tooltip=북마크 @@ -956,10 +981,6 @@ provider.picker.description.openai=OpenAI의 클라우드 AI 모델입니다. AP provider.picker.description.anthropic=Anthropic의 클라우드 AI 모델입니다. API 키가 필요합니다. console.anthropic.com에서 가입하고, API 키를 생성한 후 연결 전에 계정에 크레딧을 추가하세요. provider.picker.description.gemini=Google의 클라우드 AI 모델입니다. aistudio.google.com에서 가입하여 무료 API 키를 생성하세요. 무료 티어는 신용카드가 필요하지 않습니다. provider.picker.description.xai=xAI의 클라우드 AI 모델입니다. API 키가 필요합니다. console.x.ai에서 가입하고, API 키를 생성한 후 연결 전에 계정에 크레딧을 추가하세요. -provider.picker.description.ollama=오픈 소스 모델을 로컬에서 실행합니다. API 키가 필요하지 않습니다. ollama.com에서 Ollama를 다운로드하고, 연결 전에 모델을 가져오세요 (예: ollama pull llama3). -provider.picker.description.docker=Docker Desktop의 내장 AI 모델 러너를 통해 모델을 실행합니다. API 키가 필요하지 않습니다. Model Runner 기능이 활성화된 Docker Desktop 4.40 이상이 필요합니다. -provider.picker.description.localai=자체 호스팅되는 OpenAI 호환 로컬 AI 서버입니다. API 키가 필요하지 않습니다. LocalAI를 설치하고, 모델을 다운로드한 후 연결 전에 서버를 시작하세요. -provider.picker.description.lmstudio=사용하기 쉬운 데스크톱 인터페이스로 로컬 LLM을 실행합니다. API 키가 필요하지 않습니다. lmstudio.ai에서 LM Studio를 다운로드하고, 모델을 가져와 불러온 다음 연결 전에 로컬 서버를 활성화하세요. provider.manage.title=제공업체 관리 provider.type.picker.title=AI 공급자 추가 provider.type.picker.select.hint=← 목록에서 공급자를 선택하여 세부 정보 보기 @@ -970,19 +991,30 @@ provider.template.get.apikey=API 키 가져오기 → # OpenAI-Compatible template taglines and setup help (see OpenAiCompatibleTemplate.kt) provider.template.cloudflare_ai.tagline=Workers AI로 Cloudflare의 글로벌 엣지 네트워크에서 AI 모델을 실행하세요. -provider.template.cloudflare_ai.help=💡 Cloudflare AI 사용 방법:\n\n1. Cloudflare 대시보드에서 계정 ID를 확인하세요\n2. 기본 URL의 {ACCOUNT_ID}를 해당 값으로 바꾸세요\n3. 'Workers AI' 권한이 있는 API 토큰을 아래에서 생성하세요:\n dash.cloudflare.com/profile/api-tokens +provider.template.cloudflare_ai.help=💡 Cloudflare AI 사용 방법\:\n\n1. Cloudflare 대시보드에서 계정 ID를 확인하세요\n2. 기본 URL의 {ACCOUNT_ID}를 해당 값으로 바꾸세요\n3. ''Workers AI'' 권한이 있는 API 토큰을 아래에서 생성하세요\:\n dash.cloudflare.com/profile/api-tokens +provider.template.deepseek.tagline=간단한 OpenAI 호환 API를 제공하는 추론 및 범용 모델입니다. +provider.template.deepseek.help=💡 DeepSeek 사용 방법\:\n\n1. 다음 주소에서 API 키 생성\: platform.deepseek.com/api_keys\n2. 필요한 경우 DeepSeek 계정에 크레딧 충전\n3. '다음'을 클릭하여 사용 가능한 모델 찾아보기 provider.template.groq.tagline=오픈소스 모델을 위한 초고속 추론 — Llama, Mixtral, Gemma 등. -provider.template.groq.help=💡 Groq 사용 방법:\n\n1. console.groq.com/keys 에서 무료 API 키를 받으세요\n2. 모델 이름을 입력하세요 (예: llama-3.1-8b-instant)\n3. '다음'을 클릭하여 사용 가능한 모든 모델을 둘러보세요 +provider.template.groq.help=💡 Groq 사용 방법\:\n\n1. console.groq.com/keys 에서 무료 API 키를 받으세요\n2. 모델 이름을 입력하세요 (예\: llama-3.1-8b-instant)\n3. '다음'을 클릭하여 사용 가능한 모든 모델을 둘러보세요 provider.template.nvidia_nim.tagline=NVIDIA의 클라우드 GPU 인프라에서 최적화된 AI 모델을 실행하세요. -provider.template.nvidia_nim.help=💡 NVIDIA NIM 사용 방법:\n\n1. build.nvidia.com 에서 API 키를 받으세요\n2. 모델 이름을 입력하세요 (예: meta/llama-3.1-8b-instruct)\n3. '다음'을 클릭하여 사용 가능한 모든 모델을 둘러보세요 +provider.template.nvidia_nim.help=💡 NVIDIA NIM 사용 방법\:\n\n1. build.nvidia.com 에서 API 키를 받으세요\n2. 모델 이름을 입력하세요 (예\: meta/llama-3.1-8b-instruct)\n3. '다음'을 클릭하여 사용 가능한 모든 모델을 둘러보세요 provider.template.openrouter.tagline=300개 이상의 모델에 액세스 — GPT, Claude, Llama, Gemini, Mistral 등을 하나의 API로. -provider.template.openrouter.help=💡 OpenRouter 사용 방법:\n\n1. openrouter.ai/keys 에서 무료 API 키를 받으세요\n2. '다음'을 클릭하여 300개 이상의 사용 가능한 모델을 둘러보세요\n3. 많은 모델이 무료 티어를 제공합니다 — 신용카드 불필요 +provider.template.openrouter.help=💡 OpenRouter 사용 방법\:\n\n1. openrouter.ai/keys 에서 무료 API 키를 받으세요\n2. '다음'을 클릭하여 300개 이상의 사용 가능한 모델을 둘러보세요\n3. 많은 모델이 무료 티어를 제공합니다 — 신용카드 불필요 provider.template.together_ai.tagline=100개 이상의 오픈소스 모델을 위한 빠르고 저렴한 추론. -provider.template.together_ai.help=💡 Together AI 사용 방법:\n\n1. api.together.ai/settings/api-keys 에서 API 키를 받으세요\n2. '다음'을 클릭하여 사용 가능한 모델을 둘러보세요\n (예: meta-llama/Llama-3-8b-chat-hf) +provider.template.together_ai.help=💡 Together AI 사용 방법\:\n\n1. api.together.ai/settings/api-keys 에서 API 키를 받으세요\n2. '다음'을 클릭하여 사용 가능한 모델을 둘러보세요\n (예\: meta-llama/Llama-3-8b-chat-hf) provider.template.lite_llm.tagline=A unified proxy that lets you call 100+ LLMs using the OpenAI format. provider.search.placeholder=Search providers... provider.search.no_results=No providers found -provider.template.lite_llm.help=💡 To use LiteLLM:\n\n1. Start the LiteLLM proxy: litellm --model ollama/llama3\n2. The default URL is http://localhost:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lite_llm.help=💡 To use LiteLLM\:\n\n1. Start the LiteLLM proxy\: litellm --model ollama/llama3\n2. The default URL is http\://localhost\:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lmstudio.tagline=사용하기 쉬운 데스크톱 인터페이스로 로컬 LLM을 실행하세요. API 키가 필요하지 않습니다. lmstudio.ai에서 LM Studio를 다운로드하고 로컬 서버를 활성화하세요. +provider.template.lmstudio.help=💡 LM Studio 사용 방법\:\n\n1. https\://lmstudio.ai/에서 LM Studio를 설치합니다.\n2. 모델을 로드하고 로컬 서버(Developer 탭)를 시작합니다.\n3. 기본 포트 1234를 사용하지 않는 경우 필요에 따라 베이스 URL을 변경합니다. +provider.template.docker_ai.tagline=Docker Desktop의 내장 모델 러너를 통해 AI 모델을 실행합니다. API 키가 필요하지 않습니다. Model Runner 기능이 활성화된 Docker Desktop 4.40 이상이 필요합니다. +provider.template.docker_ai.help=💡 Docker AI 사용 방법\:\n\n1. Docker Desktop 4.40 이상이 설치되어 실행 중인지 확인합니다.\n2. Docker Desktop 설정에서 Model Runner 기능을 활성화합니다.\n3. 모델을 풀(pull)합니다(예\: docker model pull ai/qwen3-embedding\:0.6B-F16).\n4. 기본 베이스 URL은 http\://localhost\:12434/v1 입니다. +provider.template.localai.tagline=자체 호스팅되는 OpenAI 호환 로컬 AI 서버. API 키가 필요하지 않습니다. 연결하기 전에 LocalAI를 설치하고, 모델을 로드한 후 서버를 시작하세요. +provider.template.localai.help=💡 LocalAI 사용 방법\:\n\n1. https\://localai.io/에서 LocalAI를 설치합니다.\n2. 모델을 풀(pull)하고 서버를 시작합니다.\n3. 기본 베이스 URL은 http\://localhost\:8080/v1 입니다. +provider.template.ollama.tagline=오픈소스 모델을 로컬에서 실행합니다. API 키가 필요하지 않습니다. ollama.com에서 Ollama를 다운로드한 후, 연결하기 전에 모델을 풀(pull)하세요(예\: ollama pull llama3). +provider.template.ollama.help=💡 Ollama 사용 방법\:\n\n1. https\://ollama.com/에서 Ollama를 설치합니다.\n2. 모델을 풀(pull)합니다\: ollama pull llama3\n3. 기본 베이스 URL은 http\://localhost\:11434/v1 입니다. + provider.configure.new.title=Configure {0} provider.edit.title=Edit "{0}" @@ -992,14 +1024,14 @@ provider.model.panel.select.hint=왼쪽에서 공급자를 선택하여 모델 provider.model.panel.model.count={0}개 모델 provider.model.default.badge=기본 provider.instance.name.label=인스턴스 이름 -provider.instance.name.placeholder=예: "Work OpenAI", "ollama-macbook" +provider.instance.name.placeholder=예\: "Work OpenAI", "ollama-macbook" provider.instance.name.duplicate="{0}" 이름의 프로바이더가 이미 존재합니다 provider.setup.required.title=AI 제공업체 설정 provider.setup.required.message=채팅을 시작하려면 먼저 AI 제공업체를 설정해야 합니다. 목록에서 제공업체를 선택하고 구성해 주세요. provider.setup.required.button=제공업체 설정 provider.setup.required.skip=나중에 설정 provider.setup.empty.state.button=공급자 추가 -provider.configure.prompt=제공업체 구성: +provider.configure.prompt=제공업체 구성\: provider.setup.guide={0} 설정 방법 provider.apikey.stored=API 키가 안전하게 저장됨 provider.apikey.enter=API 키 입력 @@ -1008,14 +1040,14 @@ provider.apikey.security.link=데이터 보호 방법 알아보기 provider.not.set=설정 안 됨 # Provider Configuration - OpenAI -provider.openai.apikey.description=OpenAI API 키: https://platform.openai.com/account/api-keys +provider.openai.apikey.description=OpenAI API 키\: https\://platform.openai.com/account/api-keys provider.openai.apikey.stored=API 키가 이미 저장됨. 비워두면 기존 키를 유지합니다. -provider.openai.setup.help=💡 OpenAI 사용을 위해 API 키가 필요합니다.\n\n1. https://platform.openai.com/account/api-keys 에서 키를 받으세요\n2. 설정 메뉴 또는 :change-settings 명령으로 추가하세요 +provider.openai.setup.help=💡 OpenAI 사용을 위해 API 키가 필요합니다.\n\n1. https\://platform.openai.com/account/api-keys 에서 키를 받으세요\n2. 설정 메뉴 또는 \:change-settings 명령으로 추가하세요 # Provider Configuration - Anthropic -provider.anthropic.apikey.description=Anthropic API 키: https://console.anthropic.com/ +provider.anthropic.apikey.description=Anthropic API 키\: https\://console.anthropic.com/ provider.anthropic.apikey.stored=API 키가 이미 저장됨. -provider.anthropic.setup.help=💡 Anthropic 사용을 위해 API 키가 필요합니다.\n\n1. https://console.anthropic.com/ 에서 키를 받으세요\n2. 설정 또는 :change-settings 명령으로 구성하세요 +provider.anthropic.setup.help=💡 Anthropic 사용을 위해 API 키가 필요합니다.\n\n1. https\://console.anthropic.com/ 에서 키를 받으세요\n2. 설정 또는 \:change-settings 명령으로 구성하세요 provider.anthropic.max_tokens.label=최대 토큰 수 provider.anthropic.max_tokens.description=모델이 응답당 생성할 수 있는 최대 토큰 수 (생각 + 답변 합계). provider.anthropic.thinking_budget_tokens.label=생각 예산 토큰 수 @@ -1024,31 +1056,17 @@ provider.anthropic.thinking_max_tokens.label=생각 최대 토큰 수 provider.anthropic.thinking_max_tokens.description=생각 기능이 활성화되었을 때의 총 토큰 제한 (생각 + 답변). 0으로 설정하면 대신 최대 토큰 수(Max Tokens)를 사용합니다. # Provider Configuration - Gemini -provider.gemini.apikey.description=Google AI Studio API 키: https://aistudio.google.com/app/apikey +provider.gemini.apikey.description=Google AI Studio API 키\: https\://aistudio.google.com/app/apikey provider.gemini.apikey.stored=API 키가 이미 저장됨. -provider.gemini.setup.help=💡 Gemini 사용을 위해 API 키가 필요합니다.\n\n1. https://aistudio.google.com/app/apikey 에서 키를 받으세요\n2. 설정에서 구성하거나 :change-settings 명령을 사용하세요 +provider.gemini.setup.help=💡 Gemini 사용을 위해 API 키가 필요합니다.\n\n1. https\://aistudio.google.com/app/apikey 에서 키를 받으세요\n2. 설정에서 구성하거나 \:change-settings 명령을 사용하세요 # Provider Configuration - XAI -provider.xai.apikey.description=XAI API 키: https://console.x.ai/ +provider.xai.apikey.description=XAI API 키\: https\://console.x.ai/ provider.xai.apikey.stored=API 키가 이미 저장됨. -provider.xai.setup.help=💡 XAI 사용을 위해 API 키가 필요합니다.\n\n1. https://console.x.ai/ 에서 키를 받으세요\n2. 설정 또는 :change-settings 명령으로 구성하세요 - -# Provider Configuration - Ollama -provider.ollama.baseurl.description=Ollama 기본 URL (기본값: http://localhost:11434) -provider.ollama.setup.help=💡 Ollama를 사용하려면 로컬에서 실행해야 합니다.\n\n1. https://ollama.ai/ 에서 설치\n2. 서비스 실행\n3. 필요 시 기본 URL 변경 +provider.xai.setup.help=💡 XAI 사용을 위해 API 키가 필요합니다.\n\n1. https\://console.x.ai/ 에서 키를 받으세요\n2. 설정 또는 \:change-settings 명령으로 구성하세요 -# Provider Configuration - Docker AI -provider.docker.baseurl.description=Docker AI 기본 URL (기본값: http://localhost:12434) -provider.docker.setup.help=💡 Docker AI를 사용하려면 로컬에서 실행해야 합니다.\n\n1. Docker AI가 설치되고 실행되는지 확인\n2. 서비스 실행\n3. 필요 시 기본 URL 변경 -# Provider Configuration - LocalAI -provider.localai.baseurl.description=LocalAI 기본 URL -provider.localai.setup.help=💡 LocalAI를 사용하려면 먼저 실행해야 합니다.\n\n1. LocalAI 설치 및 실행\n2. 접근 가능한 기본 URL 구성 -# Provider Configuration - LMStudio -provider.lmstudio.baseurl.description=LMStudio 기본 URL (기본값: http://localhost:1234) -provider.lmstudio.setup.help=💡 LMStudio 사용 방법:\n\n1. https://lmstudio.ai/ 에서 설치\n2. 로컬 서버 실행\n3. 필요 시 기본 URL 변경 -provider.lmstudio.openai.compat.info=Askimo는 기본 LMStudio API(/api/v1/)가 아닌 OpenAI 호환 엔드포인트(/v1)를 사용합니다. # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=OpenAI 호환 인스턴스의 기본 URL @@ -1066,7 +1084,7 @@ provider.openai_compatible.httpversion.http2=HTTP/2를 완전히 지원하는 # System Resources system.share.feedback=피드백 공유 -system.ai.provider.tooltip=AI 제공자: {0}\n클릭하여 설정 +system.ai.provider.tooltip=AI 제공자\: {0}\n클릭하여 설정 system.diagnostics.title=시스템 진단 system.diagnostics.resources=리소스 system.diagnostics.jvm.memory=JVM 메모리 (사용됨 / 전체) @@ -1077,7 +1095,7 @@ system.diagnostics.telemetry=텔레메트리 telemetry.export.csv=CSV 내보내기 telemetry.export.dialog.title=텔레메트리를 ZIP으로 내보내기 telemetry.export.error.title=내보내기 실패 -telemetry.export.error.message=텔레메트리 데이터 내보내기 실패: {0} +telemetry.export.error.message=텔레메트리 데이터 내보내기 실패\: {0} # Telemetry telemetry.reset=텔레메트리 데이터 재설정 @@ -1127,24 +1145,20 @@ export.format.html.benefit.3=전문적인 외관 export.format.html.benefit.4=공유하기 쉬움 # Error Messages -error.network=⚠️ AI 서비스{endpoint}에 연결할 수 없습니다\n\n다음을 확인하세요:\n• 인터넷 연결 상태\n• AI 서비스 URL (설정 확인)\n• 방화벽 설정\n• 서비스 사용 가능 여부 +error.network=⚠️ AI 서비스{endpoint}에 연결할 수 없습니다\n\n다음을 확인하세요\:\n• 인터넷 연결 상태\n• AI 서비스 URL (설정 확인)\n• 방화벽 설정\n• 서비스 사용 가능 여부 error.authentication=⚠️ API 키가 없거나 유효하지 않습니다{provider}\n\n설정에서 API 키를 입력하면 해결할 수 있습니다. -error.model_not_found=⚠️ 모델을 찾을 수 없습니다: {model}\n\n이 모델은 제공업체에 의해 더 이상 사용되지 않거나 제거되었을 수 있습니다. 다른 모델을 선택해 주세요. -error.provider_not_configured=⚠️ AI 제공자가 설정되지 않았습니다.\n\n채팅을 시작하려면:\n1. 설정 열기\n2. AI 제공자 선택 (OpenAI, Ollama, Anthropic 등)\n3. API 키 입력 또는 연결 설정 +error.model_not_found=⚠️ 모델을 찾을 수 없습니다\: {model}\n\n이 모델은 제공업체에 의해 더 이상 사용되지 않거나 제거되었을 수 있습니다. 다른 모델을 선택해 주세요. +error.provider_not_configured=⚠️ AI 제공자가 설정되지 않았습니다.\n\n채팅을 시작하려면\:\n1. 설정 열기\n2. AI 제공자 선택 (OpenAI, Ollama, Anthropic 등)\n3. API 키 입력 또는 연결 설정 error.rate_limit=⚠️ 사용량 제한을 초과했습니다\n{retryAfter}\n\nAPI 사용 한도에 도달했습니다. 잠시 기다린 후 다시 메시지를 보내세요. error.insufficient_credits=⚠️ 크레딧 부족\n\n크레딧 잔액이 너무 낮습니다.\n\n결제 페이지를 방문하여 크레딧을 추가하세요. -error.timeout=⚠️ {timeout}초 후 요청 시간이 초과되었습니다\n\n가능한 원인:\n• 서버 부하가 높음 - 잠시 후 다시 시도\n• 쿼리가 복잡함 - 더 간단하게 작성\n• 네트워크 지연 -error.context_length=⚠️ 컨텍스트 창 초과\n\n전체 입력(대화 기록 + 메시지 + 첨부 파일)이 너무 커서 이 모델이 처리할 수 없습니다.\n\n해결 방법:\n• 새로운 채팅 세션을 시작하여 대화 기록을 지우세요\n• 메시지를 줄이거나 큰 첨부 파일을 제거하세요\n• 로컬 모델(Ollama / LM Studio / Docker)을 사용하는 경우, 설정에서 컨텍스트 크기를 늘리세요\n• 더 큰 컨텍스트 창을 지원하는 모델로 전환하세요 -error.invalid_request=⚠️ 잘못된 요청: {details}\n\n입력 내용을 확인한 뒤 다시 시도하세요. -error.local_server=⚠️ 로컬 AI 서버 오류!\n\nAI 서버 프로세스가 충돌하거나 모델을 로드하지 못했습니다. 이는 Askimo로 인한 문제가 아닙니다.\n\n가능한 원인:\n• 모델 파일이 손상되었거나 불완전합니다 — 다시 다운로드해 보세요\n• RAM/VRAM 부족 — 더 작은 양자화(예: Q8 대신 Q4)를 시도해 보세요\n• 현재 서버 버전에서 지원하지 않는 모델 형식\n• 서버 프로세스가 OS에 의해 종료됨(메모리 부족)\n\n해결 방법:\n1. 로컬 AI 서버 로그를 확인하세요\n2. 서버를 재시작하고 다시 시도하세요\n3. 모델을 다시 다운로드하세요\n4. 다른 모델 또는 양자화 수준을 시도해 보세요\n\n기술적 세부 정보: {details} -error.empty_http_response=⚠️ 서버가 응답 없이 연결을 종료했습니다!\n\n모델: {0}\n\n이 문제는 일반적으로 로컬 AI 공급자가 오류를 반환하는 대신 조용히 요청을 드롭할 때 발생합니다. 현재 요청에 비해 모델의 컨텍스트 창이 너무 작습니다.\n\n일반적인 원인:\n• 대화 기록이 여러 턴에 걸쳐 너무 길어짐\n• 활성화된 도구가 모든 요청에 추가 데이터를 포함함(도구가 여러 개 활성화된 경우 짧은 질문도 제한을 초과할 수 있음)\n• 첨부된 대용량 파일이나 코드 조각으로 인해 요청이 제한을 초과함\n\n{1}\n\n시도해 볼 다른 방법:\n• 새 대화를 시작하여 컨텍스트 재설정\n• 작업에 필요하지 않은 도구 비활성화\n• 메시지나 첨부 파일 크기 줄이기 -error.empty_http_response.hint.docker=Docker AI / Docker Model Runner에서 컨텍스트 창을 늘리는 방법:\n• 모델 시작 시 --context-size <값> 전달 (예: --context-size 32768)\n• 또는 모델 실행 구성에서 설정 -error.empty_http_response.hint.ollama=Ollama에서 컨텍스트 창을 늘리는 방법:\n• Modelfile에서 num_ctx 설정 (예: PARAMETER num_ctx 32768)\n• 또는 매개변수로 전달: ollama run <모델> --num-ctx 32768 -error.empty_http_response.hint.lmstudio=LM Studio에서 컨텍스트 창을 늘리는 방법:\n• 모델 설정 패널 열기\n• "Context Length"를 찾아 값을 높임 (예: 32768 이상, 모델 최대치까지)\n• 설정 변경 후 로컬 서버 재시작 -error.empty_http_response.hint.localai=LocalAI에서 컨텍스트 창을 늘리는 방법:\n• 모델 구성 YAML을 편집하여 context_size: 32768 설정\n• 설정 변경 후 LocalAI 서버 재시작 -error.empty_http_response.hint.generic=컨텍스트 창을 늘리는 방법:\n• 공급자의 설정에서 컨텍스트 길이 / 컨텍스트 크기 옵션을 찾아 값을 높임 (예: 32768 토큰)\n• 설정 변경 후 공급자 재시작 -error.remote_server=⚠️ AI 제공업체 서버 오류\n\n제공업체 서버가 일시적인 오류를 반환했습니다(예: 과부하 또는 사용 불가). 이는 Askimo로 인한 문제가 아닙니다.\n\n해결 방법:\n• 잠시 기다린 후 다시 시도하세요 — 보통 일시적인 문제입니다\n• 문제가 지속되면 제공업체의 상태 페이지를 확인하세요\n\n기술적 세부 정보: {details} -error.system=⚠️ 시스템 오류\n\n예기치 않은 오류가 발생했습니다: {errorCode}\n\nAskimo 지원팀에 다음 정보를 함께 전달해 주세요:\n• 수행 중이던 작업\n• 위의 오류 코드\n• 타임스탬프 +error.timeout=⚠️ {timeout}초 후 요청 시간이 초과되었습니다\n\n가능한 원인\:\n• 서버 부하가 높음 - 잠시 후 다시 시도\n• 쿼리가 복잡함 - 더 간단하게 작성\n• 네트워크 지연 +error.context_length=⚠️ 컨텍스트 창 초과\n\n전체 입력(대화 기록 + 메시지 + 첨부 파일)이 너무 커서 이 모델이 처리할 수 없습니다.\n\n해결 방법\:\n• 새로운 채팅 세션을 시작하여 대화 기록을 지우세요\n• 메시지를 줄이거나 큰 첨부 파일을 제거하세요\n• 로컬 모델(Ollama / LM Studio / Docker)을 사용하는 경우, 설정에서 컨텍스트 크기를 늘리세요\n• 더 큰 컨텍스트 창을 지원하는 모델로 전환하세요 +error.invalid_request=⚠️ 잘못된 요청\: {details}\n\n입력 내용을 확인한 뒤 다시 시도하세요. +error.local_server=⚠️ 로컬 AI 서버 오류\!\n\nAI 서버 프로세스가 충돌하거나 모델을 로드하지 못했습니다. 이는 Askimo로 인한 문제가 아닙니다.\n\n가능한 원인\:\n• 모델 파일이 손상되었거나 불완전합니다 — 다시 다운로드해 보세요\n• RAM/VRAM 부족 — 더 작은 양자화(예\: Q8 대신 Q4)를 시도해 보세요\n• 현재 서버 버전에서 지원하지 않는 모델 형식\n• 서버 프로세스가 OS에 의해 종료됨(메모리 부족)\n\n해결 방법\:\n1. 로컬 AI 서버 로그를 확인하세요\n2. 서버를 재시작하고 다시 시도하세요\n3. 모델을 다시 다운로드하세요\n4. 다른 모델 또는 양자화 수준을 시도해 보세요\n\n기술적 세부 정보\: {details} +error.empty_http_response=⚠️ 서버가 응답 없이 연결을 종료했습니다\!\n\n모델\: {0}\n\n이 문제는 일반적으로 로컬 AI 공급자가 오류를 반환하는 대신 조용히 요청을 드롭할 때 발생합니다. 현재 요청에 비해 모델의 컨텍스트 창이 너무 작습니다.\n\n일반적인 원인\:\n• 대화 기록이 여러 턴에 걸쳐 너무 길어짐\n• 활성화된 도구가 모든 요청에 추가 데이터를 포함함(도구가 여러 개 활성화된 경우 짧은 질문도 제한을 초과할 수 있음)\n• 첨부된 대용량 파일이나 코드 조각으로 인해 요청이 제한을 초과함\n\n{1}\n\n시도해 볼 다른 방법\:\n• 새 대화를 시작하여 컨텍스트 재설정\n• 작업에 필요하지 않은 도구 비활성화\n• 메시지나 첨부 파일 크기 줄이기 +error.empty_http_response.hint.generic=컨텍스트 창을 늘리는 방법\:\n• 공급자의 설정에서 컨텍스트 길이 / 컨텍스트 크기 옵션을 찾아 값을 높임 (예\: 32768 토큰)\n• 설정 변경 후 공급자 재시작 +error.remote_server=⚠️ AI 제공업체 서버 오류\n\n제공업체 서버가 일시적인 오류를 반환했습니다(예\: 과부하 또는 사용 불가). 이는 Askimo로 인한 문제가 아닙니다.\n\n해결 방법\:\n• 잠시 기다린 후 다시 시도하세요 — 보통 일시적인 문제입니다\n• 문제가 지속되면 제공업체의 상태 페이지를 확인하세요\n\n기술적 세부 정보\: {details} +error.system=⚠️ 시스템 오류\n\n예기치 않은 오류가 발생했습니다\: {errorCode}\n\nAskimo 지원팀에 다음 정보를 함께 전달해 주세요\:\n• 수행 중이던 작업\n• 위의 오류 코드\n• 타임스탬프 # Model Availability Errors error.model.not_available.title.chat=모델을 사용할 수 없음 @@ -1152,10 +1166,11 @@ error.model.not_available.title.embedding=임베딩 모델을 사용할 수 없 error.model.not_available.message.chat=모델 ''{0}''을(를) 사용할 수 없습니다. error.model.not_available.message.embedding=임베딩 모델 ''{0}''을(를) 로컬 프로바이더에서 사용할 수 없습니다.\n\n설정 → AI 프로바이더 로 이동하여 프로바이더 구성 카드에서 사용 가능한 임베딩 모델을 선택하세요. error.model.not_available.config_link=임베딩 모델 설정 -error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration +error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration +error.embedding_model_not_configured=⚠️ ''{provider}''에 임베딩 모델이 설정되지 않았습니다.\n\n설정 → AI 프로바이더 로 이동하여 프로바이더 구성 카드에서 임베딩 모델을 선택하세요. # Generic Application Errors -error.app.message=예기치 않은 오류가 발생했습니다: {0} +error.app.message=예기치 않은 오류가 발생했습니다\: {0} # Send Message Errors error.send_message.title=메시지 전송 실패 @@ -1170,37 +1185,39 @@ error.indexing.io_error.title=IO 오류 error.indexing.io_error.message=인덱싱 중 IO 오류가 발생했습니다 error.indexing.unknown.title=인덱싱 오류 error.indexing.unknown.message=인덱싱 중 알 수 없는 오류가 발생했습니다 +error.indexing.failed.title=지식 소스 인덱싱 실패 +error.indexing.failed_project.title=프로젝트의 지식 소스 인덱싱 실패 # RAG Configuration settings.rag.title=RAG 구성 settings.rag.description=프로젝트 기반 지식 검색을 위한 Retrieval-Augmented Generation 매개변수를 구성합니다 settings.rag.vector.max.results=벡터 검색 최대 결과 수 -settings.rag.vector.max.results.hint=벡터 검색에서 가져올 최대 문서 수 (기본값: 20) +settings.rag.vector.max.results.hint=벡터 검색에서 가져올 최대 문서 수 (기본값\: 20) settings.rag.vector.min.score=벡터 검색 최소 점수 -settings.rag.vector.min.score.hint=최소 유사도 점수 0.0–1.0 (기본값: 0.3) +settings.rag.vector.min.score.hint=최소 유사도 점수 0.0–1.0 (기본값\: 0.3) settings.rag.hybrid.max.results=하이브리드 최대 결과 수 -settings.rag.hybrid.max.results.hint=융합 후 최종 문서 수 (기본값: 15) +settings.rag.hybrid.max.results.hint=융합 후 최종 문서 수 (기본값\: 15) settings.rag.rank.fusion.constant=랭크 퓨전 상수 -settings.rag.rank.fusion.constant.hint=하이브리드 랭킹을 위한 RRF 상수 (기본값: 60) +settings.rag.rank.fusion.constant.hint=하이브리드 랭킹을 위한 RRF 상수 (기본값\: 60) settings.rag.use.absolute.paths=인용에서 절대 경로 사용 settings.rag.use.absolute.paths.hint=동일한 이름의 파일이 여러 개 있을 때 더 명확하게 하기 위해 AI 응답에 전체 파일 경로를 표시합니다 settings.rag.embedding.title=임베딩 구성 settings.rag.embedding.description=텍스트 분할 및 임베딩 매개변수를 구성합니다 settings.rag.embedding.max.chars.per.chunk=청크당 최대 문자 수 -settings.rag.embedding.max.chars.per.chunk.hint=각 텍스트 청크의 최대 문자 수 (기본값: 1500) +settings.rag.embedding.max.chars.per.chunk.hint=각 텍스트 청크의 최대 문자 수 (기본값\: 1500) settings.rag.embedding.chunk.overlap=청크 중첩 -settings.rag.embedding.chunk.overlap.hint=청크 간 중첩되는 문자 수 (기본값: 100) +settings.rag.embedding.chunk.overlap.hint=청크 간 중첩되는 문자 수 (기본값\: 100) settings.rag.embedding.models=제공자별 임베딩 모델 settings.rag.indexing.title=인덱싱 구성 settings.rag.indexing.description=인덱싱할 파일과 허용되는 최대 파일 크기를 제어합니다 settings.rag.indexing.max.file.bytes=최대 파일 크기 (바이트) settings.rag.indexing.max.file.bytes.hint=이 값보다 큰 파일은 인덱싱 중에 건너뜁니다. 너무 높게 설정하면 인덱싱 속도가 크게 느려질 수 있습니다. settings.rag.indexing.supported.extensions=지원되는 확장자 -settings.rag.indexing.supported.extensions.hint=인덱싱할 파일 확장자를 쉼표로 구분하여 입력합니다 (예: kt, java, py, md). 빈칸으로 두면 기본값을 사용합니다. +settings.rag.indexing.supported.extensions.hint=인덱싱할 파일 확장자를 쉼표로 구분하여 입력합니다 (예\: kt, java, py, md). 빈칸으로 두면 기본값을 사용합니다. settings.rag.indexing.exclude.file.names=제외할 파일 이름 -settings.rag.indexing.exclude.file.names.hint=항상 건너뛸 정확한 파일 이름을 쉼표로 구분하여 입력합니다 (예: package-lock.json, yarn.lock). +settings.rag.indexing.exclude.file.names.hint=항상 건너뛸 정확한 파일 이름을 쉼표로 구분하여 입력합니다 (예\: package-lock.json, yarn.lock). settings.rag.indexing.binary.extensions=바이너리 확장자 -settings.rag.indexing.binary.extensions.hint=인덱싱 중 바이너리로 처리되어 건너뛸 파일 확장자를 쉼표로 구분하여 입력합니다 (예: png, jpg, zip, exe). 빈칸으로 두면 기본값을 사용합니다. +settings.rag.indexing.binary.extensions.hint=인덱싱 중 바이너리로 처리되어 건너뛸 파일 확장자를 쉼표로 구분하여 입력합니다 (예\: png, jpg, zip, exe). 빈칸으로 두면 기본값을 사용합니다. settings.rag.indexing.embedding.batch.size=임베딩 배치 크기 settings.rag.indexing.embedding.batch.size.hint=요청당 임베딩 모델에 전송되는 텍스트 세그먼트 수입니다. 인덱싱이 느리고 원격 공급자(OpenAI, Gemini)를 사용하는 경우 100–500으로 늘려 보세요. 로컬 모델(Ollama, LM Studio)을 사용하는 경우 타임아웃을 방지하려면 낮게 유지하세요. @@ -1208,7 +1225,7 @@ settings.rag.indexing.embedding.batch.size.hint=요청당 임베딩 모델에 settings.models.title=모델 settings.models.description=모든 공급자에서 공유되는 전역 AI 모델 동작을 구성합니다. settings.models.max.tool.calling.round.trips=최대 도구 호출 라운드 트립 -settings.models.max.tool.calling.round.trips.hint=AI가 단일 응답에서 수행할 수 있는 최대 도구 호출 횟수입니다 (기본값: 10). 값이 높을수록 복잡한 에이전트 작업이 가능하지만 지연 시간과 비용이 증가합니다. +settings.models.max.tool.calling.round.trips.hint=AI가 단일 응답에서 수행할 수 있는 최대 도구 호출 횟수입니다 (기본값\: 10). 값이 높을수록 복잡한 에이전트 작업이 가능하지만 지연 시간과 비용이 증가합니다. # Memory Settings settings.memory.title=메모리 설정 @@ -1251,11 +1268,11 @@ file.viewer.title=파일 뷰어 file.viewer.title.with.name=파일 뷰어 - {0} file.viewer.dialog.close=닫기 file.viewer.copy.clipboard=클립보드에 복사 -file.viewer.copied=복사됨! +file.viewer.copied=복사됨\! # Mermaid Chart Renderer mermaid.setup.required.title=Mermaid CLI 필요 -mermaid.setup.instructions.link=https://askimo.chat/docs/desktop/mermaid-diagrams/ +mermaid.setup.instructions.link=https\://askimo.chat/docs/desktop/mermaid-diagrams/ mermaid.setup.button.open.guide=설정 가이드 열기 mermaid.rendering.progress=다이어그램 렌더링 중... mermaid.error.rendering.title=다이어그램 렌더링 오류 @@ -1268,14 +1285,14 @@ mermaid.button.zoom.in=확대 mermaid.button.zoom.out=축소 mermaid.button.reset.zoom=확대/축소 초기화 mermaid.button.retry=다시 시도 -mermaid.feedback.copied=복사됨! +mermaid.feedback.copied=복사됨\! mermaid.setup.button.install=Mermaid CLI 설치 mermaid.setup.button.check.again=다시 확인 mermaid.setup.button.download.node=Node.js 다운로드 mermaid.setup.installing=Mermaid CLI 설치 중... mermaid.setup.install.failed=설치에 실패했습니다. 자세한 내용은 아래 출력을 확인하세요. mermaid.setup.node.required=Node.js와 npm을 찾을 수 없습니다. 원클릭 설치를 사용하려면 먼저 Node.js를 설치하세요. -mermaid.setup.node.link=https://nodejs.org/en/download +mermaid.setup.node.link=https\://nodejs.org/en/download mermaid.error.code.show=다이어그램 코드 보기 mermaid.error.code.hide=다이어그램 코드 숨기기 @@ -1294,7 +1311,7 @@ mcp.instances.title=MCP 인스턴스 mcp.instances.description=사용 가능한 MCP 인스턴스입니다 mcp.instances.empty=구성된 MCP 인스턴스가 없습니다 mcp.instances.count={0} 인스턴스 -mcp.instance.server.label=서버: {0} +mcp.instance.server.label=서버\: {0} mcp.instance.delete.confirm.title=MCP 인스턴스를 삭제하시겠습니까? mcp.instance.delete.confirm.message=MCP 인스턴스 "{0}"를 정말로 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다. mcp.instance.enable.tooltip=이 MCP 인스턴스 활성화 @@ -1320,7 +1337,7 @@ mcp.instance.field.description=설명 mcp.instance.field.description.placeholder=이 서버가 수행하는 작업에 대한 간단한 설명 mcp.instance.field.transport=전송 유형 mcp.instance.field.command=명령어 템플릿 -mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2:--flag}} +mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2\:--flag}} mcp.instance.field.command.hint={{parameter}} 플레이스홀더가 포함된 공백 구분 명령어 mcp.instance.validation.error.empty.id=서버 ID는 비워둘 수 없습니다 mcp.instance.validation.error.invalid.id.pattern=서버 ID는 소문자 문자, 숫자 및 하이픈만 포함해야 합니다 @@ -1329,20 +1346,20 @@ mcp.instance.validation.error.empty.command=명령어 템플릿은 비워둘 수 mcp.instance.validation.error.empty.parameter.key=매개변수 키는 비워둘 수 없습니다 mcp.instance.validation.error.empty.parameter.label=매개변수 라벨은 비워둘 수 없습니다 mcp.instance.env.label=환경 변수 (선택 사항) -mcp.instance.env.placeholder=API_KEY={{apiKey}}\nDEBUG={{debug}} -mcp.instance.env.hint=형식: KEY=값 또는 KEY={{parameter}} (1줄에 1쌍) +mcp.instance.env.placeholder=API_KEY\={{apiKey}}\nDEBUG\={{debug}} +mcp.instance.env.hint=형식\: KEY\=값 또는 KEY\={{parameter}} (1줄에 1쌍) mcp.instance.transport.stdio=Stdio (로컬 프로세스) mcp.instance.transport.http=HTTP (원격 서버) mcp.instance.http.url.label=URL 템플릿 -mcp.instance.http.url.placeholder=https://{{host}}/mcp 또는 https://api.example.com/mcp +mcp.instance.http.url.placeholder=https\://{{host}}/mcp 또는 https\://api.example.com/mcp mcp.instance.http.url.hint=서버 엔드포인트 URL입니다. 동적 값에는 {{parameter}} 플레이스홀더를 사용합니다 mcp.instance.http.headers.label=HTTP 헤더 (선택 사항) -mcp.instance.http.headers.placeholder=Authorization=Bearer {{apiKey}}\nX-Tenant-Id={{tenantId}} -mcp.instance.http.headers.hint=형식: 헤더 이름=값 또는 헤더 이름={{parameter}} (1줄에 1쌍) +mcp.instance.http.headers.placeholder=Authorization\=Bearer {{apiKey}}\nX-Tenant-Id\={{tenantId}} +mcp.instance.http.headers.hint=형식\: 헤더 이름\=값 또는 헤더 이름\={{parameter}} (1줄에 1쌍) mcp.instance.http.timeout.label=시간 초과 (ms) mcp.instance.http.timeout.hint=요청 시간 초과를 밀리초 단위로 지정하세요 mcp.instance.validation.error.empty.url=URL 템플릿은 비워둘 수 없습니다 -mcp.instance.validation.error.invalid.url=URL 템플릿은 http:// 또는 https://로 시작해야 합니다 +mcp.instance.validation.error.invalid.url=URL 템플릿은 http\:// 또는 https\://로 시작해야 합니다 # MCP Integrations (Project View) mcp.instance.delete.tooltip=MCP 인스턴스 삭제 @@ -1353,7 +1370,7 @@ mcp.instance.field.serverId=서버 유형 # Add MCP Integration Dialog mcp.instance.name=MCP 이름 -mcp.instance.name.placeholder=예: 프로덕션 데이터베이스, 프로젝트 파일 +mcp.instance.name.placeholder=예\: 프로덕션 데이터베이스, 프로젝트 파일 mcp.instance.tools.title=사용 가능한 도구 mcp.instance.tools.count={0} 개의 도구가 사용 가능합니다 mcp.instance.tool.strategy.intent=의도 기반 @@ -1379,6 +1396,12 @@ mcp.tool.category.WEATHER.desc=날씨 데이터 및 예보 mcp.tool.category.WEB_SEARCH.desc=웹 검색 및 페이지 읽기 mcp.tool.category.DATETIME.desc=날짜 및 시간 작업 mcp.tool.category.OTHER.desc=분류되지 않은 도구 +mcp.tool.approval.label=승인 +mcp.tool.approval.require_approval=승인 필요 +mcp.tool.approval.default=자동 +mcp.tool.approval.default.hint=자동으로 실행됩니다. 쓰기 관련 범주(파일 쓰기, 실행, git, 메시징)는 기본적으로 승인이 필요합니다. +mcp.tool.approval.require_approval.hint=AI가 이 도구를 실행하기 전에 항상 일시 중지하고 확인을 요청합니다. +mcp.tool.enabled.label=활성화됨 # MCP Tools Dialog mcp.tools.dialog.title=사용 가능한 도구 - {0} @@ -1392,7 +1415,7 @@ mcp.tools.dialog.search.count={0} / {1} 도구 mcp.tools.dialog.search.empty=검색에 일치하는 도구가 없습니다 mcp.tools.dialog.export=도구 내보내기 mcp.tools.dialog.export.success={0}로 도구를 내보냈습니다 -mcp.tools.dialog.export.failed=도구 내보내기 실패: {0} +mcp.tools.dialog.export.failed=도구 내보내기 실패\: {0} # MCP Server Catalog Dialog mcp.catalog.dialog.title=MCP 서버 추가 @@ -1448,7 +1471,7 @@ file.viewer.close=뷰어 닫기 file.viewer.open.external=외부에서 열기 file.viewer.binary=바이너리 파일 — 텍스트로 미리 볼 수 없습니다. file.viewer.too.large=파일이 너무 커서 미리 볼 수 없습니다({0} KB). 최대 크기는 512 KB입니다. -file.viewer.error=파일을 읽을 수 없습니다: {0} +file.viewer.error=파일을 읽을 수 없습니다\: {0} file.viewer.select.prompt=위 트리에서 파일을 선택하여 내용을 미리 보세요 # Project Side Panel @@ -1464,7 +1487,7 @@ panel.collapse=패널 접기 # RAG Status rag.status.started=인덱싱 시작됨 -rag.status.inprogress=인덱싱 중: {0}% +rag.status.inprogress=인덱싱 중\: {0}% rag.status.inprogress.unknown=인덱싱 중... rag.status.queued=대기열 추가됨 — 다른 프로젝트의 인덱싱이 완료되기를 기다리는 중 rag.status.ready=준비 완료 @@ -1514,7 +1537,7 @@ plans.editor.label=YAML 내용 plans.editor.placeholder=여기에 플랜 YAML을 붙여넣거나 입력하세요... plans.editor.valid=유효한 YAML plans.editor.hint.title=참고 -plans.editor.hint.fields=필수: id, name, steps\n선택: description, icon, inputs, workflow\n단계 유형: text, multiline, toggle, number\n워크플로 유형: sequence, parallel, conditional +plans.editor.hint.fields=필수\: id, name, steps\n선택\: description, icon, inputs, workflow\n단계 유형\: text, multiline, toggle, number\n워크플로 유형\: sequence, parallel, conditional plans.editor.menu.edit=YAML 편집 plans.editor.ai.label=AI로 생성 plans.editor.ai.placeholder=이 계획이 수행할 작업을 알기 쉬운 말로 설명해주세요... @@ -1573,12 +1596,12 @@ skills.view.panel.collapse=패널 접기 skills.view.panel.expand=패널 펼치기 skills.view.tab.skills=스킬 skills.view.tab.workspace=작업 공간 -skills.view.last.run=마지막 실행: {0} +skills.view.last.run=마지막 실행\: {0} skills.view.category.uncategorized=기타 skills.view.search.placeholder=기술 검색 ... skills.view.search.clear=검색 지우기 skills.view.context.placeholder=무엇을 하고 싶으신가요? (선택 사항) -skills.view.command.mode.hint=명령 모드: /로 시작하는 입력은 에이전트 명령으로 실행됩니다. +skills.view.command.mode.hint=명령 모드\: /로 시작하는 입력은 에이전트 명령으로 실행됩니다. skills.view.system.prompt.preview=시스템 프롬프트 skills.view.response.title=응답 skills.view.followup.label=후속 질문 @@ -1588,7 +1611,7 @@ skills.view.history.empty=아직 실행 기록이 없습니다 skills.view.copy=복사 skills.view.system.prompt.file=파일 skills.view.system.prompt.files=파일 -skills.view.system.prompt.also.included=에이전트 컨텍스트에도 포함됨: +skills.view.system.prompt.also.included=에이전트 컨텍스트에도 포함됨\: skills.view.docs.tooltip=스킬 가이드 보기 skills.view.mode.agentic=에이전트형 skills.view.mode.manual=수동 @@ -1615,7 +1638,7 @@ onboarding.step.language.label=언어 # Onboarding Step 1: Analytics onboarding.step.analytics.title=Askimo를 모두에게 더 좋게 만드는 데 도움 주세요 onboarding.step.analytics.description=Askimo는 무료 오픈 소스입니다. 익명 사용 데이터 공유는 작은 기여이지만, 어떤 기능을 우선 개발할지 이해하는 데 큰 도움이 됩니다. -onboarding.step.analytics.collected.yes.features=✅ 사용된 기능들 (예: RAG, MCP 도구, 플랜, 스킬) +onboarding.step.analytics.collected.yes.features=✅ 사용된 기능들 (예\: RAG, MCP 도구, 플랜, 스킬) onboarding.step.analytics.collected.yes.version=✅ 앱 버전 및 운영체제 유형 onboarding.step.analytics.collected.no.conversations=❌ 대화 내용이나 프롬프트는 절대 제공하지 않음 onboarding.step.analytics.collected.no.personal=❌ 개인정보, 파일, API 키는 절대 수집하지 않습니다 @@ -1628,7 +1651,7 @@ onboarding.step.analytics.section.never=수집하지 않는 정보 onboarding.step.analytics.toggle.subtitle=가장 중요한 것에 집중할 수 있도록 도와줍니다 · 설정 → 고급에서 언제든지 변경 가능 # Onboarding Step 1: Welcome -onboarding.step.welcome.title=👋 Askimo에 오신 것을 환영합니다! +onboarding.step.welcome.title=👋 Askimo에 오신 것을 환영합니다\! onboarding.step.welcome.description=여러 AI 모델과 대화하고, 프로젝트로 지식을 정리하며, 스킬 및 플랜을 활용해 워크플로를 자동화할 수 있는 당신만의 AI 비서입니다. onboarding.step.welcome.feature1.title=💬 AI와 대화하기 onboarding.step.welcome.feature1.description=질문하거나, 과제 도움을 받거나, 어떤 AI 모델과도 자연스럽게 대화할 수 있습니다. @@ -1657,7 +1680,7 @@ onboarding.step.directives.feature3.description=학습엔 친절한 튜터, 디 onboarding.step.directives.link=예시와 팁 보기 # Onboarding Step 6: Ready -onboarding.step.ready.title=🚀 준비 완료! +onboarding.step.ready.title=🚀 준비 완료\! onboarding.step.ready.description=모든 설정이 완료됐습니다. 첫 채팅을 시작하거나 아래 리소스를 확인해보세요. onboarding.step.ready.link.docs=📚 문서 보기 onboarding.step.ready.link.providers=🔧 AI 제공업체 설정 @@ -1667,13 +1690,13 @@ onboarding.step.ready.link.github=⭐ GitHub에서 별 주기 onboarding.step.persona.title=🎯 주로 어떤 작업을 하고 싶으신가요? onboarding.step.persona.description=귀하의 업무와 가장 비슷한 옵션을 선택하세요. Askimo가 가장 관련성 높은 기능을 보여드립니다. 보기 메뉴에서 언제든지 이를 변경할 수 있습니다. onboarding.step.persona.developer.description=코드 읽기 및 쓰기, 파일 리팩토링, 스캐폴딩 생성 또는 로컬 프로젝트에서 에이전트 작업 실행. -onboarding.step.persona.developer.features=활성화: Skills (Gemini CLI, Claude Code), Projects +onboarding.step.persona.developer.features=활성화\: Skills (Gemini CLI, Claude Code), Projects onboarding.step.persona.researcher.description=주제 조사, 데이터 분석, 구조화된 보고서 작성 및 지식 기반 답변 얻기. -onboarding.step.persona.researcher.features=활성화: Plans, Projects (RAG) +onboarding.step.persona.researcher.features=활성화\: Plans, Projects (RAG) onboarding.step.persona.manager.description=이메일 초안 작성, 회의록 처리, 상태 보고서 작성 또는 다단계 콘텐츠 워크플로 실행. -onboarding.step.persona.manager.features=활성화: Plans +onboarding.step.persona.manager.features=활성화\: Plans onboarding.step.persona.everything.description=저는 여러 가지 작업을 혼합하여 합니다 — 모든 기능을 보여주시면 제가 무엇을 사용할지 결정하겠습니다. -onboarding.step.persona.everything.features=활성화: Skills, Plans, Projects, MCP, RAG +onboarding.step.persona.everything.features=활성화\: Skills, Plans, Projects, MCP, RAG # Persona labels persona.developer=💻 코드 작성 및 검토 diff --git a/desktop-shared/src/main/resources/i18n/messages_pt_BR.properties b/desktop-shared/src/main/resources/i18n/messages_pt_BR.properties index a66f82fc..f4cef102 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt_BR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt_BR.properties @@ -32,6 +32,7 @@ menu.view.appearance.system=Sistema menu.view.appearance.light=Claro menu.view.appearance.dark=Escuro menu.view.fullscreen=Entrar em tela cheia +menu.view.exit.fullscreen=Sair da tela cheia menu.view.bookmarks=Ver favoritos menu.terminal=Terminal menu.terminal.new=Novo terminal @@ -43,7 +44,7 @@ menu.help.discord=💬 Entrar na comunidade do Discord menu.help.share.x=Compartilhar no X / Twitter menu.help.share.linkedin=Compartilhar no LinkedIn menu.help.share.facebook=Compartilhar no Facebook -menu.help.share.text=Conheça o Askimo — um cliente de IA gratuito e local para desktop. Suporta Ollama, OpenAI, Anthropic e mais. https://askimo.chat +menu.help.share.text=Conheça o Askimo — um cliente de IA gratuito e local para desktop. Suporta Ollama, OpenAI, Anthropic e mais. https\://askimo.chat menu.help.share.hackernews=Publicar no Hacker News menu.eventlog=Registro de eventos menu.help.model.capabilities=Abrir arquivo de capacidades do modelo @@ -60,16 +61,16 @@ dialog.close=Fechar # Backup and Restore backup.export.title=Exportar backup backup.export.success.title=Backup exportado -backup.export.success.message=Backup exportado com sucesso para:\n{0} +backup.export.success.message=Backup exportado com sucesso para\:\n{0} backup.export.error.title=Falha na exportação -backup.export.error.message=Falha ao exportar backup:\n{0} +backup.export.error.message=Falha ao exportar backup\:\n{0} backup.import.title=Importar backup backup.import.confirm.title=Confirmar importação backup.import.confirm.message=Esta ação substituirá todos os dados atuais pelo backup.\n\nUm backup de segurança será criado automaticamente antes da importação.\n\nTem certeza de que deseja continuar? backup.import.success.title=Backup importado backup.import.success.message=Backup importado com sucesso.\n\nReinicie o Askimo para que todas as alterações entrem em vigor. backup.import.error.title=Falha na importação -backup.import.error.message=Falha ao importar backup:\n{0} +backup.import.error.message=Falha ao importar backup\:\n{0} # Event Log eventlog.title=Log de Eventos ({0}) @@ -87,7 +88,7 @@ eventlog.window.header=Log de Eventos eventlog.window.attach=Anexar à janela principal eventlog.window.events.count={0} eventos eventlog.window.empty.message=Ainda não há eventos. Eles aparecerão aqui conforme ocorrerem. -eventlog.footer.warning=As entradas mais antigas foram cortadas (limite: {0}) +eventlog.footer.warning=As entradas mais antigas foram cortadas (limite\: {0}) # Chat Interface chat.new=Nova Conversa @@ -165,7 +166,7 @@ session.rename.error.empty=O título não pode estar vazio session.export.file.chooser.title=Salvar Histórico da Conversa session.export.button.export=Exportar session.export.success.title=Exportação Bem-Sucedida -session.export.success.message=A sessão de conversa foi exportada com sucesso para: +session.export.success.message=A sessão de conversa foi exportada com sucesso para\: # Projects project.title=Projetos @@ -181,14 +182,16 @@ project.new.dialog.file.browse=Selecionar arquivos para processar... project.new.dialog.sources.label=Materiais de referência (opcional) project.new.dialog.sources.add=Adicionar fonte project.new.dialog.error.empty.name=O nome do projeto não pode estar vazio -project.new.dialog.error.create.failed=Falha ao criar o projeto: {0} +project.new.dialog.error.create.failed=Falha ao criar o projeto\: {0} project.new.dialog.name.error.empty=O nome do projeto não pode estar vazio project.new.dialog.button.create=Criar projeto project.new.dialog.button.cancel=Cancelar -project.new.dialog.success.title=Projeto criado com sucesso! +project.new.dialog.success.title=Projeto criado com sucesso\! project.new.dialog.success.message=O projeto ''{0}'' foi criado. project.new.dialog.success.countdown=Fechando em {0} segundo{1}... project.new.dialog.success.close=Fechar agora +project.dialog.defaultDirective.label=Diretiva padrão (opcional) +project.dialog.defaultDirective.none=Nenhuma project.dialog.url.title=Adicionar material de referência por URL project.dialog.url.description=Insira uma URL para adicionar conteúdo da web como material de referência. A URL será validada e verificada quanto à acessibilidade. project.dialog.url.label=URL @@ -206,9 +209,13 @@ project.not.selected=Nenhum projeto selecionado # Projects View projects.title=Projetos projects.description=Organize seus chats em torno de um tópico e anexe arquivos, pastas ou URLs como fontes de conhecimento, para que a IA sempre tenha o contexto certo para esse projeto. +projects.rag.embedding.not.configured=O RAG está desativado para projetos porque nenhum modelo de embedding está configurado para seu provedor de IA atual. +projects.rag.embedding.configure=Configurar modelo de embedding +projects.rag.embedding.unsupported.provider=O RAG está desativado para projetos porque seu provedor de IA atual não oferece suporte a modelos de embedding. Mude para um provedor que oferece suporte a embeddings (por exemplo, OpenAI, Gemini ou um endpoint compatível com OpenAI) para habilitar o RAG. +projects.rag.embedding.switch.provider=Trocar provedor de IA projects.error=❌ {0} projects.empty=Nenhum projeto encontrado. -projects.empty.hint=💡 Crie um novo projeto para organizar suas sessões de chat! +projects.empty.hint=💡 Crie um novo projeto para organizar suas sessões de chat\! projects.search.placeholder=Pesquisar por nome… projects.search.empty=Nenhum projeto corresponde a "{0}". projects.col.name=Nome @@ -219,13 +226,16 @@ projects.sources.expand=Mostrar materiais de referência projects.sources.collapse=Ocultar materiais de referência projects.sources.empty.title=Ainda não há materiais de referência projects.sources.empty.description=Adicione documentos para que o Askimo possa consultá-los ao responder às suas perguntas -projects.sources.info.tooltip=Os materiais de referência ajudam o Askimo a compreender o seu contexto específico.\n\n\ -Adicione pastas, arquivos ou sites que contenham as informações que você deseja que o Askimo utilize ao responder perguntas.\n\n\ -Por exemplo:\n\ +projects.sources.info.tooltip=Os materiais de referência ajudam o Askimo a compreender o seu contexto específico.\n\ +\n\ +Adicione pastas, arquivos ou sites que contenham as informações que você deseja que o Askimo utilize ao responder perguntas.\n\ +\n\ +Por exemplo\:\n\ • Documentação do seu projeto\n\ • Base de conhecimento da empresa\n\ • Especificações técnicas\n\ -• Artigos de pesquisa\n\n\ +• Artigos de pesquisa\n\ +\n\ O Askimo pesquisará esses materiais para fornecer respostas mais precisas e contextualizadas. projects.sources.type.local_folders=Pastas Locais projects.sources.type.local_files=Arquivos Locais @@ -236,6 +246,8 @@ projects.sources.add.dialog.title=Adicionar material de referência projects.sources.add.dialog.description=Selecione pastas, arquivos ou URLs para adicioná-los como material de referência deste projeto. projects.sources.add.dialog.button.add=Adicionar projects.sources.delete.tooltip=Excluir material de referência +projects.sources.watch.tooltip=Monitorar alterações +projects.sources.more.tooltip=Mais opções projects.sources.guide=Ver guia de materiais de referência projects.error.loading=Falha ao carregar projetos. Tente novamente. projects.error.deleting=Falha ao excluir o projeto. Tente novamente. @@ -246,14 +258,16 @@ project.error.loading=Falha ao carregar o projeto. Por favor, tente novamente. project.error.loading_sessions=Falha ao carregar sessões do projeto. Por favor, tente novamente. project.error.updating=Falha ao atualizar o projeto. Por favor, tente novamente. project.error.deleting_knowledge_source=Falha ao excluir material de referência. Por favor, tente novamente. +project.error.updating_knowledge_source=Falha ao atualizar material de referência. Por favor, tente novamente. +project.error.rescanning_knowledge_source=Falha ao reescanear material de referência. Por favor, tente novamente. project.knowledge_source.delete.success=Material de referência excluído com sucesso. project.edit=Editar projeto project.reindex=Reindexar projeto project.menu.tooltip=Menu do projeto project.new.chat.placeholder=Novo chat em {0} project.recent.chats=Chats recentes -project.no.chats=Ainda não há chats. Inicie um novo chat abaixo! -project.indexing.label=Indexação da fonte de conhecimento: {0} +project.no.chats=Ainda não há chats. Inicie um novo chat abaixo\! +project.indexing.label=Indexação da fonte de conhecimento\: {0} project.indexing.queued=Indexação na fila - aguardando a conclusão de outro projeto... project.indexing.failed=A indexação falhou. Tente reindexar a partir do menu do projeto. project.indexing.ready.label=Indexado @@ -272,7 +286,7 @@ settings.appearance=Aparência settings.appearance.accent=Cor de destaque settings.appearance.accent.description=Personalize com segurança uma única cor de destaque. O Askimo a aplica aos destaques principais da interface e deriva cores relacionadas para manter a legibilidade. settings.appearance.accent.label=Cor de destaque (Hex) -settings.appearance.accent.invalid=Digite uma cor hex válida como #0284C7 +settings.appearance.accent.invalid=Digite uma cor hex válida como \#0284C7 settings.appearance.accent.swatch.primary=Primária settings.appearance.accent.swatch.primary.container=Contêiner settings.appearance.accent.swatch.on.primary.container=Sobre o contêiner @@ -296,7 +310,7 @@ settings.network.description=Configurar definições de rede e proxy settings.mcp.servers=Servidores MCP settings.skills=Habilidades settings.skills.description=Skills são agentes de IA reutilizáveis que rodam diretamente na sua máquina. Cada skill é um arquivo Markdown com um prompt de sistema e instruções. Ao executar um skill, ele é executado via {0} — lendo e escrevendo seus arquivos, executando comandos de shell e iterando até que o trabalho esteja concluído. Não é necessário copiar e colar. -settings.skills.runtimes=Ambientes de execução suportados: +settings.skills.runtimes=Ambientes de execução suportados\: settings.skills.directory=Diretório de habilidades settings.skills.open.folder=Abrir pasta settings.skills.new.skill=Nova habilidade @@ -376,11 +390,11 @@ settings.log.viewer=Arquivos de Log settings.log.viewer.description=Visualizar logs e diagnósticos da aplicação settings.log.viewer.view=Ver Logs settings.log.viewer.open_folder=Abrir Pasta de Logs -settings.log.viewer.path=Arquivo de log: {0} +settings.log.viewer.path=Arquivo de log\: {0} settings.log.viewer.dialog.title=Logs da Aplicação settings.log.viewer.refresh=Atualizar settings.log.viewer.copy=Copiar -settings.log.viewer.copied=Copiado! +settings.log.viewer.copied=Copiado\! settings.log.viewer.loading=Carregando logs... settings.log.viewer.error=Erro ao carregar logs settings.log.viewer.empty=Sem logs disponíveis @@ -434,7 +448,7 @@ settings.web_search.api_key=Chave de API settings.web_search.api_key.placeholder=Cole sua chave de API aqui settings.web_search.get_api_key=Obter uma chave de API gratuita ↗ settings.web_search.endpoint=URL da instância SearxNG -settings.web_search.endpoint.placeholder=https://search.example.com +settings.web_search.endpoint.placeholder=https\://search.example.com settings.web_search.test=Testar pesquisa settings.web_search.test.running=Testando... settings.web_search.test.success=✅ A pesquisa está funcionando @@ -451,25 +465,25 @@ user.profile.name=Nome user.profile.email=E-mail user.profile.email.placeholder=seu.email@exemplo.com user.profile.occupation=Ocupação -user.profile.occupation.placeholder=ex.: Desenvolvedor de software, Designer, Estudante +user.profile.occupation.placeholder=ex.\: Desenvolvedor de software, Designer, Estudante user.profile.location=Localização -user.profile.location.placeholder=ex.: San Francisco, CA +user.profile.location.placeholder=ex.\: San Francisco, CA user.profile.bio=Biografia user.profile.bio.placeholder=Conte-nos um pouco sobre você… user.profile.interests=Interesses user.profile.interests.description=Selecione tópicos de interesse para ajudar a personalizar sua experiência com IA user.profile.interests.custom=Interesses personalizados -user.profile.interests.custom.placeholder=ex.: Aprendizado de máquina, Fotografia +user.profile.interests.custom.placeholder=ex.\: Aprendizado de máquina, Fotografia user.profile.interests.custom.hint=Separe vários interesses com vírgulas # Welcome Dialog (First Run) -welcome.title=Bem-vindo ao Askimo! +welcome.title=Bem-vindo ao Askimo\! welcome.subtitle=Ajude-nos a personalizar sua experiência com IA welcome.avatar.optional=Clique para adicionar uma foto (opcional) welcome.name=Seu nome -welcome.name.placeholder=ex.: João Silva +welcome.name.placeholder=ex.\: João Silva welcome.occupation=Ocupação -welcome.occupation.placeholder=ex.: Desenvolvedor de software +welcome.occupation.placeholder=ex.\: Desenvolvedor de software welcome.interests=No que você está interessado? welcome.interests.description=Selecione alguns tópicos para nos ajudar a adaptar sua experiência welcome.skip=Configurar depois @@ -501,6 +515,7 @@ user.interest.environment=Meio ambiente # Actions action.delete=Excluir +action.rescan=Reescanear action.remove=Remover action.edit=Editar action.pin=Fixar na barra lateral @@ -526,7 +541,7 @@ action.refresh=Atualizar # Happiness Gate (shown before Star Prompt) happiness.gate.title=Como você está achando o Askimo? happiness.gate.subtitle=Sua opinião honesta nos ajuda a continuar melhorando -happiness.gate.happy=Estou adorando! 😍 +happiness.gate.happy=Estou adorando\! 😍 happiness.gate.neutral=Está ok 🙂 happiness.gate.unhappy=Não muito 😕 @@ -549,11 +564,11 @@ feedback.email.placeholder=you@example.com feedback.email.hint=Usado apenas para acompanhar o seu feedback. Nunca enviaremos spam. feedback.action.skip=Ignorar feedback.action.send=Enviar feedback -feedback.thanks.title=Obrigado pelo seu feedback! +feedback.thanks.title=Obrigado pelo seu feedback\! feedback.thanks.message=O seu contributo ajuda-nos a tornar o Askimo melhor. Agradecemos muito. feedback.thanks.close=Fechar -feedback.remind.title=Não se preocupe! +feedback.remind.title=Não se preocupe\! feedback.remind.message=Pode partilhar feedback a qualquer momento no menu Ajuda → Partilhar Feedback. feedback.remind.got.it=Entendido @@ -577,10 +592,10 @@ star.prompt.share.description=Conte à sua rede sobre o Askimo no X, LinkedIn ou star.prompt.maybe.later=Agora não star.prompt.already.starred=Já com estrela ✓ star.prompt.social.proof=⭐ Junte-se a {0} pessoas que já deram estrela no Askimo -star.prompt.thanks.title=Muito obrigado! 🌟 +star.prompt.thanks.title=Muito obrigado\! 🌟 star.prompt.thanks.message=O seu apoio significa muito e ajuda-nos a continuar a desenvolver o Askimo. star.prompt.thanks.done=Concluído ✓ -star.prompt.remind.title=Sem problemas! +star.prompt.remind.title=Sem problemas\! star.prompt.remind.message=Pode apoiar-nos a qualquer momento através do menu Ajuda → Apoiar o Askimo. star.prompt.remind.got.it=Entendido @@ -654,7 +669,7 @@ shortcut.send.message=Enviar mensagem shortcut.new.line=Nova linha # Chat View -chat.welcome=Bem-vindo ao Askimo!\nComece uma conversa digitando uma mensagem abaixo. +chat.welcome=Bem-vindo ao Askimo\!\nComece uma conversa digitando uma mensagem abaixo. chat.no.active.session=Selecione uma sessão na barra lateral ou inicie um novo chat chat.search.placeholder=Buscar na conversa... chat.search.no.results=Sem resultados @@ -710,6 +725,12 @@ chat.image.model.missing.title=Modelo de imagem não configurado chat.image.model.missing.message=Nenhum modelo de imagem está definido para {0}. Abra Configurações > Provedor de IA > Modelos de geração de imagens e defina primeiro um nome de modelo. chat.tools.button=Ferramentas disponíveis chat.tools.button.disabled=Ferramentas disponíveis ({0} desativadas) +chat.tool.approval.required=\n\n⏸️ **Aprovação necessária** — A IA deseja executar `{0}`{1}\n\n +chat.tool.approval.timed_out=Tempo limite de aprovação da ferramenta excedido\: {0} +chat.tool.approval.denied=Execução da ferramenta negada pelo usuário\: {0} +chat.tool.approval.prompt=A IA deseja executar\: {0} +chat.tool.approval.approve=Aprovar +chat.tool.approval.deny=Negar chat.tools.button.model.no.support=As ferramentas não são suportadas por este modelo chat.tools.popup.title=Ferramentas disponíveis chat.tools.popup.loading=Carregando servidores... @@ -736,7 +757,7 @@ chat.attachment.remove=Remover anexo chat.attachment.preview.loading=Carregando visualização… chat.attachment.preview.file.not.found=(Arquivo não encontrado) chat.attachment.preview.too.large=(Arquivo muito grande para visualização) -chat.attachment.preview.cannot.read=(Não é possível ler o arquivo: {0}) +chat.attachment.preview.cannot.read=(Não é possível ler o arquivo\: {0}) chat.attachment.preview.more.lines=mais {0} linhas # Sessions View @@ -748,12 +769,12 @@ sessions.col.created=Criado sessions.col.updated=Atualizado sessions.error=❌ {0} sessions.empty=Nenhuma sessão encontrada. -sessions.empty.hint=💡 Inicie uma nova conversa para criar sua primeira sessão! +sessions.empty.hint=💡 Inicie uma nova conversa para criar sua primeira sessão\! sessions.search.placeholder=Pesquisar por título… sessions.search.empty=Nenhuma sessão corresponde a "{0}". # Generic table pagination controls -table.page.size.label=Linhas por página: +table.page.size.label=Linhas por página\: table.page=Página {0} de {1} table.page.previous=Página anterior table.page.next=Próxima página @@ -769,7 +790,7 @@ sessions.error.rename.failed=Falha ao renomear sessão. # ChatSessionService Errors # Update Check update.dialog.title=Atualização de Software -update.dialog.new.version.available=Uma nova versão do Askimo está disponível! +update.dialog.new.version.available=Uma nova versão do Askimo está disponível\! update.urgency.medium=Você está {0} versões atrás — pode estar perdendo correções importantes e novos recursos. update.urgency.high=Você está {0} versões atrás — está perdendo melhorias significativas. Atualize em breve. update.dialog.current.version.label=Versão Atual @@ -780,7 +801,7 @@ update.dialog.download=Baixar Agora update.dialog.how.to.update=Como atualizar update.dialog.later=Depois update.dialog.skip.version=Pular esta versão -update.check.up.to.date=Você está usando a versão mais recente! +update.check.up.to.date=Você está usando a versão mais recente\! update.check.failed=Falha ao verificar atualizações # Event Names @@ -788,6 +809,7 @@ event.update.available=🚀 Nova versão disponível event.details.action=Release Notes event.update.download=Baixar agora event.notification.empty=Sem eventos +event.notification.title=Notificações ({0}) event.notification.clear=Limpar event.notification.clear.all=Limpar tudo event.notification.group.errors=Errores em segundo plano @@ -799,6 +821,7 @@ event.indexing.started=Indexando… event.indexing.completed=Índice pronto event.indexing.failed=Falha na indexação event.indexing.files_indexed={0} arquivo(s) indexado(s) +event.file.removed=Arquivo removido do índice # Settings View settings.language=Idioma @@ -817,8 +840,8 @@ settings.app.language.translation.contribute=Contribuir no Crowdin settings.ai.response.language=Idioma de resposta preferido settings.ai.response.language.description=Forçar a IA a responder em um idioma específico (deixe vazio para detecção automática) settings.ai.response.language.auto=Detecção automática -settings.ai.response.language.tooltip=A IA detecta automaticamente seu idioma, mas sobrescreva quando:\n• Aprendizado de idiomas (prática imersiva)\n• Consistência profissional (ex: docs de código sempre em inglês)\n• Otimização RAG (corresponder ao idioma da base de conhecimento)\n• Ensino (perguntar em um idioma, explicar em outro)\n• Evitar mudanças de idioma indesejadas -settings.model.select=Selecionar modelo para {0}: +settings.ai.response.language.tooltip=A IA detecta automaticamente seu idioma, mas sobrescreva quando\:\n• Aprendizado de idiomas (prática imersiva)\n• Consistência profissional (ex\: docs de código sempre em inglês)\n• Otimização RAG (corresponder ao idioma da base de conhecimento)\n• Ensino (perguntar em um idioma, explicar em outro)\n• Evitar mudanças de idioma indesejadas +settings.model.select=Selecionar modelo para {0}\: settings.model.loading=Carregando modelos... settings.model.none=Nenhum modelo disponível settings.model.select.title=Selecionar Modelo @@ -826,7 +849,7 @@ settings.model.current=Modelo Atual settings.model.selected=Modelo Selecionado settings.model.new=Novo modelo settings.model.use.default=Usar padrão -settings.model.change.description=Escolha um modelo na lista abaixo: +settings.model.change.description=Escolha um modelo na lista abaixo\: settings.model.search=Buscar Modelos settings.model.search.placeholder=Digite para filtrar modelos... settings.model.filtered=Mostrando {0} de {1} modelos @@ -835,22 +858,22 @@ settings.model.chat.filter.label=Modelos de chat · {0} exibidos settings.model.chat.filter.show.all=Mostrar todos {0} settings.configure.title=Configurar {0} settings.test.connection.testing=Testando... -settings.placeholder.baseurl=http://localhost:11434 +settings.placeholder.baseurl=http\://localhost\:11434 provider.connection.failed=Não foi possível conectar ao provedor. Verifique se a sua chave API está correta (para provedores em nuvem) ou se a sua URL base está acessível (para provedores locais). Você pode encontrar instruções de configuração usando o link de ajuda acima. # Directives Dialog directive.manage.title=Gerenciar Diretivas -directive.manage.empty=Nenhuma diretiva disponível. Crie uma para começar! +directive.manage.empty=Nenhuma diretiva disponível. Crie uma para começar\! directive.edit.name.label=Nome directive.edit.name.placeholder=Digite o nome da diretiva... directive.edit.content.label=Conteúdo directive.edit.content.placeholder=Digite as instruções da diretiva... directive.edit.name.required=Nome é obrigatório directive.edit.content.required=Conteúdo é obrigatório -directive.created=Criado: {0} +directive.created=Criado\: {0} directive.new.title=Nova Diretiva directive.new.guidelines=As diretivas orientam como a IA responde às suas mensagens. Seja específico sobre tom, nível de detalhe, formato ou quaisquer requisitos especiais que você precisa. -directive.new.name.placeholder=ex.: concise-code, explain-like-im-5 +directive.new.name.placeholder=ex.\: concise-code, explain-like-im-5 directive.new.content.placeholder=Digite as instruções... directive.new.apply.current=Aplicar à sessão atual directive.new.create=Criar @@ -862,8 +885,10 @@ directive.export.tooltip=Exportar todas as diretivas para um arquivo JSON para c directive.export.filename=askimo-directives directive.import=Importar directive.import.tooltip=Importar diretivas de um arquivo JSON -directive.import.result=Importação concluída: {0} importadas, {1} renomeadas, {2} ignoradas -directive.import.error=Falha na importação: formato de arquivo inválido ou não suportado +directive.import.result=Importação concluída\: {0} importadas, {1} renomeadas, {2} ignoradas +directive.import.error=Falha na importação\: formato de arquivo inválido ou não suportado +directive.default.set=Definir como diretiva padrão +directive.default.unset=Remover como diretiva padrão # Log Levels log.level.error=Erro @@ -919,7 +944,7 @@ message.edited.indicator=(editado) message.date.today=Hoje message.date.yesterday=Ontem message.token.usage={0} tokens · {1} de entrada / {2} de saída -message.token.usage.tooltip=Tokens usados por esta resposta.\nEntrada: seu prompt + contexto enviado à IA.\nSaída: a resposta gerada pela IA. +message.token.usage.tooltip=Tokens usados por esta resposta.\nEntrada\: seu prompt + contexto enviado à IA.\nSaída\: a resposta gerada pela IA. # Bookmarks chat.bookmarks.button.tooltip=Favoritos @@ -956,10 +981,6 @@ provider.picker.description.openai=Modelos de IA na nuvem da OpenAI. Requer uma provider.picker.description.anthropic=Modelos de IA na nuvem da Anthropic. Requer uma chave de API. Cadastre-se em console.anthropic.com, crie uma chave de API e adicione créditos à sua conta antes de conectar. provider.picker.description.gemini=Modelos de IA na nuvem do Google. Cadastre-se em aistudio.google.com e gere uma chave de API gratuita. Não é necessário cartão de crédito para o nível gratuito. provider.picker.description.xai=Modelos de IA na nuvem da xAI. Requer uma chave de API. Cadastre-se em console.x.ai, crie uma chave de API e adicione créditos à sua conta antes de conectar. -provider.picker.description.ollama=Execute modelos de código aberto localmente. Nenhuma chave de API necessária. Baixe o Ollama em ollama.com, em seguida baixe um modelo (ex: ollama pull llama3) antes de conectar. -provider.picker.description.docker=Execute modelos através do executor de modelos de IA integrado do Docker Desktop. Nenhuma chave de API necessária. Requer Docker Desktop 4.40+ com o recurso Model Runner habilitado. -provider.picker.description.localai=Servidor de IA local auto-hospedado e compatível com OpenAI. Nenhuma chave de API necessária. Instale o LocalAI, baixe um modelo e inicie o servidor antes de conectar. -provider.picker.description.lmstudio=Execute LLMs locais com uma interface de desktop fácil de usar. Nenhuma chave de API necessária. Baixe o LM Studio em lmstudio.ai, baixe um modelo, carregue-o e ative o servidor local antes de conectar. provider.manage.title=Gerenciar provedores provider.type.picker.title=Adicionar provedor de IA provider.type.picker.select.hint=← Selecione um provedor da lista para ver detalhes @@ -970,19 +991,30 @@ provider.template.get.apikey=Obter chave de API → # OpenAI-Compatible template taglines and setup help (see OpenAiCompatibleTemplate.kt) provider.template.cloudflare_ai.tagline=Execute modelos de IA na rede de borda global da Cloudflare com o Workers AI. -provider.template.cloudflare_ai.help=💡 Para usar o Cloudflare AI:\n\n1. Encontre seu Account ID no painel da Cloudflare\n2. Substitua {ACCOUNT_ID} na URL base por ele\n3. Crie um token de API com permissão 'Workers AI' em:\n dash.cloudflare.com/profile/api-tokens +provider.template.cloudflare_ai.help=💡 Para usar o Cloudflare AI\:\n\n1. Encontre seu Account ID no painel da Cloudflare\n2. Substitua {ACCOUNT_ID} na URL base por ele\n3. Crie um token de API com permissão ''Workers AI'' em\:\n dash.cloudflare.com/profile/api-tokens +provider.template.deepseek.tagline=Modelos de raciocínio e de propósito geral com uma API direta compatível com OpenAI. +provider.template.deepseek.help=💡 Para usar o DeepSeek\:\n\n1. Crie uma chave de API em\: platform.deepseek.com/api_keys\n2. Adicione créditos à sua conta do DeepSeek, se necessário\n3. Clique em Avançar para navegar pelos modelos disponíveis provider.template.groq.tagline=Inferência ultrarrápida para modelos de código aberto — Llama, Mixtral, Gemma e mais. -provider.template.groq.help=💡 Para usar o Groq:\n\n1. Obtenha sua chave API gratuita em: console.groq.com/keys\n2. Digite um nome de modelo, ex.: llama-3.1-8b-instant\n3. Clique em Avançar para explorar todos os modelos disponíveis +provider.template.groq.help=💡 Para usar o Groq\:\n\n1. Obtenha sua chave API gratuita em\: console.groq.com/keys\n2. Digite um nome de modelo, ex.\: llama-3.1-8b-instant\n3. Clique em Avançar para explorar todos os modelos disponíveis provider.template.nvidia_nim.tagline=Execute modelos de IA otimizados na infraestrutura de GPU em nuvem da NVIDIA. -provider.template.nvidia_nim.help=💡 Para usar o NVIDIA NIM:\n\n1. Obtenha sua chave API em: build.nvidia.com\n2. Digite um nome de modelo, ex.: meta/llama-3.1-8b-instruct\n3. Clique em Avançar para explorar todos os modelos disponíveis +provider.template.nvidia_nim.help=💡 Para usar o NVIDIA NIM\:\n\n1. Obtenha sua chave API em\: build.nvidia.com\n2. Digite um nome de modelo, ex.\: meta/llama-3.1-8b-instruct\n3. Clique em Avançar para explorar todos os modelos disponíveis provider.template.openrouter.tagline=Acesse mais de 300 modelos — GPT, Claude, Llama, Gemini, Mistral e mais, em uma única API. -provider.template.openrouter.help=💡 Para usar o OpenRouter:\n\n1. Obtenha sua chave API gratuita em: openrouter.ai/keys\n2. Clique em Avançar para explorar mais de 300 modelos disponíveis\n3. Muitos modelos têm um nível gratuito — sem necessidade de cartão de crédito +provider.template.openrouter.help=💡 Para usar o OpenRouter\:\n\n1. Obtenha sua chave API gratuita em\: openrouter.ai/keys\n2. Clique em Avançar para explorar mais de 300 modelos disponíveis\n3. Muitos modelos têm um nível gratuito — sem necessidade de cartão de crédito provider.template.together_ai.tagline=Inferência rápida e acessível para mais de 100 modelos de código aberto. -provider.template.together_ai.help=💡 Para usar o Together AI:\n\n1. Obtenha sua chave API em: api.together.ai/settings/api-keys\n2. Clique em Avançar para explorar os modelos disponíveis,\n ex.: meta-llama/Llama-3-8b-chat-hf +provider.template.together_ai.help=💡 Para usar o Together AI\:\n\n1. Obtenha sua chave API em\: api.together.ai/settings/api-keys\n2. Clique em Avançar para explorar os modelos disponíveis,\n ex.\: meta-llama/Llama-3-8b-chat-hf provider.template.lite_llm.tagline=A unified proxy that lets you call 100+ LLMs using the OpenAI format. provider.search.placeholder=Search providers... provider.search.no_results=No providers found -provider.template.lite_llm.help=💡 To use LiteLLM:\n\n1. Start the LiteLLM proxy: litellm --model ollama/llama3\n2. The default URL is http://localhost:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lite_llm.help=💡 To use LiteLLM\:\n\n1. Start the LiteLLM proxy\: litellm --model ollama/llama3\n2. The default URL is http\://localhost\:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lmstudio.tagline=Execute LLMs locais com uma interface de desktop fácil de usar. Nenhuma chave de API necessária. Baixe o LM Studio em lmstudio.ai e habilite o servidor local. +provider.template.lmstudio.help=💡 Para usar o LM Studio\:\n\n1. Instale o LM Studio em\: https\://lmstudio.ai/\n2. Carregue um modelo e inicie o servidor local (guia Desenvolvedor)\n3. Opcionalmente, altere a URL base se não estiver usando a porta padrão 1234 +provider.template.docker_ai.tagline=Execute modelos de IA através do executor de modelos integrado do Docker Desktop. Nenhuma chave de API necessária. Requer o Docker Desktop 4.40+ com o recurso Model Runner ativado. +provider.template.docker_ai.help=💡 Para usar o Docker AI\:\n\n1. Certifique-se de que o Docker Desktop 4.40+ está instalado e em execução\n2. Ative o recurso Model Runner nas configurações do Docker Desktop\n3. Baixe um modelo, ex.\: docker model pull ai/qwen3-embedding\:0.6B-F16\n4. A URL base padrão é http\://localhost\:12434/v1 +provider.template.localai.tagline=Servidor de IA local auto-hospedado e compatível com OpenAI. Nenhuma chave de API necessária. Instale o LocalAI, carregue um modelo e inicie o servidor antes de conectar. +provider.template.localai.help=💡 Para usar o LocalAI\:\n\n1. Instale o LocalAI em\: https\://localai.io/\n2. Baixe um modelo e inicie o servidor\n3. A URL base padrão é http\://localhost\:8080/v1 +provider.template.ollama.tagline=Execute modelos de código aberto localmente. Nenhuma chave de API necessária. Baixe o Ollama em ollama.com e baixe um modelo (ex.\: ollama pull llama3) antes de conectar. +provider.template.ollama.help=💡 Para usar o Ollama\:\n\n1. Instale o Ollama em\: https\://ollama.com/\n2. Baixe um modelo\: ollama pull llama3\n3. A URL base padrão é http\://localhost\:11434/v1 + provider.configure.new.title=Configure {0} provider.edit.title=Edit "{0}" @@ -992,14 +1024,14 @@ provider.model.panel.select.hint=Selecione um provedor à esquerda para explorar provider.model.panel.model.count={0} modelos provider.model.default.badge=Padrão provider.instance.name.label=Nome da instância -provider.instance.name.placeholder=ex: "Work OpenAI", "ollama-macbook" +provider.instance.name.placeholder=ex\: "Work OpenAI", "ollama-macbook" provider.instance.name.duplicate=Já existe um provedor chamado "{0}" provider.setup.required.title=Configurar provedor de AI provider.setup.required.message=Antes de começar a conversar, você precisa configurar um provedor de AI. Selecione um provedor da lista e configure-o. provider.setup.required.button=Configurar provedor provider.setup.required.skip=Configurar mais tarde provider.setup.empty.state.button=Adicionar provedor -provider.configure.prompt=Configurar provedor: +provider.configure.prompt=Configurar provedor\: provider.setup.guide=Como configurar o {0} provider.apikey.stored=Chave API armazenada de forma segura provider.apikey.enter=Inserir chave API @@ -1008,14 +1040,14 @@ provider.apikey.security.link=Saiba como protegemos seus dados provider.not.set=Não definido # Provider Configuration - OpenAI -provider.openai.apikey.description=Sua API Key do OpenAI: https://platform.openai.com/account/api-keys +provider.openai.apikey.description=Sua API Key do OpenAI\: https\://platform.openai.com/account/api-keys provider.openai.apikey.stored=API Key já armazenada. Deixe vazio para manter a atual. -provider.openai.setup.help=💡 Para usar o OpenAI, forneça sua API Key.\n\n1. Obtenha em: https://platform.openai.com/account/api-keys\n2. Configure nas Configurações ou usando :change-settings +provider.openai.setup.help=💡 Para usar o OpenAI, forneça sua API Key.\n\n1. Obtenha em\: https\://platform.openai.com/account/api-keys\n2. Configure nas Configurações ou usando \:change-settings # Provider Configuration - Anthropic -provider.anthropic.apikey.description=Sua API Key do Anthropic: https://console.anthropic.com/ +provider.anthropic.apikey.description=Sua API Key do Anthropic\: https\://console.anthropic.com/ provider.anthropic.apikey.stored=API Key já armazenada. -provider.anthropic.setup.help=💡 Para usar o Anthropic, forneça a API Key.\n\n1. Obtenha em: https://console.anthropic.com/\n2. Configure nas Configurações ou usando :change-settings +provider.anthropic.setup.help=💡 Para usar o Anthropic, forneça a API Key.\n\n1. Obtenha em\: https\://console.anthropic.com/\n2. Configure nas Configurações ou usando \:change-settings provider.anthropic.max_tokens.label=Max Tokens provider.anthropic.max_tokens.description=Máximo de tokens que o modelo pode gerar por resposta (pensamento + resposta combinados). provider.anthropic.thinking_budget_tokens.label=Tokens de orçamento de pensamento @@ -1024,31 +1056,17 @@ provider.anthropic.thinking_max_tokens.label=Máximo de tokens de pensamento provider.anthropic.thinking_max_tokens.description=Limite total de tokens quando o pensamento está ativo (pensamento + resposta). Defina como 0 para usar Max Tokens em vez disso. # Provider Configuration - Gemini -provider.gemini.apikey.description=Sua API Key do Google AI Studio: https://aistudio.google.com/app/apikey +provider.gemini.apikey.description=Sua API Key do Google AI Studio\: https\://aistudio.google.com/app/apikey provider.gemini.apikey.stored=API Key já armazenada. -provider.gemini.setup.help=💡 Para usar o Gemini, forneça a API Key.\n\n1. Obtenha em: https://aistudio.google.com/app/apikey\n2. Configure nas Configurações ou usando :change-settings +provider.gemini.setup.help=💡 Para usar o Gemini, forneça a API Key.\n\n1. Obtenha em\: https\://aistudio.google.com/app/apikey\n2. Configure nas Configurações ou usando \:change-settings # Provider Configuration - XAI -provider.xai.apikey.description=Sua API Key do XAI: https://console.x.ai/ +provider.xai.apikey.description=Sua API Key do XAI\: https\://console.x.ai/ provider.xai.apikey.stored=API Key já armazenada. -provider.xai.setup.help=💡 Para usar o XAI, forneça a API Key.\n\n1. Obtenha em: https://console.x.ai/\n2. Configure nas Configurações ou usando :change-settings - -# Provider Configuration - Ollama -provider.ollama.baseurl.description=Base URL do Ollama (padrão: http://localhost:11434) -provider.ollama.setup.help=💡 Para usar o Ollama, você precisa executá-lo localmente.\n\n1. Instale: https://ollama.ai/\n2. Inicie o serviço\n3. Configure o Base URL se necessário +provider.xai.setup.help=💡 Para usar o XAI, forneça a API Key.\n\n1. Obtenha em\: https\://console.x.ai/\n2. Configure nas Configurações ou usando \:change-settings -# Provider Configuration - Docker AI -provider.docker.baseurl.description=Base URL do Docker AI (padrão: http://localhost:12434) -provider.docker.setup.help=💡 Para usar o Docker AI, você precisa executá-lo localmente.\n\n1. Certifique-se de que o Docker AI está instalado e em execução\n2. Inicie o serviço\n3. Configure o Base URL se necessário -# Provider Configuration - LocalAI -provider.localai.baseurl.description=Base URL do LocalAI -provider.localai.setup.help=💡 Para usar o LocalAI, execute-o primeiro.\n\n1. Instale e inicie o LocalAI\n2. Configure o Base URL acessível -# Provider Configuration - LMStudio -provider.lmstudio.baseurl.description=Base URL do LMStudio (padrão: http://localhost:1234) -provider.lmstudio.setup.help=💡 Para usar o LMStudio:\n\n1. Instale: https://lmstudio.ai/\n2. Inicie o servidor local\n3. Configure o Base URL se necessário -provider.lmstudio.openai.compat.info=O Askimo usa os endpoints compatíveis com OpenAI (/v1), não a API nativa do LMStudio (/api/v1/). # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=A URL base para a sua instância compatível com OpenAI @@ -1066,7 +1084,7 @@ provider.openai_compatible.httpversion.http2=Mais rápido para endpoints que sup # System Resources system.share.feedback=Compartilhar feedback -system.ai.provider.tooltip=Provedor de IA: {0}\nClique para configurar +system.ai.provider.tooltip=Provedor de IA\: {0}\nClique para configurar system.diagnostics.title=Diagnóstico do sistema system.diagnostics.resources=Recursos system.diagnostics.jvm.memory=Memória JVM (usada / total) @@ -1077,7 +1095,7 @@ system.diagnostics.telemetry=Telemetria telemetry.export.csv=Exportar CSV telemetry.export.dialog.title=Exportar Telemetria como ZIP telemetry.export.error.title=Falha na Exportação -telemetry.export.error.message=Falha ao exportar dados de telemetria: {0} +telemetry.export.error.message=Falha ao exportar dados de telemetria\: {0} # Telemetry telemetry.reset=Redefinir dados de telemetria @@ -1127,24 +1145,20 @@ export.format.html.benefit.3=Aparência profissional export.format.html.benefit.4=Fácil de compartilhar # Error Messages -error.network=⚠️ Não foi possível conectar ao serviço de IA{endpoint}\n\nVerifique:\n• Sua conexão com a internet\n• A URL do serviço de IA (verifique as configurações)\n• As configurações do firewall\n• A disponibilidade do serviço +error.network=⚠️ Não foi possível conectar ao serviço de IA{endpoint}\n\nVerifique\:\n• Sua conexão com a internet\n• A URL do serviço de IA (verifique as configurações)\n• As configurações do firewall\n• A disponibilidade do serviço error.authentication=⚠️ A chave de API está ausente ou é inválida{provider}\n\nCorrija isso configurando sua chave de API em Configurações. -error.model_not_found=⚠️ Modelo não encontrado: {model}\n\nEste modelo pode ter sido descontinuado ou removido pelo provedor. Por favor, selecione um modelo diferente. -error.provider_not_configured=⚠️ Nenhum provedor de IA configurado.\n\nPara começar a conversar:\n1. Abra Configurações\n2. Selecione um provedor de IA (OpenAI, Ollama, Anthropic, etc.)\n3. Insira sua chave de API ou configure a conexão +error.model_not_found=⚠️ Modelo não encontrado\: {model}\n\nEste modelo pode ter sido descontinuado ou removido pelo provedor. Por favor, selecione um modelo diferente. +error.provider_not_configured=⚠️ Nenhum provedor de IA configurado.\n\nPara começar a conversar\:\n1. Abra Configurações\n2. Selecione um provedor de IA (OpenAI, Ollama, Anthropic, etc.)\n3. Insira sua chave de API ou configure a conexão error.rate_limit=⚠️ Limite de uso excedido\n{retryAfter}\n\nVocê atingiu o limite de uso da API. Aguarde um pouco antes de enviar mais mensagens. error.insufficient_credits=⚠️ Créditos insuficientes\n\nSeu saldo está muito baixo.\n\nAcesse a página de cobrança para adicionar créditos. -error.timeout=⚠️ A solicitação expirou após {timeout} segundos\n\nIsso pode acontecer por:\n• Alta carga no servidor - tente novamente em instantes\n• Consulta complexa - tente simplificar\n• Latência de rede -error.context_length=⚠️ Janela de contexto excedida\n\nA entrada total (histórico da conversa + sua mensagem + anexos) é muito grande para este modelo processar.\n\nPara corrigir isso:\n• Inicie uma nova sessão de chat para limpar o histórico da conversa\n• Encurte sua mensagem ou remova anexos grandes\n• Se estiver usando um modelo local (Ollama / LM Studio / Docker), aumente o tamanho do contexto nas configurações dele\n• Mude para um modelo com uma janela de contexto maior -error.invalid_request=⚠️ Solicitação inválida: {details}\n\nVerifique sua entrada e tente novamente. -error.local_server=⚠️ Erro no servidor de IA local!\n\nO processo do servidor de IA travou ou falhou ao carregar o modelo. Isso não é causado pelo Askimo.\n\nPossíveis causas:\n• O arquivo do modelo está corrompido ou incompleto — tente baixá-lo novamente\n• RAM/VRAM insuficiente — tente uma quantização menor (ex.: Q4 em vez de Q8)\n• Formato de modelo não suportado pela versão atual do servidor\n• O processo do servidor foi encerrado pelo sistema operacional (sem memória)\n\nO que fazer:\n1. Verifique os logs do seu servidor de IA local\n2. Reinicie o servidor e tente novamente\n3. Baixe o modelo novamente\n4. Tente um modelo diferente ou nível de quantização diferente\n\nDetalhes técnicos: {details} -error.empty_http_response=⚠️ O servidor encerrou a conexão sem responder!\n\nModelo: {0}\n\nIsso geralmente acontece quando um provedor de IA local descarta silenciosamente a solicitação em vez de retornar um erro. A janela de contexto do modelo é muito pequena para a solicitação atual.\n\nCausas comuns:\n• O histórico da conversa tornou-se muito longo após vários turnos\n• Ferramentas habilitadas adicionam dados extras a cada solicitação — mesmo uma pergunta curta com várias ferramentas ativas pode exceder o limite\n• Arquivos anexados grandes ou trechos de código fizeram a solicitação exceder o limite\n\n{1}\n\nOutras coisas para tentar:\n• Inicie uma nova conversa para redefinir o contexto\n• Desative ferramentas que não são necessárias para esta tarefa\n• Reduza o tamanho da sua mensagem ou dos arquivos anexados -error.empty_http_response.hint.docker=Para aumentar a janela de contexto no Docker AI / Docker Model Runner:\n• Passe --context-size ao iniciar o modelo (ex: --context-size 32768)\n• Ou defina na configuração de execução do modelo -error.empty_http_response.hint.ollama=Para aumentar a janela de contexto no Ollama:\n• Defina num_ctx no seu Modelfile (ex: PARAMETER num_ctx 32768)\n• Ou passe como parâmetro: ollama run --num-ctx 32768 -error.empty_http_response.hint.lmstudio=Para aumentar a janela de contexto no LM Studio:\n• Abra o painel de configurações do modelo\n• Encontre "Context Length" e aumente (ex: para 32768 ou mais, até o máximo do modelo)\n• Reinicie o servidor local após alterar a configuração -error.empty_http_response.hint.localai=Para aumentar a janela de contexto no LocalAI:\n• Edite o YAML de configuração do modelo e defina context_size: 32768\n• Reinicie o servidor LocalAI após alterar a configuração -error.empty_http_response.hint.generic=Para aumentar a janela de contexto:\n• Verifique as configurações do seu provedor para uma opção de tamanho de contexto e aumente-a (ex: para 32768 tokens)\n• Reinicie o provedor após alterar a configuração -error.remote_server=⚠️ Erro no servidor do provedor de IA\n\nO servidor do provedor retornou um erro temporário (por ex., sobrecarregado ou indisponível). Isso não é causado pelo Askimo.\n\nO que fazer:\n• Aguarde um momento e tente novamente — geralmente é passageiro\n• Verifique a página de status do provedor se o problema persistir\n\nDetalhes técnicos: {details} -error.system=⚠️ Erro do sistema\n\nOcorreu um erro inesperado: {errorCode}\n\nEntre em contato com o suporte do Askimo e informe:\n• O que você estava fazendo\n• O código de erro acima\n• O horário (timestamp) +error.timeout=⚠️ A solicitação expirou após {timeout} segundos\n\nIsso pode acontecer por\:\n• Alta carga no servidor - tente novamente em instantes\n• Consulta complexa - tente simplificar\n• Latência de rede +error.context_length=⚠️ Janela de contexto excedida\n\nA entrada total (histórico da conversa + sua mensagem + anexos) é muito grande para este modelo processar.\n\nPara corrigir isso\:\n• Inicie uma nova sessão de chat para limpar o histórico da conversa\n• Encurte sua mensagem ou remova anexos grandes\n• Se estiver usando um modelo local (Ollama / LM Studio / Docker), aumente o tamanho do contexto nas configurações dele\n• Mude para um modelo com uma janela de contexto maior +error.invalid_request=⚠️ Solicitação inválida\: {details}\n\nVerifique sua entrada e tente novamente. +error.local_server=⚠️ Erro no servidor de IA local\!\n\nO processo do servidor de IA travou ou falhou ao carregar o modelo. Isso não é causado pelo Askimo.\n\nPossíveis causas\:\n• O arquivo do modelo está corrompido ou incompleto — tente baixá-lo novamente\n• RAM/VRAM insuficiente — tente uma quantização menor (ex.\: Q4 em vez de Q8)\n• Formato de modelo não suportado pela versão atual do servidor\n• O processo do servidor foi encerrado pelo sistema operacional (sem memória)\n\nO que fazer\:\n1. Verifique os logs do seu servidor de IA local\n2. Reinicie o servidor e tente novamente\n3. Baixe o modelo novamente\n4. Tente um modelo diferente ou nível de quantização diferente\n\nDetalhes técnicos\: {details} +error.empty_http_response=⚠️ O servidor encerrou a conexão sem responder\!\n\nModelo\: {0}\n\nIsso geralmente acontece quando um provedor de IA local descarta silenciosamente a solicitação em vez de retornar um erro. A janela de contexto do modelo é muito pequena para a solicitação atual.\n\nCausas comuns\:\n• O histórico da conversa tornou-se muito longo após vários turnos\n• Ferramentas habilitadas adicionam dados extras a cada solicitação — mesmo uma pergunta curta com várias ferramentas ativas pode exceder o limite\n• Arquivos anexados grandes ou trechos de código fizeram a solicitação exceder o limite\n\n{1}\n\nOutras coisas para tentar\:\n• Inicie uma nova conversa para redefinir o contexto\n• Desative ferramentas que não são necessárias para esta tarefa\n• Reduza o tamanho da sua mensagem ou dos arquivos anexados +error.empty_http_response.hint.generic=Para aumentar a janela de contexto\:\n• Verifique as configurações do seu provedor para uma opção de tamanho de contexto e aumente-a (ex\: para 32768 tokens)\n• Reinicie o provedor após alterar a configuração +error.remote_server=⚠️ Erro no servidor do provedor de IA\n\nO servidor do provedor retornou um erro temporário (por ex., sobrecarregado ou indisponível). Isso não é causado pelo Askimo.\n\nO que fazer\:\n• Aguarde um momento e tente novamente — geralmente é passageiro\n• Verifique a página de status do provedor se o problema persistir\n\nDetalhes técnicos\: {details} +error.system=⚠️ Erro do sistema\n\nOcorreu um erro inesperado\: {errorCode}\n\nEntre em contato com o suporte do Askimo e informe\:\n• O que você estava fazendo\n• O código de erro acima\n• O horário (timestamp) # Model Availability Errors error.model.not_available.title.chat=Modelo indisponível @@ -1152,10 +1166,11 @@ error.model.not_available.title.embedding=Modelo de embedding indisponível error.model.not_available.message.chat=O modelo ''{0}'' não está disponível. error.model.not_available.message.embedding=O modelo de embedding ''{0}'' não está disponível no seu provedor local.\n\nAcesse Configurações → Provedor de IA e selecione um modelo de embedding disponível no cartão de configuração do provedor. error.model.not_available.config_link=Configurar modelo de embedding -error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration +error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration +error.embedding_model_not_configured=⚠️ Nenhum modelo de embedding está configurado para ''{provider}''.\n\nAcesse Configurações → Provedor de IA e selecione um modelo de embedding no cartão de configuração do provedor. # Generic Application Errors -error.app.message=Ocorreu um erro inesperado: {0} +error.app.message=Ocorreu um erro inesperado\: {0} # Send Message Errors error.send_message.title=Falha ao enviar mensagem @@ -1170,37 +1185,39 @@ error.indexing.io_error.title=Erro de IO error.indexing.io_error.message=Ocorreu um erro de IO durante a indexação error.indexing.unknown.title=Erro de indexação error.indexing.unknown.message=Ocorreu um erro desconhecido durante a indexação +error.indexing.failed.title=Falha ao indexar a fonte de conhecimento +error.indexing.failed_project.title=Falha ao indexar a fonte de conhecimento do projeto # RAG Configuration settings.rag.title=Configuração de RAG settings.rag.description=Configure os parâmetros de Retrieval-Augmented Generation para recuperação de conhecimento baseada em projetos settings.rag.vector.max.results=Máximo de resultados da busca vetorial -settings.rag.vector.max.results.hint=Número máximo de documentos da busca vetorial (padrão: 20) +settings.rag.vector.max.results.hint=Número máximo de documentos da busca vetorial (padrão\: 20) settings.rag.vector.min.score=Pontuação mínima da busca vetorial -settings.rag.vector.min.score.hint=Pontuação mínima de similaridade 0.0–1.0 (padrão: 0.3) +settings.rag.vector.min.score.hint=Pontuação mínima de similaridade 0.0–1.0 (padrão\: 0.3) settings.rag.hybrid.max.results=Máximo de resultados híbridos -settings.rag.hybrid.max.results.hint=Contagem final de documentos após a fusão (padrão: 15) +settings.rag.hybrid.max.results.hint=Contagem final de documentos após a fusão (padrão\: 15) settings.rag.rank.fusion.constant=Constante de fusão de ranking -settings.rag.rank.fusion.constant.hint=Constante RRF para ranking híbrido (padrão: 60) +settings.rag.rank.fusion.constant.hint=Constante RRF para ranking híbrido (padrão\: 60) settings.rag.use.absolute.paths=Usar caminhos absolutos nas citações settings.rag.use.absolute.paths.hint=Exibir caminhos completos de arquivos nas respostas da IA para maior clareza quando vários arquivos têm o mesmo nome settings.rag.embedding.title=Configuração de embeddings settings.rag.embedding.description=Configure os parâmetros de segmentação de texto e embeddings settings.rag.embedding.max.chars.per.chunk=Máximo de caracteres por segmento -settings.rag.embedding.max.chars.per.chunk.hint=Número máximo de caracteres em cada segmento de texto (padrão: 1500) +settings.rag.embedding.max.chars.per.chunk.hint=Número máximo de caracteres em cada segmento de texto (padrão\: 1500) settings.rag.embedding.chunk.overlap=Sobreposição de segmentos -settings.rag.embedding.chunk.overlap.hint=Número de caracteres sobrepostos entre segmentos (padrão: 100) +settings.rag.embedding.chunk.overlap.hint=Número de caracteres sobrepostos entre segmentos (padrão\: 100) settings.rag.embedding.models=Modelos de embedding por provedor settings.rag.indexing.title=Configuração de indexação settings.rag.indexing.description=Controle quais arquivos são indexados e o tamanho máximo de arquivo permitido settings.rag.indexing.max.file.bytes=Tamanho máximo do arquivo (bytes) settings.rag.indexing.max.file.bytes.hint=Arquivos maiores que este valor são ignorados durante a indexação. Definir um valor muito alto pode tornar a indexação significativamente mais lenta. settings.rag.indexing.supported.extensions=Extensões suportadas -settings.rag.indexing.supported.extensions.hint=Extensões de arquivo separadas por vírgula para indexar (ex.: kt, java, py, md). Deixe vazio para usar os padrões integrados. +settings.rag.indexing.supported.extensions.hint=Extensões de arquivo separadas por vírgula para indexar (ex.\: kt, java, py, md). Deixe vazio para usar os padrões integrados. settings.rag.indexing.exclude.file.names=Nomes de arquivo excluídos -settings.rag.indexing.exclude.file.names.hint=Nomes de arquivo exatos separados por vírgula a serem sempre ignorados (ex.: package-lock.json, yarn.lock). +settings.rag.indexing.exclude.file.names.hint=Nomes de arquivo exatos separados por vírgula a serem sempre ignorados (ex.\: package-lock.json, yarn.lock). settings.rag.indexing.binary.extensions=Extensões binárias -settings.rag.indexing.binary.extensions.hint=Extensões de arquivo separadas por vírgula tratadas como binárias e ignoradas durante a indexação (ex.: png, jpg, zip, exe). Deixe vazio para usar os padrões integrados. +settings.rag.indexing.binary.extensions.hint=Extensões de arquivo separadas por vírgula tratadas como binárias e ignoradas durante a indexação (ex.\: png, jpg, zip, exe). Deixe vazio para usar os padrões integrados. settings.rag.indexing.embedding.batch.size=Tamanho do lote de embeddings settings.rag.indexing.embedding.batch.size.hint=Número de segmentos de texto enviados ao modelo de embeddings por requisição. Se a indexação estiver lenta e você usar um provedor remoto (OpenAI, Gemini), tente aumentar para 100–500. Se usar um modelo local (Ollama, LM Studio), mantenha baixo para evitar timeouts. @@ -1208,7 +1225,7 @@ settings.rag.indexing.embedding.batch.size.hint=Número de segmentos de texto en settings.models.title=Modelos settings.models.description=Configure o comportamento global do modelo de IA compartilhado entre todos os provedores. settings.models.max.tool.calling.round.trips=Máximo de rodadas de chamadas de ferramentas -settings.models.max.tool.calling.round.trips.hint=Número máximo de chamadas de ferramentas que a IA pode fazer em uma única resposta (padrão: 10). Valores mais altos permitem tarefas de agente mais complexas, mas aumentam a latência e o custo. +settings.models.max.tool.calling.round.trips.hint=Número máximo de chamadas de ferramentas que a IA pode fazer em uma única resposta (padrão\: 10). Valores mais altos permitem tarefas de agente mais complexas, mas aumentam a latência e o custo. # Memory Settings settings.memory.title=Configurações de memória @@ -1251,11 +1268,11 @@ file.viewer.title=Visualizador de arquivos file.viewer.title.with.name=Visualizador de arquivos - {0} file.viewer.dialog.close=Fechar file.viewer.copy.clipboard=Copiar para a área de transferência -file.viewer.copied=Copiado! +file.viewer.copied=Copiado\! # Mermaid Chart Renderer mermaid.setup.required.title=Mermaid CLI necessário -mermaid.setup.instructions.link=https://askimo.chat/docs/desktop/mermaid-diagrams/ +mermaid.setup.instructions.link=https\://askimo.chat/docs/desktop/mermaid-diagrams/ mermaid.setup.button.open.guide=Abrir guia de configuração mermaid.rendering.progress=Renderizando diagrama... mermaid.error.rendering.title=Erro ao renderizar o diagrama @@ -1268,14 +1285,14 @@ mermaid.button.zoom.in=Aumentar zoom mermaid.button.zoom.out=Diminuir zoom mermaid.button.reset.zoom=Redefinir zoom mermaid.button.retry=Tentar novamente -mermaid.feedback.copied=Copiado! +mermaid.feedback.copied=Copiado\! mermaid.setup.button.install=Instalar Mermaid CLI mermaid.setup.button.check.again=Verificar novamente mermaid.setup.button.download.node=Baixar Node.js mermaid.setup.installing=Instalando Mermaid CLI... mermaid.setup.install.failed=A instalação falhou. Verifique a saída abaixo para mais detalhes. mermaid.setup.node.required=Node.js e npm não foram encontrados. Instale o Node.js primeiro para habilitar a instalação com um clique. -mermaid.setup.node.link=https://nodejs.org/en/download +mermaid.setup.node.link=https\://nodejs.org/en/download mermaid.error.code.show=Ver código do diagrama mermaid.error.code.hide=Ocultar código do diagrama @@ -1294,7 +1311,7 @@ mcp.instances.title=Instâncias MCP mcp.instances.description=Estas instâncias MCP estão disponíveis mcp.instances.empty=Nenhuma instância MCP configurada mcp.instances.count={0} instância(s) -mcp.instance.server.label=Servidor: {0} +mcp.instance.server.label=Servidor\: {0} mcp.instance.delete.confirm.title=Excluir Instância MCP? mcp.instance.delete.confirm.message=Tem certeza de que deseja excluir a instância mcp "{0}"? Isso não pode ser desfeito. mcp.instance.enable.tooltip=Ativar esta instância MCP @@ -1320,7 +1337,7 @@ mcp.instance.field.description=Descrição mcp.instance.field.description.placeholder=Breve descrição do que este servidor faz mcp.instance.field.transport=Tipo de Transporte mcp.instance.field.command=Template de Comando -mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2:--flag}} +mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2\:--flag}} mcp.instance.field.command.hint=Comando separado por espaços com placeholders {{parameter}} mcp.instance.validation.error.empty.id=O ID do servidor não pode estar vazio mcp.instance.validation.error.invalid.id.pattern=O ID do servidor deve conter apenas letras minúsculas, números e hífens @@ -1329,20 +1346,20 @@ mcp.instance.validation.error.empty.command=O template de comando não pode esta mcp.instance.validation.error.empty.parameter.key=A chave do parâmetro não pode estar vazia mcp.instance.validation.error.empty.parameter.label=O rótulo do parâmetro não pode estar vazio mcp.instance.env.label=Variáveis de Ambiente (Opcional) -mcp.instance.env.placeholder=API_KEY={{apiKey}}\nDEBUG={{debug}} -mcp.instance.env.hint=Formato: CHAVE=valor ou CHAVE={{parameter}} (um por linha) +mcp.instance.env.placeholder=API_KEY\={{apiKey}}\nDEBUG\={{debug}} +mcp.instance.env.hint=Formato\: CHAVE\=valor ou CHAVE\={{parameter}} (um por linha) mcp.instance.transport.stdio=Stdio (Processo Local) mcp.instance.transport.http=HTTP (Servidor Remoto) mcp.instance.http.url.label=Template de URL -mcp.instance.http.url.placeholder=https://{{host}}/mcp ou https://api.example.com/mcp +mcp.instance.http.url.placeholder=https\://{{host}}/mcp ou https\://api.example.com/mcp mcp.instance.http.url.hint=URL do endpoint do servidor. Use placeholders {{parameter}} para valores dinâmicos mcp.instance.http.headers.label=Cabeçalhos HTTP (Opcional) -mcp.instance.http.headers.placeholder=Authorization=Bearer {{apiKey}}\nX-Tenant-Id={{tenantId}} -mcp.instance.http.headers.hint=Formato: Nome-Cabeçalho=valor ou Nome-Cabeçalho={{parameter}} (um por linha) +mcp.instance.http.headers.placeholder=Authorization\=Bearer {{apiKey}}\nX-Tenant-Id\={{tenantId}} +mcp.instance.http.headers.hint=Formato\: Nome-Cabeçalho\=valor ou Nome-Cabeçalho\={{parameter}} (um por linha) mcp.instance.http.timeout.label=Tempo Limite (ms) mcp.instance.http.timeout.hint=Tempo limite da solicitação em milissegundos mcp.instance.validation.error.empty.url=O template de URL não pode estar vazio -mcp.instance.validation.error.invalid.url=O template de URL deve começar com http:// ou https:// +mcp.instance.validation.error.invalid.url=O template de URL deve começar com http\:// ou https\:// # MCP Integrations (Project View) mcp.instance.delete.tooltip=Excluir instância MCP @@ -1353,7 +1370,7 @@ mcp.instance.field.serverId=Tipo de Servidor # Add MCP Integration Dialog mcp.instance.name=Nome MCP -mcp.instance.name.placeholder=ex: Banco de Dados de Produção, Arquivos de Projeto +mcp.instance.name.placeholder=ex\: Banco de Dados de Produção, Arquivos de Projeto mcp.instance.tools.title=Ferramentas Disponíveis mcp.instance.tools.count={0} ferramenta(s) disponível(is) mcp.instance.tool.strategy.intent=Baseado em Intenção @@ -1379,6 +1396,12 @@ mcp.tool.category.WEATHER.desc=Dados e previsões do tempo mcp.tool.category.WEB_SEARCH.desc=Busca web e leitura de páginas mcp.tool.category.DATETIME.desc=Operações de data e hora mcp.tool.category.OTHER.desc=Ferramentas não classificadas +mcp.tool.approval.label=Aprovação +mcp.tool.approval.require_approval=Exigir aprovação +mcp.tool.approval.default=Automático +mcp.tool.approval.default.hint=É executado automaticamente. Categorias de gravação (gravação de arquivos, execução, git, mensagens) exigem aprovação por padrão. +mcp.tool.approval.require_approval.hint=Sempre pausa e pede sua confirmação antes que a IA execute esta ferramenta. +mcp.tool.enabled.label=Ativado # MCP Tools Dialog mcp.tools.dialog.title=Ferramentas Disponíveis - {0} @@ -1392,7 +1415,7 @@ mcp.tools.dialog.search.count={0} de {1} ferramenta(s) mcp.tools.dialog.search.empty=Nenhuma ferramenta corresponde à sua pesquisa mcp.tools.dialog.export=Exportar Ferramentas mcp.tools.dialog.export.success=Ferramentas exportadas para {0} -mcp.tools.dialog.export.failed=Falha ao exportar ferramentas: {0} +mcp.tools.dialog.export.failed=Falha ao exportar ferramentas\: {0} # MCP Server Catalog Dialog mcp.catalog.dialog.title=Adicionar Servidor MCP @@ -1448,7 +1471,7 @@ file.viewer.close=Fechar visualizador file.viewer.open.external=Abrir externamente file.viewer.binary=Arquivo binário — não é possível visualizar como texto. file.viewer.too.large=O arquivo é muito grande para visualização ({0} KB). O máximo é 512 KB. -file.viewer.error=Não foi possível ler o arquivo: {0} +file.viewer.error=Não foi possível ler o arquivo\: {0} file.viewer.select.prompt=Selecione um arquivo na árvore acima para visualizar seu conteúdo # Project Side Panel @@ -1464,7 +1487,7 @@ panel.collapse=Recolher painel # RAG Status rag.status.started=Indexação iniciada -rag.status.inprogress=Indexando: {0}% +rag.status.inprogress=Indexando\: {0}% rag.status.inprogress.unknown=Indexando... rag.status.queued=Na fila — aguardando a conclusão da indexação de outro projeto rag.status.ready=Pronto @@ -1514,7 +1537,7 @@ plans.editor.label=Conteúdo YAML plans.editor.placeholder=Cole ou digite o YAML do seu plano aqui... plans.editor.valid=YAML válido plans.editor.hint.title=Referência -plans.editor.hint.fields=Obrigatório: id, name, steps\nOpcional: description, icon, inputs, workflow\nTipos de etapa: text, multiline, toggle, number\nTipos de fluxo de trabalho: sequence, parallel, conditional +plans.editor.hint.fields=Obrigatório\: id, name, steps\nOpcional\: description, icon, inputs, workflow\nTipos de etapa\: text, multiline, toggle, number\nTipos de fluxo de trabalho\: sequence, parallel, conditional plans.editor.menu.edit=Editar YAML plans.editor.ai.label=Gerar com IA plans.editor.ai.placeholder=Descreva o que você quer que este plano faça em palavras simples... @@ -1573,12 +1596,12 @@ skills.view.panel.collapse=Recolher painel skills.view.panel.expand=Expandir painel skills.view.tab.skills=Habilidades skills.view.tab.workspace=Área de trabalho -skills.view.last.run=Última execução: {0} +skills.view.last.run=Última execução\: {0} skills.view.category.uncategorized=Outros skills.view.search.placeholder=Procurar competências ... skills.view.search.clear=Limpar pesquisa skills.view.context.placeholder=O que você gostaria de fazer? (opcional) -skills.view.command.mode.hint=Modo de comando: uma entrada iniciada com / é executada como um comando de agente. +skills.view.command.mode.hint=Modo de comando\: uma entrada iniciada com / é executada como um comando de agente. skills.view.system.prompt.preview=Prompt do sistema skills.view.response.title=Resposta skills.view.followup.label=Acompanhamento @@ -1588,7 +1611,7 @@ skills.view.history.empty=Ainda não há execuções skills.view.copy=Copiar skills.view.system.prompt.file=arquivo skills.view.system.prompt.files=arquivos -skills.view.system.prompt.also.included=Também incluído no contexto do agente: +skills.view.system.prompt.also.included=Também incluído no contexto do agente\: skills.view.docs.tooltip=Ver Guia de Habilidades skills.view.mode.agentic=Agêntico skills.view.mode.manual=Manual @@ -1615,7 +1638,7 @@ onboarding.step.language.label=Idioma # Onboarding Step 1: Analytics onboarding.step.analytics.title=Ajude a tornar o Askimo melhor para todos onboarding.step.analytics.description=Askimo é gratuito e open-source. Compartilhar dados de uso anônimos é uma pequena maneira de contribuir. Isso nos ajuda a entender o que desenvolver a seguir. -onboarding.step.analytics.collected.yes.features=✅ Quais recursos são usados (ex: RAG, ferramentas MCP, Planos, Skills) +onboarding.step.analytics.collected.yes.features=✅ Quais recursos são usados (ex\: RAG, ferramentas MCP, Planos, Skills) onboarding.step.analytics.collected.yes.version=✅ Versão do app e tipo de SO onboarding.step.analytics.collected.no.conversations=❌ Nenhum conteúdo de conversas ou prompts onboarding.step.analytics.collected.no.personal=❌ Nenhum dado pessoal, arquivos ou chaves de API. Nunca. @@ -1628,7 +1651,7 @@ onboarding.step.analytics.section.never=O que nunca coletamos onboarding.step.analytics.toggle.subtitle=Ajuda-nos a focar no que mais importa · alterável a qualquer momento em Configurações → Avançado # Onboarding Step 1: Welcome -onboarding.step.welcome.title=👋 Bem-vindo ao Askimo! +onboarding.step.welcome.title=👋 Bem-vindo ao Askimo\! onboarding.step.welcome.description=Seu assistente pessoal de IA. Converse com vários modelos de IA, organize conhecimento em projetos e automatize fluxos de trabalho com skills e planos. onboarding.step.welcome.feature1.title=💬 Converse com a IA onboarding.step.welcome.feature1.description=Faça perguntas, obtenha ajuda com tarefas ou converse com qualquer modelo de IA. @@ -1657,7 +1680,7 @@ onboarding.step.directives.feature3.description=Precisa de um tutor paciente par onboarding.step.directives.link=Veja exemplos e dicas # Onboarding Step 6: Ready -onboarding.step.ready.title=🚀 Tudo pronto! +onboarding.step.ready.title=🚀 Tudo pronto\! onboarding.step.ready.description=Está tudo configurado e pronto para usar. Comece seu primeiro chat ou explore os recursos abaixo. onboarding.step.ready.link.docs=📚 Navegar na documentação onboarding.step.ready.link.providers=🔧 Configurar provedores de IA @@ -1667,13 +1690,13 @@ onboarding.step.ready.link.github=⭐ Dê uma estrela no GitHub onboarding.step.persona.title=🎯 O que você quer fazer principalmente? onboarding.step.persona.description=Escolha a opção que mais se parece com o seu trabalho. O Askimo mostrará os recursos mais relevantes. Você pode alterar isso a qualquer momento no menu Exibir. onboarding.step.persona.developer.description=Ler e escrever código, refatorar arquivos, gerar scaffolding ou executar tarefas agênticas em seu projeto local. -onboarding.step.persona.developer.features=Ativa: Skills (Gemini CLI, Claude Code), Projects +onboarding.step.persona.developer.features=Ativa\: Skills (Gemini CLI, Claude Code), Projects onboarding.step.persona.researcher.description=Pesquisar tópicos, analisar dados, escrever relatórios estruturados e obter respostas baseadas em conhecimento. -onboarding.step.persona.researcher.features=Ativa: Plans, Projects (RAG) +onboarding.step.persona.researcher.features=Ativa\: Plans, Projects (RAG) onboarding.step.persona.manager.description=Rascunhar e-mails, processar notas de reuniões, escrever relatórios de status ou executar fluxos de trabalho de conteúdo em várias etapas. -onboarding.step.persona.manager.features=Ativa: Plans +onboarding.step.persona.manager.features=Ativa\: Plans onboarding.step.persona.everything.description=Eu faço uma mistura de coisas — mostre-me todos os recursos e decidirei o que usar. -onboarding.step.persona.everything.features=Ativa: Skills, Plans, Projects, MCP, RAG +onboarding.step.persona.everything.features=Ativa\: Skills, Plans, Projects, MCP, RAG # Persona labels persona.developer=💻 Escrever e revisar código diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index 89cdd186..0973657c 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -32,6 +32,7 @@ menu.view.appearance.system=Hệ thống menu.view.appearance.light=Sáng menu.view.appearance.dark=Tối menu.view.fullscreen=Chuyển sang toàn màn hình +menu.view.exit.fullscreen=Thoát toàn màn hình menu.view.bookmarks=Xem dấu trang menu.terminal=Terminal menu.terminal.new=Terminal mới @@ -43,7 +44,7 @@ menu.help.discord=💬 Tham gia cộng đồng Discord menu.help.share.x=Chia sẻ trên X / Twitter menu.help.share.linkedin=Chia sẻ trên LinkedIn menu.help.share.facebook=Chia sẻ trên Facebook -menu.help.share.text=Khám phá Askimo — ứng dụng AI miễn phí chạy cục bộ trên máy tính. Hỗ trợ Ollama, OpenAI, Anthropic và nhiều hơn. https://askimo.chat +menu.help.share.text=Khám phá Askimo — ứng dụng AI miễn phí chạy cục bộ trên máy tính. Hỗ trợ Ollama, OpenAI, Anthropic và nhiều hơn. https\://askimo.chat menu.help.share.hackernews=Bài đăng trên Hacker News menu.eventlog=Nhật ký sự kiện menu.help.model.capabilities=Mở tệp khả năng mô hình @@ -60,16 +61,16 @@ dialog.close=Đóng # Backup and Restore backup.export.title=Xuất bản sao lưu backup.export.success.title=Đã xuất bản sao lưu -backup.export.success.message=Đã xuất bản sao lưu thành công vào:\n{0} +backup.export.success.message=Đã xuất bản sao lưu thành công vào\:\n{0} backup.export.error.title=Xuất thất bại -backup.export.error.message=Không thể xuất bản sao lưu:\n{0} +backup.export.error.message=Không thể xuất bản sao lưu\:\n{0} backup.import.title=Nhập bản sao lưu backup.import.confirm.title=Xác nhận nhập backup.import.confirm.message=Thao tác này sẽ thay thế toàn bộ dữ liệu hiện tại bằng bản sao lưu.\n\nMột bản sao lưu an toàn sẽ được tạo tự động trước khi nhập.\n\nBạn có chắc chắn muốn tiếp tục không? backup.import.success.title=Đã nhập bản sao lưu backup.import.success.message=Đã nhập bản sao lưu thành công.\n\nVui lòng khởi động lại Askimo để áp dụng tất cả thay đổi. backup.import.error.title=Nhập thất bại -backup.import.error.message=Không thể nhập bản sao lưu:\n{0} +backup.import.error.message=Không thể nhập bản sao lưu\:\n{0} # Event Log eventlog.title=Nhật ký sự kiện ({0}) @@ -87,7 +88,7 @@ eventlog.window.header=Nhật ký sự kiện eventlog.window.attach=Gắn vào cửa sổ chính eventlog.window.events.count={0} sự kiện eventlog.window.empty.message=Chưa có sự kiện. Chúng sẽ xuất hiện tại đây khi phát sinh. -eventlog.footer.warning=Các mục nhập cũ nhất đã bị cắt bớt (giới hạn: {0}) +eventlog.footer.warning=Các mục nhập cũ nhất đã bị cắt bớt (giới hạn\: {0}) # Chat Interface chat.new=Trò chuyện mới @@ -165,7 +166,7 @@ session.rename.error.empty=Tiêu đề không được để trống session.export.file.chooser.title=Lưu lịch sử trò chuyện session.export.button.export=Xuất session.export.success.title=Xuất thành công -session.export.success.message=Phiên trò chuyện đã được xuất đến: +session.export.success.message=Phiên trò chuyện đã được xuất đến\: # Projects project.title=Dự án @@ -181,14 +182,16 @@ project.new.dialog.file.browse=Chọn tệp để xử lý... project.new.dialog.sources.label=Tài liệu tham khảo (tùy chọn) project.new.dialog.sources.add=Thêm nguồn project.new.dialog.error.empty.name=Tên dự án không được để trống -project.new.dialog.error.create.failed=Không thể tạo dự án: {0} +project.new.dialog.error.create.failed=Không thể tạo dự án\: {0} project.new.dialog.name.error.empty=Tên dự án không được để trống project.new.dialog.button.create=Tạo dự án project.new.dialog.button.cancel=Hủy -project.new.dialog.success.title=Dự án đã được tạo thành công! +project.new.dialog.success.title=Dự án đã được tạo thành công\! project.new.dialog.success.message=Dự án ''{0}'' đã được tạo. project.new.dialog.success.countdown=Đóng sau {0} giây{1}... project.new.dialog.success.close=Đóng ngay +project.dialog.defaultDirective.label=Chỉ thị mặc định (tùy chọn) +project.dialog.defaultDirective.none=Không có project.dialog.url.title=Thêm tài liệu tham chiếu từ URL project.dialog.url.description=Nhập URL để thêm nội dung web làm tài liệu tham chiếu. URL sẽ được xác thực và kiểm tra khả năng truy cập. project.dialog.url.label=URL @@ -206,9 +209,13 @@ project.not.selected=Chưa chọn dự án nào # Projects View projects.title=Dự án projects.description=Tổ chức các cuộc trò chuyện của bạn xoay quanh một chủ đề và đính kèm các tệp, thư mục hoặc URL làm nguồn kiến thức, để AI luôn có đúng ngữ cảnh cho dự án đó. +projects.rag.embedding.not.configured=RAG bị vô hiệu hóa cho các dự án vì chưa có mô hình embedding nào được cấu hình cho nhà cung cấp AI hiện tại của bạn. +projects.rag.embedding.configure=Cấu hình mô hình embedding +projects.rag.embedding.unsupported.provider=RAG bị vô hiệu hóa cho các dự án vì nhà cung cấp AI hiện tại của bạn không hỗ trợ mô hình embedding. Hãy chuyển sang nhà cung cấp hỗ trợ embedding (ví dụ\: OpenAI, Gemini hoặc một endpoint tương thích OpenAI) để bật RAG. +projects.rag.embedding.switch.provider=Chuyển nhà cung cấp AI projects.error=❌ {0} projects.empty=Không tìm thấy dự án nào. -projects.empty.hint=💡 Tạo dự án mới để tổ chức các phiên trò chuyện! +projects.empty.hint=💡 Tạo dự án mới để tổ chức các phiên trò chuyện\! projects.search.placeholder=Tìm kiếm theo tên… projects.search.empty=Không có dự án nào khớp với "{0}". projects.col.name=Tên @@ -219,13 +226,16 @@ projects.sources.expand=Hiển thị tài liệu tham khảo projects.sources.collapse=Ẩn tài liệu tham khảo projects.sources.empty.title=Chưa có tài liệu tham chiếu projects.sources.empty.description=Thêm tài liệu để Askimo có thể tham chiếu khi trả lời câu hỏi của bạn -projects.sources.info.tooltip=Tài liệu tham chiếu giúp Askimo hiểu rõ bối cảnh cụ thể của bạn.\n\n\ -Thêm thư mục, tệp hoặc trang web chứa thông tin mà bạn muốn Askimo tham chiếu khi trả lời câu hỏi.\n\n\ -Ví dụ:\n\ +projects.sources.info.tooltip=Tài liệu tham chiếu giúp Askimo hiểu rõ bối cảnh cụ thể của bạn.\n\ +\n\ +Thêm thư mục, tệp hoặc trang web chứa thông tin mà bạn muốn Askimo tham chiếu khi trả lời câu hỏi.\n\ +\n\ +Ví dụ\:\n\ • Tài liệu dự án\n\ • Cơ sở tri thức của công ty\n\ • Thông số kỹ thuật\n\ -• Bài nghiên cứu\n\n\ +• Bài nghiên cứu\n\ +\n\ Askimo sẽ tìm kiếm trong các tài liệu này để cung cấp câu trả lời chính xác và phù hợp với ngữ cảnh hơn. projects.sources.type.local_folders=Thư Mục Cục Bộ projects.sources.type.local_files=Tệp Cục Bộ @@ -236,6 +246,8 @@ projects.sources.add.dialog.title=Thêm tài liệu tham chiếu projects.sources.add.dialog.description=Chọn thư mục, tệp hoặc URL để thêm làm tài liệu tham chiếu cho dự án này. projects.sources.add.dialog.button.add=Thêm projects.sources.delete.tooltip=Xóa tài liệu tham chiếu +projects.sources.watch.tooltip=Theo dõi thay đổi +projects.sources.more.tooltip=Tùy chọn khác projects.sources.guide=Xem hướng dẫn tài liệu tham chiếu projects.error.loading=Không thể tải danh sách dự án. Vui lòng thử lại. projects.error.deleting=Không thể xóa dự án. Vui lòng thử lại. @@ -246,14 +258,16 @@ project.error.loading=Không thể tải dự án. Vui lòng thử lại. project.error.loading_sessions=Không thể tải các phiên của dự án. Vui lòng thử lại. project.error.updating=Không thể cập nhật dự án. Vui lòng thử lại. project.error.deleting_knowledge_source=Không thể xóa tài liệu tham khảo. Vui lòng thử lại. +project.error.updating_knowledge_source=Không thể cập nhật tài liệu tham khảo. Vui lòng thử lại. +project.error.rescanning_knowledge_source=Không thể quét lại tài liệu tham khảo. Vui lòng thử lại. project.knowledge_source.delete.success=Đã xóa tài liệu tham khảo thành công. project.edit=Chỉnh sửa dự án project.reindex=Lập chỉ mục lại dự án project.menu.tooltip=Menu dự án project.new.chat.placeholder=Cuộc trò chuyện mới trong {0} project.recent.chats=Cuộc trò chuyện gần đây -project.no.chats=Chưa có cuộc trò chuyện nào. Hãy bắt đầu một cuộc trò chuyện mới bên dưới! -project.indexing.label=Đang lập chỉ mục nguồn kiến thức: {0} +project.no.chats=Chưa có cuộc trò chuyện nào. Hãy bắt đầu một cuộc trò chuyện mới bên dưới\! +project.indexing.label=Đang lập chỉ mục nguồn kiến thức\: {0} project.indexing.queued=Đang xếp hàng lập chỉ mục - chờ dự án khác hoàn thành... project.indexing.failed=Lập chỉ mục thất bại. Hãy thử lập chỉ mục lại từ menu dự án. project.indexing.ready.label=Đã lập chỉ mục @@ -272,7 +286,7 @@ settings.appearance=Giao diện settings.appearance.accent=Màu nhấn settings.appearance.accent.description=Tùy chỉnh an toàn một màu nhấn duy nhất. Askimo sẽ áp dụng nó cho các điểm nhấn giao diện chính và tạo các màu liên quan để đảm bảo dễ đọc. settings.appearance.accent.label=Màu nhấn (Hex) -settings.appearance.accent.invalid=Hãy nhập một màu hex hợp lệ như #0284C7 +settings.appearance.accent.invalid=Hãy nhập một màu hex hợp lệ như \#0284C7 settings.appearance.accent.swatch.primary=Chính settings.appearance.accent.swatch.primary.container=Vùng chứa settings.appearance.accent.swatch.on.primary.container=Trên vùng chứa @@ -296,7 +310,7 @@ settings.network.description=Cấu hình cài đặt mạng và proxy settings.mcp.servers=Máy chủ MCP settings.skills=Kỹ năng settings.skills.description=Skills là các tác nhân AI tái sử dụng được chạy trực tiếp trên máy của bạn. Mỗi skill là một tệp Markdown với lời nhắc hệ thống và hướng dẫn. Khi bạn chạy một skill, nó sẽ được thực thi qua {0} — đọc và ghi các tệp của bạn, chạy các lệnh shell và lặp cho đến khi công việc hoàn tất. Không yêu cầu sao chép và dán. -settings.skills.runtimes=Các môi trường chạy được hỗ trợ: +settings.skills.runtimes=Các môi trường chạy được hỗ trợ\: settings.skills.directory=Thư mục kỹ năng settings.skills.open.folder=Mở thư mục settings.skills.new.skill=Kỹ năng mới @@ -376,11 +390,11 @@ settings.log.viewer=Tệp log settings.log.viewer.description=Xem log và thông tin chẩn đoán settings.log.viewer.view=Xem log settings.log.viewer.open_folder=Mở thư mục log -settings.log.viewer.path=Tệp log: {0} +settings.log.viewer.path=Tệp log\: {0} settings.log.viewer.dialog.title=Log ứng dụng settings.log.viewer.refresh=Tải lại settings.log.viewer.copy=Sao chép -settings.log.viewer.copied=Đã sao chép! +settings.log.viewer.copied=Đã sao chép\! settings.log.viewer.loading=Đang tải log... settings.log.viewer.error=Lỗi khi tải log settings.log.viewer.empty=Không có log @@ -434,7 +448,7 @@ settings.web_search.api_key=Khóa API settings.web_search.api_key.placeholder=Dán khóa API của bạn vào đây settings.web_search.get_api_key=Nhận khóa API miễn phí ↗ settings.web_search.endpoint=URL phiên bản SearxNG -settings.web_search.endpoint.placeholder=https://search.example.com +settings.web_search.endpoint.placeholder=https\://search.example.com settings.web_search.test=Kiểm tra tìm kiếm settings.web_search.test.running=Đang kiểm tra... settings.web_search.test.success=✅ Tìm kiếm đang hoạt động @@ -451,25 +465,25 @@ user.profile.name=Tên user.profile.email=Email user.profile.email.placeholder=your.email@example.com user.profile.occupation=Nghề nghiệp -user.profile.occupation.placeholder=vd: Lập trình viên, Nhà thiết kế, Sinh viên +user.profile.occupation.placeholder=vd\: Lập trình viên, Nhà thiết kế, Sinh viên user.profile.location=Vị trí -user.profile.location.placeholder=vd: San Francisco, CA +user.profile.location.placeholder=vd\: San Francisco, CA user.profile.bio=Giới thiệu user.profile.bio.placeholder=Hãy chia sẻ một chút về bạn… user.profile.interests=Sở thích user.profile.interests.description=Chọn các chủ đề bạn quan tâm để cá nhân hóa trải nghiệm AI user.profile.interests.custom=Sở thích tùy chỉnh -user.profile.interests.custom.placeholder=vd: Học máy, Nhiếp ảnh +user.profile.interests.custom.placeholder=vd\: Học máy, Nhiếp ảnh user.profile.interests.custom.hint=Phân tách nhiều sở thích bằng dấu phẩy # Welcome Dialog (First Run) -welcome.title=Chào mừng đến với Askimo! +welcome.title=Chào mừng đến với Askimo\! welcome.subtitle=Hãy giúp chúng tôi cá nhân hóa trải nghiệm AI của bạn welcome.avatar.optional=Nhấp để thêm ảnh (tùy chọn) welcome.name=Tên của bạn -welcome.name.placeholder=vd: Nguyễn Văn A +welcome.name.placeholder=vd\: Nguyễn Văn A welcome.occupation=Nghề nghiệp -welcome.occupation.placeholder=vd: Lập trình viên phần mềm +welcome.occupation.placeholder=vd\: Lập trình viên phần mềm welcome.interests=Bạn quan tâm đến điều gì? welcome.interests.description=Chọn một vài chủ đề để chúng tôi điều chỉnh trải nghiệm cho bạn welcome.skip=Thiết lập sau @@ -501,6 +515,7 @@ user.interest.environment=Môi trường # Actions action.delete=Xóa +action.rescan=Quét lại action.remove=Xóa action.edit=Chỉnh sửa action.pin=Ghim vào thanh bên @@ -526,7 +541,7 @@ action.refresh=Tải lại # Happiness Gate (shown before Star Prompt) happiness.gate.title=Bạn thấy Askimo thế nào? happiness.gate.subtitle=Ý kiến thành thật của bạn giúp chúng tôi tiếp tục cải thiện -happiness.gate.happy=Tôi rất thích! 😍 +happiness.gate.happy=Tôi rất thích\! 😍 happiness.gate.neutral=Ổn 🙂 happiness.gate.unhappy=Chưa thực sự ưng 😕 @@ -538,22 +553,22 @@ feedback.comment.placeholder=Mô tả vấn đề hoặc chia sẻ suy nghĩ c feedback.unhappy.dialog.title=Chúng tôi muốn biết điều gì đang không hoạt động feedback.unhappy.dialog.subtitle=Hãy cho chúng tôi biết trải nghiệm của bạn với Askimo để chúng tôi cải thiện. feedback.comment.label.unhappy=Điều gì không hoạt động với bạn? -feedback.comment.placeholder.unhappy=ví dụ: Lịch sử phiên khó tìm, phản hồi cảm thấy chậm… +feedback.comment.placeholder.unhappy=ví dụ\: Lịch sử phiên khó tìm, phản hồi cảm thấy chậm… feedback.neutral.dialog.title=Điều gì sẽ làm Askimo tốt hơn cho bạn? feedback.neutral.dialog.subtitle=Ý tưởng của bạn giúp chúng tôi quyết định xây dựng gì tiếp theo. feedback.comment.label.neutral=Chúng tôi có thể cải thiện điều gì? -feedback.comment.placeholder.neutral=ví dụ: Tôi ước có phím tắt tốt hơn, chuyển đổi mô hình nhanh hơn… +feedback.comment.placeholder.neutral=ví dụ\: Tôi ước có phím tắt tốt hơn, chuyển đổi mô hình nhanh hơn… feedback.comment.encourage.hint=Vài từ là đủ để tạo ra sự khác biệt — phản hồi của bạn sẽ đến thẳng đội ngũ. feedback.email.label=Email của bạn (tùy chọn) feedback.email.placeholder=you@example.com feedback.email.hint=Chỉ được sử dụng để theo dõi phản hồi của bạn. Chúng tôi sẽ không bao giờ gửi thư rác. feedback.action.skip=Bỏ qua feedback.action.send=Gửi phản hồi -feedback.thanks.title=Cảm ơn bạn đã phản hồi! +feedback.thanks.title=Cảm ơn bạn đã phản hồi\! feedback.thanks.message=Đóng góp của bạn giúp chúng tôi cải thiện Askimo tốt hơn. Chúng tôi rất trân trọng điều đó. feedback.thanks.close=Đóng -feedback.remind.title=Không sao đâu! +feedback.remind.title=Không sao đâu\! feedback.remind.message=Bạn có thể chia sẻ phản hồi bất cứ lúc nào từ menu Trợ giúp → Gửi phản hồi. feedback.remind.got.it=Đã hiểu @@ -577,10 +592,10 @@ star.prompt.share.description=Kể cho mạng lưới của bạn về Askimo tr star.prompt.maybe.later=Để sau star.prompt.already.starred=Đã gắn sao ✓ star.prompt.social.proof=⭐ Tham gia cùng {0} người đã gắn sao cho Askimo -star.prompt.thanks.title=Cảm ơn bạn rất nhiều! 🌟 +star.prompt.thanks.title=Cảm ơn bạn rất nhiều\! 🌟 star.prompt.thanks.message=Sự ủng hộ của bạn có ý nghĩa rất lớn và giúp chúng tôi tiếp tục phát triển Askimo. star.prompt.thanks.done=Xong ✓ -star.prompt.remind.title=Không vấn đề gì! +star.prompt.remind.title=Không vấn đề gì\! star.prompt.remind.message=Bạn có thể ủng hộ chúng tôi bất cứ lúc nào từ menu Trợ giúp → Ủng hộ Askimo. star.prompt.remind.got.it=Đã hiểu @@ -654,7 +669,7 @@ shortcut.send.message=Gửi tin nhắn shortcut.new.line=Dòng mới # Chat View -chat.welcome=Chào mừng đến Askimo!\nBắt đầu trò chuyện bằng cách nhập tin nhắn bên dưới. +chat.welcome=Chào mừng đến Askimo\!\nBắt đầu trò chuyện bằng cách nhập tin nhắn bên dưới. chat.no.active.session=Chọn một phiên trong thanh bên hoặc bắt đầu cuộc trò chuyện mới chat.search.placeholder=Tìm trong cuộc trò chuyện... chat.search.no.results=Không có kết quả @@ -710,6 +725,12 @@ chat.image.model.missing.title=Chưa cấu hình mô hình hình ảnh chat.image.model.missing.message=Chưa đặt mô hình hình ảnh cho {0}. Mở Cài đặt > Nhà cung cấp AI > Mô hình tạo hình ảnh và đặt tên mô hình trước. chat.tools.button=Công cụ khả dụng chat.tools.button.disabled=Công cụ khả dụng ({0} bị vô hiệu hóa) +chat.tool.approval.required=\n\n⏸️ **Yêu cầu phê duyệt** — AI muốn chạy `{0}`{1}\n\n +chat.tool.approval.timed_out=Hết thời gian chờ phê duyệt công cụ\: {0} +chat.tool.approval.denied=Người dùng từ chối thực thi công cụ\: {0} +chat.tool.approval.prompt=AI muốn chạy\: {0} +chat.tool.approval.approve=Phê duyệt +chat.tool.approval.deny=Từ chối chat.tools.button.model.no.support=Các công cụ không được hỗ trợ bởi mô hình này chat.tools.popup.title=Công cụ khả dụng chat.tools.popup.loading=Đang tải máy chủ... @@ -736,7 +757,7 @@ chat.attachment.remove=Xóa tệp đính kèm chat.attachment.preview.loading=Đang tải bản xem trước… chat.attachment.preview.file.not.found=(Không tìm thấy tệp) chat.attachment.preview.too.large=(Tệp quá lớn để xem trước) -chat.attachment.preview.cannot.read=(Không thể đọc tệp: {0}) +chat.attachment.preview.cannot.read=(Không thể đọc tệp\: {0}) chat.attachment.preview.more.lines=thêm {0} dòng # Sessions View @@ -748,12 +769,12 @@ sessions.col.created=Đã tạo sessions.col.updated=Đã cập nhật sessions.error=❌ {0} sessions.empty=Không có phiên trò chuyện. -sessions.empty.hint=💡 Bắt đầu một cuộc trò chuyện mới để tạo phiên đầu tiên! +sessions.empty.hint=💡 Bắt đầu một cuộc trò chuyện mới để tạo phiên đầu tiên\! sessions.search.placeholder=Tìm kiếm theo tiêu đề… sessions.search.empty=Không có phiên nào khớp với "{0}". # Generic table pagination controls -table.page.size.label=Số hàng mỗi trang: +table.page.size.label=Số hàng mỗi trang\: table.page=Trang {0} trên {1} table.page.previous=Trang trước table.page.next=Trang tiếp theo @@ -769,7 +790,7 @@ sessions.error.rename.failed=Đổi tên thất bại. # ChatSessionService Errors # Update Check update.dialog.title=Cập nhật phần mềm -update.dialog.new.version.available=Có phiên bản Askimo mới! +update.dialog.new.version.available=Có phiên bản Askimo mới\! update.urgency.medium=Bạn đang dùng phiên bản cũ hơn {0} bản — bạn có thể đã bỏ lỡ các bản sửa lỗi quan trọng và tính năng mới. update.urgency.high=Bạn đang dùng phiên bản cũ hơn {0} bản — bạn đang bỏ lỡ nhiều cải tiến đáng kể. Vui lòng cập nhật sớm. update.dialog.current.version.label=Phiên bản hiện tại @@ -780,7 +801,7 @@ update.dialog.download=Tải ngay update.dialog.how.to.update=Cách cập nhật update.dialog.later=Để sau update.dialog.skip.version=Bỏ qua phiên bản này -update.check.up.to.date=Bạn đang sử dụng phiên bản mới nhất! +update.check.up.to.date=Bạn đang sử dụng phiên bản mới nhất\! update.check.failed=Kiểm tra cập nhật thất bại # Event Names @@ -788,6 +809,7 @@ event.update.available=🚀 Phiên bản mới có sẵn event.details.action=Release Notes event.update.download=Tải xuống ngay event.notification.empty=Không có sự kiện +event.notification.title=Thông báo ({0}) event.notification.clear=Xóa event.notification.clear.all=Xóa tất cả event.notification.group.errors=Lỗi nền @@ -799,6 +821,7 @@ event.indexing.started=Đang lập chỉ mục… event.indexing.completed=Chỉ mục sẵn sàng event.indexing.failed=Lập chỉ mục thất bại event.indexing.files_indexed={0} tệp đã được lập chỉ mục +event.file.removed=Tệp đã bị xóa khỏi chỉ mục # Settings View settings.language=Idioma @@ -817,8 +840,8 @@ settings.app.language.translation.contribute=Đóng góp trên Crowdin settings.ai.response.language=Ngôn ngữ phản hồi ưu tiên settings.ai.response.language.description=Bắt AI phản hồi bằng một ngôn ngữ cụ thể (để trống để tự động phát hiện) settings.ai.response.language.auto=Tự động phát hiện -settings.ai.response.language.tooltip=AI tự động phát hiện ngôn ngữ, nhưng nên ghi đè khi:\n• Học ngôn ngữ mới (luyện tập nhập vai)\n• Tính nhất quán chuyên nghiệp (ví dụ: tài liệu code luôn bằng tiếng Anh)\n• Tối ưu hóa RAG (khớp ngôn ngữ cơ sở tri thức)\n• Dạy học (hỏi bằng ngôn ngữ này, giải thích bằng ngôn ngữ khác)\n• Ngăn chặn chuyển đổi ngôn ngữ không mong muốn -settings.model.select=Chọn mô hình cho {0}: +settings.ai.response.language.tooltip=AI tự động phát hiện ngôn ngữ, nhưng nên ghi đè khi\:\n• Học ngôn ngữ mới (luyện tập nhập vai)\n• Tính nhất quán chuyên nghiệp (ví dụ\: tài liệu code luôn bằng tiếng Anh)\n• Tối ưu hóa RAG (khớp ngôn ngữ cơ sở tri thức)\n• Dạy học (hỏi bằng ngôn ngữ này, giải thích bằng ngôn ngữ khác)\n• Ngăn chặn chuyển đổi ngôn ngữ không mong muốn +settings.model.select=Chọn mô hình cho {0}\: settings.model.loading=Đang tải mô hình... settings.model.none=Không có mô hình settings.model.select.title=Chọn mô hình @@ -826,7 +849,7 @@ settings.model.current=Mô hình hiện tại settings.model.selected=Mô hình đã chọn settings.model.new=Mô hình mới settings.model.use.default=Sử dụng mặc định -settings.model.change.description=Chọn một mô hình từ danh sách dưới đây: +settings.model.change.description=Chọn một mô hình từ danh sách dưới đây\: settings.model.search=Tìm mô hình settings.model.search.placeholder=Nhập để lọc mô hình... settings.model.filtered=Hiển thị {0}/{1} mô hình @@ -835,19 +858,19 @@ settings.model.chat.filter.label=Mô hình chat · đã hiển thị {0} settings.model.chat.filter.show.all=Hiển thị tất cả {0} settings.configure.title=Cấu hình {0} settings.test.connection.testing=Đang kiểm tra... -settings.placeholder.baseurl=http://localhost:11434 +settings.placeholder.baseurl=http\://localhost\:11434 provider.connection.failed=Não foi possível conectar ao provedor. Verifique se a sua chave API está correta (para provedores em nuvem) ou se a sua URL base está acessível (para provedores locais). Você pode encontrar instruções de configuração usando o link de ajuda acima. # Directives Dialog directive.manage.title=Quản lý chỉ thị -directive.manage.empty=Chưa có chỉ thị. Hãy tạo mới! +directive.manage.empty=Chưa có chỉ thị. Hãy tạo mới\! directive.edit.name.label=Tên directive.edit.name.placeholder=Nhập tên chỉ thị... directive.edit.content.label=Nội dung directive.edit.content.placeholder=Nhập hướng dẫn... directive.edit.name.required=Yêu cầu tên directive.edit.content.required=Yêu cầu nội dung -directive.created=Tạo lúc: {0} +directive.created=Tạo lúc\: {0} directive.new.title=Chỉ thị mới directive.new.guidelines=Chỉ thị hướng dẫn cách AI phản hồi tin nhắn của bạn. Hãy cụ thể về giọng điệu, mức độ chi tiết, định dạng hoặc bất kỳ yêu cầu đặc biệt nào bạn cần. directive.new.name.placeholder=v.d., concise-code, explain-like-im-5 @@ -862,8 +885,10 @@ directive.export.tooltip=Xuất tất cả các chỉ thị ra tệp JSON để directive.export.filename=askimo-directives directive.import=Nhập directive.import.tooltip=Nhập chỉ thị từ tệp JSON -directive.import.result=Nhập hoàn tất: {0} đã nhập, {1} đã đổi tên, {2} đã bỏ qua -directive.import.error=Nhập thất bại: định dạng tệp không hợp lệ hoặc không được hỗ trợ +directive.import.result=Nhập hoàn tất\: {0} đã nhập, {1} đã đổi tên, {2} đã bỏ qua +directive.import.error=Nhập thất bại\: định dạng tệp không hợp lệ hoặc không được hỗ trợ +directive.default.set=Đặt làm chỉ thị mặc định +directive.default.unset=Bỏ đặt làm chỉ thị mặc định # Log Levels log.level.error=Lỗi @@ -919,7 +944,7 @@ message.edited.indicator=(đã chỉnh sửa) message.date.today=Hôm nay message.date.yesterday=Hôm qua message.token.usage={0} token · {1} vào / {2} ra -message.token.usage.tooltip=Số token được sử dụng bởi phản hồi này.\nĐầu vào: prompt của bạn + ngữ cảnh được gửi đến AI.\nĐầu ra: phản hồi do AI tạo ra. +message.token.usage.tooltip=Số token được sử dụng bởi phản hồi này.\nĐầu vào\: prompt của bạn + ngữ cảnh được gửi đến AI.\nĐầu ra\: phản hồi do AI tạo ra. # Bookmarks chat.bookmarks.button.tooltip=Dấu trang @@ -956,10 +981,6 @@ provider.picker.description.openai=Các mô hình AI đám mây từ OpenAI. Yê provider.picker.description.anthropic=Các mô hình AI đám mây từ Anthropic. Yêu cầu khóa API. Đăng ký tại console.anthropic.com, tạo khóa API và thêm tín dụng vào tài khoản trước khi kết nối. provider.picker.description.gemini=Các mô hình AI đám mây từ Google. Đăng ký tại aistudio.google.com và tạo khóa API miễn phí. Không yêu cầu thẻ tín dụng cho gói miễn phí. provider.picker.description.xai=Các mô hình AI đám mây từ xAI. Yêu cầu khóa API. Đăng ký tại console.x.ai, tạo khóa API và thêm tín dụng vào tài khoản trước khi kết nối. -provider.picker.description.ollama=Chạy các mô hình mã nguồn mở cục bộ. Không cần khóa API. Tải Ollama từ ollama.com, sau đó tải một mô hình (ví dụ: ollama pull llama3) trước khi kết nối. -provider.picker.description.docker=Chạy các mô hình qua trình chạy mô hình AI tích hợp sẵn của Docker Desktop. Không cần khóa API. Yêu cầu Docker Desktop 4.40+ với tính năng Model Runner được bật. -provider.picker.description.localai=Máy chủ AI cục bộ tự lưu trữ, tương thích với OpenAI. Không cần khóa API. Cài đặt LocalAI, tải xuống một mô hình và khởi động máy chủ trước khi kết nối. -provider.picker.description.lmstudio=Chạy các LLM cục bộ với giao diện máy tính để bàn dễ sử dụng. Không cần khóa API. Tải LM Studio từ lmstudio.ai, tải một mô hình, nạp nó và bật máy chủ cục bộ trước khi kết nối. provider.manage.title=Quản lý nhà cung cấp provider.type.picker.title=Thêm nhà cung cấp AI provider.type.picker.select.hint=← Chọn một nhà cung cấp từ danh sách để xem chi tiết @@ -970,19 +991,30 @@ provider.template.get.apikey=Lấy khóa API → # OpenAI-Compatible template taglines and setup help (see OpenAiCompatibleTemplate.kt) provider.template.cloudflare_ai.tagline=Chạy các mô hình AI trên mạng biên toàn cầu của Cloudflare với Workers AI. -provider.template.cloudflare_ai.help=💡 Để dùng Cloudflare AI:\n\n1. Tìm Account ID trong bảng điều khiển Cloudflare của bạn\n2. Thay {ACCOUNT_ID} trong URL cơ sở bằng ID đó\n3. Tạo API token với quyền 'Workers AI' tại:\n dash.cloudflare.com/profile/api-tokens +provider.template.cloudflare_ai.help=💡 Để dùng Cloudflare AI\:\n\n1. Tìm Account ID trong bảng điều khiển Cloudflare của bạn\n2. Thay {ACCOUNT_ID} trong URL cơ sở bằng ID đó\n3. Tạo API token với quyền ''Workers AI'' tại\:\n dash.cloudflare.com/profile/api-tokens +provider.template.deepseek.tagline=Các mô hình suy luận và đa mục đích với API đơn giản tương thích với OpenAI. +provider.template.deepseek.help=💡 Để sử dụng DeepSeek\:\n\n1. Tạo khóa API tại\: platform.deepseek.com/api_keys\n2. Thêm số dư vào tài khoản DeepSeek của bạn nếu cần\n3. Nhấp vào Tiếp theo để duyệt qua các mô hình khả dụng provider.template.groq.tagline=Suy luận siêu nhanh cho các mô hình mã nguồn mở — Llama, Mixtral, Gemma và nhiều hơn nữa. -provider.template.groq.help=💡 Để dùng Groq:\n\n1. Lấy API key miễn phí tại: console.groq.com/keys\n2. Nhập tên mô hình, ví dụ: llama-3.1-8b-instant\n3. Nhấp Tiếp theo để duyệt tất cả mô hình có sẵn +provider.template.groq.help=💡 Để dùng Groq\:\n\n1. Lấy API key miễn phí tại\: console.groq.com/keys\n2. Nhập tên mô hình, ví dụ\: llama-3.1-8b-instant\n3. Nhấp Tiếp theo để duyệt tất cả mô hình có sẵn provider.template.nvidia_nim.tagline=Chạy các mô hình AI được tối ưu hóa trên hạ tầng GPU đám mây của NVIDIA. -provider.template.nvidia_nim.help=💡 Để dùng NVIDIA NIM:\n\n1. Lấy API key tại: build.nvidia.com\n2. Nhập tên mô hình, ví dụ: meta/llama-3.1-8b-instruct\n3. Nhấp Tiếp theo để duyệt tất cả mô hình có sẵn +provider.template.nvidia_nim.help=💡 Để dùng NVIDIA NIM\:\n\n1. Lấy API key tại\: build.nvidia.com\n2. Nhập tên mô hình, ví dụ\: meta/llama-3.1-8b-instruct\n3. Nhấp Tiếp theo để duyệt tất cả mô hình có sẵn provider.template.openrouter.tagline=Truy cập hơn 300 mô hình — GPT, Claude, Llama, Gemini, Mistral và nhiều hơn nữa qua một API. -provider.template.openrouter.help=💡 Để dùng OpenRouter:\n\n1. Lấy API key miễn phí tại: openrouter.ai/keys\n2. Nhấp Tiếp theo để duyệt hơn 300 mô hình có sẵn\n3. Nhiều mô hình có gói miễn phí — không cần thẻ tín dụng +provider.template.openrouter.help=💡 Để dùng OpenRouter\:\n\n1. Lấy API key miễn phí tại\: openrouter.ai/keys\n2. Nhấp Tiếp theo để duyệt hơn 300 mô hình có sẵn\n3. Nhiều mô hình có gói miễn phí — không cần thẻ tín dụng provider.template.together_ai.tagline=Suy luận nhanh, giá cả phải chăng cho hơn 100 mô hình mã nguồn mở. -provider.template.together_ai.help=💡 Để dùng Together AI:\n\n1. Lấy API key tại: api.together.ai/settings/api-keys\n2. Nhấp Tiếp theo để duyệt các mô hình có sẵn,\n ví dụ: meta-llama/Llama-3-8b-chat-hf +provider.template.together_ai.help=💡 Để dùng Together AI\:\n\n1. Lấy API key tại\: api.together.ai/settings/api-keys\n2. Nhấp Tiếp theo để duyệt các mô hình có sẵn,\n ví dụ\: meta-llama/Llama-3-8b-chat-hf provider.template.lite_llm.tagline=A unified proxy that lets you call 100+ LLMs using the OpenAI format. provider.search.placeholder=Search providers... provider.search.no_results=No providers found -provider.template.lite_llm.help=💡 To use LiteLLM:\n\n1. Start the LiteLLM proxy: litellm --model ollama/llama3\n2. The default URL is http://localhost:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lite_llm.help=💡 To use LiteLLM\:\n\n1. Start the LiteLLM proxy\: litellm --model ollama/llama3\n2. The default URL is http\://localhost\:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lmstudio.tagline=Chạy các mô hình ngôn ngữ lớn (LLM) cục bộ với giao diện desktop dễ sử dụng. Không cần khóa API. Tải xuống LM Studio từ lmstudio.ai và bật máy chủ cục bộ. +provider.template.lmstudio.help=💡 Cách sử dụng LM Studio\:\n\n1. Cài đặt LM Studio từ\: https\://lmstudio.ai/\n2. Tải một mô hình và khởi động máy chủ cục bộ (tab Developer)\n3. Tùy chọn thay đổi URL cơ sở nếu không sử dụng cổng mặc định 1234 +provider.template.docker_ai.tagline=Chạy các mô hình AI thông qua trình chạy mô hình tích hợp sẵn của Docker Desktop. Không cần khóa API. Yêu cầu Docker Desktop 4.40+ đã bật tính năng Model Runner. +provider.template.docker_ai.help=💡 Cách sử dụng Docker AI\:\n\n1. Đảm bảo Docker Desktop 4.40+ đã được cài đặt và đang chạy\n2. Bật tính năng Model Runner trong cài đặt Docker Desktop\n3. Tải một mô hình, ví dụ\: docker model pull ai/qwen3-embedding\:0.6B-F16\n4. URL cơ sở mặc định là http\://localhost\:12434/v1 +provider.template.localai.tagline=Máy chủ AI cục bộ tương thích với OpenAI, tự lưu trữ. Không cần khóa API. Cài đặt LocalAI, tải một mô hình và khởi động máy chủ trước khi kết nối. +provider.template.localai.help=💡 Cách sử dụng LocalAI\:\n\n1. Cài đặt LocalAI từ\: https\://localai.io/\n2. Tải một mô hình và khởi động máy chủ\n3. URL cơ sở mặc định là http\://localhost\:8080/v1 +provider.template.ollama.tagline=Chạy các mô hình mã nguồn mở cục bộ. Không cần khóa API. Tải xuống Ollama từ ollama.com, sau đó tải một mô hình (ví dụ\: ollama pull llama3) trước khi kết nối. +provider.template.ollama.help=💡 Cách sử dụng Ollama\:\n\n1. Cài đặt Ollama từ\: https\://ollama.com/\n2. Tải một mô hình\: ollama pull llama3\n3. URL cơ sở mặc định là http\://localhost\:11434/v1 + provider.configure.new.title=Configure {0} provider.edit.title=Edit "{0}" @@ -992,14 +1024,14 @@ provider.model.panel.select.hint=Chọn nhà cung cấp ở bên trái để duy provider.model.panel.model.count={0} mô hình provider.model.default.badge=Mặc định provider.instance.name.label=Tên phiên bản -provider.instance.name.placeholder=Ví dụ: "Work OpenAI", "ollama-macbook" +provider.instance.name.placeholder=Ví dụ\: "Work OpenAI", "ollama-macbook" provider.instance.name.duplicate=Nhà cung cấp có tên "{0}" đã tồn tại provider.setup.required.title=Thiết lập nhà cung cấp AI provider.setup.required.message=Trước khi có thể bắt đầu trò chuyện, bạn cần thiết lập một nhà cung cấp AI. Vui lòng chọn một nhà cung cấp từ danh sách và cấu hình nó. provider.setup.required.button=Thiết lập nhà cung cấp provider.setup.required.skip=Thiết lập sau provider.setup.empty.state.button=Thêm nhà cung cấp -provider.configure.prompt=Cấu hình nhà cung cấp: +provider.configure.prompt=Cấu hình nhà cung cấp\: provider.setup.guide=Cách thiết lập {0} provider.apikey.stored=Khóa API được lưu trữ an toàn provider.apikey.enter=Nhập khóa API @@ -1008,14 +1040,14 @@ provider.apikey.security.link=Tìm hiểu cách chúng tôi bảo vệ dữ li provider.not.set=Chưa thiết lập # Provider Configuration - OpenAI -provider.openai.apikey.description=API key OpenAI từ https://platform.openai.com/account/api-keys +provider.openai.apikey.description=API key OpenAI từ https\://platform.openai.com/account/api-keys provider.openai.apikey.stored=API key đã lưu. Để trống để giữ nguyên hoặc nhập key mới để cập nhật. -provider.openai.setup.help=💡 Để sử dụng OpenAI, bạn cần API key.\n\n1. Lấy key từ: https://platform.openai.com/account/api-keys\n2. Thiết lập trong Cài đặt hoặc dùng :change-settings\n\nLấy key tại: https://platform.openai.com/api-keys +provider.openai.setup.help=💡 Để sử dụng OpenAI, bạn cần API key.\n\n1. Lấy key từ\: https\://platform.openai.com/account/api-keys\n2. Thiết lập trong Cài đặt hoặc dùng \:change-settings\n\nLấy key tại\: https\://platform.openai.com/api-keys # Provider Configuration - Anthropic -provider.anthropic.apikey.description=API key Anthropic từ https://console.anthropic.com/ +provider.anthropic.apikey.description=API key Anthropic từ https\://console.anthropic.com/ provider.anthropic.apikey.stored=API key đã lưu. Để trống để giữ nguyên hoặc nhập mới để cập nhật. -provider.anthropic.setup.help=💡 Để sử dụng Anthropic, bạn cần API key.\n\n1. Lấy từ https://console.anthropic.com/\n2. Thiết lập trong Cài đặt hoặc dùng :change-settings +provider.anthropic.setup.help=💡 Để sử dụng Anthropic, bạn cần API key.\n\n1. Lấy từ https\://console.anthropic.com/\n2. Thiết lập trong Cài đặt hoặc dùng \:change-settings provider.anthropic.max_tokens.label=Số Token Tối đa provider.anthropic.max_tokens.description=Số lượng token tối đa mà mô hình có thể tạo cho mỗi phản hồi (suy nghĩ + câu trả lời được kết hợp). provider.anthropic.thinking_budget_tokens.label=Token Ngân sách Suy nghĩ @@ -1024,31 +1056,17 @@ provider.anthropic.thinking_max_tokens.label=Token Tối đa cho Suy nghĩ provider.anthropic.thinking_max_tokens.description=Giới hạn token tổng khi tính năng suy nghĩ đang hoạt động (suy nghĩ + câu trả lời). Đặt là 0 để sử dụng Số Token Tối đa thay thế. # Provider Configuration - Gemini -provider.gemini.apikey.description=API key Google AI Studio từ https://aistudio.google.com/app/apikey +provider.gemini.apikey.description=API key Google AI Studio từ https\://aistudio.google.com/app/apikey provider.gemini.apikey.stored=API key đã lưu.Để trống để giữ nguyên hoặc nhập mới. -provider.gemini.setup.help=💡 Để sử dụng Gemini, bạn cần API key.\n\n1. Lấy key tại https://aistudio.google.com/app/apikey\n2. Thiết lập trong Cài đặt hoặc dùng :change-settings +provider.gemini.setup.help=💡 Để sử dụng Gemini, bạn cần API key.\n\n1. Lấy key tại https\://aistudio.google.com/app/apikey\n2. Thiết lập trong Cài đặt hoặc dùng \:change-settings # Provider Configuration - XAI -provider.xai.apikey.description=API key XAI từ https://console.x.ai/ +provider.xai.apikey.description=API key XAI từ https\://console.x.ai/ provider.xai.apikey.stored=API key đã lưu. -provider.xai.setup.help=💡 Để dùng XAI, bạn cần API key.\n\n1. Lấy tại https://console.x.ai/\n2. Thiết lập trong Cài đặt hoặc dùng :change-settings - -# Provider Configuration - Ollama -provider.ollama.baseurl.description=Base URL cho Ollama (mặc định http://localhost:11434) -provider.ollama.setup.help=💡 Để dùng Ollama, bạn cần chạy nó cục bộ.\n\n1. Cài từ https://ollama.ai/\n2. Chạy dịch vụ Ollama\n3. Tùy chọn thay đổi base URL +provider.xai.setup.help=💡 Để dùng XAI, bạn cần API key.\n\n1. Lấy tại https\://console.x.ai/\n2. Thiết lập trong Cài đặt hoặc dùng \:change-settings -# Provider Configuration - Docker AI -provider.docker.baseurl.description=Base URL cho Docker AI (mặc định http://localhost:12434) -provider.docker.setup.help=💡 Để dùng Docker AI, bạn cần chạy nó cục bộ.\n\n1. Đảm bảo Docker AI đã cài và chạy\n2. Chạy dịch vụ Docker AI\n3. Tùy chọn thay đổi base URL -# Provider Configuration - LocalAI -provider.localai.baseurl.description=Base URL cho LocalAI -provider.localai.setup.help=💡 Để dùng LocalAI, cần chạy LocalAI.\n\n1. Cài và chạy LocalAI\n2. Thiết lập base URL tương ứng -# Provider Configuration - LMStudio -provider.lmstudio.baseurl.description=Base URL LMStudio (mặc định http://localhost:1234) -provider.lmstudio.setup.help=💡 Để dùng LMStudio:\n\n1. Cài từ https://lmstudio.ai/\n2. Chạy server cục bộ\n3. Tùy chọn thay đổi base URL -provider.lmstudio.openai.compat.info=Askimo sử dụng các endpoint tương thích OpenAI (/v1), không phải API LMStudio gốc (/api/v1/). # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=URL cơ sở cho phiên bản tương thích OpenAI của bạn @@ -1066,7 +1084,7 @@ provider.openai_compatible.httpversion.http2=Nhanh hơn cho các điểm cuối # System Resources system.share.feedback=Chia sẻ phản hồi -system.ai.provider.tooltip=Nhà cung cấp AI: {0}\nNhấn để cấu hình +system.ai.provider.tooltip=Nhà cung cấp AI\: {0}\nNhấn để cấu hình system.diagnostics.title=Chẩn đoán hệ thống system.diagnostics.resources=Tài nguyên system.diagnostics.jvm.memory=Bộ nhớ JVM (đã dùng / tổng) @@ -1077,7 +1095,7 @@ system.diagnostics.telemetry=Đo từ xa telemetry.export.csv=Xuất CSV telemetry.export.dialog.title=Xuất Dữ Liệu Đo Lường thành ZIP telemetry.export.error.title=Xuất Thất Bại -telemetry.export.error.message=Không thể xuất dữ liệu đo lường: {0} +telemetry.export.error.message=Không thể xuất dữ liệu đo lường\: {0} # Telemetry telemetry.reset=Đặt lại dữ liệu telemetry @@ -1127,24 +1145,20 @@ export.format.html.benefit.3=Giao diện chuyên nghiệp export.format.html.benefit.4=Dễ chia sẻ # Error Messages -error.network=⚠️ Không thể kết nối tới dịch vụ AI{endpoint}\n\nVui lòng kiểm tra:\n• Kết nối internet của bạn\n• URL dịch vụ AI (kiểm tra cài đặt)\n• Cấu hình tường lửa\n• Trạng thái hoạt động của dịch vụ +error.network=⚠️ Không thể kết nối tới dịch vụ AI{endpoint}\n\nVui lòng kiểm tra\:\n• Kết nối internet của bạn\n• URL dịch vụ AI (kiểm tra cài đặt)\n• Cấu hình tường lửa\n• Trạng thái hoạt động của dịch vụ error.authentication=⚠️ API key bị thiếu hoặc không hợp lệ{provider}\n\nHãy vào Cài đặt để thiết lập API key của bạn. -error.model_not_found=⚠️ Không tìm thấy mô hình: {model}\n\nMô hình này có thể đã bị ngừng sử dụng hoặc xóa bởi nhà cung cấp. Vui lòng chọn mô hình khác. -error.provider_not_configured=⚠️ Chưa cấu hình nhà cung cấp AI.\n\nĐể bắt đầu trò chuyện:\n1. Mở Cài đặt\n2. Chọn nhà cung cấp AI (OpenAI, Ollama, Anthropic, v.v.)\n3. Nhập API key hoặc cấu hình kết nối +error.model_not_found=⚠️ Không tìm thấy mô hình\: {model}\n\nMô hình này có thể đã bị ngừng sử dụng hoặc xóa bởi nhà cung cấp. Vui lòng chọn mô hình khác. +error.provider_not_configured=⚠️ Chưa cấu hình nhà cung cấp AI.\n\nĐể bắt đầu trò chuyện\:\n1. Mở Cài đặt\n2. Chọn nhà cung cấp AI (OpenAI, Ollama, Anthropic, v.v.)\n3. Nhập API key hoặc cấu hình kết nối error.rate_limit=⚠️ Đã vượt giới hạn tốc độ\n{retryAfter}\n\nBạn đã đạt giới hạn sử dụng API. Vui lòng chờ một chút trước khi gửi thêm tin nhắn. error.insufficient_credits=⚠️ Không đủ tín dụng\n\nSố dư tín dụng quá thấp.\n\nVui lòng truy cập trang thanh toán để thêm tín dụng. -error.timeout=⚠️ Yêu cầu đã hết thời gian chờ sau {timeout} giây\n\nNguyên nhân có thể do:\n• Máy chủ đang quá tải - hãy thử lại sau ít phút\n• Truy vấn quá phức tạp - hãy thử đơn giản hóa\n• Độ trễ mạng -error.context_length=⚠️ Đã vượt quá cửa sổ ngữ cảnh (context window)\n\nTổng dữ liệu đầu vào (lịch sử trò chuyện + tin nhắn của bạn + tệp đính kèm) quá lớn để mô hình này có thể xử lý.\n\nĐể khắc phục:\n• Bắt đầu một phiên trò chuyện mới để xóa lịch sử trò chuyện\n• Rút ngắn tin nhắn hoặc xóa các tệp đính kèm lớn\n• Nếu bạn đang sử dụng mô hình cục bộ (Ollama / LM Studio / Docker), hãy tăng kích thước ngữ cảnh trong phần cài đặt của mô hình đó\n• Chuyển sang mô hình có cửa sổ ngữ cảnh lớn hơn -error.invalid_request=⚠️ Yêu cầu không hợp lệ: {details}\n\nVui lòng kiểm tra nội dung nhập và thử lại. -error.local_server=⚠️ Lỗi máy chủ AI cục bộ!\n\nTiến trình máy chủ AI đã bị sập hoặc không thể tải mô hình. Đây không phải lỗi do Askimo gây ra.\n\nNguyên nhân có thể:\n• Tệp mô hình bị hỏng hoặc không đầy đủ — thử tải lại\n• Không đủ RAM/VRAM — thử lượng tử hóa nhỏ hơn (ví dụ: Q4 thay vì Q8)\n• Định dạng mô hình không được hỗ trợ bởi phiên bản máy chủ hiện tại\n• Tiến trình máy chủ bị hệ điều hành kết thúc (hết bộ nhớ)\n\nCách xử lý:\n1. Kiểm tra nhật ký máy chủ AI cục bộ của bạn\n2. Khởi động lại máy chủ và thử lại\n3. Tải lại mô hình\n4. Thử mô hình khác hoặc mức lượng tử hóa khác\n\nChi tiết kỹ thuật: {details} -error.empty_http_response=⚠️ Máy chủ đã đóng kết nối mà không phản hồi!\n\nMô hình: {0}\n\nĐiều này thường xảy ra khi nhà cung cấp AI cục bộ âm thầm loại bỏ yêu cầu thay vì trả về lỗi. Cửa sổ ngữ cảnh (context window) của mô hình quá nhỏ so với yêu cầu hiện tại.\n\nNguyên nhân phổ biến:\n• Lịch sử hội thoại đã trở nên quá dài qua nhiều lượt\n• Các công cụ được kích hoạt thêm dữ liệu vào mỗi yêu cầu — ngay cả một câu hỏi ngắn với nhiều công cụ đang hoạt động cũng có thể vượt quá giới hạn\n• Các tệp đính kèm lớn hoặc đoạn mã đã đẩy yêu cầu vượt quá giới hạn\n\n{1}\n\nCác cách khác để thử:\n• Bắt đầu một cuộc trò chuyện mới để đặt lại ngữ cảnh\n• Tắt các công cụ không cần thiết cho tác vụ này\n• Giảm kích thước tin nhắn hoặc tệp đính kèm của bạn -error.empty_http_response.hint.docker=Để tăng cửa sổ ngữ cảnh trong Docker AI / Docker Model Runner:\n• Truyền --context-size khi khởi chạy mô hình (ví dụ: --context-size 32768)\n• Hoặc đặt nó trong cấu hình chạy của mô hình -error.empty_http_response.hint.ollama=Để tăng cửa sổ ngữ cảnh trong Ollama:\n• Đặt num_ctx trong Modelfile của bạn (ví dụ: PARAMETER num_ctx 32768)\n• Hoặc truyền nó dưới dạng tham số: ollama run --num-ctx 32768 -error.empty_http_response.hint.lmstudio=Để tăng cửa sổ ngữ cảnh trong LM Studio:\n• Mở bảng cài đặt mô hình\n• Tìm "Context Length" và tăng giá trị (ví dụ: lên 32768 hoặc cao hơn, tối đa theo giới hạn của mô hình)\n• Khởi động lại máy chủ cục bộ sau khi thay đổi cài đặt -error.empty_http_response.hint.localai=Để tăng cửa sổ ngữ cảnh trong LocalAI:\n• Chỉnh sửa tệp YAML cấu hình mô hình và đặt context_size: 32768\n• Khởi động lại máy chủ LocalAI sau khi thay đổi cài đặt -error.empty_http_response.hint.generic=Để tăng cửa sổ ngữ cảnh:\n• Kiểm tra cài đặt của nhà cung cấp để tìm tùy chọn độ dài/kích thước ngữ cảnh và tăng nó lên (ví dụ: 32768 token)\n• Khởi động lại nhà cung cấp sau khi thay đổi cài đặt -error.remote_server=⚠️ Lỗi máy chủ nhà cung cấp AI\n\nMáy chủ của nhà cung cấp trả về lỗi tạm thời (ví dụ: quá tải hoặc không khả dụng). Đây không phải lỗi do Askimo gây ra.\n\nCách xử lý:\n• Chờ một lúc rồi thử lại — thường chỉ là vấn đề tạm thời\n• Kiểm tra trang trạng thái của nhà cung cấp nếu vấn đề tiếp diễn\n\nChi tiết kỹ thuật: {details} -error.system=⚠️ Lỗi hệ thống\n\nĐã xảy ra lỗi không mong muốn: {errorCode}\n\nVui lòng liên hệ hỗ trợ Askimo và cung cấp:\n• Bạn đang làm gì\n• Mã lỗi ở trên\n• Thời điểm xảy ra lỗi +error.timeout=⚠️ Yêu cầu đã hết thời gian chờ sau {timeout} giây\n\nNguyên nhân có thể do\:\n• Máy chủ đang quá tải - hãy thử lại sau ít phút\n• Truy vấn quá phức tạp - hãy thử đơn giản hóa\n• Độ trễ mạng +error.context_length=⚠️ Đã vượt quá cửa sổ ngữ cảnh (context window)\n\nTổng dữ liệu đầu vào (lịch sử trò chuyện + tin nhắn của bạn + tệp đính kèm) quá lớn để mô hình này có thể xử lý.\n\nĐể khắc phục\:\n• Bắt đầu một phiên trò chuyện mới để xóa lịch sử trò chuyện\n• Rút ngắn tin nhắn hoặc xóa các tệp đính kèm lớn\n• Nếu bạn đang sử dụng mô hình cục bộ (Ollama / LM Studio / Docker), hãy tăng kích thước ngữ cảnh trong phần cài đặt của mô hình đó\n• Chuyển sang mô hình có cửa sổ ngữ cảnh lớn hơn +error.invalid_request=⚠️ Yêu cầu không hợp lệ\: {details}\n\nVui lòng kiểm tra nội dung nhập và thử lại. +error.local_server=⚠️ Lỗi máy chủ AI cục bộ\!\n\nTiến trình máy chủ AI đã bị sập hoặc không thể tải mô hình. Đây không phải lỗi do Askimo gây ra.\n\nNguyên nhân có thể\:\n• Tệp mô hình bị hỏng hoặc không đầy đủ — thử tải lại\n• Không đủ RAM/VRAM — thử lượng tử hóa nhỏ hơn (ví dụ\: Q4 thay vì Q8)\n• Định dạng mô hình không được hỗ trợ bởi phiên bản máy chủ hiện tại\n• Tiến trình máy chủ bị hệ điều hành kết thúc (hết bộ nhớ)\n\nCách xử lý\:\n1. Kiểm tra nhật ký máy chủ AI cục bộ của bạn\n2. Khởi động lại máy chủ và thử lại\n3. Tải lại mô hình\n4. Thử mô hình khác hoặc mức lượng tử hóa khác\n\nChi tiết kỹ thuật\: {details} +error.empty_http_response=⚠️ Máy chủ đã đóng kết nối mà không phản hồi\!\n\nMô hình\: {0}\n\nĐiều này thường xảy ra khi nhà cung cấp AI cục bộ âm thầm loại bỏ yêu cầu thay vì trả về lỗi. Cửa sổ ngữ cảnh (context window) của mô hình quá nhỏ so với yêu cầu hiện tại.\n\nNguyên nhân phổ biến\:\n• Lịch sử hội thoại đã trở nên quá dài qua nhiều lượt\n• Các công cụ được kích hoạt thêm dữ liệu vào mỗi yêu cầu — ngay cả một câu hỏi ngắn với nhiều công cụ đang hoạt động cũng có thể vượt quá giới hạn\n• Các tệp đính kèm lớn hoặc đoạn mã đã đẩy yêu cầu vượt quá giới hạn\n\n{1}\n\nCác cách khác để thử\:\n• Bắt đầu một cuộc trò chuyện mới để đặt lại ngữ cảnh\n• Tắt các công cụ không cần thiết cho tác vụ này\n• Giảm kích thước tin nhắn hoặc tệp đính kèm của bạn +error.empty_http_response.hint.generic=Để tăng cửa sổ ngữ cảnh\:\n• Kiểm tra cài đặt của nhà cung cấp để tìm tùy chọn độ dài/kích thước ngữ cảnh và tăng nó lên (ví dụ\: 32768 token)\n• Khởi động lại nhà cung cấp sau khi thay đổi cài đặt +error.remote_server=⚠️ Lỗi máy chủ nhà cung cấp AI\n\nMáy chủ của nhà cung cấp trả về lỗi tạm thời (ví dụ\: quá tải hoặc không khả dụng). Đây không phải lỗi do Askimo gây ra.\n\nCách xử lý\:\n• Chờ một lúc rồi thử lại — thường chỉ là vấn đề tạm thời\n• Kiểm tra trang trạng thái của nhà cung cấp nếu vấn đề tiếp diễn\n\nChi tiết kỹ thuật\: {details} +error.system=⚠️ Lỗi hệ thống\n\nĐã xảy ra lỗi không mong muốn\: {errorCode}\n\nVui lòng liên hệ hỗ trợ Askimo và cung cấp\:\n• Bạn đang làm gì\n• Mã lỗi ở trên\n• Thời điểm xảy ra lỗi # Model Availability Errors error.model.not_available.title.chat=Không khả dụng mô hình @@ -1152,10 +1166,11 @@ error.model.not_available.title.embedding=Không khả dụng mô hình embeddin error.model.not_available.message.chat=Mô hình ''{0}'' không khả dụng. error.model.not_available.message.embedding=Mô hình embedding ''{0}'' không khả dụng trong nhà cung cấp cục bộ của bạn.\n\nHãy vào Cài đặt → Nhà cung cấp AI và chọn một mô hình embedding khả dụng trong thẻ cấu hình nhà cung cấp. error.model.not_available.config_link=Cấu hình mô hình embedding -error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration +error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration +error.embedding_model_not_configured=⚠️ Chưa cấu hình mô hình embedding cho ''{provider}''.\n\nHãy vào Cài đặt → Nhà cung cấp AI và chọn một mô hình embedding trong thẻ cấu hình nhà cung cấp. # Generic Application Errors -error.app.message=Đã xảy ra lỗi không mong muốn: {0} +error.app.message=Đã xảy ra lỗi không mong muốn\: {0} # Send Message Errors error.send_message.title=Gửi tin nhắn thất bại @@ -1170,37 +1185,39 @@ error.indexing.io_error.title=Lỗi IO error.indexing.io_error.message=Đã xảy ra lỗi IO trong quá trình lập chỉ mục error.indexing.unknown.title=Lỗi lập chỉ mục error.indexing.unknown.message=Đã xảy ra lỗi không xác định trong quá trình lập chỉ mục +error.indexing.failed.title=Lập chỉ mục nguồn kiến thức thất bại +error.indexing.failed_project.title=Lập chỉ mục nguồn kiến thức cho dự án thất bại # RAG Configuration settings.rag.title=Cấu hình RAG settings.rag.description=Cấu hình các tham số Retrieval-Augmented Generation cho truy xuất tri thức theo dự án settings.rag.vector.max.results=Số kết quả tìm kiếm vector tối đa -settings.rag.vector.max.results.hint=Số lượng tài liệu tối đa từ tìm kiếm vector (mặc định: 20) +settings.rag.vector.max.results.hint=Số lượng tài liệu tối đa từ tìm kiếm vector (mặc định\: 20) settings.rag.vector.min.score=Điểm tối thiểu của tìm kiếm vector -settings.rag.vector.min.score.hint=Điểm tương đồng tối thiểu 0.0–1.0 (mặc định: 0.3) +settings.rag.vector.min.score.hint=Điểm tương đồng tối thiểu 0.0–1.0 (mặc định\: 0.3) settings.rag.hybrid.max.results=Số kết quả hybrid tối đa -settings.rag.hybrid.max.results.hint=Số lượng tài liệu cuối cùng sau khi hợp nhất (mặc định: 15) +settings.rag.hybrid.max.results.hint=Số lượng tài liệu cuối cùng sau khi hợp nhất (mặc định\: 15) settings.rag.rank.fusion.constant=Hằng số hợp nhất xếp hạng -settings.rag.rank.fusion.constant.hint=Hằng số RRF cho xếp hạng hybrid (mặc định: 60) +settings.rag.rank.fusion.constant.hint=Hằng số RRF cho xếp hạng hybrid (mặc định\: 60) settings.rag.use.absolute.paths=Sử dụng đường dẫn tuyệt đối trong trích dẫn settings.rag.use.absolute.paths.hint=Hiển thị đường dẫn đầy đủ của tệp trong câu trả lời của AI để rõ ràng hơn khi có nhiều tệp trùng tên settings.rag.embedding.title=Cấu hình embedding settings.rag.embedding.description=Cấu hình các tham số chia đoạn văn bản và embedding settings.rag.embedding.max.chars.per.chunk=Số ký tự tối đa mỗi đoạn -settings.rag.embedding.max.chars.per.chunk.hint=Số ký tự tối đa trong mỗi đoạn văn bản (mặc định: 1500) +settings.rag.embedding.max.chars.per.chunk.hint=Số ký tự tối đa trong mỗi đoạn văn bản (mặc định\: 1500) settings.rag.embedding.chunk.overlap=Chồng lấp đoạn -settings.rag.embedding.chunk.overlap.hint=Số ký tự chồng lấp giữa các đoạn (mặc định: 100) +settings.rag.embedding.chunk.overlap.hint=Số ký tự chồng lấp giữa các đoạn (mặc định\: 100) settings.rag.embedding.models=Mô hình embedding theo nhà cung cấp settings.rag.indexing.title=Cấu hình lập chỉ mục settings.rag.indexing.description=Kiểm soát những tệp nào được lập chỉ mục và kích thước tệp tối đa được phép settings.rag.indexing.max.file.bytes=Kích thước tệp tối đa (byte) settings.rag.indexing.max.file.bytes.hint=Các tệp lớn hơn giá trị này sẽ bị bỏ qua trong quá trình lập chỉ mục. Đặt giá trị quá cao có thể làm chậm quá trình lập chỉ mục đáng kể. settings.rag.indexing.supported.extensions=Phần mở rộng được hỗ trợ -settings.rag.indexing.supported.extensions.hint=Phần mở rộng tệp cách nhau bằng dấu phẩy để lập chỉ mục (vd: kt, java, py, md). Để trống để dùng mặc định tích hợp sẵn. +settings.rag.indexing.supported.extensions.hint=Phần mở rộng tệp cách nhau bằng dấu phẩy để lập chỉ mục (vd\: kt, java, py, md). Để trống để dùng mặc định tích hợp sẵn. settings.rag.indexing.exclude.file.names=Tên tệp bị loại trừ -settings.rag.indexing.exclude.file.names.hint=Tên tệp chính xác cách nhau bằng dấu phẩy luôn bị bỏ qua (vd: package-lock.json, yarn.lock). +settings.rag.indexing.exclude.file.names.hint=Tên tệp chính xác cách nhau bằng dấu phẩy luôn bị bỏ qua (vd\: package-lock.json, yarn.lock). settings.rag.indexing.binary.extensions=Phần mở rộng nhị phân -settings.rag.indexing.binary.extensions.hint=Phần mở rộng tệp cách nhau bằng dấu phẩy được coi là nhị phân và bỏ qua khi lập chỉ mục (vd: png, jpg, zip, exe). Để trống để dùng mặc định tích hợp sẵn. +settings.rag.indexing.binary.extensions.hint=Phần mở rộng tệp cách nhau bằng dấu phẩy được coi là nhị phân và bỏ qua khi lập chỉ mục (vd\: png, jpg, zip, exe). Để trống để dùng mặc định tích hợp sẵn. settings.rag.indexing.embedding.batch.size=Kích thước lô nhúng settings.rag.indexing.embedding.batch.size.hint=Số đoạn văn bản gửi đến mô hình nhúng mỗi yêu cầu. Nếu lập chỉ mục chậm và bạn dùng nhà cung cấp từ xa (OpenAI, Gemini), hãy thử tăng lên 100–500. Nếu dùng mô hình cục bộ (Ollama, LM Studio), hãy giữ thấp để tránh hết thời gian chờ. @@ -1208,7 +1225,7 @@ settings.rag.indexing.embedding.batch.size.hint=Số đoạn văn bản gửi đ settings.models.title=Mô hình settings.models.description=Cấu hình hành vi mô hình AI toàn cục được chia sẻ trên tất cả các nhà cung cấp. settings.models.max.tool.calling.round.trips=Số lượt gọi công cụ tối đa -settings.models.max.tool.calling.round.trips.hint=Số lần gọi công cụ tối đa mà AI có thể thực hiện trong một phản hồi (mặc định: 10). Giá trị cao hơn cho phép các tác vụ agent phức tạp hơn nhưng tăng độ trễ và chi phí. +settings.models.max.tool.calling.round.trips.hint=Số lần gọi công cụ tối đa mà AI có thể thực hiện trong một phản hồi (mặc định\: 10). Giá trị cao hơn cho phép các tác vụ agent phức tạp hơn nhưng tăng độ trễ và chi phí. # Memory Settings settings.memory.title=Cài đặt bộ nhớ @@ -1251,11 +1268,11 @@ file.viewer.title=Trình xem tệp file.viewer.title.with.name=Trình xem tệp - {0} file.viewer.dialog.close=Đóng file.viewer.copy.clipboard=Sao chép vào clipboard -file.viewer.copied=Đã sao chép! +file.viewer.copied=Đã sao chép\! # Mermaid Chart Renderer mermaid.setup.required.title=Cần Mermaid CLI -mermaid.setup.instructions.link=https://askimo.chat/docs/desktop/mermaid-diagrams/ +mermaid.setup.instructions.link=https\://askimo.chat/docs/desktop/mermaid-diagrams/ mermaid.setup.button.open.guide=Mở hướng dẫn cài đặt mermaid.rendering.progress=Đang hiển thị sơ đồ... mermaid.error.rendering.title=Lỗi hiển thị sơ đồ @@ -1268,14 +1285,14 @@ mermaid.button.zoom.in=Phóng to mermaid.button.zoom.out=Thu nhỏ mermaid.button.reset.zoom=Đặt lại thu phóng mermaid.button.retry=Thử lại -mermaid.feedback.copied=Đã sao chép! +mermaid.feedback.copied=Đã sao chép\! mermaid.setup.button.install=Cài đặt Mermaid CLI mermaid.setup.button.check.again=Kiểm tra lại mermaid.setup.button.download.node=Tải xuống Node.js mermaid.setup.installing=Đang cài đặt Mermaid CLI... mermaid.setup.install.failed=Cài đặt thất bại. Xem chi tiết trong phần kết quả bên dưới. mermaid.setup.node.required=Không tìm thấy Node.js và npm. Vui lòng cài đặt Node.js trước để bật tính năng cài đặt một cú nhấp. -mermaid.setup.node.link=https://nodejs.org/en/download +mermaid.setup.node.link=https\://nodejs.org/en/download mermaid.error.code.show=Xem mã biểu đồ mermaid.error.code.hide=Ẩn mã biểu đồ @@ -1294,7 +1311,7 @@ mcp.instances.title=Các Instance MCP mcp.instances.description=Các instance MCP này có sẵn mcp.instances.empty=Không có instance MCP nào được cấu hình mcp.instances.count={0} instance(s) -mcp.instance.server.label=Máy chủ: {0} +mcp.instance.server.label=Máy chủ\: {0} mcp.instance.delete.confirm.title=Bạn có muốn xóa Instance MCP không? mcp.instance.delete.confirm.message=Bạn có chắc chắn muốn xóa instance mcp "{0}"? Thao tác này không thể hoàn tác. mcp.instance.enable.tooltip=Kích hoạt instance MCP này @@ -1320,7 +1337,7 @@ mcp.instance.field.description=Mô tả mcp.instance.field.description.placeholder=Mô tả ngắn gọn về chức năng của máy chủ này mcp.instance.field.transport=Loại truyền tải mcp.instance.field.command=Mẫu lệnh -mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2:--flag}} +mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2\:--flag}} mcp.instance.field.command.hint=Lệnh phân tách bằng dấu cách với các placeholder {{parameter}} mcp.instance.validation.error.empty.id=ID máy chủ không được để trống mcp.instance.validation.error.invalid.id.pattern=ID máy chủ chỉ được chứa các chữ cái thường, số và dấu gạch nối @@ -1329,20 +1346,20 @@ mcp.instance.validation.error.empty.command=Mẫu lệnh không được để t mcp.instance.validation.error.empty.parameter.key=Khóa tham số không được để trống mcp.instance.validation.error.empty.parameter.label=Nhãn tham số không được để trống mcp.instance.env.label=Biến môi trường (Tùy chọn) -mcp.instance.env.placeholder=API_KEY={{apiKey}}\nDEBUG={{debug}} -mcp.instance.env.hint=Định dạng: KHÓA=giá trị hoặc KHÓA={{parameter}} (mỗi dòng một cặp) +mcp.instance.env.placeholder=API_KEY\={{apiKey}}\nDEBUG\={{debug}} +mcp.instance.env.hint=Định dạng\: KHÓA\=giá trị hoặc KHÓA\={{parameter}} (mỗi dòng một cặp) mcp.instance.transport.stdio=Stdio (Quy trình cục bộ) mcp.instance.transport.http=HTTP (Máy chủ từ xa) mcp.instance.http.url.label=Mẫu URL -mcp.instance.http.url.placeholder=https://{{host}}/mcp hoặc https://api.example.com/mcp +mcp.instance.http.url.placeholder=https\://{{host}}/mcp hoặc https\://api.example.com/mcp mcp.instance.http.url.hint=URL endpoint máy chủ. Sử dụng placeholder {{parameter}} cho các giá trị động mcp.instance.http.headers.label=Tiêu đề HTTP (Tùy chọn) -mcp.instance.http.headers.placeholder=Authorization=Bearer {{apiKey}}\nX-Tenant-Id={{tenantId}} -mcp.instance.http.headers.hint=Định dạng: Tên-Tiêu đề=giá trị hoặc Tên-Tiêu đề={{parameter}} (mỗi dòng một cặp) +mcp.instance.http.headers.placeholder=Authorization\=Bearer {{apiKey}}\nX-Tenant-Id\={{tenantId}} +mcp.instance.http.headers.hint=Định dạng\: Tên-Tiêu đề\=giá trị hoặc Tên-Tiêu đề\={{parameter}} (mỗi dòng một cặp) mcp.instance.http.timeout.label=Thời gian chờ (ms) mcp.instance.http.timeout.hint=Thời gian chờ yêu cầu bằng mili giây mcp.instance.validation.error.empty.url=Mẫu URL không được để trống -mcp.instance.validation.error.invalid.url=Mẫu URL phải bắt đầu bằng http:// hoặc https:// +mcp.instance.validation.error.invalid.url=Mẫu URL phải bắt đầu bằng http\:// hoặc https\:// # MCP Integrations (Project View) mcp.instance.delete.tooltip=Xóa instance MCP @@ -1353,7 +1370,7 @@ mcp.instance.field.serverId=Loại máy chủ # Add MCP Integration Dialog mcp.instance.name=Tên MCP -mcp.instance.name.placeholder=Ví dụ: Cơ sở dữ liệu sản xuất, Tệp dự án +mcp.instance.name.placeholder=Ví dụ\: Cơ sở dữ liệu sản xuất, Tệp dự án mcp.instance.tools.title=Các công cụ có sẵn mcp.instance.tools.count={0} công cụ có sẵn mcp.instance.tool.strategy.intent=Dựa trên Ý định @@ -1379,6 +1396,12 @@ mcp.tool.category.WEATHER.desc=Dữ liệu và dự báo thời tiết mcp.tool.category.WEB_SEARCH.desc=Tìm kiếm web và đọc trang mcp.tool.category.DATETIME.desc=Các thao tác ngày và giờ mcp.tool.category.OTHER.desc=Các công cụ không phân loại +mcp.tool.approval.label=Phê duyệt +mcp.tool.approval.require_approval=Yêu cầu phê duyệt +mcp.tool.approval.default=Tự động +mcp.tool.approval.default.hint=Chạy tự động. Các danh mục có tính chất ghi (ghi tệp, thực thi, git, nhắn tin) yêu cầu phê duyệt theo mặc định. +mcp.tool.approval.require_approval.hint=Luôn tạm dừng và yêu cầu bạn xác nhận trước khi AI thực thi công cụ này. +mcp.tool.enabled.label=Đã bật # MCP Tools Dialog mcp.tools.dialog.title=Các công cụ có sẵn - {0} @@ -1392,7 +1415,7 @@ mcp.tools.dialog.search.count={0} trên {1} công cụ mcp.tools.dialog.search.empty=Không có công cụ nào khớp với tìm kiếm của bạn mcp.tools.dialog.export=Xuất công cụ mcp.tools.dialog.export.success=Các công cụ đã được xuất tới {0} -mcp.tools.dialog.export.failed=Lỗi khi xuất công cụ: {0} +mcp.tools.dialog.export.failed=Lỗi khi xuất công cụ\: {0} # MCP Server Catalog Dialog mcp.catalog.dialog.title=Thêm Máy chủ MCP @@ -1448,7 +1471,7 @@ file.viewer.close=Đóng trình xem file.viewer.open.external=Mở bên ngoài file.viewer.binary=Tệp nhị phân — không thể xem trước dưới dạng văn bản. file.viewer.too.large=Tệp quá lớn để xem trước ({0} KB). Tối đa là 512 KB. -file.viewer.error=Không thể đọc tệp: {0} +file.viewer.error=Không thể đọc tệp\: {0} file.viewer.select.prompt=Chọn một tệp từ cây bên trên để xem trước nội dung # Project Side Panel @@ -1464,7 +1487,7 @@ panel.collapse=Thu gọn bảng điều khiển # RAG Status rag.status.started=Bắt đầu lập chỉ mục -rag.status.inprogress=Đang lập chỉ mục: {0}% +rag.status.inprogress=Đang lập chỉ mục\: {0}% rag.status.inprogress.unknown=Đang lập chỉ mục... rag.status.queued=Đang xếp hàng — đang chờ dự án khác hoàn tất việc lập chỉ mục rag.status.ready=Sẵn sàng @@ -1514,7 +1537,7 @@ plans.editor.label=Nội dung YAML plans.editor.placeholder=Dán hoặc nhập YAML kế hoạch của bạn tại đây... plans.editor.valid=YAML hợp lệ plans.editor.hint.title=Tham khảo -plans.editor.hint.fields=Bắt buộc: id, name, steps\nTùy chọn: description, icon, inputs, workflow\nLoại bước: text, multiline, toggle, number\nLoại quy trình: sequence, parallel, conditional +plans.editor.hint.fields=Bắt buộc\: id, name, steps\nTùy chọn\: description, icon, inputs, workflow\nLoại bước\: text, multiline, toggle, number\nLoại quy trình\: sequence, parallel, conditional plans.editor.menu.edit=Chỉnh sửa YAML plans.editor.ai.label=Tạo bằng AI plans.editor.ai.placeholder=Mô tả những gì bạn muốn kế hoạch này thực hiện bằng ngôn ngữ đơn giản... @@ -1573,12 +1596,12 @@ skills.view.panel.collapse=Thu gọn bảng skills.view.panel.expand=Mở rộng bảng skills.view.tab.skills=Kỹ năng skills.view.tab.workspace=Không gian làm việc -skills.view.last.run=Lần chạy cuối: {0} +skills.view.last.run=Lần chạy cuối\: {0} skills.view.category.uncategorized=Khác skills.view.search.placeholder=Tìm kiếm kỹ năng ... skills.view.search.clear=Xóa tìm kiếm skills.view.context.placeholder=Bạn muốn làm gì? (tùy chọn) -skills.view.command.mode.hint=Chế độ lệnh: đầu vào bắt đầu bằng / sẽ được chạy như lệnh tác nhân. +skills.view.command.mode.hint=Chế độ lệnh\: đầu vào bắt đầu bằng / sẽ được chạy như lệnh tác nhân. skills.view.system.prompt.preview=System Prompt skills.view.response.title=Phản hồi skills.view.followup.label=Theo dõi @@ -1588,7 +1611,7 @@ skills.view.history.empty=Chưa có lượt chạy nào skills.view.copy=Sao chép skills.view.system.prompt.file=tệp skills.view.system.prompt.files=tệp -skills.view.system.prompt.also.included=Cũng được bao gồm trong ngữ cảnh agent: +skills.view.system.prompt.also.included=Cũng được bao gồm trong ngữ cảnh agent\: skills.view.docs.tooltip=Xem Hướng dẫn Kỹ năng skills.view.mode.agentic=Tác nhân skills.view.mode.manual=Thủ công @@ -1615,7 +1638,7 @@ onboarding.step.language.label=Ngôn ngữ # Onboarding Step 1: Analytics onboarding.step.analytics.title=Giúp Askimo tốt hơn cho mọi người onboarding.step.analytics.description=Askimo là miễn phí và mã nguồn mở. Chia sẻ dữ liệu sử dụng ẩn danh là cách đóng góp nhỏ bé. Nó giúp chúng tôi biết tính năng nào nên phát triển tiếp theo. -onboarding.step.analytics.collected.yes.features=✅ Tính năng nào được dùng (ví dụ: RAG, công cụ MCP, Kế hoạch, Kỹ năng) +onboarding.step.analytics.collected.yes.features=✅ Tính năng nào được dùng (ví dụ\: RAG, công cụ MCP, Kế hoạch, Kỹ năng) onboarding.step.analytics.collected.yes.version=✅ Phiên bản ứng dụng và loại hệ điều hành onboarding.step.analytics.collected.no.conversations=❌ Không lấy nội dung hội thoại hay prompt onboarding.step.analytics.collected.no.personal=❌ Không bao giờ có dữ liệu cá nhân, tệp hay API key @@ -1628,7 +1651,7 @@ onboarding.step.analytics.section.never=Những gì chúng tôi không bao giờ onboarding.step.analytics.toggle.subtitle=Giúp chúng tôi tập trung vào những gì quan trọng nhất · có thể thay đổi bất cứ lúc nào trong Cài đặt → Nâng cao # Onboarding Step 1: Welcome -onboarding.step.welcome.title=👋 Chào mừng đến với Askimo! +onboarding.step.welcome.title=👋 Chào mừng đến với Askimo\! onboarding.step.welcome.description=Trợ lý AI cá nhân cho bạn. Trò chuyện với nhiều mô hình AI, tổ chức tri thức trong dự án, và tự động hóa công việc với kỹ năng và kế hoạch. onboarding.step.welcome.feature1.title=💬 Chat với AI onboarding.step.welcome.feature1.description=Đặt câu hỏi, nhận trợ giúp cho công việc hoặc trò chuyện với bất kỳ mô hình AI nào. @@ -1657,7 +1680,7 @@ onboarding.step.directives.feature3.description=Cần gia sư kiên nhẫn để onboarding.step.directives.link=Xem ví dụ và mẹo # Onboarding Step 6: Ready -onboarding.step.ready.title=🚀 Mọi thứ đã sẵn sàng! +onboarding.step.ready.title=🚀 Mọi thứ đã sẵn sàng\! onboarding.step.ready.description=Bạn đã cấu hình xong. Hãy bắt đầu chat đầu tiên hoặc khám phá các tài nguyên bên dưới. onboarding.step.ready.link.docs=📚 Xem tài liệu onboarding.step.ready.link.providers=🔧 Cấu hình nhà cung cấp AI @@ -1667,13 +1690,13 @@ onboarding.step.ready.link.github=⭐ Star cho chúng tôi trên GitHub onboarding.step.persona.title=🎯 Bạn chủ yếu muốn làm gì? onboarding.step.persona.description=Chọn tùy chọn nghe giống công việc của bạn nhất. Askimo sẽ hiển thị các tính năng phù hợp nhất. Bạn luôn có thể thay đổi điều này từ menu Xem. onboarding.step.persona.developer.description=Đọc và viết mã, tái cấu trúc tệp, tạo giàn giáo (scaffolding) hoặc chạy các tác vụ đại lý trên dự án cục bộ của bạn. -onboarding.step.persona.developer.features=Kích hoạt: Skills (Gemini CLI, Claude Code), Projects +onboarding.step.persona.developer.features=Kích hoạt\: Skills (Gemini CLI, Claude Code), Projects onboarding.step.persona.researcher.description=Nghiên cứu các chủ đề, phân tích dữ liệu, viết báo cáo có cấu trúc và nhận câu trả lời dựa trên kiến thức. -onboarding.step.persona.researcher.features=Kích hoạt: Plans, Projects (RAG) +onboarding.step.persona.researcher.features=Kích hoạt\: Plans, Projects (RAG) onboarding.step.persona.manager.description=Soạn thảo email, xử lý ghi chú cuộc họp, viết báo cáo trạng thái hoặc chạy quy trình làm việc nội dung nhiều bước. -onboarding.step.persona.manager.features=Kích hoạt: Plans +onboarding.step.persona.manager.features=Kích hoạt\: Plans onboarding.step.persona.everything.description=Tôi làm nhiều việc kết hợp — hãy cho tôi xem tất cả các tính năng và tôi sẽ quyết định sử dụng gì. -onboarding.step.persona.everything.features=Kích hoạt: Skills, Plans, Projects, MCP, RAG +onboarding.step.persona.everything.features=Kích hoạt\: Skills, Plans, Projects, MCP, RAG # Persona labels persona.developer=💻 Viết và đánh giá mã diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index 765519fa..9ad658b3 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -32,6 +32,7 @@ menu.view.appearance.system=系统 menu.view.appearance.light=浅色 menu.view.appearance.dark=深色 menu.view.fullscreen=进入全屏 +menu.view.exit.fullscreen=退出全屏 menu.view.bookmarks=查看书签 menu.terminal=终端 menu.terminal.new=新建终端 @@ -43,7 +44,7 @@ menu.help.discord=💬 加入 Discord 社区 menu.help.share.x=分享到 X / Twitter menu.help.share.linkedin=分享到 LinkedIn menu.help.share.facebook=分享到 Facebook -menu.help.share.text=推荐 Askimo — 免费、本地优先的 AI 桌面客户端,支持 Ollama、OpenAI、Anthropic 等。 https://askimo.chat +menu.help.share.text=推荐 Askimo — 免费、本地优先的 AI 桌面客户端,支持 Ollama、OpenAI、Anthropic 等。 https\://askimo.chat menu.help.share.hackernews=发布到 Hacker News menu.eventlog=事件日志 menu.help.model.capabilities=打开模型功能文件 @@ -189,6 +190,8 @@ project.new.dialog.success.title=项目创建成功! project.new.dialog.success.message=项目“{0}”已创建。 project.new.dialog.success.countdown={0} 秒后关闭… project.new.dialog.success.close=立即关闭 +project.dialog.defaultDirective.label=默认指令(可选) +project.dialog.defaultDirective.none=无 project.dialog.url.title=添加 URL 参考资料 project.dialog.url.description=请输入一个 URL 以将网页内容添加为参考资料。系统将验证该 URL 并检查其可访问性。 project.dialog.url.label=URL @@ -206,6 +209,10 @@ project.not.selected=未选择项目 # Projects View projects.title=项目 projects.description=围绕主题组织您的聊天,并将文件、文件夹或 URL 作为知识源附加,以便 AI 始终掌握该项目的正确上下文。 +projects.rag.embedding.not.configured=由于当前 AI 提供商未配置嵌入模型,项目的 RAG 功能已禁用。 +projects.rag.embedding.configure=配置嵌入模型 +projects.rag.embedding.unsupported.provider=由于当前 AI 提供商不支持嵌入模型,项目的 RAG 功能已禁用。请切换到支持嵌入的提供商(例如 OpenAI、Gemini 或兼容 OpenAI 的端点)以启用 RAG。 +projects.rag.embedding.switch.provider=切换 AI 提供商 projects.error=❌ {0} projects.empty=未找到任何项目。 projects.empty.hint=💡 创建一个新项目来组织你的聊天会话! @@ -219,13 +226,16 @@ projects.sources.expand=显示参考资料 projects.sources.collapse=隐藏参考资料 projects.sources.empty.title=尚未添加参考资料 projects.sources.empty.description=添加文档后,Askimo 才能在回答问题时进行参考 -projects.sources.info.tooltip=参考资料可帮助 Askimo 理解您的具体上下文。\n\n\ -请添加包含您希望 Askimo 在回答问题时参考的信息的文件夹、文件或网站。\n\n\ +projects.sources.info.tooltip=参考资料可帮助 Askimo 理解您的具体上下文。\n\ +\n\ +请添加包含您希望 Askimo 在回答问题时参考的信息的文件夹、文件或网站。\n\ +\n\ 例如:\n\ • 项目文档\n\ • 公司知识库\n\ • 技术规格说明\n\ -• 研究论文\n\n\ +• 研究论文\n\ +\n\ Askimo 将搜索这些资料,以提供更准确、更具上下文感知的回答。 projects.sources.type.local_folders=本地文件夹 projects.sources.type.local_files=本地文件 @@ -236,6 +246,8 @@ projects.sources.add.dialog.title=添加参考资料 projects.sources.add.dialog.description=选择文件夹、文件或 URL,将其添加为此项目的参考资料。 projects.sources.add.dialog.button.add=添加 projects.sources.delete.tooltip=删除参考资料 +projects.sources.watch.tooltip=监视更改 +projects.sources.more.tooltip=更多选项 projects.sources.guide=查看参考资料指南 projects.error.loading=加载项目失败。请重试。 projects.error.deleting=删除项目失败。请重试。 @@ -246,6 +258,8 @@ project.error.loading=加载项目失败。请重试。 project.error.loading_sessions=加载项目会话失败。请重试。 project.error.updating=更新项目失败。请重试。 project.error.deleting_knowledge_source=删除参考资料失败。请重试。 +project.error.updating_knowledge_source=更新参考资料失败。请重试。 +project.error.rescanning_knowledge_source=重新扫描参考资料失败。请重试。 project.knowledge_source.delete.success=参考资料删除成功。 project.edit=编辑项目 project.reindex=重新索引项目 @@ -253,7 +267,7 @@ project.menu.tooltip=项目菜单 project.new.chat.placeholder=在 {0} 中开始新聊天 project.recent.chats=最近的聊天 project.no.chats=还没有聊天记录。请在下方开始新的聊天! -project.indexing.label=正在索引知识源: {0} +project.indexing.label=正在索引知识源\: {0} project.indexing.queued=索引已排队 - 等待另一个项目完成... project.indexing.failed=索引失败。请尝试从项目菜单重新索引。 project.indexing.ready.label=已索引 @@ -272,7 +286,7 @@ settings.appearance=外观 settings.appearance.accent=强调色 settings.appearance.accent.description=安全地自定义单一强调色。Askimo 会将其应用于主要界面强调,并派生相关颜色以保证可读性。 settings.appearance.accent.label=强调色(Hex) -settings.appearance.accent.invalid=请输入有效的十六进制颜色,例如 #0284C7 +settings.appearance.accent.invalid=请输入有效的十六进制颜色,例如 \#0284C7 settings.appearance.accent.swatch.primary=主色 settings.appearance.accent.swatch.primary.container=容器 settings.appearance.accent.swatch.on.primary.container=容器前景 @@ -434,7 +448,7 @@ settings.web_search.api_key=API 密鉅 settings.web_search.api_key.placeholder=在此处粘贴您的 API 密鉅 settings.web_search.get_api_key=获取免费 API 密鉅 ↗ settings.web_search.endpoint=SearxNG 实例 URL -settings.web_search.endpoint.placeholder=https://search.example.com +settings.web_search.endpoint.placeholder=https\://search.example.com settings.web_search.test=测试搜索 settings.web_search.test.running=测试中... settings.web_search.test.success=✅ 搜索正常运行 @@ -501,6 +515,7 @@ user.interest.environment=环境 # Actions action.delete=删除 +action.rescan=重新扫描 action.remove=移除 action.edit=编辑 action.pin=固定到侧边栏 @@ -710,6 +725,12 @@ chat.image.model.missing.title=未配置图像模型 chat.image.model.missing.message=未为 {0} 设置图像模型。打开 设置 > AI 提供商 > 图像生成模型,并先设置模型名称。 chat.tools.button=可用工具 chat.tools.button.disabled=可用工具({0} 已禁用) +chat.tool.approval.required=\n\n⏸️ **需要批准** — AI 想要运行 `{0}`{1}\n\n +chat.tool.approval.timed_out=工具审批超时\: {0} +chat.tool.approval.denied=用户拒绝执行工具\: {0} +chat.tool.approval.prompt=AI 想要运行:{0} +chat.tool.approval.approve=批准 +chat.tool.approval.deny=拒绝 chat.tools.button.model.no.support=此模型不支持工具 chat.tools.popup.title=可用工具 chat.tools.popup.loading=正在加载服务器... @@ -753,7 +774,7 @@ sessions.search.placeholder=按标题搜索… sessions.search.empty=没有与 "{0}" 匹配的会话。 # Generic table pagination controls -table.page.size.label=每页行数: +table.page.size.label=每页行数\: table.page=第 {0} 页 共 {1} 页 table.page.previous=上一页 table.page.next=下一页 @@ -788,6 +809,7 @@ event.update.available=🚀 有新版本可用 event.details.action=Release Notes event.update.download=立即下载 event.notification.empty=暂无事件 +event.notification.title=通知 ({0}) event.notification.clear=清除 event.notification.clear.all=全部清除 event.notification.group.errors=后台错误 @@ -799,6 +821,7 @@ event.indexing.started=索引中… event.indexing.completed=索引已就绪 event.indexing.failed=索引失败 event.indexing.files_indexed=已索引 {0} 个文件 +event.file.removed=文件已从索引中删除 # Settings View settings.language=语言 @@ -835,7 +858,7 @@ settings.model.chat.filter.label=聊天模型 · 已显示 {0} settings.model.chat.filter.show.all=显示所有 {0} settings.configure.title=配置 {0} settings.test.connection.testing=正在测试... -settings.placeholder.baseurl=http://localhost:11434 +settings.placeholder.baseurl=http\://localhost\:11434 provider.connection.failed=无法连接到提供商。请验证您的 API 密钥是否正确(对于云提供商)或您的基础 URL 是否可达(对于本地提供商)。您可以使用上面的帮助链接找到设置说明。 # Directives Dialog @@ -864,6 +887,8 @@ directive.import=导入 directive.import.tooltip=从 JSON 文件导入指令 directive.import.result=导入完成:已导入 {0} 个,已重命名 {1} 个,已跳过 {2} 个 directive.import.error=导入失败:文件格式无效或不受支持 +directive.default.set=设置为默认指令 +directive.default.unset=取消默认指令设置 # Log Levels log.level.error=错误 @@ -919,7 +944,7 @@ message.edited.indicator=(已编辑) message.date.today=今天 message.date.yesterday=昨天 message.token.usage={0} 个 token · {1} 进 / {2} 出 -message.token.usage.tooltip=此回复使用的 token。\n输入: 您的 prompt + 发送给 AI 的上下文。\n输出: AI 生成的回复。 +message.token.usage.tooltip=此回复使用的 token。\n输入\: 您的 prompt + 发送给 AI 的上下文。\n输出\: AI 生成的回复。 # Bookmarks chat.bookmarks.button.tooltip=书签 @@ -956,10 +981,6 @@ provider.picker.description.openai=来自 OpenAI 的云端 AI 模型。需要 AP provider.picker.description.anthropic=来自 Anthropic 的云端 AI 模型。需要 API 密钥。在 console.anthropic.com 注册,创建 API 密钥,并在连接前为账户充值。 provider.picker.description.gemini=来自 Google 的云端 AI 模型。在 aistudio.google.com 注册并生成免费 API 密钥。免费层级无需信用卡。 provider.picker.description.xai=来自 xAI 的云端 AI 模型。需要 API 密钥。在 console.x.ai 注册,创建 API 密钥,并在连接前为账户充值。 -provider.picker.description.ollama=在本地运行开源模型。无需 API 密钥。从 ollama.com 下载 Ollama,然后拉取一个模型(如 ollama pull llama3),再进行连接。 -provider.picker.description.docker=通过 Docker Desktop 内置的 AI 模型运行器来运行模型。无需 API 密钥。需要 Docker Desktop 4.40+ 并启用 Model Runner 功能。 -provider.picker.description.localai=自托管、兼容 OpenAI 的本地 AI 服务器。无需 API 密钥。安装 LocalAI,下载模型并启动服务器后再连接。 -provider.picker.description.lmstudio=通过简单易用的桌面界面运行本地 LLM。无需 API 密钥。从 lmstudio.ai 下载 LM Studio,拉取模型并加载,然后启用本地服务器后再连接。 provider.manage.title=管理服务商 provider.type.picker.title=添加 AI 提供商 provider.type.picker.select.hint=← 从列表中选择一个提供商以查看详细信息 @@ -970,7 +991,9 @@ provider.template.get.apikey=获取 API 密钥 → # OpenAI-Compatible template taglines and setup help (see OpenAiCompatibleTemplate.kt) provider.template.cloudflare_ai.tagline=使用 Workers AI 在 Cloudflare 的全球边缘网络上运行 AI 模型。 -provider.template.cloudflare_ai.help=💡 使用 Cloudflare AI:\n\n1. 在 Cloudflare 控制台中找到您的 Account ID\n2. 用它替换基础 URL 中的 {ACCOUNT_ID}\n3. 在以下位置创建具有 'Workers AI' 权限的 API 令牌:\n dash.cloudflare.com/profile/api-tokens +provider.template.cloudflare_ai.help=💡 使用 Cloudflare AI:\n\n1. 在 Cloudflare 控制台中找到您的 Account ID\n2. 用它替换基础 URL 中的 {ACCOUNT_ID}\n3. 在以下位置创建具有 ''Workers AI'' 权限的 API 令牌:\n dash.cloudflare.com/profile/api-tokens +provider.template.deepseek.tagline=具备直观的 OpenAI 兼容 API 的推理和通用模型。 +provider.template.deepseek.help=💡 要使用 DeepSeek:\n\n1. 在此处创建 API 密钥:platform.deepseek.com/api_keys\n2. 如有必要,请为您的 DeepSeek 账户充值\n3. 点击“下一步”浏览可用模型 provider.template.groq.tagline=为开源模型提供超快推理 — Llama、Mixtral、Gemma 等。 provider.template.groq.help=💡 使用 Groq:\n\n1. 在 console.groq.com/keys 获取免费 API 密钥\n2. 输入模型名称,例如 llama-3.1-8b-instant\n3. 点击"下一步"浏览所有可用模型 provider.template.nvidia_nim.tagline=在 NVIDIA 的云 GPU 基础设施上运行优化的 AI 模型。 @@ -982,7 +1005,16 @@ provider.template.together_ai.help=💡 使用 Together AI:\n\n1. 在 api.toge provider.template.lite_llm.tagline=A unified proxy that lets you call 100+ LLMs using the OpenAI format. provider.search.placeholder=Search providers... provider.search.no_results=No providers found -provider.template.lite_llm.help=💡 To use LiteLLM:\n\n1. Start the LiteLLM proxy: litellm --model ollama/llama3\n2. The default URL is http://localhost:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lite_llm.help=💡 To use LiteLLM\:\n\n1. Start the LiteLLM proxy\: litellm --model ollama/llama3\n2. The default URL is http\://localhost\:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lmstudio.tagline=使用易于使用的桌面界面运行本地大语言模型。无需 API 密钥。从 lmstudio.ai 下载 LM Studio 并启用本地服务器。 +provider.template.lmstudio.help=💡 如何使用 LM Studio:\n\n1. 从 https\://lmstudio.ai/ 安装 LM Studio\n2. 加载模型并启动本地服务器(“开发者”选项卡)\n3. 如果未使用默认端口 1234,可按需更改基础 URL +provider.template.docker_ai.tagline=通过 Docker Desktop 内置的模型运行器运行 AI 模型。无需 API 密钥。需要启用“Model Runner”功能的 Docker Desktop 4.40 及以上版本。 +provider.template.docker_ai.help=💡 如何使用 Docker AI:\n\n1. 确保已安装并运行 Docker Desktop 4.40+\n2. 在 Docker Desktop 设置中启用 Model Runner 功能\n3. 拉取模型,例如:docker model pull ai/qwen3-embedding\:0.6B-F16\n4. 默认基础 URL 为 http\://localhost\:12434/v1 +provider.template.localai.tagline=自托管、兼容 OpenAI 的本地 AI 服务器。无需 API 密钥。在连接前安装 LocalAI、加载模型并启动服务器。 +provider.template.localai.help=💡 如何使用 LocalAI:\n\n1. 从 https\://localai.io/ 安装 LocalAI\n2. 拉取模型并启动服务器\n3. 默认基础 URL 为 http\://localhost\:8080/v1 +provider.template.ollama.tagline=在本地运行开源模型。无需 API 密钥。从 ollama.com 下载 Ollama,然后在连接前拉取模型(例如 ollama pull llama3)。 +provider.template.ollama.help=💡 如何使用 Ollama:\n\n1. 从 https\://ollama.com/ 安装 Ollama\n2. 拉取模型:ollama pull llama3\n3. 默认基础 URL 为 http\://localhost\:11434/v1 + provider.configure.new.title=Configure {0} provider.edit.title=Edit "{0}" @@ -1008,14 +1040,14 @@ provider.apikey.security.link=了解我们如何保护您的数据 provider.not.set=未设置 # Provider Configuration - OpenAI -provider.openai.apikey.description=OpenAI API Key(https://platform.openai.com/account/api-keys) +provider.openai.apikey.description=OpenAI API Key(https\://platform.openai.com/account/api-keys) provider.openai.apikey.stored=API Key 已保存。留空表示保留现有 Key。 -provider.openai.setup.help=使用 OpenAI 需要 API Key。\n\n1. 获取:https://platform.openai.com/account/api-keys\n2. 在设置中配置或使用 :change-settings +provider.openai.setup.help=使用 OpenAI 需要 API Key。\n\n1. 获取:https\://platform.openai.com/account/api-keys\n2. 在设置中配置或使用 \:change-settings # Provider Configuration - Anthropic -provider.anthropic.apikey.description=Anthropic API Key:https://console.anthropic.com/ +provider.anthropic.apikey.description=Anthropic API Key:https\://console.anthropic.com/ provider.anthropic.apikey.stored=API Key 已保存。 -provider.anthropic.setup.help=使用 Anthropic 需要 API Key。\n\n1. 获取:https://console.anthropic.com/\n2. 在设置中配置或使用 :change-settings +provider.anthropic.setup.help=使用 Anthropic 需要 API Key。\n\n1. 获取:https\://console.anthropic.com/\n2. 在设置中配置或使用 \:change-settings provider.anthropic.max_tokens.label=最大 Token 数 provider.anthropic.max_tokens.description=模型每次响应可生成的最大 Token 数(思考 + 回答的总和)。 provider.anthropic.thinking_budget_tokens.label=思考预算 Token 数 @@ -1024,31 +1056,17 @@ provider.anthropic.thinking_max_tokens.label=思考时最大 Token 数 provider.anthropic.thinking_max_tokens.description=启用思考功能时的总 Token 上限(思考 + 回答)。设置为 0 以使用“最大 Token 数”代替。 # Provider Configuration - Gemini -provider.gemini.apikey.description=Google AI Studio API Key:https://aistudio.google.com/app/apikey +provider.gemini.apikey.description=Google AI Studio API Key:https\://aistudio.google.com/app/apikey provider.gemini.apikey.stored=API Key 已保存。 -provider.gemini.setup.help=使用 Gemini 需要 API Key。\n\n1. 获取:https://aistudio.google.com/app/apikey\n2. 在设置中配置或使用 :change-settings +provider.gemini.setup.help=使用 Gemini 需要 API Key。\n\n1. 获取:https\://aistudio.google.com/app/apikey\n2. 在设置中配置或使用 \:change-settings # Provider Configuration - XAI -provider.xai.apikey.description=XAI API Key:https://console.x.ai/ +provider.xai.apikey.description=XAI API Key:https\://console.x.ai/ provider.xai.apikey.stored=API Key 已保存。 -provider.xai.setup.help=使用 XAI 需要 API Key。\n\n1. 获取:https://console.x.ai/\n2. 在设置中配置或使用 :change-settings - -# Provider Configuration - Ollama -provider.ollama.baseurl.description=Ollama 基础 URL(默认 http://localhost:11434) -provider.ollama.setup.help=使用 Ollama 需要本地运行。\n\n1. 安装:https://ollama.ai/\n2. 启动服务\n3. 如需可更改基础 URL +provider.xai.setup.help=使用 XAI 需要 API Key。\n\n1. 获取:https\://console.x.ai/\n2. 在设置中配置或使用 \:change-settings -# Provider Configuration - Docker AI -provider.docker.baseurl.description=Docker AI 基础 URL(默认 http://localhost:12434) -provider.docker.setup.help=使用 Docker AI 需要本地运行。\n\n1. 确保 Docker AI 已安装并运行\n2. 启动服务\n3. 如需可更改基础 URL -# Provider Configuration - LocalAI -provider.localai.baseurl.description=LocalAI 基础 URL -provider.localai.setup.help=使用 LocalAI 需先运行。\n\n1. 安装并启动 LocalAI\n2. 配置基础 URL -# Provider Configuration - LMStudio -provider.lmstudio.baseurl.description=LMStudio 基础 URL(默认 http://localhost:1234) -provider.lmstudio.setup.help=使用 LMStudio:\n\n1. 安装:https://lmstudio.ai/\n2. 启动本地服务\n3. 可选更改基础 URL -provider.lmstudio.openai.compat.info=Askimo 使用 OpenAI 兼容端点(/v1),而非 LMStudio 原生 API(/api/v1/)。 # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=您的OpenAI兼容实例的基础URL @@ -1138,10 +1156,6 @@ error.context_length=⚠️ 上下文窗口已超出限制\n\n总输入内容( error.invalid_request=⚠️ 无效请求:{details}\n\n请检查输入内容后重试。 error.local_server=⚠️ 本地 AI 服务器错误!\n\nAI 服务器进程崩溃或无法加载模型。这不是由 Askimo 引起的。\n\n可能原因:\n• 模型文件损坏或不完整 — 请尝试重新下载\n• RAM/VRAM 不足 — 请尝试更小的量化版本(例如 Q4 而非 Q8)\n• 当前服务器版本不支持该模型格式\n• 服务器进程被操作系统终止(内存不足)\n\n处理方法:\n1. 查看本地 AI 服务器日志\n2. 重启服务器后重试\n3. 重新下载模型\n4. 尝试其他模型或量化级别\n\n技术详情:{details} error.empty_http_response=⚠️ 服务器在未响应的情况下关闭了连接!\n\n模型:{0}\n\n这通常是因为本地 AI 提供程序静默丢弃了请求,而不是返回错误。当前请求超过了模型的上下文窗口限制。\n\n常见原因:\n• 会话历史记录在多轮对话中变得过长\n• 已启用的工具在每次请求中都添加了额外数据——即使是简单的问题,如果激活了多个工具也可能超出限制\n• 大型的附件文件或代码片段导致请求超限\n\n{1}\n\n其他建议尝试的操作:\n• 开始新的会话以重置上下文\n• 禁用当前任务不需要的工具\n• 减小消息或附件的大小 -error.empty_http_response.hint.docker=要在 Docker AI / Docker Model Runner 中增加上下文窗口:\n• 启动模型时传入 --context-size <值> (例如 --context-size 32768)\n• 或者在模型运行配置中进行设置 -error.empty_http_response.hint.ollama=要在 Ollama 中增加上下文窗口:\n• 在 Modelfile 中设置 num_ctx (例如 PARAMETER num_ctx 32768)\n• 或者作为参数传入:ollama run <模型> --num-ctx 32768 -error.empty_http_response.hint.lmstudio=要在 LM Studio 中增加上下文窗口:\n• 打开模型设置面板\n• 找到 "Context Length" 并将其调高 (例如设置为 32768 或更高,最高可达模型上限)\n• 更改设置后重启本地服务器 -error.empty_http_response.hint.localai=要在 LocalAI 中增加上下文窗口:\n• 编辑模型配置 YAML 并设置 context_size: 32768\n• 更改设置后重启 LocalAI 服务器 error.empty_http_response.hint.generic=要增加上下文窗口:\n• 检查提供程序的设置,查找上下文长度/大小选项并将其调高 (例如设置为 32768 token)\n• 更改设置后重启提供程序 error.remote_server=⚠️ AI 提供商服务器错误\n\n提供商服务器返回了临时错误(例如过载或不可用)。这不是由 Askimo 引起的。\n\n处理方法:\n• 稍等片刻后重试 — 通常只是短暂问题\n• 若问题持续,请查看提供商的状态页面\n\n技术详情:{details} error.system=⚠️ 系统错误\n\n发生了意外错误:{errorCode}\n\n请联系 Askimo 支持,并提供:\n• 您的操作步骤\n• 上述错误代码\n• 发生时间 @@ -1152,7 +1166,8 @@ error.model.not_available.title.embedding=嵌入模型不可用 error.model.not_available.message.chat=模型 ''{0}'' 不可用。 error.model.not_available.message.embedding=嵌入模型 ''{0}'' 在本地提供商中不可用。\n\n请前往 设置 → AI 提供商,在提供商配置卡片中选择一个可用的嵌入模型。 error.model.not_available.config_link=配置嵌入模型 -error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration +error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration +error.embedding_model_not_configured=⚠️ 尚未为 ''{provider}'' 配置嵌入模型。\n\n请前往 设置 → AI 提供商,在提供商配置卡片中选择一个嵌入模型。 # Generic Application Errors error.app.message=发生了一个意外错误:{0} @@ -1170,6 +1185,8 @@ error.indexing.io_error.title=IO 错误 error.indexing.io_error.message=索引过程中发生 IO 错误 error.indexing.unknown.title=索引错误 error.indexing.unknown.message=索引过程中发生未知错误 +error.indexing.failed.title=索引知识源失败 +error.indexing.failed_project.title=索引项目知识源失败 # RAG Configuration settings.rag.title=RAG 配置 @@ -1255,7 +1272,7 @@ file.viewer.copied=已复制! # Mermaid Chart Renderer mermaid.setup.required.title=需要 Mermaid CLI -mermaid.setup.instructions.link=https://askimo.chat/docs/desktop/mermaid-diagrams/ +mermaid.setup.instructions.link=https\://askimo.chat/docs/desktop/mermaid-diagrams/ mermaid.setup.button.open.guide=打开安装指南 mermaid.rendering.progress=正在渲染图表... mermaid.error.rendering.title=渲染图表时出错 @@ -1275,7 +1292,7 @@ mermaid.setup.button.download.node=下载 Node.js mermaid.setup.installing=正在安装 Mermaid CLI... mermaid.setup.install.failed=安装失败。请查看下方输出了解详情。 mermaid.setup.node.required=未找到 Node.js 和 npm。请先安装 Node.js 以启用一键安装。 -mermaid.setup.node.link=https://nodejs.org/en/download +mermaid.setup.node.link=https\://nodejs.org/en/download mermaid.error.code.show=查看图表代码 mermaid.error.code.hide=隐藏图表代码 @@ -1294,7 +1311,7 @@ mcp.instances.title=MCP 实例 mcp.instances.description=这些 MCP 实例可用 mcp.instances.empty=未配置 MCP 实例 mcp.instances.count={0} 个实例 -mcp.instance.server.label=服务器: {0} +mcp.instance.server.label=服务器\: {0} mcp.instance.delete.confirm.title=删除 MCP 实例? mcp.instance.delete.confirm.message=您确定要删除 mcp 实例 "{0}" 吗?此操作不可撤销。 mcp.instance.enable.tooltip=启用此 MCP 实例 @@ -1320,7 +1337,7 @@ mcp.instance.field.description=描述 mcp.instance.field.description.placeholder=关于此服务器做什么的简要描述 mcp.instance.field.transport=传输类型 mcp.instance.field.command=命令模板 -mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2:--flag}} +mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2\:--flag}} mcp.instance.field.command.hint=包含 {{parameter}} 占位符的空格分隔命令 mcp.instance.validation.error.empty.id=服务器 ID 不能为空 mcp.instance.validation.error.invalid.id.pattern=服务器 ID 只能包含小写字母、数字和连字符 @@ -1329,20 +1346,20 @@ mcp.instance.validation.error.empty.command=命令模板不能为空 mcp.instance.validation.error.empty.parameter.key=参数键不能为空 mcp.instance.validation.error.empty.parameter.label=参数标签不能为空 mcp.instance.env.label=环境变量 (可选) -mcp.instance.env.placeholder=API_KEY={{apiKey}}\nDEBUG={{debug}} -mcp.instance.env.hint=格式: KEY=值 或 KEY={{parameter}} (每行一个) +mcp.instance.env.placeholder=API_KEY\={{apiKey}}\nDEBUG\={{debug}} +mcp.instance.env.hint=格式\: KEY\=值 或 KEY\={{parameter}} (每行一个) mcp.instance.transport.stdio=Stdio (本地进程) mcp.instance.transport.http=HTTP (远程服务器) mcp.instance.http.url.label=URL 模板 -mcp.instance.http.url.placeholder=https://{{host}}/mcp 或 https://api.example.com/mcp +mcp.instance.http.url.placeholder=https\://{{host}}/mcp 或 https\://api.example.com/mcp mcp.instance.http.url.hint=服务器端点 URL。使用 {{parameter}} 占位符用于动态值 mcp.instance.http.headers.label=HTTP 头部 (可选) -mcp.instance.http.headers.placeholder=Authorization=Bearer {{apiKey}}\nX-Tenant-Id={{tenantId}} -mcp.instance.http.headers.hint=格式: 头部名称=值 或 头部名称={{parameter}} (每行一个) +mcp.instance.http.headers.placeholder=Authorization\=Bearer {{apiKey}}\nX-Tenant-Id\={{tenantId}} +mcp.instance.http.headers.hint=格式\: 头部名称\=值 或 头部名称\={{parameter}} (每行一个) mcp.instance.http.timeout.label=超时时间 (ms) mcp.instance.http.timeout.hint=请求超时时间(毫秒) mcp.instance.validation.error.empty.url=URL 模板不能为空 -mcp.instance.validation.error.invalid.url=URL 模板必须以 http:// 或 https:// 开头 +mcp.instance.validation.error.invalid.url=URL 模板必须以 http\:// 或 https\:// 开头 # MCP Integrations (Project View) mcp.instance.delete.tooltip=删除 MCP 实例 @@ -1379,6 +1396,12 @@ mcp.tool.category.WEATHER.desc=天气数据和预报 mcp.tool.category.WEB_SEARCH.desc=网络搜索和页面读取 mcp.tool.category.DATETIME.desc=日期和时间操作 mcp.tool.category.OTHER.desc=未分类工具 +mcp.tool.approval.label=批准 +mcp.tool.approval.require_approval=需要批准 +mcp.tool.approval.default=自动 +mcp.tool.approval.default.hint=自动运行。类似写入的操作类别(文件写入、执行、git、消息传递)默认需要批准。 +mcp.tool.approval.require_approval.hint=在 AI 执行此工具之前,总是会暂停并征求您的确认。 +mcp.tool.enabled.label=已启用 # MCP Tools Dialog mcp.tools.dialog.title=可用工具 - {0} @@ -1392,7 +1415,7 @@ mcp.tools.dialog.search.count={0} / {1} 个工具 mcp.tools.dialog.search.empty=没有工具匹配您的搜索 mcp.tools.dialog.export=导出工具 mcp.tools.dialog.export.success=已将工具导出到 {0} -mcp.tools.dialog.export.failed=导出工具失败: {0} +mcp.tools.dialog.export.failed=导出工具失败\: {0} # MCP Server Catalog Dialog mcp.catalog.dialog.title=添加 MCP 服务器 @@ -1588,7 +1611,7 @@ skills.view.history.empty=还没有运行记录 skills.view.copy=复制 skills.view.system.prompt.file=文件 skills.view.system.prompt.files=文件 -skills.view.system.prompt.also.included=也包含在代理上下文中: +skills.view.system.prompt.also.included=也包含在代理上下文中\: skills.view.docs.tooltip=查看技能指南 skills.view.mode.agentic=代理式 skills.view.mode.manual=手动 diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index e9bd5d7d..10d722c4 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -32,6 +32,7 @@ menu.view.appearance.system=系統 menu.view.appearance.light=淺色 menu.view.appearance.dark=深色 menu.view.fullscreen=進入全螢幕 +menu.view.exit.fullscreen=退出全螢幕 menu.view.bookmarks=查看書籤 menu.terminal=終端機 menu.terminal.new=新增終端機 @@ -43,7 +44,7 @@ menu.help.discord=💬 加入 Discord 社群 menu.help.share.x=分享到 X / Twitter menu.help.share.linkedin=分享到 LinkedIn menu.help.share.facebook=分享到 Facebook -menu.help.share.text=推薦 Askimo — 免費、本地優先的 AI 桜面客戶端,支持 Ollama、OpenAI、Anthropic 等。 https://askimo.chat +menu.help.share.text=推薦 Askimo — 免費、本地優先的 AI 桜面客戶端,支持 Ollama、OpenAI、Anthropic 等。 https\://askimo.chat menu.help.share.hackernews=發佈到 Hacker News menu.eventlog=事件記錄 menu.help.model.capabilities=開啟模型功能檔案 @@ -189,6 +190,8 @@ project.new.dialog.success.title=專案建立成功! project.new.dialog.success.message=專案「{0}」已建立。 project.new.dialog.success.countdown={0} 秒後關閉… project.new.dialog.success.close=立即關閉 +project.dialog.defaultDirective.label=預設指令(選填) +project.dialog.defaultDirective.none=無 project.dialog.url.title=新增 URL 參考資料 project.dialog.url.description=請輸入一個 URL,以將網頁內容新增為參考資料。系統將驗證該 URL 並檢查其可存取性。 project.dialog.url.label=URL @@ -206,6 +209,10 @@ project.not.selected=尚未選擇專案 # Projects View projects.title=專案 projects.description=圍繞主題組織您的聊天,並將檔案、資料夾或 URL 作為知識來源附加,以便 AI 始終掌握該專案的正確上下文。 +projects.rag.embedding.not.configured=由於目前的 AI 供應商未設定嵌入模型,專案的 RAG 功能已停用。 +projects.rag.embedding.configure=設定嵌入模型 +projects.rag.embedding.unsupported.provider=由於目前的 AI 供應商不支援嵌入模型,專案的 RAG 功能已停用。請切換到支援嵌入的供應商(例如 OpenAI、Gemini 或相容 OpenAI 的端點)以啟用 RAG。 +projects.rag.embedding.switch.provider=切換 AI 供應商 projects.error=❌ {0} projects.empty=找不到任何專案。 projects.empty.hint=💡 建立新專案以整理你的聊天工作階段! @@ -219,13 +226,16 @@ projects.sources.expand=顯示參考資料 projects.sources.collapse=隱藏參考資料 projects.sources.empty.title=尚未新增參考資料 projects.sources.empty.description=新增文件後,Askimo 才能在回答問題時進行參考 -projects.sources.info.tooltip=參考資料可協助 Askimo 理解您的具體情境。\n\n\ -請新增包含您希望 Askimo 在回答問題時參考之資訊的資料夾、檔案或網站。\n\n\ +projects.sources.info.tooltip=參考資料可協助 Askimo 理解您的具體情境。\n\ +\n\ +請新增包含您希望 Askimo 在回答問題時參考之資訊的資料夾、檔案或網站。\n\ +\n\ 例如:\n\ • 專案文件\n\ • 公司知識庫\n\ • 技術規格文件\n\ -• 研究論文\n\n\ +• 研究論文\n\ +\n\ Askimo 會搜尋這些資料,以提供更準確且具情境理解的回答。 projects.sources.type.local_folders=本機資料夾 projects.sources.type.local_files=本機檔案 @@ -236,6 +246,8 @@ projects.sources.add.dialog.title=新增參考資料 projects.sources.add.dialog.description=選擇資料夾、檔案或 URL,將其新增為此專案的參考資料。 projects.sources.add.dialog.button.add=新增 projects.sources.delete.tooltip=刪除參考資料 +projects.sources.watch.tooltip=監視變更 +projects.sources.more.tooltip=更多選項 projects.sources.guide=查看參考資料指南 projects.error.loading=載入專案失敗。請再試一次。 projects.error.deleting=刪除專案失敗。請再試一次。 @@ -246,6 +258,8 @@ project.error.loading=載入專案失敗。請重試。 project.error.loading_sessions=載入專案工作階段失敗。請重試。 project.error.updating=更新專案失敗。請重試。 project.error.deleting_knowledge_source=刪除參考資料失敗。請重試。 +project.error.updating_knowledge_source=更新參考資料失敗。請重試。 +project.error.rescanning_knowledge_source=重新掃描參考資料失敗。請重試。 project.knowledge_source.delete.success=參考資料刪除成功。 project.edit=編輯專案 project.reindex=重新索引專案 @@ -253,7 +267,7 @@ project.menu.tooltip=專案選單 project.new.chat.placeholder=在 {0} 中建立新聊天 project.recent.chats=最近的聊天 project.no.chats=尚未有聊天記錄。請在下方開始新的聊天! -project.indexing.label=正在索引知識源: {0} +project.indexing.label=正在索引知識源\: {0} project.indexing.queued=索引已排入佇列 - 等待另一個專案完成... project.indexing.failed=索引失敗。請嘗試從專案選單重新索引。 project.indexing.ready.label=已索引 @@ -272,7 +286,7 @@ settings.appearance=外觀 settings.appearance.accent=強調色 settings.appearance.accent.description=安全地自訂單一強調色。Askimo 會將其套用到主要介面強調,並衍生相關顏色以確保可讀性。 settings.appearance.accent.label=強調色 (Hex) -settings.appearance.accent.invalid=請輸入有效的十六進位顏色,例如 #0284C7 +settings.appearance.accent.invalid=請輸入有效的十六進位顏色,例如 \#0284C7 settings.appearance.accent.swatch.primary=主色 settings.appearance.accent.swatch.primary.container=容器 settings.appearance.accent.swatch.on.primary.container=容器前景 @@ -434,7 +448,7 @@ settings.web_search.api_key=API 金鑰 settings.web_search.api_key.placeholder=在此處貼上您的 API 金鑰 settings.web_search.get_api_key=取得免費 API 金鑰 ↗ settings.web_search.endpoint=SearxNG 執行個體 URL -settings.web_search.endpoint.placeholder=https://search.example.com +settings.web_search.endpoint.placeholder=https\://search.example.com settings.web_search.test=測試搜尋 settings.web_search.test.running=測試中... settings.web_search.test.success=✅ 搜尋正常運作 @@ -501,6 +515,7 @@ user.interest.environment=環境 # Actions action.delete=刪除 +action.rescan=重新掃描 action.remove=移除 action.edit=編輯 action.pin=釘選到側邊欄 @@ -710,6 +725,12 @@ chat.image.model.missing.title=尚未設定圖片模型 chat.image.model.missing.message=尚未為 {0} 設定圖片模型。開啟 設定 > AI 提供者 > 圖片生成模型,並先設定模型名稱。 chat.tools.button=可用工具 chat.tools.button.disabled=可用工具({0} 已停用) +chat.tool.approval.required=\n\n⏸️ **需要核准** — AI 想要執行 `{0}`{1}\n\n +chat.tool.approval.timed_out=工具核准逾時\: {0} +chat.tool.approval.denied=使用者已拒絕執行工具\: {0} +chat.tool.approval.prompt=AI 想要執行:{0} +chat.tool.approval.approve=批准 +chat.tool.approval.deny=拒絕 chat.tools.button.model.no.support=此模型不支援工具 chat.tools.popup.title=可用工具 chat.tools.popup.loading=正在載入伺服器... @@ -753,7 +774,7 @@ sessions.search.placeholder=按標題搜尋… sessions.search.empty=沒有與 "{0}" 相符的會話。 # Generic table pagination controls -table.page.size.label=每頁列數: +table.page.size.label=每頁列數\: table.page=第 {0} 頁 共 {1} 頁 table.page.previous=上一頁 table.page.next=下一頁 @@ -788,6 +809,7 @@ event.update.available=🚀 有新版本可用 event.details.action=Release Notes event.update.download=立即下載 event.notification.empty=目前沒有事件 +event.notification.title=通知 ({0}) event.notification.clear=清除 event.notification.clear.all=全部清除 event.notification.group.errors=背景錯誤 @@ -799,6 +821,7 @@ event.indexing.started=索引中… event.indexing.completed=索引已就緒 event.indexing.failed=索引失敗 event.indexing.files_indexed=已索引 {0} 個檔案 +event.file.removed=檔案已從索引移除 # Settings View settings.language=語言 @@ -835,7 +858,7 @@ settings.model.chat.filter.label=聊天模型 · 已顯示 {0} settings.model.chat.filter.show.all=顯示所有 {0} settings.configure.title=設定 {0} settings.test.connection.testing=測試中... -settings.placeholder.baseurl=http://localhost:11434 +settings.placeholder.baseurl=http\://localhost\:11434 provider.connection.failed=無法連接到提供商。請驗證您的 API 金鑰是否正確(對於雲端提供商)或您的基礎 URL 是否可達(對於本地提供商)。您可以使用上面的幫助連結找到設定說明。 # Directives Dialog @@ -864,6 +887,8 @@ directive.import=匯入 directive.import.tooltip=從 JSON 檔案匯入指令 directive.import.result=匯入完成:已匯入 {0} 個,已重新命名 {1} 個,已略過 {2} 個 directive.import.error=匯入失敗:檔案格式無效或不支援 +directive.default.set=設定為預設指令 +directive.default.unset=取消預設指令設定 # Log Levels log.level.error=錯誤 @@ -919,7 +944,7 @@ message.edited.indicator=(已編輯) message.date.today=今天 message.date.yesterday=昨天 message.token.usage={0} 個 token · {1} 進 / {2} 出 -message.token.usage.tooltip=此回覆使用的 token。\n輸入: 您的 prompt + 傳送給 AI 的上下文。\n輸出: AI 產生的回覆。 +message.token.usage.tooltip=此回覆使用的 token。\n輸入\: 您的 prompt + 傳送給 AI 的上下文。\n輸出\: AI 產生的回覆。 # Bookmarks chat.bookmarks.button.tooltip=書籤 @@ -956,10 +981,6 @@ provider.picker.description.openai=來自 OpenAI 的雲端 AI 模型。需要 AP provider.picker.description.anthropic=來自 Anthropic 的雲端 AI 模型。需要 API 金鑰。在 console.anthropic.com 註冊,建立 API 金鑰,並在連線前為帳戶儲值。 provider.picker.description.gemini=來自 Google 的雲端 AI 模型。在 aistudio.google.com 註冊並產生免費 API 金鑰。免費方案無需信用卡。 provider.picker.description.xai=來自 xAI 的雲端 AI 模型。需要 API 金鑰。在 console.x.ai 註冊,建立 API 金鑰,並在連線前為帳戶儲值。 -provider.picker.description.ollama=在本地端執行開源模型。無需 API 金鑰。從 ollama.com 下載 Ollama,然後拉取模型(例如 ollama pull llama3)後再連線。 -provider.picker.description.docker=透過 Docker Desktop 內建的 AI 模型執行器來執行模型。無需 API 金鑰。需要 Docker Desktop 4.40+ 並啟用 Model Runner 功能。 -provider.picker.description.localai=自託管、相容 OpenAI 的本地 AI 伺服器。無需 API 金鑰。安裝 LocalAI,下載模型並啟動伺服器後再連線。 -provider.picker.description.lmstudio=透過簡單易用的桌面介面執行本地 LLM。無需 API 金鑰。從 lmstudio.ai 下載 LM Studio,拉取模型並載入,然後啟用本地伺服器後再連線。 provider.manage.title=管理服務商 provider.type.picker.title=新增 AI 提供商 provider.type.picker.select.hint=← 從列表中選擇一個提供商以查看詳細資訊 @@ -971,6 +992,8 @@ provider.template.get.apikey=獲取 API 金鑰 → # OpenAI-Compatible template taglines and setup help (see OpenAiCompatibleTemplate.kt) provider.template.cloudflare_ai.tagline=使用 Workers AI 在 Cloudflare 的全球邊緣網路上執行 AI 模型。 provider.template.cloudflare_ai.help=💡 若要使用 Cloudflare AI:\n\n1. 在您的 Cloudflare 儀表板中找到您的 Account ID\n2. 用它取代基本 URL 中的 {ACCOUNT_ID}\n3. 在以下位置建立具有「Workers AI」權限的 API 權杖:\n dash.cloudflare.com/profile/api-tokens +provider.template.deepseek.tagline=具備直覺的 OpenAI 相容 API 的推理與通用模型。 +provider.template.deepseek.help=💡 若要使用 DeepSeek:\n\n1. 在以下位置建立 API 金鑰:platform.deepseek.com/api_keys\n2. 如有需要,請為您的 DeepSeek 帳戶加值\n3. 按一下「下一步」以瀏覽可用的模型 provider.template.groq.tagline=為開源模型提供超快速推論 — Llama、Mixtral、Gemma 等。 provider.template.groq.help=💡 若要使用 Groq:\n\n1. 在 console.groq.com/keys 取得免費 API 金鑰\n2. 輸入模型名稱,例如 llama-3.1-8b-instant\n3. 按一下「下一步」以瀏覽所有可用模型 provider.template.nvidia_nim.tagline=在 NVIDIA 的雲端 GPU 基礎架構上執行最佳化的 AI 模型。 @@ -982,7 +1005,16 @@ provider.template.together_ai.help=💡 若要使用 Together AI:\n\n1. 在 ap provider.template.lite_llm.tagline=A unified proxy that lets you call 100+ LLMs using the OpenAI format. provider.search.placeholder=Search providers... provider.search.no_results=No providers found -provider.template.lite_llm.help=💡 To use LiteLLM:\n\n1. Start the LiteLLM proxy: litellm --model ollama/llama3\n2. The default URL is http://localhost:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lite_llm.help=💡 To use LiteLLM\:\n\n1. Start the LiteLLM proxy\: litellm --model ollama/llama3\n2. The default URL is http\://localhost\:4000/v1\n3. No API key is needed for local setups (set any value if prompted) +provider.template.lmstudio.tagline=使用易於使用的桌面介面執行本地大語言模型。不需要 API 金鑰。從 lmstudio.ai 下載 LM Studio 並啟用本地伺服器。 +provider.template.lmstudio.help=💡 如何使用 LM Studio:\n\n1. 從 https\://lmstudio.ai/ 安裝 LM Studio\n2. 載入模型並啟動本地伺服器(「開發者」分頁)\n3. 如果未使用預設連接埠 1234,可依需求變更基礎 URL +provider.template.docker_ai.tagline=透過 Docker Desktop 內建的模型執行器執行 AI 模型。不需要 API 金鑰。需要啟用「Model Runner」功能的 Docker Desktop 4.40 或更新版本。 +provider.template.docker_ai.help=💡 如何使用 Docker AI:\n\n1. 確保已安裝並執行 Docker Desktop 4.40+\n2. 在 Docker Desktop 設定中啟用 Model Runner 功能\n3. 拉取模型,例如:docker model pull ai/qwen3-embedding\:0.6B-F16\n4. 預設基礎 URL 為 http\://localhost\:12434/v1 +provider.template.localai.tagline=自託管、相容 OpenAI 的本地 AI 伺服器。不需要 API 金鑰。在連線前安裝 LocalAI、載入模型並啟動伺服器。 +provider.template.localai.help=💡 如何使用 LocalAI:\n\n1. 從 https\://localai.io/ 安裝 LocalAI\n2. 拉取模型並啟動伺服器\n3. 預設基礎 URL 為 http\://localhost\:8080/v1 +provider.template.ollama.tagline=在本地執行開源模型。不需要 API 金鑰。從 ollama.com 下載 Ollama,然後在連線前拉取模型(例如 ollama pull llama3)。 +provider.template.ollama.help=💡 如何使用 Ollama:\n\n1. 從 https\://ollama.com/ 安裝 Ollama\n2. 拉取模型:ollama pull llama3\n3. 預設基礎 URL 為 http\://localhost\:11434/v1 + provider.configure.new.title=Configure {0} provider.edit.title=Edit "{0}" @@ -1008,14 +1040,14 @@ provider.apikey.security.link=了解我們如何保護您的資料 provider.not.set=未設定 # Provider Configuration - OpenAI -provider.openai.apikey.description=您的 OpenAI API 金鑰(https://platform.openai.com/account/api-keys) +provider.openai.apikey.description=您的 OpenAI API 金鑰(https\://platform.openai.com/account/api-keys) provider.openai.apikey.stored=API 金鑰已儲存。留白表示保持原金鑰,或輸入新金鑰以更新。 -provider.openai.setup.help=💡 若要使用 OpenAI,您必須提供 API 金鑰。\n\n1. 前往:https://platform.openai.com/account/api-keys\n2. 於設定中輸入或使用 :change-settings +provider.openai.setup.help=💡 若要使用 OpenAI,您必須提供 API 金鑰。\n\n1. 前往:https\://platform.openai.com/account/api-keys\n2. 於設定中輸入或使用 \:change-settings # Provider Configuration - Anthropic -provider.anthropic.apikey.description=您的 Anthropic API 金鑰(https://console.anthropic.com/) +provider.anthropic.apikey.description=您的 Anthropic API 金鑰(https\://console.anthropic.com/) provider.anthropic.apikey.stored=API 金鑰已儲存。留白代表保持現有設定。 -provider.anthropic.setup.help=💡 若要使用 Anthropic,請提供 API 金鑰。\n\n1. 取得位置:https://console.anthropic.com/\n2. 在設定中輸入或使用 :change-settings +provider.anthropic.setup.help=💡 若要使用 Anthropic,請提供 API 金鑰。\n\n1. 取得位置:https\://console.anthropic.com/\n2. 在設定中輸入或使用 \:change-settings provider.anthropic.max_tokens.label=最大 Token 數 provider.anthropic.max_tokens.description=模型每次回應可生成的最大 Token 數(思考 + 回答的總和)。 provider.anthropic.thinking_budget_tokens.label=思考預算 Token 數 @@ -1024,31 +1056,17 @@ provider.anthropic.thinking_max_tokens.label=思考時最大 Token 數 provider.anthropic.thinking_max_tokens.description=啟用思考功能時的總 Token 上限(思考 + 回答)。設定為 0 以使用「最大 Token 數」代替。 # Provider Configuration - Gemini -provider.gemini.apikey.description=您的 Google AI Studio API 金鑰(https://aistudio.google.com/app/apikey) +provider.gemini.apikey.description=您的 Google AI Studio API 金鑰(https\://aistudio.google.com/app/apikey) provider.gemini.apikey.stored=API 金鑰已儲存。 -provider.gemini.setup.help=💡 若要使用 Gemini,請提供 API 金鑰。\n\n1. 取得位置:https://aistudio.google.com/app/apikey\n2. 在設定中輸入或使用 :change-settings +provider.gemini.setup.help=💡 若要使用 Gemini,請提供 API 金鑰。\n\n1. 取得位置:https\://aistudio.google.com/app/apikey\n2. 在設定中輸入或使用 \:change-settings # Provider Configuration - XAI -provider.xai.apikey.description=您的 XAI API 金鑰(https://console.x.ai/) +provider.xai.apikey.description=您的 XAI API 金鑰(https\://console.x.ai/) provider.xai.apikey.stored=API 金鑰已儲存。 -provider.xai.setup.help=💡 若要使用 XAI,請提供 API 金鑰。\n\n1. 前往:https://console.x.ai/\n2. 在設定中輸入或使用 :change-settings - -# Provider Configuration - Ollama -provider.ollama.baseurl.description=您的 Ollama 基本 URL(預設:http://localhost:11434) -provider.ollama.setup.help=💡 若要使用 Ollama,需在本機執行。\n\n1. 安裝:https://ollama.ai/\n2. 啟動服務\n3. 若非使用預設設定,可調整基本 URL +provider.xai.setup.help=💡 若要使用 XAI,請提供 API 金鑰。\n\n1. 前往:https\://console.x.ai/\n2. 在設定中輸入或使用 \:change-settings -# Provider Configuration - Docker AI -provider.docker.baseurl.description=您的 Docker AI 基本 URL(預設:http://localhost:12434) -provider.docker.setup.help=💡 若要使用 Docker AI,需在本機執行。\n\n1. 確認已安裝並執行 Docker AI\n2. 啟動服務\n3. 若非使用預設設定,可調整基本 URL -# Provider Configuration - LocalAI -provider.localai.baseurl.description=您的 LocalAI 基本 URL -provider.localai.setup.help=💡 若要使用 LocalAI,請先啟動服務。\n\n1. 安裝並啟動 LocalAI\n2. 設定可存取的 URL -# Provider Configuration - LMStudio -provider.lmstudio.baseurl.description=您的 LMStudio 基本 URL(預設:http://localhost:1234) -provider.lmstudio.setup.help=💡 若要使用 LMStudio:\n\n1. 安裝:https://lmstudio.ai/\n2. 啟動本機伺服器\n3. 若需要,調整基本 URL -provider.lmstudio.openai.compat.info=Askimo 使用 OpenAI 相容端點(/v1),而非 LMStudio 原生 API(/api/v1/)。 # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=您的OpenAI相容執行個體的基礎URL @@ -1138,10 +1156,6 @@ error.context_length=⚠️ 上下文視窗已超出限制\n\n總輸入內容( error.invalid_request=⚠️ 無效的請求:{details}\n\n請檢查輸入內容後再試一次。 error.local_server=⚠️ 本地 AI 伺服器錯誤!\n\nAI 伺服器程序崩潰或無法載入模型。這不是由 Askimo 所引起的。\n\n可能原因:\n• 模型檔案損毀或不完整 — 請嘗試重新下載\n• RAM/VRAM 不足 — 請嘗試較小的量化版本(例如 Q4 而非 Q8)\n• 目前伺服器版本不支援此模型格式\n• 伺服器程序被作業系統終止(記憶體不足)\n\n處理方式:\n1. 查看本地 AI 伺服器日誌\n2. 重新啟動伺服器後重試\n3. 重新下載模型\n4. 嘗試其他模型或量化等級\n\n技術詳情:{details} error.empty_http_response=⚠️ 伺服器在未回應的情況下關閉了連線!\n\n模型:{0}\n\n這通常是因為本地 AI 提供程式靜默丟棄了請求,而不是返回錯誤。當前請求超過了模型的上下文視窗限制。\n\n常見原因:\n• 會話歷史記錄在多輪對話中變得過長\n• 已啟用的工具在每次請求中都添加了額外資料——即使是簡單的問題,如果啟用多個工具也可能超出限制\n• 大型的附件檔案或程式碼片段導致請求超限\n\n{1}\n\n其他建議嘗試的操作:\n• 開始新的會話以重置上下文\n• 停用當前任務不需要的工具\n• 減小訊息或附件的大小 -error.empty_http_response.hint.docker=要在 Docker AI / Docker Model Runner 中增加上下文視窗:\n• 啟動模型時傳入 --context-size <值> (例如 --context-size 32768)\n• 或者在模型執行配置中進行設定 -error.empty_http_response.hint.ollama=要在 Ollama 中增加上下文視窗:\n• 在 Modelfile 中設定 num_ctx (例如 PARAMETER num_ctx 32768)\n• 或者作為參數傳入:ollama run <模型> --num-ctx 32768 -error.empty_http_response.hint.lmstudio=要在 LM Studio 中增加上下文視窗:\n• 開啟模型設定面板\n• 找到 "Context Length" 並將其調高 (例如設定為 32768 或更高,最高可達模型上限)\n• 變更設定後重啟本地伺服器 -error.empty_http_response.hint.localai=要在 LocalAI 中增加上下文視窗:\n• 編輯模型配置 YAML 並設定 context_size: 32768\n• 變更設定後重啟 LocalAI 伺服器 error.empty_http_response.hint.generic=要增加上下文視窗:\n• 檢查提供程式的設定,尋找上下文長度/大小選項並將其調高 (例如設定為 32768 token)\n• 變更設定後重啟提供程式 error.remote_server=⚠️ AI 提供商伺服器錯誤\n\n提供商伺服器返回了暫時性錯誤(例如過載或無法使用)。這不是由 Askimo 引起的。\n\n處理方式:\n• 稍等片刻後重試 — 通常只是短暫問題\n• 若問題持續,請查看提供商的狀態頁面\n\n技術詳情:{details} error.system=⚠️ 系統錯誤\n\n發生未預期的錯誤:{errorCode}\n\n請聯絡 Askimo 支援,並提供:\n• 您當時的操作\n• 上方的錯誤代碼\n• 發生的時間 @@ -1152,7 +1166,8 @@ error.model.not_available.title.embedding=嵌入模型無法使用 error.model.not_available.message.chat=模型 ''{0}'' 無法使用。 error.model.not_available.message.embedding=嵌入模型 ''{0}'' 在本地提供商中無法使用。\n\n請前往 設定 → AI 提供商,在提供商設定卡片中選擇可用的嵌入模型。 error.model.not_available.config_link=設定嵌入模型 -error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration +error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration +error.embedding_model_not_configured=⚠️ 尚未為 ''{provider}'' 設定嵌入模型。\n\n請前往 設定 → AI 提供商,在提供商設定卡片中選擇嵌入模型。 # Generic Application Errors error.app.message=發生未預期的錯誤:{0} @@ -1170,6 +1185,8 @@ error.indexing.io_error.title=IO 錯誤 error.indexing.io_error.message=索引過程中發生 IO 錯誤 error.indexing.unknown.title=索引錯誤 error.indexing.unknown.message=索引過程中發生未知錯誤 +error.indexing.failed.title=索引知識來源失敗 +error.indexing.failed_project.title=索引專案知識來源失敗 # RAG Configuration settings.rag.title=RAG 設定 @@ -1255,7 +1272,7 @@ file.viewer.copied=已複製! # Mermaid Chart Renderer mermaid.setup.required.title=需要 Mermaid CLI -mermaid.setup.instructions.link=https://askimo.chat/docs/desktop/mermaid-diagrams/ +mermaid.setup.instructions.link=https\://askimo.chat/docs/desktop/mermaid-diagrams/ mermaid.setup.button.open.guide=開啟安裝指南 mermaid.rendering.progress=正在渲染圖表... mermaid.error.rendering.title=渲染圖表時發生錯誤 @@ -1275,7 +1292,7 @@ mermaid.setup.button.download.node=下載 Node.js mermaid.setup.installing=正在安裝 Mermaid CLI... mermaid.setup.install.failed=安裝失敗。請查看下方輸出以瞭解詳情。 mermaid.setup.node.required=找不到 Node.js 和 npm。請先安裝 Node.js 以啟用一鍵安裝。 -mermaid.setup.node.link=https://nodejs.org/en/download +mermaid.setup.node.link=https\://nodejs.org/en/download mermaid.error.code.show=檢視圖表代碼 mermaid.error.code.hide=隱藏圖表代碼 @@ -1294,7 +1311,7 @@ mcp.instances.title=MCP 實例 mcp.instances.description=這些 MCP 實例可用 mcp.instances.empty=未配置 MCP 實例 mcp.instances.count={0} 個實例 -mcp.instance.server.label=伺服器: {0} +mcp.instance.server.label=伺服器\: {0} mcp.instance.delete.confirm.title=是否要刪除 MCP 實例? mcp.instance.delete.confirm.message=您確定要刪除 MCP 實例 "{0}" 嗎?此操作無法復原。 mcp.instance.enable.tooltip=啟用此 MCP 實例 @@ -1320,7 +1337,7 @@ mcp.instance.field.description=描述 mcp.instance.field.description.placeholder=此伺服器功能的簡短描述 mcp.instance.field.transport=傳輸類型 mcp.instance.field.command=命令範本 -mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2:--flag}} +mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2\:--flag}} mcp.instance.field.command.hint=包含 {{parameter}} 佔位符的空格分隔命令 mcp.instance.validation.error.empty.id=伺服器 ID 不能為空 mcp.instance.validation.error.invalid.id.pattern=伺服器 ID 只能包含小寫字母、數字和連字符 @@ -1329,20 +1346,20 @@ mcp.instance.validation.error.empty.command=命令範本不能為空 mcp.instance.validation.error.empty.parameter.key=參數鍵不能為空 mcp.instance.validation.error.empty.parameter.label=參數標籤不能為空 mcp.instance.env.label=環境變數 (可選) -mcp.instance.env.placeholder=API_KEY={{apiKey}}\nDEBUG={{debug}} -mcp.instance.env.hint=格式: KEY=值 或 KEY={{parameter}} (每行一個) +mcp.instance.env.placeholder=API_KEY\={{apiKey}}\nDEBUG\={{debug}} +mcp.instance.env.hint=格式\: KEY\=值 或 KEY\={{parameter}} (每行一個) mcp.instance.transport.stdio=Stdio (本地程序) mcp.instance.transport.http=HTTP (遠端伺服器) mcp.instance.http.url.label=URL 範本 -mcp.instance.http.url.placeholder=https://{{host}}/mcp 或 https://api.example.com/mcp +mcp.instance.http.url.placeholder=https\://{{host}}/mcp 或 https\://api.example.com/mcp mcp.instance.http.url.hint=伺服器端點 URL。可使用 {{parameter}} 佔位符用於動態值 mcp.instance.http.headers.label=HTTP 標頭 (可選) -mcp.instance.http.headers.placeholder=Authorization=Bearer {{apiKey}}\nX-Tenant-Id={{tenantId}} -mcp.instance.http.headers.hint=格式: 標頭名稱=值 或 標頭名稱={{parameter}} (每行一個) +mcp.instance.http.headers.placeholder=Authorization\=Bearer {{apiKey}}\nX-Tenant-Id\={{tenantId}} +mcp.instance.http.headers.hint=格式\: 標頭名稱\=值 或 標頭名稱\={{parameter}} (每行一個) mcp.instance.http.timeout.label=逾時時間 (ms) mcp.instance.http.timeout.hint=請求逾時時間(毫秒) mcp.instance.validation.error.empty.url=URL 範本不能為空 -mcp.instance.validation.error.invalid.url=URL 範本必須以 http:// 或 https:// 開頭 +mcp.instance.validation.error.invalid.url=URL 範本必須以 http\:// 或 https\:// 開頭 # MCP Integrations (Project View) mcp.instance.delete.tooltip=刪除 MCP 實例 @@ -1379,6 +1396,12 @@ mcp.tool.category.WEATHER.desc=天氣資料和預報 mcp.tool.category.WEB_SEARCH.desc=網路搜尋和頁面閱讀 mcp.tool.category.DATETIME.desc=日期和時間操作 mcp.tool.category.OTHER.desc=未分類工具 +mcp.tool.approval.label=批准 +mcp.tool.approval.require_approval=需要批准 +mcp.tool.approval.default=自動 +mcp.tool.approval.default.hint=自動執行。類似寫入的操作類別(檔案寫入、執行、git、訊息傳遞)預設需要批准。 +mcp.tool.approval.require_approval.hint=在 AI 執行此工具之前,總是會暫停並徵求您的確認。 +mcp.tool.enabled.label=已啟用 # MCP Tools Dialog mcp.tools.dialog.title=可用工具 - {0} @@ -1392,7 +1415,7 @@ mcp.tools.dialog.search.count={0} / {1} 個工具 mcp.tools.dialog.search.empty=沒有工具符合您的搜尋 mcp.tools.dialog.export=匯出工具 mcp.tools.dialog.export.success=已將工具匯出到 {0} -mcp.tools.dialog.export.failed=匯出工具失敗: {0} +mcp.tools.dialog.export.failed=匯出工具失敗\: {0} # MCP Server Catalog Dialog mcp.catalog.dialog.title=新增 MCP 伺服器 @@ -1588,7 +1611,7 @@ skills.view.history.empty=尚無執行記錄 skills.view.copy=複製 skills.view.system.prompt.file=檔案 skills.view.system.prompt.files=檔案 -skills.view.system.prompt.also.included=也包含在代理程式上下文中: +skills.view.system.prompt.also.included=也包含在代理程式上下文中\: skills.view.docs.tooltip=檢視技能指南 skills.view.mode.agentic=代理式 skills.view.mode.manual=手動