diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 0f262cfe..86838e78 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -6,7 +6,7 @@ app.quit.confirm=Quit Askimo? # Menu Items menu.file=File menu.new.project=New Project -menu.search.sessions=Search in Sessions +menu.search.sessions=Search in Conversations menu.export.backup=Export Backup... menu.import.backup=Import Backup... menu.invalidate.caches=Invalidate Caches... @@ -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 @@ -92,8 +93,8 @@ eventlog.footer.warning=Oldest entries have been trimmed (limit: {0}) # Chat Interface chat.new=New Chat chat.new.tooltip=New Chat ({0}+N) -chat.sessions=Sessions -chat.sessions.tooltip=View chat sessions +chat.sessions=Conversations +chat.sessions.tooltip=View conversations # Sidebar sidebar.expand=Expand sidebar @@ -122,9 +123,9 @@ discover.explore.rag.desc=Ground your AI with your own documents for more accura discover.explore.plans.title=Plans discover.explore.plans.desc=Automate multi-step AI workflows and run them on demand with a single click. discover.explore.skills.title=Skills -discover.explore.skills.desc=Run AI-powered skills backed by Gemini CLI or Claude Code directly from your workspace. -discover.recent.title=Recent Sessions -discover.recent.empty=No recent sessions yet. +discover.explore.skills.desc=Run AI-powered skills backed by Antigravity CLI or Claude Code directly from your workspace. +discover.recent.title=Recent Conversations +discover.recent.empty=No recent conversations yet. discover.tokens.period.24h=Past 24 Hours discover.tokens.period.week=Past 1 Week discover.tokens.period.month=Past 1 Month @@ -152,20 +153,20 @@ session.delete.confirm.message=Are you sure you want to delete "{0}"?\n\nThis ac session.delete.confirm.button=Delete Chat session.delete.confirm.cancel=Cancel session.export=Export -session.export.title=Export Chat Session -session.export.description=Choose a format and location to export your chat session +session.export.title=Export Conversation +session.export.description=Choose a format and location to export your conversation session.export.select.format=Select Export Format session.export.location=Save Location session.export.file.path=File Path session.export.browse=Browse session.rename.title=Rename Title session.rename.field.label=Title -session.rename.field.placeholder=Enter session title... +session.rename.field.placeholder=Enter conversation title... session.rename.error.empty=Title cannot be empty session.export.file.chooser.title=Save export file session.export.button.export=Export session.export.success.title=Export Successful -session.export.success.message=Chat session has been successfully exported to: +session.export.success.message=Conversation has been successfully exported to: # Projects project.title=Projects @@ -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 @@ -197,7 +200,7 @@ project.dialog.url.button.cancel=Cancel project.dialog.url.button.validating=Validating... project.delete=Delete Project project.delete.confirm.title=Delete Project? -project.delete.confirm.message=Are you sure you want to delete the project "{0}"?\n\nAll sessions in this project will also be permanently deleted. +project.delete.confirm.message=Are you sure you want to delete the project "{0}"?\n\nAll conversations in this project will also be permanently deleted. project.delete.confirm.button=Delete Project project.delete.confirm.cancel=Cancel project.not.found=Project not found @@ -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! @@ -235,7 +242,8 @@ projects.sources.add.button=Add Reference Material 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. @@ -243,9 +251,11 @@ projects.error.updating=Failed to update project. Please try again. projects.error.not.found=Project not found. project.update.success=Project updated successfully. project.error.loading=Failed to load project. Please try again. -project.error.loading_sessions=Failed to load project sessions. Please try again. +project.error.loading_sessions=Failed to load project conversations. 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 @@ -261,10 +271,10 @@ project.indexing.ready.tooltip=Knowledge sources are indexed and ready for AI co session.move.to.project=Move to Project session.move.to.project.new=New Project session.remove.from.project=Remove from {0} -session.move.success=Session moved to project successfully. -session.remove.success=Session removed from project. -session.error.moving=Failed to move session to project. Please try again. -session.error.removing=Failed to remove session from project. Please try again. +session.move.success=Conversation moved to project successfully. +session.remove.success=Conversation removed from project. +session.error.moving=Failed to move conversation to project. Please try again. +session.error.removing=Failed to remove conversation from project. Please try again. # Settings settings.title=Settings @@ -294,49 +304,50 @@ settings.ai.provider=AI Provider settings.network=Network settings.network.description=Configure network and proxy settings settings.mcp.servers=MCP Servers -settings.skills=Skills -settings.skills.description=Skills are reusable AI agents that run directly on your machine. Each skill is a Markdown file with a system prompt and instructions. When you run a skill, it executes via {0} — reading and writing your files, running shell commands, and iterating until the job is done. No copy-pasting required. -settings.skills.runtimes=Supported runtimes: -settings.skills.directory=Skills directory -settings.skills.open.folder=Open Folder -settings.skills.new.skill=New Skill -settings.skills.import.github=Import from GitHub -settings.skills.import.github.description=Clone a GitHub repository containing skill (.md) files into your skills directory. Requires git on PATH. -settings.skills.import.github.url.label=GitHub Repository URL -settings.skills.import.github.button=Import -settings.skills.import.github.importing=Importing… -settings.skills.import.zip=Import from ZIP -settings.skills.import.zip.description=Import a local ZIP archive that contains skill folders (each skill folder should include a skill.md entry file). -settings.skills.import.zip.picker.title=Select ZIP skill pack -settings.skills.import.zip.pick.button=Choose ZIP File -settings.skills.import.zip.button=Import ZIP -settings.skills.import.zip.importing=Importing ZIP... -settings.skills.editor.name=Name -settings.skills.editor.description=Description -settings.skills.editor.system.prompt=System Prompt -settings.skills.editor.system.prompt.placeholder=Write the system prompt here… -settings.skills.editor.system.prompt.hint=This is the instruction given to the AI when the skill is active. -settings.skills.empty=No skills found -settings.skills.empty.hint=Use the + button to create your first skill -settings.skills.select.prompt=Select a skill from the panel to view or edit it -settings.skills.editor.empty.file=Empty file -settings.skills.editor.mode.read=Read -settings.skills.editor.mode.edit=Edit -settings.skills.editor.line.count={0} line -settings.skills.editor.line.count.plural={0} lines -settings.skills.new.skill.placeholder=my-skill -settings.skills.delete.file.title=Delete file -settings.skills.delete.file.confirm=Delete "{0}"? This cannot be undone. -settings.skills.delete.folder.title=Delete folder -settings.skills.delete.folder.confirm=Delete "{0}" and all skills inside it? This cannot be undone. -settings.skills.delete.all.title=Delete All Skills -settings.skills.delete.all.confirm=Delete all skills? This will permanently remove all skill folders and cannot be undone. -settings.skills.import.success.title=Import Successful -settings.skills.import.success.message=Successfully imported {0} skill(s) into "{1}". -settings.skills.add.file=Add File -settings.skills.add.file.name=File name -settings.skills.add.folder=Add Folder -settings.skills.add.folder.name=Folder name +settings.agents=Agents & Skills +settings.agents.skills.title=Skills +settings.agents.description=Skills are reusable AI agents that run directly on your machine. Each skill is a Markdown file with a system prompt and instructions. When you run a skill, it executes via {0} — reading and writing your files, running shell commands, and iterating until the job is done. No copy-pasting required. +settings.agents.runtimes=Supported runtimes: +settings.agents.directory=Skills directory +settings.agents.open.folder=Open Folder +settings.agents.new.skill=New Skill +settings.agents.import.github=Import from GitHub +settings.agents.import.github.description=Clone a GitHub repository containing skill (.md) files into your skills directory. Requires git on PATH. +settings.agents.import.github.url.label=GitHub Repository URL +settings.agents.import.github.button=Import +settings.agents.import.github.importing=Importing… +settings.agents.import.zip=Import from ZIP +settings.agents.import.zip.description=Import a local ZIP archive that contains skill folders (each skill folder should include a skill.md entry file). +settings.agents.import.zip.picker.title=Select ZIP skill pack +settings.agents.import.zip.pick.button=Choose ZIP File +settings.agents.import.zip.button=Import ZIP +settings.agents.import.zip.importing=Importing ZIP... +settings.agents.editor.name=Name +settings.agents.editor.description=Description +settings.agents.editor.system.prompt=System Prompt +settings.agents.editor.system.prompt.placeholder=Write the system prompt here… +settings.agents.editor.system.prompt.hint=This is the instruction given to the AI when the skill is active. +settings.agents.empty=No skills found +settings.agents.empty.hint=Use the + button to create your first skill +settings.agents.select.prompt=Select a skill from the panel to view or edit it +settings.agents.editor.empty.file=Empty file +settings.agents.editor.mode.read=Read +settings.agents.editor.mode.edit=Edit +settings.agents.editor.line.count={0} line +settings.agents.editor.line.count.plural={0} lines +settings.agents.new.skill.placeholder=my-skill +settings.agents.delete.file.title=Delete file +settings.agents.delete.file.confirm=Delete "{0}"? This cannot be undone. +settings.agents.delete.folder.title=Delete folder +settings.agents.delete.folder.confirm=Delete "{0}" and all skills inside it? This cannot be undone. +settings.agents.delete.all.title=Delete All Skills +settings.agents.delete.all.confirm=Delete all skills? This will permanently remove all skill folders and cannot be undone. +settings.agents.import.success.title=Import Successful +settings.agents.import.success.message=Successfully imported {0} skill(s) into "{1}". +settings.agents.add.file=Add File +settings.agents.add.file.name=File name +settings.agents.add.folder=Add Folder +settings.agents.add.folder.name=Folder name settings.advanced=Advanced settings.about=About settings.theme=Theme @@ -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 @@ -642,7 +654,7 @@ shortcut.toggle.chat.history=Toggle Chat History shortcut.open.settings=Open Settings shortcut.stop.ai.response=Stop AI Response shortcut.quit.application=Quit Application -shortcut.navigate.to.sessions=Navigate to Sessions +shortcut.navigate.to.sessions=Navigate to Conversations shortcut.navigate.to.projects=Navigate to Projects shortcut.navigate.to.bookmarks=Navigate to Bookmarks shortcut.enter.fullscreen=Enter Full Screen @@ -655,15 +667,15 @@ shortcut.new.line=New Line # Chat View chat.welcome=Welcome to Askimo!\nStart a conversation by typing a message below. -chat.no.active.session=Select a session from the sidebar or start a new chat +chat.no.active.session=Select a conversation from the sidebar or start a new chat chat.search.placeholder=Search in conversation... chat.search.no.results=No results chat.search.not.found=No messages found matching "{0}" # Global Search -global.search.title=Search in Sessions +global.search.title=Search in Conversations global.search.query=Search Query -global.search.query.placeholder=Search across all sessions... +global.search.query.placeholder=Search across all conversations... global.search.filter.date=Date Range global.search.sort.by=Sort By global.search.button=Search @@ -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... @@ -742,15 +760,15 @@ chat.attachment.preview.more.lines={0} more lines # Sessions View session.tooltip.started=Started session.tooltip.last.activity=Last activity -sessions.title=Chat Sessions +sessions.title=Conversations sessions.col.title=Title sessions.col.created=Created sessions.col.updated=Updated sessions.error=❌ {0} -sessions.empty=No chat sessions found. -sessions.empty.hint=💡Start a new conversation to create your first session! +sessions.empty=No conversations found. +sessions.empty.hint=💡Start a new conversation to create your first one! sessions.search.placeholder=Search by title… -sessions.search.empty=No sessions match "{0}". +sessions.search.empty=No conversations match "{0}". # Generic table pagination controls table.page.size.label=Rows per page: @@ -759,12 +777,12 @@ table.page.previous=Previous page table.page.next=Next page # SessionsViewModel Errors -sessions.error.loading=Failed to load sessions. Please try again. -sessions.error.deleting=Failed to delete session. Please try again. -sessions.error.updating=Failed to update session. Please try again. -sessions.error.renaming=Failed to rename session. Please try again. -sessions.error.not.found=Session not found. -sessions.error.rename.failed=Failed to rename session. +sessions.error.loading=Failed to load conversations. Please try again. +sessions.error.deleting=Failed to delete conversation. Please try again. +sessions.error.updating=Failed to update conversation. Please try again. +sessions.error.renaming=Failed to rename conversation. Please try again. +sessions.error.not.found=Conversation not found. +sessions.error.rename.failed=Failed to rename conversation. # ChatSessionService Errors # Update Check @@ -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 @@ -880,6 +902,7 @@ log.level.trace.description=Show all log messages (most verbose) # Message Components message.loading.previous=Loading previous messages... message.thinking=Thinking... ({0}s) +message.processing=Processing... ({0}s) message.thinking.section.streaming=💭 Thinking... message.thinking.section.done=💭 Thought message.copy=Copy message @@ -935,7 +958,7 @@ bookmarks.role.user=You bookmarks.role.ai=AI # Tool call display -tool.call.header.running=Running tool... +tool.call.header.running=Running tool... ({0}s) tool.call.header.done=Used {0} tool(s) tool.call.status.done=Done tool.call.status.failed=Failed @@ -956,10 +979,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 +990,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 +1004,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 +1063,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,12 +1154,9 @@ 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.malformed_tool_call=⚠️ The AI model attempted an invalid tool call!\n\nThe model streamed an incomplete or malformed tool request (missing name/arguments). This is not caused by Askimo — it's a glitch in the AI model's or backend's function-calling output, most common with smaller or local models.\n\nWhat to do:\n1. Try sending the message again — this is usually transient\n2. If it keeps happening, try disabling some enabled tools to reduce ambiguity\n3. Consider trying a different model better suited to tool/function calling 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 # Model Availability Errors @@ -1154,6 +1166,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 +1184,7 @@ 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 # RAG Configuration settings.rag.title=RAG Configuration @@ -1342,9 +1356,13 @@ mcp.instance.http.headers.placeholder=Authorization=Bearer {{apiKey}}\nX-Tenant- mcp.instance.http.headers.hint=Format: Header-Name=value or Header-Name={{parameter}} (one per line) mcp.instance.http.timeout.label=Timeout (ms) mcp.instance.http.timeout.hint=Request timeout in milliseconds +mcp.instance.protocol.version.label=Protocol Version +mcp.instance.protocol.version.hint=Set explicitly only if auto-detection times out. Leave on "Auto-detect" for most servers. +mcp.instance.protocol.version.auto=Auto-detect mcp.instance.validation.error.empty.url=URL cannot be empty mcp.instance.validation.error.invalid.url=URL must start with http:// or https:// + # MCP Integrations (Project View) mcp.instance.delete.tooltip=Delete MCP instance mcp.instance.view.tools.tooltip=View available tools @@ -1380,6 +1398,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} @@ -1535,71 +1559,51 @@ plans.interactive.answer.placeholder=Type your answer... plans.interactive.send=Submit Answer plans.interactive.skip=Skip (leave blank) -#Skills -skills.nav.title=Skills -skills.view.title=Skills -skills.view.empty=No skills yet -skills.view.empty.hint=Create skills in Settings → Skills to get started -skills.view.empty.search=No skills match your search -skills.view.manage=Manage Skills -skills.view.select.prompt=Select a skill to run -skills.view.select.hint=Select a skill from the list on the left to run it -skills.view.run=Run Skill -skills.view.run.command=Send Command -skills.view.running=Running… -skills.view.no.agent=No agent installed -skills.view.agent.not.installed=Not installed -skills.view.agent.install.hint={0} is not installed. See the installation guide. -skills.view.agent.configure=Configure agents -skills.view.agent.needs.key={0} is installed but needs an API key to run skills. -skills.view.agent.key.placeholder=Paste API key here -skills.view.response.error=Error -skills.view.workdir.change=Change -skills.view.workdir.open=Open folder -skills.view.workspace=Workspace -skills.view.workspace.empty=No files in workspace -skills.view.workspace.copy.path=Copy Path -skills.view.workspace.open.file=Open File -skills.view.workspace.open.folder=Open Containing Folder -skills.view.workspace.new=New… -skills.view.workspace.new.folder=New Folder -skills.view.workspace.new.file=New File -skills.view.workspace.new.subfolder=New Subfolder -skills.view.workspace.new.file.here=New File Here -skills.view.workspace.name.placeholder=Name -skills.view.workspace.duplicate=Duplicate -skills.view.workspace.delete.confirm.title=Delete "{0}"? -skills.view.workspace.delete.confirm.message=This action cannot be undone. -skills.view.panel.collapse=Collapse panel -skills.view.panel.expand=Expand panel -skills.view.tab.skills=Skills -skills.view.tab.workspace=Workspace -skills.view.last.run=Last run: {0} -skills.view.category.uncategorized=Other -skills.view.search.placeholder=Search skills ... -skills.view.search.clear=Clear search -skills.view.context.placeholder=What would you like to do? (optional) -skills.view.command.mode.hint=Command mode: input starting with / runs as an agent command. -skills.view.system.prompt.preview=System Prompt -skills.view.response.title=Response -skills.view.followup.label=Follow-up -skills.view.followup.placeholder=Ask a follow-up question or request a change... -skills.view.followup.send=Send -skills.view.history.empty=No runs yet -skills.view.copy=Copy -skills.view.system.prompt.file=file -skills.view.system.prompt.files=files -skills.view.system.prompt.also.included=Also included in agent context: -skills.view.docs.tooltip=View Skills Guide -skills.view.mode.agentic=Agentic -skills.view.mode.manual=Manual +# Agents +agents.nav.title=Agents +agents.view.title=Agents +agents.view.description=Run an AI agent ({0}) directly on your machine. The agent reads and writes your files, runs shell commands, and iterates until the job is done. +agents.view.empty.search=No skills match your search +agents.view.manage=Manage Skills +agents.view.running=Running… +agents.view.no.agent=No agent installed +agents.view.agent.not.installed=Not installed +agents.view.workdir.open=Open folder +agents.view.workspace.empty=No files in workspace +agents.view.workspace.copy.path=Copy Path +agents.view.workspace.open.file=Open File +agents.view.workspace.open.folder=Open Containing Folder +agents.view.workspace.new=New… +agents.view.workspace.new.folder=New Folder +agents.view.workspace.new.file=New File +agents.view.workspace.new.subfolder=New Subfolder +agents.view.workspace.new.file.here=New File Here +agents.view.workspace.name.placeholder=Name +agents.view.workspace.duplicate=Duplicate +agents.view.workspace.delete.confirm.title=Delete "{0}"? +agents.view.workspace.delete.confirm.message=This action cannot be undone. +agents.view.workspace.switcher.title=Switch workspace +agents.view.workspace.switcher.empty=No workspaces yet +agents.view.workspace.switcher.add=Add workspace... +agents.view.workspace.switcher.pin=Pin workspace +agents.view.workspace.switcher.rename=Rename workspace +agents.view.workspace.switcher.remove.title=Remove "{0}" from workspaces? +agents.view.workspace.switcher.remove.message=This only removes it from the list — the folder and its files are not deleted. +agents.view.panel.collapse=Collapse panel +agents.view.panel.expand=Expand panel +agents.view.tab.workspace=Workspace +agents.view.tab.history=History +agents.view.search.placeholder=Search skills ... +agents.view.search.clear=Clear search +agents.view.history.empty=No runs yet +agents.view.docs.tooltip=View Agents Guide # Agentic run mode -skills.agentic.run=Run -skills.agentic.goal.placeholder=Describe your goal — the agent will select the right skills automatically… -skills.agentic.skills.available={0} skills available as agent context -skills.agentic.no.skills.hint=No skills yet — add skills in Settings → Skills to give the agent specialized capabilities -skills.agentic.model.default=Default model +agents.agentic.run=Run +agents.agentic.goal.placeholder=Describe your goal — the agent will select the right skills automatically… +agents.agentic.skills.available={0} skills available as agent context +agents.agentic.no.skills.hint=No custom skills — the agent uses its own built-in capabilities. Add skills in Settings → Agents & Skills to extend it with your own. +agents.agentic.model.default=Default model # Onboarding Wizard onboarding.title=Welcome to Askimo @@ -1668,7 +1672,7 @@ onboarding.step.ready.link.github=⭐ Star us on GitHub onboarding.step.persona.title=🎯 What do you mainly want to do? onboarding.step.persona.description=Pick the option that sounds most like your work. Askimo will show the most relevant features. You can always change this from the View menu. onboarding.step.persona.developer.description=Read and write code, refactor files, generate scaffolding, or run agentic tasks on your local project. -onboarding.step.persona.developer.features=Enables: Skills (Gemini CLI, Claude Code), Projects +onboarding.step.persona.developer.features=Enables: Skills (Antigravity CLI, Claude Code), Projects onboarding.step.persona.researcher.description=Research topics, analyse data, write structured reports, and get knowledge-grounded answers. onboarding.step.persona.researcher.features=Enables: Plans, Projects (RAG) onboarding.step.persona.manager.description=Draft emails, process meeting notes, write status reports, or run multi-step content workflows. @@ -1681,3 +1685,13 @@ persona.developer=💻 Write and review code persona.researcher=🔬 Research and analyse persona.manager=📋 Write and organise persona.everything=⚡ I do a mix of things + +# Memory pressure +memory.pressure.warning.message=Context window is getting full. +memory.pressure.critical.message=Context window is nearly full. Compress to continue, or start a new session. +memory.pressure.action.compress=Compress +memory.pressure.compressing=Compressing… +memory.pressure.chip.tooltip.normal=context used +memory.pressure.chip.tooltip.warning=context used — click to compress +memory.pressure.chip.tooltip.critical=context used — compress now +memory.pressure.chip.tooltip.unknown=Context size not yet calibrated - will update automatically after the first exchange diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index 9a882bd0..b0c4ccfb 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -6,7 +6,7 @@ app.quit.confirm=Askimo beenden? # Menu Items menu.file=Datei menu.new.project=Neues Projekt -menu.search.sessions=In Sitzungen suchen +menu.search.sessions=In Unterhaltungen suchen menu.export.backup=Sicherung exportieren... menu.import.backup=Sicherung importieren... menu.invalidate.caches=Caches ungültig machen... @@ -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,13 +88,13 @@ 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 chat.new.tooltip=Neuer Chat ({0}+N) -chat.sessions=Sitzungen -chat.sessions.tooltip=Chatsitzungen anzeigen +chat.sessions=Unterhaltungen +chat.sessions.tooltip=Unterhaltungen anzeigen # Sidebar sidebar.expand=Seitenleiste erweitern @@ -122,9 +123,9 @@ discover.explore.rag.desc=Verankern Sie Ihre KI in Ihren eigenen Dokumenten, um discover.explore.plans.title=Pläne discover.explore.plans.desc=Automatisieren Sie mehrstufige KI-Workflows und führen Sie sie bei Bedarf mit einem einzigen Klick aus. discover.explore.skills.title=Fähigkeiten -discover.explore.skills.desc=Führen Sie KI-gestützte Fähigkeiten aus, die von Gemini CLI oder Claude Code unterstützt werden, direkt aus Ihrem Arbeitsbereich. -discover.recent.title=Letzte Sitzungen -discover.recent.empty=Noch keine kürzlichen Sitzungen. +discover.explore.skills.desc=Führen Sie KI-gestützte Fähigkeiten aus, die von Antigravity CLI oder Claude Code unterstützt werden, direkt aus Ihrem Arbeitsbereich. +discover.recent.title=Letzte Unterhaltungen +discover.recent.empty=Noch keine kürzlichen Unterhaltungen. discover.tokens.period.24h=Letzte 24 Stunden discover.tokens.period.week=Letzte 1 Woche discover.tokens.period.month=Letzter 1 Monat @@ -152,20 +153,20 @@ session.delete.confirm.message=Sind Sie sicher, dass Sie "{0}" löschen möchten session.delete.confirm.button=Chat löschen session.delete.confirm.cancel=Abbrechen session.export=Exportieren -session.export.title=Chat-Sitzung exportieren -session.export.description=Wählen Sie ein Format und einen Speicherort zum Exportieren Ihrer Chat-Sitzung +session.export.title=Unterhaltung exportieren +session.export.description=Wählen Sie ein Format und einen Speicherort zum Exportieren Ihrer Unterhaltung session.export.select.format=Exportformat auswählen session.export.location=Speicherort session.export.file.path=Dateipfad session.export.browse=Durchsuchen session.rename.title=Titel umbenennen session.rename.field.label=Titel -session.rename.field.placeholder=Sitzungstitel eingeben... +session.rename.field.placeholder=Titel der Unterhaltung eingeben... 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 Unterhaltung 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 @@ -197,7 +200,7 @@ project.dialog.url.button.cancel=Abbrechen project.dialog.url.button.validating=Wird überprüft... project.delete=Projekt löschen project.delete.confirm.title=Projekt löschen? -project.delete.confirm.message=Möchten Sie das Projekt „{0}“ wirklich löschen?\n\nAlle Sitzungen in diesem Projekt werden ebenfalls dauerhaft gelöscht. +project.delete.confirm.message=Möchten Sie das Projekt „{0}“ wirklich löschen?\n\nAlle Unterhaltungen in diesem Projekt werden ebenfalls dauerhaft gelöscht. project.delete.confirm.button=Projekt löschen project.delete.confirm.cancel=Abbrechen project.not.found=Projekt nicht gefunden @@ -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 @@ -235,7 +245,8 @@ projects.sources.add.button=Referenzmaterial hinzufügen 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. @@ -243,17 +254,19 @@ projects.error.updating=Projekt konnte nicht aktualisiert werden. Bitte versuche projects.error.not.found=Projekt nicht gefunden. project.update.success=Projekt erfolgreich aktualisiert. project.error.loading=Projekt konnte nicht geladen werden. Bitte versuchen Sie es erneut. -project.error.loading_sessions=Projektsitzungen konnten nicht geladen werden. Bitte versuchen Sie es erneut. +project.error.loading_sessions=Projektunterhaltungen 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 @@ -261,10 +274,10 @@ project.indexing.ready.tooltip=Wissensquellen sind indiziert und bereit für den session.move.to.project=In Projekt verschieben session.move.to.project.new=Neues Projekt session.remove.from.project=Aus {0} entfernen -session.move.success=Sitzung erfolgreich in das Projekt verschoben. -session.remove.success=Sitzung aus dem Projekt entfernt. -session.error.moving=Sitzung konnte nicht in das Projekt verschoben werden. Bitte versuchen Sie es erneut. -session.error.removing=Sitzung konnte nicht aus dem Projekt entfernt werden. Bitte versuchen Sie es erneut. +session.move.success=Unterhaltung erfolgreich in das Projekt verschoben. +session.remove.success=Unterhaltung aus dem Projekt entfernt. +session.error.moving=Unterhaltung konnte nicht in das Projekt verschoben werden. Bitte versuchen Sie es erneut. +session.error.removing=Unterhaltung konnte nicht aus dem Projekt entfernt werden. Bitte versuchen Sie es erneut. # Settings settings.title=Einstellungen @@ -272,7 +285,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 @@ -294,49 +307,50 @@ settings.ai.provider=KI-Anbieter settings.network=Netzwerk 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.directory=Fähigkeitenverzeichnis -settings.skills.open.folder=Ordner öffnen -settings.skills.new.skill=Neue Fähigkeit -settings.skills.import.github=Aus GitHub importieren -settings.skills.import.github.description=Klone ein GitHub-Repository mit Skill-Dateien (.md) in dein Fähigkeitenverzeichnis. Erfordert git auf PATH. -settings.skills.import.github.url.label=GitHub-Repository-URL -settings.skills.import.github.button=Importieren -settings.skills.import.github.importing=Wird importiert… -settings.skills.import.zip=Aus ZIP importieren -settings.skills.import.zip.description=Ein lokales ZIP-Archiv importieren, das Skill-Ordner enthält (jeder Skill-Ordner sollte eine skill.md-Datei enthalten). -settings.skills.import.zip.picker.title=ZIP-Skill-Paket auswählen -settings.skills.import.zip.pick.button=ZIP-Datei auswählen -settings.skills.import.zip.button=ZIP importieren -settings.skills.import.zip.importing=ZIP wird importiert... -settings.skills.editor.name=Name -settings.skills.editor.description=Beschreibung -settings.skills.editor.system.prompt=System-Prompt -settings.skills.editor.system.prompt.placeholder=Schreibe den System-Prompt hier… -settings.skills.editor.system.prompt.hint=Dies ist die Anweisung, die der KI gegeben wird, wenn die Fähigkeit aktiv ist. -settings.skills.empty=Keine Fähigkeiten gefunden -settings.skills.empty.hint=Verwende die Schaltfläche +, um deine erste Fähigkeit zu erstellen -settings.skills.select.prompt=Wähle eine Fähigkeit aus dem Bereich aus, um sie anzuzeigen oder zu bearbeiten -settings.skills.editor.empty.file=Leere Datei -settings.skills.editor.mode.read=Lesen -settings.skills.editor.mode.edit=Bearbeiten -settings.skills.editor.line.count={0} Zeile -settings.skills.editor.line.count.plural={0} Zeilen -settings.skills.new.skill.placeholder=my-skill -settings.skills.delete.file.title=Datei löschen -settings.skills.delete.file.confirm="{0}" löschen? Dies kann nicht rückgängig gemacht werden. -settings.skills.delete.folder.title=Ordner löschen -settings.skills.delete.folder.confirm="{0}" und alle darin enthaltenen Fähigkeiten löschen? Dies kann nicht rückgängig gemacht werden. -settings.skills.delete.all.title=Alle Fähigkeiten löschen -settings.skills.delete.all.confirm=Alle Fähigkeiten löschen? Dadurch werden alle Fähigkeitsordner dauerhaft entfernt und dies kann nicht rückgängig gemacht werden. -settings.skills.import.success.title=Import erfolgreich -settings.skills.import.success.message={0} Fertigkeit(en) erfolgreich in "{1}" importiert. -settings.skills.add.file=Datei hinzufügen -settings.skills.add.file.name=Dateiname -settings.skills.add.folder=Ordner hinzufügen -settings.skills.add.folder.name=Ordnername +settings.agents=Agenten & Fähigkeiten +settings.agents.skills.title=Fähigkeiten +settings.agents.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.agents.runtimes=Unterstützte Laufzeitumgebungen\: +settings.agents.directory=Fähigkeitenverzeichnis +settings.agents.open.folder=Ordner öffnen +settings.agents.new.skill=Neue Fähigkeit +settings.agents.import.github=Aus GitHub importieren +settings.agents.import.github.description=Klone ein GitHub-Repository mit Skill-Dateien (.md) in dein Fähigkeitenverzeichnis. Erfordert git auf PATH. +settings.agents.import.github.url.label=GitHub-Repository-URL +settings.agents.import.github.button=Importieren +settings.agents.import.github.importing=Wird importiert… +settings.agents.import.zip=Aus ZIP importieren +settings.agents.import.zip.description=Ein lokales ZIP-Archiv importieren, das Skill-Ordner enthält (jeder Skill-Ordner sollte eine skill.md-Datei enthalten). +settings.agents.import.zip.picker.title=ZIP-Skill-Paket auswählen +settings.agents.import.zip.pick.button=ZIP-Datei auswählen +settings.agents.import.zip.button=ZIP importieren +settings.agents.import.zip.importing=ZIP wird importiert... +settings.agents.editor.name=Name +settings.agents.editor.description=Beschreibung +settings.agents.editor.system.prompt=System-Prompt +settings.agents.editor.system.prompt.placeholder=Schreibe den System-Prompt hier… +settings.agents.editor.system.prompt.hint=Dies ist die Anweisung, die der KI gegeben wird, wenn die Fähigkeit aktiv ist. +settings.agents.empty=Keine Fähigkeiten gefunden +settings.agents.empty.hint=Verwende die Schaltfläche +, um deine erste Fähigkeit zu erstellen +settings.agents.select.prompt=Wähle eine Fähigkeit aus dem Bereich aus, um sie anzuzeigen oder zu bearbeiten +settings.agents.editor.empty.file=Leere Datei +settings.agents.editor.mode.read=Lesen +settings.agents.editor.mode.edit=Bearbeiten +settings.agents.editor.line.count={0} Zeile +settings.agents.editor.line.count.plural={0} Zeilen +settings.agents.new.skill.placeholder=my-skill +settings.agents.delete.file.title=Datei löschen +settings.agents.delete.file.confirm="{0}" löschen? Dies kann nicht rückgängig gemacht werden. +settings.agents.delete.folder.title=Ordner löschen +settings.agents.delete.folder.confirm="{0}" und alle darin enthaltenen Fähigkeiten löschen? Dies kann nicht rückgängig gemacht werden. +settings.agents.delete.all.title=Alle Fähigkeiten löschen +settings.agents.delete.all.confirm=Alle Fähigkeiten löschen? Dadurch werden alle Fähigkeitsordner dauerhaft entfernt und dies kann nicht rückgängig gemacht werden. +settings.agents.import.success.title=Import erfolgreich +settings.agents.import.success.message={0} Fertigkeit(en) erfolgreich in "{1}" importiert. +settings.agents.add.file=Datei hinzufügen +settings.agents.add.file.name=Dateiname +settings.agents.add.folder=Ordner hinzufügen +settings.agents.add.folder.name=Ordnername settings.advanced=Erweitert settings.about=Über settings.theme=Design @@ -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 @@ -642,7 +657,7 @@ shortcut.toggle.chat.history=Chatverlauf ein-/ausblenden shortcut.open.settings=Einstellungen öffnen shortcut.stop.ai.response=KI-Antwort stoppen shortcut.quit.application=Anwendung beenden -shortcut.navigate.to.sessions=Zu Sitzungen navigieren +shortcut.navigate.to.sessions=Zu Unterhaltungen navigieren shortcut.navigate.to.projects=Zu Projekten navigieren shortcut.navigate.to.bookmarks=Zu Lesezeichen navigieren shortcut.enter.fullscreen=Vollbildmodus aktivieren @@ -654,16 +669,16 @@ 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.no.active.session=Wählen Sie eine Sitzung in der Seitenleiste aus oder starten Sie einen neuen Chat +chat.welcome=Willkommen bei Askimo\!\nBeginnen Sie eine Unterhaltung, indem Sie unten eine Nachricht eingeben. +chat.no.active.session=Wählen Sie eine Unterhaltung in der Seitenleiste aus oder starten Sie einen neuen Chat chat.search.placeholder=Im Gespräch suchen... chat.search.no.results=Keine Ergebnisse chat.search.not.found=Keine Nachrichten entsprechen „{0}" # Global Search -global.search.title=In Sitzungen suchen +global.search.title=In Unterhaltungen suchen global.search.query=Suchanfrage -global.search.query.placeholder=In allen Sitzungen suchen... +global.search.query.placeholder=In allen Unterhaltungen suchen... global.search.filter.date=Zeitraum global.search.sort.by=Sortieren nach global.search.button=Suchen @@ -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,40 +757,40 @@ 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 session.tooltip.started=Gestartet session.tooltip.last.activity=Letzte Aktivität -sessions.title=Chatsitzungen +sessions.title=Unterhaltungen sessions.col.title=Titel 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=Keine Unterhaltungen gefunden. +sessions.empty.hint=💡 Starten Sie eine neue Unterhaltung, um Ihre erste zu erstellen\! sessions.search.placeholder=Nach Titel suchen… -sessions.search.empty=Keine Sitzungen entsprechen "{0}". +sessions.search.empty=Keine Unterhaltungen 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 # SessionsViewModel Errors -sessions.error.loading=Sitzungen konnten nicht geladen werden. Bitte erneut versuchen. -sessions.error.deleting=Sitzung konnte nicht gelöscht werden. Bitte erneut versuchen. -sessions.error.updating=Sitzung konnte nicht aktualisiert werden. Bitte erneut versuchen. -sessions.error.renaming=Umbenennen der Sitzung fehlgeschlagen. Bitte erneut versuchen. -sessions.error.not.found=Sitzung nicht gefunden. +sessions.error.loading=Unterhaltungen konnten nicht geladen werden. Bitte erneut versuchen. +sessions.error.deleting=Unterhaltung konnte nicht gelöscht werden. Bitte erneut versuchen. +sessions.error.updating=Unterhaltung konnte nicht aktualisiert werden. Bitte erneut versuchen. +sessions.error.renaming=Umbenennen der Unterhaltung fehlgeschlagen. Bitte erneut versuchen. +sessions.error.not.found=Unterhaltung nicht gefunden. 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 @@ -880,6 +905,7 @@ log.level.trace.description=Alle Log-Nachrichten anzeigen (sehr detailliert) # Message Components message.loading.previous=Vorherige Nachrichten werden geladen... message.thinking=Denke nach… ({0}s) +message.processing=Verarbeite… ({0}s) message.thinking.section.streaming=💭 Denkt... message.thinking.section.done=💭 Gedanke message.copy=Nachricht kopieren @@ -919,7 +945,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 @@ -935,7 +961,7 @@ bookmarks.role.user=Du bookmarks.role.ai=KI # Tool call display -tool.call.header.running=Tool wird ausgeführt... +tool.call.header.running=Tool wird ausgeführt... ({0}s) tool.call.header.done={0} Tool(s) verwendet tool.call.status.done=Fertig tool.call.status.failed=Fehlgeschlagen @@ -956,10 +982,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 +992,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 +1032,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 +1041,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 +1057,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 +1085,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 +1096,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 +1146,21 @@ 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.malformed_tool_call=⚠️ Das KI-Modell hat einen ungültigen Tool-Aufruf versucht\!\n\nDas Modell hat eine unvollständige oder fehlerhafte Tool-Anfrage gestreamt (Name/Argumente fehlen). Dies wird nicht durch Askimo verursacht — es handelt sich um einen Fehler in der Funktionsaufruf-Ausgabe des KI-Modells oder Backends, der bei kleineren oder lokalen Modellen am häufigsten auftritt.\n\nWas zu tun ist\:\n1. Versuchen Sie, die Nachricht erneut zu senden — dies ist normalerweise vorübergehend\n2. Wenn es weiterhin auftritt, deaktivieren Sie einige aktivierte Tools, um Mehrdeutigkeiten zu reduzieren\n3. Erwägen Sie, ein anderes Modell zu verwenden, das besser für Tool-/Funktionsaufrufe geeignet ist +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 +1168,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 +1187,27 @@ 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 # 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 +1226,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 +1269,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 +1286,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 +1312,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 +1338,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 +1347,24 @@ 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.protocol.version.label=Protokollversion +mcp.instance.protocol.version.hint=Nur explizit festlegen, wenn die automatische Erkennung ein Timeout hat. Für die meisten Server bei „Automatisch erkennen" belassen. +mcp.instance.protocol.version.auto=Automatisch erkennen 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 +1401,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 +1420,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 +1476,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 +1492,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 +1501,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 +1542,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... @@ -1534,71 +1562,51 @@ plans.interactive.answer.placeholder=Gib deine Antwort ein... plans.interactive.send=Antwort absenden plans.interactive.skip=Überspringen (leer lassen) -#Skills -skills.nav.title=Fähigkeiten -skills.view.title=Fähigkeiten -skills.view.empty=Noch keine Fähigkeiten -skills.view.empty.hint=Erstelle Fähigkeiten unter Einstellungen → Fähigkeiten, um loszulegen -skills.view.empty.search=Keine Fertigkeiten entsprechen Ihrer Suche -skills.view.manage=Skills verwalten -skills.view.select.prompt=Wählen Sie eine Skill aus -skills.view.select.hint=Wählen Sie eine Skill aus dem Skills-Panel auf der rechten Seite -skills.view.run=Fähigkeit ausführen -skills.view.run.command=Befehl senden -skills.view.running=Wird ausgeführt… -skills.view.no.agent=Kein Agent installiert -skills.view.agent.not.installed=Nicht installiert -skills.view.agent.install.hint={0} ist nicht installiert. Siehe die Installationsanleitung. -skills.view.agent.configure=Agenten konfigurieren -skills.view.agent.needs.key={0} ist installiert, benötigt aber einen API-Schlüssel, um Fähigkeiten auszuführen. -skills.view.agent.key.placeholder=API-Schlüssel hier einfügen -skills.view.response.error=Fehler -skills.view.workdir.change=Ändern -skills.view.workdir.open=Ordner öffnen -skills.view.workspace=Arbeitsbereich -skills.view.workspace.empty=Keine Dateien im Arbeitsbereich -skills.view.workspace.copy.path=Pfad kopieren -skills.view.workspace.open.file=Datei öffnen -skills.view.workspace.open.folder=Enthaltenden Ordner öffnen -skills.view.workspace.new=Neu… -skills.view.workspace.new.folder=Neuer Ordner -skills.view.workspace.new.file=Neue Datei -skills.view.workspace.new.subfolder=Neuer Unterordner -skills.view.workspace.new.file.here=Neue Datei hier -skills.view.workspace.name.placeholder=Name -skills.view.workspace.duplicate=Duplizieren -skills.view.workspace.delete.confirm.title=„{0}" löschen? -skills.view.workspace.delete.confirm.message=Diese Aktion kann nicht rückgängig gemacht werden. -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.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.system.prompt.preview=System-Prompt -skills.view.response.title=Antwort -skills.view.followup.label=Nachfrage -skills.view.followup.placeholder=Stelle eine Nachfrage oder fordere eine Änderung an... -skills.view.followup.send=Senden -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.docs.tooltip=Fertigkeitsanleitung anzeigen -skills.view.mode.agentic=Agentisch -skills.view.mode.manual=Manuell +# Agents +agents.nav.title=Agenten +agents.view.title=Agenten +agents.view.description=Führe einen KI-Agenten ({0}) direkt auf deinem Computer aus. Der Agent liest und schreibt deine Dateien, führt Shell-Befehle aus und wiederholt dies, bis die Aufgabe erledigt ist. +agents.view.empty.search=Keine Skills gefunden +agents.view.manage=Skills verwalten +agents.view.running=Läuft… +agents.view.no.agent=Kein Agent installiert +agents.view.agent.not.installed=Nicht installiert +agents.view.workdir.open=Ordner öffnen +agents.view.workspace.empty=Keine Dateien im Arbeitsbereich +agents.view.workspace.copy.path=Pfad kopieren +agents.view.workspace.open.file=Datei öffnen +agents.view.workspace.open.folder=Enthaltenden Ordner öffnen +agents.view.workspace.new=Neu… +agents.view.workspace.new.folder=Neuer Ordner +agents.view.workspace.new.file=Neue Datei +agents.view.workspace.new.subfolder=Neuer Unterordner +agents.view.workspace.new.file.here=Neue Datei hier +agents.view.workspace.name.placeholder=Name +agents.view.workspace.duplicate=Duplizieren +agents.view.workspace.delete.confirm.title=„{0}" löschen? +agents.view.workspace.delete.confirm.message=Diese Aktion kann nicht rückgängig gemacht werden. +agents.view.workspace.switcher.title=Arbeitsbereich wechseln +agents.view.workspace.switcher.empty=Noch keine Arbeitsbereiche +agents.view.workspace.switcher.add=Arbeitsbereich hinzufügen... +agents.view.workspace.switcher.pin=Arbeitsbereich anheften +agents.view.workspace.switcher.rename=Arbeitsbereich umbenennen +agents.view.workspace.switcher.remove.title=„{0}" aus Arbeitsbereichen entfernen? +agents.view.workspace.switcher.remove.message=Nur aus der Liste entfernt — der Ordner und seine Dateien werden nicht gelöscht. +agents.view.panel.collapse=Panel einklappen +agents.view.panel.expand=Panel ausklappen +agents.view.tab.workspace=Arbeitsbereich +agents.view.tab.history=Verlauf +agents.view.search.placeholder=Skills durchsuchen ... +agents.view.search.clear=Suche löschen +agents.view.history.empty=Noch keine Ausführungen +agents.view.docs.tooltip=Agenten-Anleitung anzeigen # Agentic run mode -skills.agentic.run=Ausführen -skills.agentic.goal.placeholder=Beschreibe dein Ziel — der Agent wählt automatisch die passenden Fähigkeiten aus… -skills.agentic.skills.available={0} Fähigkeiten als Agent-Kontext verfügbar -skills.agentic.no.skills.hint=Noch keine Fähigkeiten — füge in Einstellungen → Fähigkeiten Fähigkeiten hinzu, um dem Agenten spezielle Funktionen zu geben -skills.agentic.model.default=Standardmodell +agents.agentic.run=Ausführen +agents.agentic.goal.placeholder=Beschreibe dein Ziel — der Agent wählt automatisch die passenden Skills aus… +agents.agentic.skills.available={0} Skills als Agentenkontext verfügbar +agents.agentic.no.skills.hint=Keine eigenen Skills — der Agent nutzt seine eingebauten Fähigkeiten. Füge unter Einstellungen → Agenten & Skills eigene Skills hinzu. +agents.agentic.model.default=Standardmodell # Onboarding Wizard onboarding.title=Willkommen bei Askimo @@ -1628,7 +1636,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 +1665,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,16 +1675,26 @@ 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 (Antigravity 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 persona.researcher=🔬 Recherchieren und analysieren persona.manager=📋 Schreiben und organisieren persona.everything=⚡ Ich mache eine Mischung aus Dingen + +# Memory pressure +memory.pressure.warning.message=Kontextfenster wird voll. +memory.pressure.critical.message=Kontextfenster ist fast voll. Komprimieren, um fortzufahren, oder neue Sitzung starten. +memory.pressure.action.compress=Komprimieren +memory.pressure.compressing=Komprimiere… +memory.pressure.chip.tooltip.normal=Kontext verwendet +memory.pressure.chip.tooltip.warning=Kontext verwendet — zum Komprimieren klicken +memory.pressure.chip.tooltip.critical=Kontext verwendet — jetzt komprimieren +memory.pressure.chip.tooltip.unknown=Kontextgröße noch nicht kalibriert — wird nach dem ersten Austausch automatisch aktualisiert diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index c04836fe..1f7a52f6 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -6,7 +6,7 @@ app.quit.confirm=¿Salir de Askimo? # Menu Items menu.file=Archivo menu.new.project=Nuevo proyecto -menu.search.sessions=Buscar en sesiones +menu.search.sessions=Buscar en conversaciones menu.export.backup=Exportar copia de seguridad... menu.import.backup=Importar copia de seguridad... menu.invalidate.caches=Invalidar cachés... @@ -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,13 +88,13 @@ 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 chat.new.tooltip=Nuevo chat ({0}+N) -chat.sessions=Sesiones -chat.sessions.tooltip=Ver sesiones de chat +chat.sessions=Conversaciones +chat.sessions.tooltip=Ver conversaciones # Sidebar sidebar.expand=Expandir barra lateral @@ -122,9 +123,9 @@ discover.explore.rag.desc=Fundamenta tu IA con tus propios documentos para obten discover.explore.plans.title=Planes discover.explore.plans.desc=Automatiza flujos de trabajo de IA de varios pasos y ejecútalos bajo demanda con un solo clic. discover.explore.skills.title=Habilidades -discover.explore.skills.desc=Ejecuta habilidades impulsadas por IA respaldadas por Gemini CLI o Claude Code directamente desde tu espacio de trabajo. -discover.recent.title=Sesiones recientes -discover.recent.empty=Aún no hay sesiones recientes. +discover.explore.skills.desc=Ejecuta habilidades impulsadas por IA respaldadas por Antigravity CLI o Claude Code directamente desde tu espacio de trabajo. +discover.recent.title=Conversaciones recientes +discover.recent.empty=Aún no hay conversaciones recientes. discover.tokens.period.24h=Últimas 24 horas discover.tokens.period.week=Última semana discover.tokens.period.month=Último mes @@ -152,20 +153,20 @@ session.delete.confirm.message=¿Seguro que quieres eliminar "{0}"?\n\nEsta acci session.delete.confirm.button=Eliminar chat session.delete.confirm.cancel=Cancelar session.export=Exportar -session.export.title=Exportar sesión de chat -session.export.description=Elija un formato y una ubicación para exportar su sesión de chat +session.export.title=Exportar conversación +session.export.description=Elija un formato y una ubicación para exportar su conversación session.export.select.format=Seleccionar formato de exportación session.export.location=Ubicación de guardado session.export.file.path=Ruta del archivo session.export.browse=Examinar session.rename.title=Renombrar título session.rename.field.label=Título -session.rename.field.placeholder=Escribe el título de la sesión... +session.rename.field.placeholder=Escribe el título de la conversación... 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 conversació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 @@ -197,7 +200,7 @@ project.dialog.url.button.cancel=Cancelar project.dialog.url.button.validating=Validando... project.delete=Eliminar proyecto project.delete.confirm.title=¿Eliminar proyecto? -project.delete.confirm.message=¿Seguro que deseas eliminar el proyecto "{0}"?\n\nTodas las sesiones de este proyecto también se eliminarán permanentemente. +project.delete.confirm.message=¿Seguro que deseas eliminar el proyecto "{0}"?\n\nTodas las conversaciones de este proyecto también se eliminarán permanentemente. project.delete.confirm.button=Eliminar proyecto project.delete.confirm.cancel=Cancelar project.not.found=Proyecto no encontrado @@ -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 @@ -235,7 +245,8 @@ projects.sources.add.button=Agregar material de referencia 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. @@ -243,17 +254,19 @@ projects.error.updating=No se pudo actualizar el proyecto. Por favor, inténtalo projects.error.not.found=Proyecto no encontrado. project.update.success=Proyecto actualizado correctamente. project.error.loading=Error al cargar el proyecto. Por favor, inténtelo de nuevo. -project.error.loading_sessions=Error al cargar las sesiones del proyecto. Por favor, inténtelo de nuevo. +project.error.loading_sessions=Error al cargar las conversaciones 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 @@ -261,10 +274,10 @@ project.indexing.ready.tooltip=Las fuentes de conocimiento están indexadas y li session.move.to.project=Mover al proyecto session.move.to.project.new=Nuevo proyecto session.remove.from.project=Eliminar de {0} -session.move.success=Sesión movida al proyecto correctamente. -session.remove.success=Sesión eliminada del proyecto. -session.error.moving=Error al mover la sesión al proyecto. Por favor, inténtelo de nuevo. -session.error.removing=Error al eliminar la sesión del proyecto. Por favor, inténtelo de nuevo. +session.move.success=Conversación movida al proyecto correctamente. +session.remove.success=Conversación eliminada del proyecto. +session.error.moving=Error al mover la conversación al proyecto. Por favor, inténtelo de nuevo. +session.error.removing=Error al eliminar la conversación del proyecto. Por favor, inténtelo de nuevo. # Settings settings.title=Configuración @@ -272,7 +285,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 @@ -294,49 +307,50 @@ settings.ai.provider=Proveedor de IA settings.network=Red 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.directory=Directorio de habilidades -settings.skills.open.folder=Abrir carpeta -settings.skills.new.skill=Nueva habilidad -settings.skills.import.github=Importar desde GitHub -settings.skills.import.github.description=Clona un repositorio de GitHub que contiene archivos de habilidades (.md) en tu directorio de habilidades. Requiere git en PATH. -settings.skills.import.github.url.label=URL del repositorio de GitHub -settings.skills.import.github.button=Importar -settings.skills.import.github.importing=Importando… -settings.skills.import.zip=Importar desde ZIP -settings.skills.import.zip.description=Importa un archivo ZIP local que contenga carpetas de habilidades (cada carpeta debe incluir un archivo skill.md). -settings.skills.import.zip.picker.title=Seleccionar paquete ZIP de habilidades -settings.skills.import.zip.pick.button=Elegir archivo ZIP -settings.skills.import.zip.button=Importar ZIP -settings.skills.import.zip.importing=Importando ZIP... -settings.skills.editor.name=Nombre -settings.skills.editor.description=Descripción -settings.skills.editor.system.prompt=Prompt del sistema -settings.skills.editor.system.prompt.placeholder=Escribe aquí el prompt del sistema… -settings.skills.editor.system.prompt.hint=Esta es la instrucción que se da a la IA cuando la habilidad está activa. -settings.skills.empty=No se encontraron habilidades -settings.skills.empty.hint=Usa el botón + para crear tu primera habilidad -settings.skills.select.prompt=Selecciona una habilidad del panel para verla o editarla -settings.skills.editor.empty.file=Archivo vacío -settings.skills.editor.mode.read=Leer -settings.skills.editor.mode.edit=Editar -settings.skills.editor.line.count={0} línea -settings.skills.editor.line.count.plural={0} líneas -settings.skills.new.skill.placeholder=my-skill -settings.skills.delete.file.title=Eliminar archivo -settings.skills.delete.file.confirm=¿Eliminar "{0}"? Esta acción no se puede deshacer. -settings.skills.delete.folder.title=Eliminar carpeta -settings.skills.delete.folder.confirm=¿Eliminar "{0}" y todas las habilidades que contiene? Esta acción no se puede deshacer. -settings.skills.delete.all.title=Eliminar todas las habilidades -settings.skills.delete.all.confirm=¿Eliminar todas las habilidades? Esto eliminará permanentemente todas las carpetas de habilidades y no se puede deshacer. -settings.skills.import.success.title=Importación correcta -settings.skills.import.success.message=Se han importado correctamente {0} habilidad(es) en "{1}". -settings.skills.add.file=Añadir archivo -settings.skills.add.file.name=Nombre de archivo -settings.skills.add.folder=Añadir carpeta -settings.skills.add.folder.name=Nombre de carpeta +settings.agents=Agentes y habilidades +settings.agents.skills.title=Habilidades +settings.agents.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.agents.runtimes=Entornos de ejecución compatibles\: +settings.agents.directory=Directorio de habilidades +settings.agents.open.folder=Abrir carpeta +settings.agents.new.skill=Nueva habilidad +settings.agents.import.github=Importar desde GitHub +settings.agents.import.github.description=Clona un repositorio de GitHub que contiene archivos de habilidades (.md) en tu directorio de habilidades. Requiere git en PATH. +settings.agents.import.github.url.label=URL del repositorio de GitHub +settings.agents.import.github.button=Importar +settings.agents.import.github.importing=Importando… +settings.agents.import.zip=Importar desde ZIP +settings.agents.import.zip.description=Importa un archivo ZIP local que contenga carpetas de habilidades (cada carpeta debe incluir un archivo skill.md). +settings.agents.import.zip.picker.title=Seleccionar paquete ZIP de habilidades +settings.agents.import.zip.pick.button=Elegir archivo ZIP +settings.agents.import.zip.button=Importar ZIP +settings.agents.import.zip.importing=Importando ZIP... +settings.agents.editor.name=Nombre +settings.agents.editor.description=Descripción +settings.agents.editor.system.prompt=Prompt del sistema +settings.agents.editor.system.prompt.placeholder=Escribe aquí el prompt del sistema… +settings.agents.editor.system.prompt.hint=Esta es la instrucción que se da a la IA cuando la habilidad está activa. +settings.agents.empty=No se encontraron habilidades +settings.agents.empty.hint=Usa el botón + para crear tu primera habilidad +settings.agents.select.prompt=Selecciona una habilidad del panel para verla o editarla +settings.agents.editor.empty.file=Archivo vacío +settings.agents.editor.mode.read=Leer +settings.agents.editor.mode.edit=Editar +settings.agents.editor.line.count={0} línea +settings.agents.editor.line.count.plural={0} líneas +settings.agents.new.skill.placeholder=my-skill +settings.agents.delete.file.title=Eliminar archivo +settings.agents.delete.file.confirm=¿Eliminar "{0}"? Esta acción no se puede deshacer. +settings.agents.delete.folder.title=Eliminar carpeta +settings.agents.delete.folder.confirm=¿Eliminar "{0}" y todas las habilidades que contiene? Esta acción no se puede deshacer. +settings.agents.delete.all.title=Eliminar todas las habilidades +settings.agents.delete.all.confirm=¿Eliminar todas las habilidades? Esto eliminará permanentemente todas las carpetas de habilidades y no se puede deshacer. +settings.agents.import.success.title=Importación correcta +settings.agents.import.success.message=Se han importado correctamente {0} habilidad(es) en "{1}". +settings.agents.add.file=Añadir archivo +settings.agents.add.file.name=Nombre de archivo +settings.agents.add.folder=Añadir carpeta +settings.agents.add.folder.name=Nombre de carpeta settings.advanced=Avanzado settings.about=Acerca de settings.theme=Tema @@ -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. @@ -642,7 +657,7 @@ shortcut.toggle.chat.history=Mostrar/Ocultar historial de chat shortcut.open.settings=Abrir configuración shortcut.stop.ai.response=Detener respuesta de la IA shortcut.quit.application=Salir de la aplicación -shortcut.navigate.to.sessions=Ir a sesiones +shortcut.navigate.to.sessions=Ir a conversaciones shortcut.navigate.to.projects=Ir a Proyectos shortcut.navigate.to.bookmarks=Navegar a marcadores shortcut.enter.fullscreen=Entrar en pantalla completa @@ -654,16 +669,16 @@ 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.no.active.session=Seleccione una sesión en la barra lateral o inicie un nuevo chat +chat.welcome=¡Bienvenido a Askimo\!\nComienza una conversación escribiendo un mensaje abajo. +chat.no.active.session=Seleccione una conversación en la barra lateral o inicie un nuevo chat chat.search.placeholder=Buscar en la conversación... chat.search.no.results=Sin resultados chat.search.not.found=No hay mensajes que coincidan con "{0}" # Global Search -global.search.title=Buscar en sesiones +global.search.title=Buscar en conversaciones global.search.query=Consulta de búsqueda -global.search.query.placeholder=Buscar en todas las sesiones... +global.search.query.placeholder=Buscar en todas las conversaciones... global.search.filter.date=Rango de fechas global.search.sort.by=Ordenar por global.search.button=Buscar @@ -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,40 +757,40 @@ 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 session.tooltip.started=Iniciado session.tooltip.last.activity=Última actividad -sessions.title=Sesiones de chat +sessions.title=Conversaciones sessions.col.title=Título 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=No se encontraron conversaciones. +sessions.empty.hint=💡 ¡Inicia un chat nuevo para crear tu primera conversación\! sessions.search.placeholder=Buscar por título… -sessions.search.empty=Ninguna sesión coincide con "{0}". +sessions.search.empty=Ninguna conversació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 # SessionsViewModel Errors -sessions.error.loading=No se pudieron cargar las sesiones. Intenta de nuevo. -sessions.error.deleting=No se pudo eliminar la sesión. Intenta de nuevo. -sessions.error.updating=No se pudo actualizar la sesión. Intenta de nuevo. -sessions.error.renaming=No se pudo renombrar la sesión. Intenta de nuevo. -sessions.error.not.found=Sesión no encontrada. -sessions.error.rename.failed=Fallo al renombrar sesión. +sessions.error.loading=No se pudieron cargar las conversaciones. Intenta de nuevo. +sessions.error.deleting=No se pudo eliminar la conversación. Intenta de nuevo. +sessions.error.updating=No se pudo actualizar la conversación. Intenta de nuevo. +sessions.error.renaming=No se pudo renombrar la conversación. Intenta de nuevo. +sessions.error.not.found=Conversación no encontrada. +sessions.error.rename.failed=Fallo al renombrar conversació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 @@ -880,6 +905,7 @@ log.level.trace.description=Mostrar todos los registros (más detallado) # Message Components message.loading.previous=Cargando mensajes anteriores... message.thinking=Pensando… ({0}s) +message.processing=Procesando… ({0}s) message.thinking.section.streaming=💭 Pensando... message.thinking.section.done=💭 Pensamiento message.copy=Copiar mensaje @@ -919,7 +945,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 @@ -935,7 +961,7 @@ bookmarks.role.user=Tú bookmarks.role.ai=IA # Tool call display -tool.call.header.running=Ejecutando herramienta... +tool.call.header.running=Ejecutando herramienta... ({0}s) tool.call.header.done={0} herramienta(s) utilizada(s) tool.call.status.done=Hecho tool.call.status.failed=Fallido @@ -956,10 +982,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 +992,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 +1032,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 +1041,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 +1057,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 +1085,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 +1096,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 +1146,21 @@ 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.malformed_tool_call=⚠️ ¡El modelo de IA intentó una llamada a herramienta no válida\!\n\nEl modelo transmitió una solicitud de herramienta incompleta o mal formada (falta el nombre/argumentos). Esto no es causado por Askimo — es un problema en la salida de llamadas a funciones del modelo de IA o del backend, más común en modelos más pequeños o locales.\n\nQué hacer\:\n1. Intente enviar el mensaje de nuevo — normalmente es algo temporal\n2. Si sigue ocurriendo, intente deshabilitar algunas herramientas habilitadas para reducir la ambigüedad\n3. Considere probar un modelo diferente más adecuado para llamadas a herramientas/funciones +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 +1168,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 +1187,27 @@ 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 # 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 +1226,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 +1269,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 +1286,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 +1312,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 +1338,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 +1347,24 @@ 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.protocol.version.label=Versión del protocolo +mcp.instance.protocol.version.hint=Establézca esto explícitamente solo si la detección automática agota el tiempo. Déjelo en "Detección automática" para la mayoría de los servidores. +mcp.instance.protocol.version.auto=Detección automática 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 +1401,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 +1420,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 +1476,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 +1492,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 +1542,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... @@ -1534,71 +1562,51 @@ plans.interactive.answer.placeholder=Escribe tu respuesta... plans.interactive.send=Enviar respuesta plans.interactive.skip=Omitir (dejar en blanco) -#Skills -skills.nav.title=Habilidades -skills.view.title=Habilidades -skills.view.empty=Aún no hay habilidades -skills.view.empty.hint=Crea habilidades en Configuración → Habilidades para empezar -skills.view.empty.search=No hay habilidades que coincidan con su búsqueda -skills.view.manage=Gestionar habilidades -skills.view.select.prompt=Selecciona una habilidad para ejecutar -skills.view.select.hint=Elige una habilidad del panel de habilidades a la derecha -skills.view.run=Ejecutar habilidad -skills.view.run.command=Enviar comando -skills.view.running=Ejecutando… -skills.view.no.agent=No hay ningún agente instalado -skills.view.agent.not.installed=No instalado -skills.view.agent.install.hint={0} no está instalado. Consulta la guía de instalación. -skills.view.agent.configure=Configurar agentes -skills.view.agent.needs.key={0} está instalado pero necesita una clave API para ejecutar habilidades. -skills.view.agent.key.placeholder=Pega la clave API aquí -skills.view.response.error=Error -skills.view.workdir.change=Cambiar -skills.view.workdir.open=Abrir carpeta -skills.view.workspace=Espacio de trabajo -skills.view.workspace.empty=No hay archivos en el espacio de trabajo -skills.view.workspace.copy.path=Copiar ruta -skills.view.workspace.open.file=Abrir archivo -skills.view.workspace.open.folder=Abrir carpeta contenedora -skills.view.workspace.new=Nuevo… -skills.view.workspace.new.folder=Nueva carpeta -skills.view.workspace.new.file=Nuevo archivo -skills.view.workspace.new.subfolder=Nueva subcarpeta -skills.view.workspace.new.file.here=Nuevo archivo aquí -skills.view.workspace.name.placeholder=Nombre -skills.view.workspace.duplicate=Duplicar -skills.view.workspace.delete.confirm.title=¿Eliminar "{0}"? -skills.view.workspace.delete.confirm.message=Esta acción no se puede deshacer. -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.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.system.prompt.preview=Prompt del sistema -skills.view.response.title=Respuesta -skills.view.followup.label=Seguimiento -skills.view.followup.placeholder=Haz una pregunta de seguimiento o solicita un cambio... -skills.view.followup.send=Enviar -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.docs.tooltip=Ver Guía de Habilidades -skills.view.mode.agentic=Agente -skills.view.mode.manual=Manual +# Agents +agents.nav.title=Agentes +agents.view.title=Agentes +agents.view.description=Ejecuta un agente de IA ({0}) directamente en tu máquina. El agente lee y escribe tus archivos, ejecuta comandos de shell e itera hasta que el trabajo esté hecho. +agents.view.empty.search=Ningún skill coincide con tu búsqueda +agents.view.manage=Gestionar skills +agents.view.running=Ejecutando… +agents.view.no.agent=No hay agente instalado +agents.view.agent.not.installed=No instalado +agents.view.workdir.open=Abrir carpeta +agents.view.workspace.empty=No hay archivos en el espacio de trabajo +agents.view.workspace.copy.path=Copiar ruta +agents.view.workspace.open.file=Abrir archivo +agents.view.workspace.open.folder=Abrir carpeta contenedora +agents.view.workspace.new=Nuevo… +agents.view.workspace.new.folder=Nueva carpeta +agents.view.workspace.new.file=Nuevo archivo +agents.view.workspace.new.subfolder=Nueva subcarpeta +agents.view.workspace.new.file.here=Nuevo archivo aquí +agents.view.workspace.name.placeholder=Nombre +agents.view.workspace.duplicate=Duplicar +agents.view.workspace.delete.confirm.title=¿Eliminar «{0}»? +agents.view.workspace.delete.confirm.message=Esta acción no se puede deshacer. +agents.view.workspace.switcher.title=Cambiar espacio de trabajo +agents.view.workspace.switcher.empty=Aún no hay espacios de trabajo +agents.view.workspace.switcher.add=Añadir espacio de trabajo... +agents.view.workspace.switcher.pin=Fijar espacio de trabajo +agents.view.workspace.switcher.rename=Renombrar espacio de trabajo +agents.view.workspace.switcher.remove.title=¿Quitar «{0}» de los espacios de trabajo? +agents.view.workspace.switcher.remove.message=Solo se elimina de la lista — la carpeta y sus archivos no se borran. +agents.view.panel.collapse=Contraer panel +agents.view.panel.expand=Expandir panel +agents.view.tab.workspace=Espacio de trabajo +agents.view.tab.history=Historial +agents.view.search.placeholder=Buscar skills ... +agents.view.search.clear=Borrar búsqueda +agents.view.history.empty=Aún no hay ejecuciones +agents.view.docs.tooltip=Ver guía de agentes # Agentic run mode -skills.agentic.run=Ejecutar -skills.agentic.goal.placeholder=Describe tu objetivo — el agente seleccionará automáticamente las habilidades correctas… -skills.agentic.skills.available={0} habilidades disponibles como contexto del agente -skills.agentic.no.skills.hint=Todavía no hay habilidades — añade habilidades en Configuración → Habilidades para darle al agente capacidades especializadas -skills.agentic.model.default=Modelo predeterminado +agents.agentic.run=Ejecutar +agents.agentic.goal.placeholder=Describe tu objetivo — el agente seleccionará automáticamente los skills adecuados… +agents.agentic.skills.available={0} skills disponibles como contexto del agente +agents.agentic.no.skills.hint=Sin skills personalizados — el agente usa sus capacidades integradas. Añade skills en Ajustes → Agentes & Skills para ampliarlo. +agents.agentic.model.default=Modelo predeterminado # Onboarding Wizard onboarding.title=Bienvenido a Askimo @@ -1628,7 +1636,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 +1665,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,16 +1675,26 @@ 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 (Antigravity 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 persona.researcher=🔬 Investigar y analizar persona.manager=📋 Escribir y organizar persona.everything=⚡ Hago una mezcla de cosas + +# Memory pressure +memory.pressure.warning.message=La ventana de contexto se está llenando. +memory.pressure.critical.message=La ventana de contexto está casi llena. Comprima para continuar o inicie una nueva sesión. +memory.pressure.action.compress=Comprimir +memory.pressure.compressing=Comprimiendo… +memory.pressure.chip.tooltip.normal=contexto usado +memory.pressure.chip.tooltip.warning=contexto usado — haga clic para comprimir +memory.pressure.chip.tooltip.critical=contexto usado — comprimir ahora +memory.pressure.chip.tooltip.unknown=Tamaño de contexto aún no calibrado — se actualizará automáticamente tras el primer intercambio diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index 46736c9a..366002ab 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -6,7 +6,7 @@ app.quit.confirm=Quitter Askimo? # Menu Items menu.file=Fichier menu.new.project=Nouveau projet -menu.search.sessions=Rechercher dans les sessions +menu.search.sessions=Rechercher dans les conversations menu.export.backup=Exporter la sauvegarde... menu.import.backup=Importer la sauvegarde... menu.invalidate.caches=Invalider les caches... @@ -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,13 +88,13 @@ 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 chat.new.tooltip=Nouvelle conversation ({0}+N) -chat.sessions=Sessions -chat.sessions.tooltip=Voir les sessions de conversation +chat.sessions=Conversations +chat.sessions.tooltip=Voir les conversations # Sidebar sidebar.expand=Agrandir la barre latérale @@ -122,9 +123,9 @@ discover.explore.rag.desc=Ancrez votre IA dans vos propres documents pour obteni discover.explore.plans.title=Plans discover.explore.plans.desc=Automatisez des workflows d’IA en plusieurs étapes et exécutez-les à la demande en un seul clic. discover.explore.skills.title=Compétences -discover.explore.skills.desc=Exécutez des compétences propulsées par l’IA et prises en charge par Gemini CLI ou Claude Code directement depuis votre espace de travail. -discover.recent.title=Sessions récentes -discover.recent.empty=Aucune session récente pour le moment. +discover.explore.skills.desc=Exécutez des compétences propulsées par l’IA et prises en charge par Antigravity CLI ou Claude Code directement depuis votre espace de travail. +discover.recent.title=Conversations récentes +discover.recent.empty=Aucune conversation récente pour le moment. discover.tokens.period.24h=Dernières 24 heures discover.tokens.period.week=7 derniers jours discover.tokens.period.month=30 derniers jours @@ -152,20 +153,20 @@ session.delete.confirm.message=Voulez-vous vraiment supprimer "{0}" ?\n\nCette a session.delete.confirm.button=Supprimer le chat session.delete.confirm.cancel=Annuler session.export=Exporter -session.export.title=Exporter la session de chat -session.export.description=Choisissez un format et un emplacement pour exporter votre session de chat +session.export.title=Exporter la conversation +session.export.description=Choisissez un format et un emplacement pour exporter votre conversation session.export.select.format=Sélectionner le format d’export session.export.location=Emplacement d’enregistrement session.export.file.path=Chemin du fichier session.export.browse=Parcourir session.rename.title=Renommer le titre session.rename.field.label=Titre -session.rename.field.placeholder=Entrez le titre de la session... +session.rename.field.placeholder=Entrez le titre de la conversation... 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 conversation 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 @@ -197,7 +200,7 @@ project.dialog.url.button.cancel=Annuler project.dialog.url.button.validating=Validation en cours... project.delete=Supprimer le projet project.delete.confirm.title=Supprimer le projet ? -project.delete.confirm.message=Êtes-vous sûr de vouloir supprimer le projet « {0} » ?\n\nToutes les sessions de ce projet seront également définitivement supprimées. +project.delete.confirm.message=Êtes-vous sûr de vouloir supprimer le projet « {0} » ?\n\nToutes les conversations de ce projet seront également définitivement supprimées. project.delete.confirm.button=Supprimer le projet project.delete.confirm.cancel=Annuler project.not.found=Projet introuvable @@ -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 @@ -235,7 +245,8 @@ projects.sources.add.button=Ajouter du matériel de référence 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. @@ -243,17 +254,19 @@ projects.error.updating=Impossible de mettre à jour le projet. Veuillez réessa projects.error.not.found=Projet introuvable. project.update.success=Projet mis à jour avec succès. 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.loading_sessions=Échec du chargement des conversations 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é @@ -261,10 +274,10 @@ project.indexing.ready.tooltip=Les sources de connaissances sont indexées et pr session.move.to.project=Déplacer vers le projet session.move.to.project.new=Nouveau projet session.remove.from.project=Retirer de {0} -session.move.success=Session déplacée vers le projet avec succès. -session.remove.success=Session retirée du projet. -session.error.moving=Échec du déplacement de la session vers le projet. Veuillez réessayer. -session.error.removing=Échec du retrait de la session du projet. Veuillez réessayer. +session.move.success=Conversation déplacée vers le projet avec succès. +session.remove.success=Conversation retirée du projet. +session.error.moving=Échec du déplacement de la conversation vers le projet. Veuillez réessayer. +session.error.removing=Échec du retrait de la conversation du projet. Veuillez réessayer. # Settings settings.title=Paramètres @@ -272,7 +285,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 @@ -294,49 +307,50 @@ settings.ai.provider=Fournisseur d’IA 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.directory=Répertoire des compétences -settings.skills.open.folder=Ouvrir le dossier -settings.skills.new.skill=Nouvelle compétence -settings.skills.import.github=Importer depuis GitHub -settings.skills.import.github.description=Clonez un dépôt GitHub contenant des fichiers de compétences (.md) dans votre répertoire des compétences. Nécessite git sur PATH. -settings.skills.import.github.url.label=URL du dépôt GitHub -settings.skills.import.github.button=Importer -settings.skills.import.github.importing=Importation… -settings.skills.import.zip=Importer depuis un ZIP -settings.skills.import.zip.description=Importez une archive ZIP locale contenant des dossiers de compétences (chaque dossier doit inclure un fichier skill.md). -settings.skills.import.zip.picker.title=Sélectionner un pack ZIP de compétences -settings.skills.import.zip.pick.button=Choisir un fichier ZIP -settings.skills.import.zip.button=Importer le ZIP -settings.skills.import.zip.importing=Importation du ZIP... -settings.skills.editor.name=Nom -settings.skills.editor.description=Description -settings.skills.editor.system.prompt=Prompt système -settings.skills.editor.system.prompt.placeholder=Écrivez le prompt système ici… -settings.skills.editor.system.prompt.hint=Il s’agit de l’instruction donnée à l’IA lorsque la compétence est active. -settings.skills.empty=Aucune compétence trouvée -settings.skills.empty.hint=Utilisez le bouton + pour créer votre première compétence -settings.skills.select.prompt=Sélectionnez une compétence dans le panneau pour l’afficher ou la modifier -settings.skills.editor.empty.file=Fichier vide -settings.skills.editor.mode.read=Lire -settings.skills.editor.mode.edit=Éditer -settings.skills.editor.line.count={0} ligne -settings.skills.editor.line.count.plural={0} lignes -settings.skills.new.skill.placeholder=my-skill -settings.skills.delete.file.title=Supprimer le fichier -settings.skills.delete.file.confirm=Supprimer "{0}" ? Cette action est irréversible. -settings.skills.delete.folder.title=Supprimer le dossier -settings.skills.delete.folder.confirm=Supprimer "{0}" et toutes les compétences qu’il contient ? Cette action est irréversible. -settings.skills.delete.all.title=Supprimer toutes les compétences -settings.skills.delete.all.confirm=Supprimer toutes les compétences ? Cela supprimera définitivement tous les dossiers de compétences et ne pourra pas être annulé. -settings.skills.import.success.title=Importation réussie -settings.skills.import.success.message={0} compétence(s) importée(s) avec succès dans "{1}". -settings.skills.add.file=Ajouter un fichier -settings.skills.add.file.name=Nom du fichier -settings.skills.add.folder=Ajouter un dossier -settings.skills.add.folder.name=Nom du dossier +settings.agents=Agents et compétences +settings.agents.skills.title=Compétences +settings.agents.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.agents.runtimes=Environnements d'exécution pris en charge \: +settings.agents.directory=Répertoire des compétences +settings.agents.open.folder=Ouvrir le dossier +settings.agents.new.skill=Nouvelle compétence +settings.agents.import.github=Importer depuis GitHub +settings.agents.import.github.description=Clonez un dépôt GitHub contenant des fichiers de compétences (.md) dans votre répertoire des compétences. Nécessite git sur PATH. +settings.agents.import.github.url.label=URL du dépôt GitHub +settings.agents.import.github.button=Importer +settings.agents.import.github.importing=Importation… +settings.agents.import.zip=Importer depuis un ZIP +settings.agents.import.zip.description=Importez une archive ZIP locale contenant des dossiers de compétences (chaque dossier doit inclure un fichier skill.md). +settings.agents.import.zip.picker.title=Sélectionner un pack ZIP de compétences +settings.agents.import.zip.pick.button=Choisir un fichier ZIP +settings.agents.import.zip.button=Importer le ZIP +settings.agents.import.zip.importing=Importation du ZIP... +settings.agents.editor.name=Nom +settings.agents.editor.description=Description +settings.agents.editor.system.prompt=Prompt système +settings.agents.editor.system.prompt.placeholder=Écrivez le prompt système ici… +settings.agents.editor.system.prompt.hint=Il s’agit de l’instruction donnée à l’IA lorsque la compétence est active. +settings.agents.empty=Aucune compétence trouvée +settings.agents.empty.hint=Utilisez le bouton + pour créer votre première compétence +settings.agents.select.prompt=Sélectionnez une compétence dans le panneau pour l’afficher ou la modifier +settings.agents.editor.empty.file=Fichier vide +settings.agents.editor.mode.read=Lire +settings.agents.editor.mode.edit=Éditer +settings.agents.editor.line.count={0} ligne +settings.agents.editor.line.count.plural={0} lignes +settings.agents.new.skill.placeholder=my-skill +settings.agents.delete.file.title=Supprimer le fichier +settings.agents.delete.file.confirm=Supprimer "{0}" ? Cette action est irréversible. +settings.agents.delete.folder.title=Supprimer le dossier +settings.agents.delete.folder.confirm=Supprimer "{0}" et toutes les compétences qu’il contient ? Cette action est irréversible. +settings.agents.delete.all.title=Supprimer toutes les compétences +settings.agents.delete.all.confirm=Supprimer toutes les compétences ? Cela supprimera définitivement tous les dossiers de compétences et ne pourra pas être annulé. +settings.agents.import.success.title=Importation réussie +settings.agents.import.success.message={0} compétence(s) importée(s) avec succès dans "{1}". +settings.agents.add.file=Ajouter un fichier +settings.agents.add.file.name=Nom du fichier +settings.agents.add.folder=Ajouter un dossier +settings.agents.add.folder.name=Nom du dossier settings.advanced=Avancé settings.about=À propos settings.theme=Thème @@ -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 @@ -642,7 +657,7 @@ shortcut.toggle.chat.history=Afficher/Masquer l’historique du chat shortcut.open.settings=Ouvrir les paramètres shortcut.stop.ai.response=Arrêter la réponse de l’IA shortcut.quit.application=Quitter l’application -shortcut.navigate.to.sessions=Accéder aux sessions +shortcut.navigate.to.sessions=Accéder aux conversations shortcut.navigate.to.projects=Accéder aux projets shortcut.navigate.to.bookmarks=Accéder aux favoris shortcut.enter.fullscreen=Entrer en plein écran @@ -654,16 +669,16 @@ 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.no.active.session=Sélectionnez une session dans la barre latérale ou démarrez une nouvelle conversation +chat.welcome=Bienvenue sur Askimo \!\nCommencez une conversation en tapant un message ci-dessous. +chat.no.active.session=Sélectionnez une conversation 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 chat.search.not.found=Aucun message correspondant à « {0} » # Global Search -global.search.title=Rechercher dans les sessions +global.search.title=Rechercher dans les conversations global.search.query=Requête de recherche -global.search.query.placeholder=Rechercher dans toutes les sessions... +global.search.query.placeholder=Rechercher dans toutes les conversations... global.search.filter.date=Plage de dates global.search.sort.by=Trier par global.search.button=Rechercher @@ -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,40 +757,40 @@ 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 session.tooltip.started=Démarré session.tooltip.last.activity=Dernière activité -sessions.title=Sessions de conversation +sessions.title=Conversations sessions.col.title=Titre 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=Aucune conversation trouvée. +sessions.empty.hint=💡 Démarrez une nouvelle conversation pour créer votre première \! sessions.search.placeholder=Rechercher par titre… -sessions.search.empty=Aucune session ne correspond à "{0}". +sessions.search.empty=Aucune conversation 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 # SessionsViewModel Errors -sessions.error.loading=Échec du chargement des sessions. Réessayez. +sessions.error.loading=Échec du chargement des conversations. Réessayez. sessions.error.deleting=Échec de la suppression. Réessayez. sessions.error.updating=Échec de la mise à jour. Réessayez. sessions.error.renaming=Échec du renommage. Réessayez. -sessions.error.not.found=Session introuvable. +sessions.error.not.found=Conversation introuvable. 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 @@ -880,6 +905,7 @@ log.level.trace.description=Afficher tous les logs (le plus détaillé) # Message Components message.loading.previous=Chargement des messages précédents... message.thinking=Réflexion… ({0}s) +message.processing=Traitement… ({0}s) message.thinking.section.streaming=💭 Réflexion... message.thinking.section.done=💭 Pensée message.copy=Copier le message @@ -919,7 +945,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 @@ -935,7 +961,7 @@ bookmarks.role.user=Vous bookmarks.role.ai=IA # Tool call display -tool.call.header.running=Exécution de l'outil... +tool.call.header.running=Exécution de l''outil... ({0}s) tool.call.header.done={0} outil(s) utilisé(s) tool.call.status.done=Terminé tool.call.status.failed=Échoué @@ -956,10 +982,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 +992,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 +1032,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 +1041,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 +1057,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 +1085,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 +1096,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 +1146,21 @@ 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.malformed_tool_call=⚠️ Le modèle IA a tenté un appel d'outil invalide \!\n\nLe modèle a diffusé une requête d'outil incomplète ou mal formée (nom/arguments manquants). Ce n'est pas causé par Askimo — c'est un bug dans la sortie d'appel de fonction du modèle IA ou du backend, plus fréquent avec les modèles plus petits ou locaux.\n\nQue faire \:\n1. Essayez de renvoyer le message — c'est généralement transitoire\n2. Si cela persiste, essayez de désactiver certains outils activés pour réduire l'ambiguïté\n3. Envisagez d'essayer un autre modèle mieux adapté aux appels d'outils/fonctions +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 +1168,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 +1182,32 @@ 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 # 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 +1226,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 +1269,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 +1286,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 +1312,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 +1338,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 +1347,24 @@ 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.protocol.version.label=Version du protocole +mcp.instance.protocol.version.hint=À définir explicitement uniquement si la détection automatique expire. Laissez sur « Détection automatique » pour la plupart des serveurs. +mcp.instance.protocol.version.auto=Détection automatique 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 +1401,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 +1420,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 +1476,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 +1485,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 +1542,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... @@ -1534,71 +1562,51 @@ plans.interactive.answer.placeholder=Saisissez votre réponse... plans.interactive.send=Envoyer la réponse plans.interactive.skip=Ignorer (laisser vide) -#Skills -skills.nav.title=Compétences -skills.view.title=Compétences -skills.view.empty=Aucune compétence pour le moment -skills.view.empty.hint=Créez des compétences dans Paramètres → Compétences pour commencer -skills.view.empty.search=Aucune compétence ne correspond à votre recherche -skills.view.manage=Gérer les compétences -skills.view.select.prompt=Sélectionnez une compétence à exécuter -skills.view.select.hint=Choisissez une compétence dans le panneau des compétences à droite -skills.view.run=Exécuter la compétence -skills.view.run.command=Envoyer la commande -skills.view.running=Exécution… -skills.view.no.agent=Aucun agent installé -skills.view.agent.not.installed=Non installé -skills.view.agent.install.hint={0} n’est pas installé. Voir le guide d’installation. -skills.view.agent.configure=Configurer les agents -skills.view.agent.needs.key={0} est installé mais nécessite une clé API pour exécuter les compétences. -skills.view.agent.key.placeholder=Collez la clé API ici -skills.view.response.error=Erreur -skills.view.workdir.change=Modifier -skills.view.workdir.open=Ouvrir le dossier -skills.view.workspace=Espace de travail -skills.view.workspace.empty=Aucun fichier dans l'espace de travail -skills.view.workspace.copy.path=Copier le chemin -skills.view.workspace.open.file=Ouvrir le fichier -skills.view.workspace.open.folder=Ouvrir le dossier contenant -skills.view.workspace.new=Nouveau… -skills.view.workspace.new.folder=Nouveau dossier -skills.view.workspace.new.file=Nouveau fichier -skills.view.workspace.new.subfolder=Nouveau sous-dossier -skills.view.workspace.new.file.here=Nouveau fichier ici -skills.view.workspace.name.placeholder=Nom -skills.view.workspace.duplicate=Dupliquer -skills.view.workspace.delete.confirm.title=Supprimer « {0} » ? -skills.view.workspace.delete.confirm.message=Cette action est irréversible. -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.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.system.prompt.preview=Prompt système -skills.view.response.title=Réponse -skills.view.followup.label=Suivi -skills.view.followup.placeholder=Posez une question de suivi ou demandez une modification... -skills.view.followup.send=Envoyer -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.docs.tooltip=Voir le guide des compétences -skills.view.mode.agentic=Agentique -skills.view.mode.manual=Manuel +# Agents +agents.nav.title=Agents +agents.view.title=Agents +agents.view.description=Exécutez un agent IA ({0}) directement sur votre machine. L''agent lit et écrit vos fichiers, exécute des commandes shell et itère jusqu''à ce que le travail soit terminé. +agents.view.empty.search=Aucun skill ne correspond à votre recherche +agents.view.manage=Gérer les skills +agents.view.running=En cours… +agents.view.no.agent=Aucun agent installé +agents.view.agent.not.installed=Non installé +agents.view.workdir.open=Ouvrir le dossier +agents.view.workspace.empty=Aucun fichier dans l'espace de travail +agents.view.workspace.copy.path=Copier le chemin +agents.view.workspace.open.file=Ouvrir le fichier +agents.view.workspace.open.folder=Ouvrir le dossier contenant +agents.view.workspace.new=Nouveau… +agents.view.workspace.new.folder=Nouveau dossier +agents.view.workspace.new.file=Nouveau fichier +agents.view.workspace.new.subfolder=Nouveau sous-dossier +agents.view.workspace.new.file.here=Nouveau fichier ici +agents.view.workspace.name.placeholder=Nom +agents.view.workspace.duplicate=Dupliquer +agents.view.workspace.delete.confirm.title=Supprimer « {0} » ? +agents.view.workspace.delete.confirm.message=Cette action est irréversible. +agents.view.workspace.switcher.title=Changer d'espace de travail +agents.view.workspace.switcher.empty=Aucun espace de travail pour l'instant +agents.view.workspace.switcher.add=Ajouter un espace de travail... +agents.view.workspace.switcher.pin=Épingler l'espace de travail +agents.view.workspace.switcher.rename=Renommer l'espace de travail +agents.view.workspace.switcher.remove.title=Retirer « {0} » des espaces de travail ? +agents.view.workspace.switcher.remove.message=Cela le retire uniquement de la liste — le dossier et ses fichiers ne sont pas supprimés. +agents.view.panel.collapse=Réduire le panneau +agents.view.panel.expand=Développer le panneau +agents.view.tab.workspace=Espace de travail +agents.view.tab.history=Historique +agents.view.search.placeholder=Rechercher des skills ... +agents.view.search.clear=Effacer la recherche +agents.view.history.empty=Aucune exécution pour l'instant +agents.view.docs.tooltip=Voir le guide des agents # Agentic run mode -skills.agentic.run=Exécuter -skills.agentic.goal.placeholder=Décrivez votre objectif — l’agent sélectionnera automatiquement les compétences appropriées… -skills.agentic.skills.available={0} compétences disponibles comme contexte de l’agent -skills.agentic.no.skills.hint=Il n’y a encore aucune compétence — ajoutez des compétences dans Paramètres → Compétences pour donner à l’agent des capacités spécialisées -skills.agentic.model.default=Modèle par défaut +agents.agentic.run=Exécuter +agents.agentic.goal.placeholder=Décrivez votre objectif — l'agent sélectionnera automatiquement les skills appropriés… +agents.agentic.skills.available={0} skills disponibles comme contexte pour l''agent +agents.agentic.no.skills.hint=Aucun skill personnalisé — l'agent utilise ses capacités intégrées. Ajoutez des skills dans Paramètres → Agents & Skills pour l'enrichir. +agents.agentic.model.default=Modèle par défaut # Onboarding Wizard onboarding.title=Bienvenue sur Askimo @@ -1628,7 +1636,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 +1665,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,16 +1675,26 @@ 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 (Antigravity 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 persona.researcher=🔬 Rechercher et analyser persona.manager=📋 Écrire et organiser persona.everything=⚡ Je fais un mélange de choses + +# Memory pressure +memory.pressure.warning.message=La fenêtre de contexte est en train de se remplir. +memory.pressure.critical.message=La fenêtre de contexte est presque pleine. Compressez pour continuer ou démarrez une nouvelle session. +memory.pressure.action.compress=Compresser +memory.pressure.compressing=Compression en cours… +memory.pressure.chip.tooltip.normal=contexte utilisé +memory.pressure.chip.tooltip.warning=contexte utilisé — cliquez pour compresser +memory.pressure.chip.tooltip.critical=contexte utilisé — compresser maintenant +memory.pressure.chip.tooltip.unknown=Taille du contexte pas encore calibrée — sera mise à jour automatiquement après le premier échange 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..cbb2a428 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -6,7 +6,7 @@ app.quit.confirm=Askimoを終了しますか? # Menu Items menu.file=ファイル menu.new.project=新しいプロジェクト -menu.search.sessions=セッション内を検索 +menu.search.sessions=会話内を検索 menu.export.backup=バックアップをエクスポート... menu.import.backup=バックアップをインポート... menu.invalidate.caches=キャッシュを無効化... @@ -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,13 +88,13 @@ 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=新しいチャット chat.new.tooltip=新しいチャット ({0}+N) -chat.sessions=セッション -chat.sessions.tooltip=チャットセッションを表示 +chat.sessions=会話 +chat.sessions.tooltip=会話を表示 # Sidebar sidebar.expand=サイドバーを展開 @@ -122,9 +123,9 @@ discover.explore.rag.desc=独自のドキュメントをAIの基盤にして、 discover.explore.plans.title=プラン discover.explore.plans.desc=複数ステップのAIワークフローを自動化し、必要なときにワンクリックで実行します。 discover.explore.skills.title=スキル -discover.explore.skills.desc=Gemini CLI または Claude Code によって支えられた AI 搭載のスキルを、ワークスペースから直接実行できます。 -discover.recent.title=最近のセッション -discover.recent.empty=最近のセッションはまだありません。 +discover.explore.skills.desc=Antigravity CLI または Claude Code によって支えられた AI 搭載のスキルを、ワークスペースから直接実行できます。 +discover.recent.title=最近の会話 +discover.recent.empty=最近の会話はまだありません。 discover.tokens.period.24h=過去24時間 discover.tokens.period.week=過去1週間 discover.tokens.period.month=過去1ヶ月 @@ -152,20 +153,20 @@ session.delete.confirm.message="{0}"を削除してもよろしいですか?\n session.delete.confirm.button=チャットを削除 session.delete.confirm.cancel=キャンセル session.export=エクスポート -session.export.title=チャットセッションをエクスポート -session.export.description=チャットセッションをエクスポートする形式と保存場所を選択してください +session.export.title=会話をエクスポート +session.export.description=会話をエクスポートする形式と保存場所を選択してください session.export.select.format=エクスポート形式を選択 session.export.location=保存場所 session.export.file.path=ファイルパス session.export.browse=参照 session.rename.title=タイトルを変更 session.rename.field.label=タイトル -session.rename.field.placeholder=セッションタイトルを入力... +session.rename.field.placeholder=会話のタイトルを入力... 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 @@ -197,7 +200,7 @@ project.dialog.url.button.cancel=キャンセル project.dialog.url.button.validating=検証中... project.delete=プロジェクトを削除 project.delete.confirm.title=プロジェクトを削除しますか? -project.delete.confirm.message=プロジェクト「{0}」を削除してもよろしいですか?\n\nこのプロジェクトのすべてのセッションも完全に削除されます。 +project.delete.confirm.message=プロジェクト「{0}」を削除してもよろしいですか?\n\nこのプロジェクトのすべての会話も完全に削除されます。 project.delete.confirm.button=プロジェクトを削除 project.delete.confirm.cancel=キャンセル project.not.found=プロジェクトが見つかりません @@ -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=ローカルファイル @@ -235,7 +245,8 @@ projects.sources.add.button=参照資料を追加 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=プロジェクトの削除に失敗しました。もう一度お試しください。 @@ -243,9 +254,11 @@ projects.error.updating=プロジェクトの更新に失敗しました。も projects.error.not.found=プロジェクトが見つかりません。 project.update.success=プロジェクトが正常に更新されました。 project.error.loading=プロジェクトの読み込みに失敗しました。もう一度やり直してください。 -project.error.loading_sessions=プロジェクトセッションの読み込みに失敗しました。もう一度やり直してください。 +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 +266,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=インデックス済み @@ -261,10 +274,10 @@ project.indexing.ready.tooltip=ナレッジソースのインデックスが完 session.move.to.project=プロジェクトに移動 session.move.to.project.new=新しいプロジェクト session.remove.from.project={0} から削除 -session.move.success=セッションが正常にプロジェクトに移動されました。 -session.remove.success=セッションがプロジェクトから削除されました。 -session.error.moving=セッションをプロジェクトに移動できませんでした。もう一度やり直してください。 -session.error.removing=セッションをプロジェクトから削除できませんでした。もう一度やり直してください。 +session.move.success=会話が正常にプロジェクトに移動されました。 +session.remove.success=会話がプロジェクトから削除されました。 +session.error.moving=会話をプロジェクトに移動できませんでした。もう一度やり直してください。 +session.error.removing=会話をプロジェクトから削除できませんでした。もう一度やり直してください。 # Settings settings.title=設定 @@ -272,7 +285,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=コンテナ上 @@ -294,49 +307,50 @@ settings.ai.provider=AI プロバイダー settings.network=ネットワーク settings.network.description=ネットワークおよびプロキシ設定を構成します settings.mcp.servers=MCP サーバー -settings.skills=スキル -settings.skills.description=スキルは、お使いのマシン上で直接実行できる再利用可能な AI エージェントです。各スキルは、システムプロンプトと指示を含む Markdown ファイルです。スキルを実行すると、{0} 経由で実行され、ファイルの読み取りと書き込み、シェルコマンドの実行、およびジョブが完了するまで反復処理を行います。コピー&ペーストは不要です。 -settings.skills.runtimes=サポートされている実行環境: -settings.skills.directory=スキルディレクトリ -settings.skills.open.folder=フォルダーを開く -settings.skills.new.skill=新しいスキル -settings.skills.import.github=GitHubからインポート -settings.skills.import.github.description=スキル(.md)ファイルを含むGitHubリポジトリをスキルディレクトリにクローンします。PATHにgitが必要です。 -settings.skills.import.github.url.label=GitHubリポジトリURL -settings.skills.import.github.button=インポート -settings.skills.import.github.importing=インポート中… -settings.skills.import.zip=ZIPからインポート -settings.skills.import.zip.description=スキルフォルダーを含むローカルZIPアーカイブをインポートします(各スキルフォルダーにはskill.mdファイルが必要です)。 -settings.skills.import.zip.picker.title=ZIPスキルパックを選択 -settings.skills.import.zip.pick.button=ZIPファイルを選択 -settings.skills.import.zip.button=ZIPをインポート -settings.skills.import.zip.importing=ZIPをインポート中... -settings.skills.editor.name=名前 -settings.skills.editor.description=説明 -settings.skills.editor.system.prompt=システムプロンプト -settings.skills.editor.system.prompt.placeholder=ここにシステムプロンプトを記述します… -settings.skills.editor.system.prompt.hint=これは、スキルがアクティブなときにAIに与えられる指示です。 -settings.skills.empty=スキルが見つかりません -settings.skills.empty.hint=+ ボタンを使用して最初のスキルを作成します -settings.skills.select.prompt=パネルからスキルを選択して表示または編集します -settings.skills.editor.empty.file=空のファイル -settings.skills.editor.mode.read=読む -settings.skills.editor.mode.edit=編集 -settings.skills.editor.line.count={0} 行 -settings.skills.editor.line.count.plural={0} 行 -settings.skills.new.skill.placeholder=my-skill -settings.skills.delete.file.title=ファイルを削除 -settings.skills.delete.file.confirm="{0}" を削除しますか?この操作は元に戻せません。 -settings.skills.delete.folder.title=フォルダーを削除 -settings.skills.delete.folder.confirm="{0}" とその中のすべてのスキルを削除しますか?この操作は元に戻せません。 -settings.skills.delete.all.title=すべてのスキルを削除 -settings.skills.delete.all.confirm=すべてのスキルを削除しますか?これにより、すべてのスキルフォルダが完全に削除され、元に戻すことはできません。 -settings.skills.import.success.title=インポート成功 -settings.skills.import.success.message="{1}" に {0} 件のスキルを正常にインポートしました。 -settings.skills.add.file=ファイルを追加 -settings.skills.add.file.name=ファイル名 -settings.skills.add.folder=フォルダーを追加 -settings.skills.add.folder.name=フォルダー名 +settings.agents=エージェントとスキル +settings.agents.skills.title=スキル +settings.agents.description=スキルは、お使いのマシン上で直接実行できる再利用可能な AI エージェントです。各スキルは、システムプロンプトと指示を含む Markdown ファイルです。スキルを実行すると、{0} 経由で実行され、ファイルの読み取りと書き込み、シェルコマンドの実行、およびジョブが完了するまで反復処理を行います。コピー&ペーストは不要です。 +settings.agents.runtimes=サポートされている実行環境: +settings.agents.directory=スキルディレクトリ +settings.agents.open.folder=フォルダーを開く +settings.agents.new.skill=新しいスキル +settings.agents.import.github=GitHubからインポート +settings.agents.import.github.description=スキル(.md)ファイルを含むGitHubリポジトリをスキルディレクトリにクローンします。PATHにgitが必要です。 +settings.agents.import.github.url.label=GitHubリポジトリURL +settings.agents.import.github.button=インポート +settings.agents.import.github.importing=インポート中… +settings.agents.import.zip=ZIPからインポート +settings.agents.import.zip.description=スキルフォルダーを含むローカルZIPアーカイブをインポートします(各スキルフォルダーにはskill.mdファイルが必要です)。 +settings.agents.import.zip.picker.title=ZIPスキルパックを選択 +settings.agents.import.zip.pick.button=ZIPファイルを選択 +settings.agents.import.zip.button=ZIPをインポート +settings.agents.import.zip.importing=ZIPをインポート中... +settings.agents.editor.name=名前 +settings.agents.editor.description=説明 +settings.agents.editor.system.prompt=システムプロンプト +settings.agents.editor.system.prompt.placeholder=ここにシステムプロンプトを記述します… +settings.agents.editor.system.prompt.hint=これは、スキルがアクティブなときにAIに与えられる指示です。 +settings.agents.empty=スキルが見つかりません +settings.agents.empty.hint=+ ボタンを使用して最初のスキルを作成します +settings.agents.select.prompt=パネルからスキルを選択して表示または編集します +settings.agents.editor.empty.file=空のファイル +settings.agents.editor.mode.read=読む +settings.agents.editor.mode.edit=編集 +settings.agents.editor.line.count={0} 行 +settings.agents.editor.line.count.plural={0} 行 +settings.agents.new.skill.placeholder=my-skill +settings.agents.delete.file.title=ファイルを削除 +settings.agents.delete.file.confirm="{0}" を削除しますか?この操作は元に戻せません。 +settings.agents.delete.folder.title=フォルダーを削除 +settings.agents.delete.folder.confirm="{0}" とその中のすべてのスキルを削除しますか?この操作は元に戻せません。 +settings.agents.delete.all.title=すべてのスキルを削除 +settings.agents.delete.all.confirm=すべてのスキルを削除しますか?これにより、すべてのスキルフォルダが完全に削除され、元に戻すことはできません。 +settings.agents.import.success.title=インポート成功 +settings.agents.import.success.message="{1}" に {0} 件のスキルを正常にインポートしました。 +settings.agents.add.file=ファイルを追加 +settings.agents.add.file.name=ファイル名 +settings.agents.add.folder=フォルダーを追加 +settings.agents.add.folder.name=フォルダー名 settings.advanced=詳細設定 settings.about=情報 settings.theme=テーマ @@ -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=サイドバーに固定 @@ -642,7 +657,7 @@ shortcut.toggle.chat.history=チャット履歴を切り替え shortcut.open.settings=設定を開く shortcut.stop.ai.response=AI の応答を停止 shortcut.quit.application=アプリケーションを終了 -shortcut.navigate.to.sessions=セッションに移動 +shortcut.navigate.to.sessions=会話に移動 shortcut.navigate.to.projects=プロジェクトへ移動 shortcut.navigate.to.bookmarks=ブックマークへ移動 shortcut.enter.fullscreen=フルスクリーンにする @@ -655,15 +670,15 @@ shortcut.new.line=改行 # Chat View chat.welcome=Askimo へようこそ!\n下にメッセージを入力して会話を始めてください。 -chat.no.active.session=サイドバーからセッションを選択するか、新しいチャットを開始してください +chat.no.active.session=サイドバーから会話を選択するか、新しいチャットを開始してください chat.search.placeholder=チャット内検索... chat.search.no.results=結果なし chat.search.not.found=「{0}」に一致するメッセージが見つかりません # Global Search -global.search.title=セッション内を検索 +global.search.title=会話内を検索 global.search.query=検索クエリ -global.search.query.placeholder=すべてのセッションを検索... +global.search.query.placeholder=すべての会話を検索... global.search.filter.date=期間 global.search.sort.by=並べ替え global.search.button=検索 @@ -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,35 +757,35 @@ 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 session.tooltip.started=開始済み session.tooltip.last.activity=最終アクティビティ -sessions.title=チャットセッション +sessions.title=会話 sessions.col.title=タイトル sessions.col.created=作成日 sessions.col.updated=更新日 sessions.error=❌ {0} -sessions.empty=セッションが見つかりません。 -sessions.empty.hint=💡 新しいチャットを開始して最初のセッションを作成しましょう! +sessions.empty=会話が見つかりません。 +sessions.empty.hint=💡 新しいチャットを開始して最初の会話を作成しましょう! sessions.search.placeholder=タイトルで検索… -sessions.search.empty="{0}" に一致するセッションはありません。 +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=次のページ # SessionsViewModel Errors -sessions.error.loading=セッションの読み込みに失敗しました。再試行してください。 -sessions.error.deleting=セッションの削除に失敗しました。再試行してください。 -sessions.error.updating=セッションの更新に失敗しました。再試行してください。 -sessions.error.renaming=セッション名の変更に失敗しました。再試行してください。 -sessions.error.not.found=セッションが見つかりません。 -sessions.error.rename.failed=セッション名の変更に失敗しました。 +sessions.error.loading=会話の読み込みに失敗しました。再試行してください。 +sessions.error.deleting=会話の削除に失敗しました。再試行してください。 +sessions.error.updating=会話の更新に失敗しました。再試行してください。 +sessions.error.renaming=会話名の変更に失敗しました。再試行してください。 +sessions.error.not.found=会話が見つかりません。 +sessions.error.rename.failed=会話名の変更に失敗しました。 # ChatSessionService Errors # Update Check @@ -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=エラー @@ -880,6 +905,7 @@ log.level.trace.description=すべてのログを表示(最も詳細) # Message Components message.loading.previous=以前のメッセージを読み込み中... message.thinking=考え中… ({0}s) +message.processing=処理中… ({0}s) message.thinking.section.streaming=💭 考え中... message.thinking.section.done=💭 考え message.copy=メッセージをコピー @@ -919,7 +945,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=ブックマーク @@ -935,7 +961,7 @@ bookmarks.role.user=あなた bookmarks.role.ai=AI # Tool call display -tool.call.header.running=ツールを実行中... +tool.call.header.running=ツールを実行中... ({0}s) tool.call.header.done={0} 個のツールを使用しました tool.call.status.done=完了 tool.call.status.failed=失敗 @@ -956,10 +982,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 +992,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 +1025,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 +1041,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 +1057,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 +1096,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,13 +1156,10 @@ 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.malformed_tool_call=⚠️ AIモデルが無効なツール呼び出しを試みました!\n\nモデルが不完全または不正な形式のツールリクエスト(名前/引数が欠落)をストリーミングしました。これはAskimoが原因ではなく、AIモデルまたはバックエンドの関数呼び出し出力の不具合であり、小型モデルやローカルモデルでよく発生します。\n\n対処方法:\n1. メッセージを再送信してみてください — 通常は一時的な問題です\n2. 繰り返し発生する場合は、有効なツールの一部を無効にして曖昧さを減らしてみてください\n3. ツール/関数呼び出しに適した別のモデルを試してみてください error.system=⚠️ システムエラー\n\n予期しないエラーが発生しました:{errorCode}\n\nAskimo サポートへ次を添えてご連絡ください:\n• 実行していた操作\n• 上記のエラーコード\n• タイムスタンプ # Model Availability Errors @@ -1152,10 +1168,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 +1187,38 @@ error.indexing.io_error.title=IO エラー error.indexing.io_error.message=インデックス作成中に IO エラーが発生しました error.indexing.unknown.title=インデックスエラー error.indexing.unknown.message=インデックス作成中に不明なエラーが発生しました +error.indexing.failed.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 +1226,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 +1273,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 +1293,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 +1312,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 +1338,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 +1347,24 @@ 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.protocol.version.label=プロトコルバージョン +mcp.instance.protocol.version.hint=自動検出がタイムアウトした場合のみ明示的に設定してください。ほとんどのサーバーでは「自動検出」のままにしてください。 +mcp.instance.protocol.version.auto=自動検出 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 +1375,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 +1401,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 +1420,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 +1476,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 +1492,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 +1542,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=このプランにさせたいことをわかりやすい言葉で説明してください... @@ -1534,71 +1562,51 @@ plans.interactive.answer.placeholder=回答を入力してください... plans.interactive.send=回答を送信 plans.interactive.skip=スキップ(空白のまま) -#Skills -skills.nav.title=スキル -skills.view.title=スキル -skills.view.empty=まだスキルがありません -skills.view.empty.hint=始めるには、設定 → スキルでスキルを作成してください -skills.view.empty.search=検索条件に一致するスキルはありません -skills.view.manage=スキルを管理 -skills.view.select.prompt=実行するスキルを選択してください -skills.view.select.hint=右のスキルパネルからスキルを選択してください -skills.view.run=スキルを実行 -skills.view.run.command=コマンドを送信 -skills.view.running=実行中… -skills.view.no.agent=エージェントがインストールされていません -skills.view.agent.not.installed=インストールされていません -skills.view.agent.install.hint={0} はインストールされていません。インストールガイドをご覧ください。 -skills.view.agent.configure=エージェントを構成 -skills.view.agent.needs.key={0} はインストールされていますが、スキルを実行するにはAPIキーが必要です。 -skills.view.agent.key.placeholder=ここにAPIキーを貼り付けてください -skills.view.response.error=エラー -skills.view.workdir.change=変更 -skills.view.workdir.open=フォルダーを開く -skills.view.workspace=ワークスペース -skills.view.workspace.empty=ワークスペースにファイルがありません -skills.view.workspace.copy.path=パスをコピー -skills.view.workspace.open.file=ファイルを開く -skills.view.workspace.open.folder=格納フォルダーを開く -skills.view.workspace.new=新規… -skills.view.workspace.new.folder=新規フォルダー -skills.view.workspace.new.file=新規ファイル -skills.view.workspace.new.subfolder=新規サブフォルダー -skills.view.workspace.new.file.here=ここに新規ファイル -skills.view.workspace.name.placeholder=名前 -skills.view.workspace.duplicate=複製 -skills.view.workspace.delete.confirm.title=「{0}」を削除しますか? -skills.view.workspace.delete.confirm.message=この操作は元に戻せません。 -skills.view.panel.collapse=パネルを閉じる -skills.view.panel.expand=パネルを開く -skills.view.tab.skills=スキル -skills.view.tab.workspace=ワークスペース -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.system.prompt.preview=システムプロンプト -skills.view.response.title=応答 -skills.view.followup.label=フォローアップ -skills.view.followup.placeholder=フォローアップの質問をするか、変更をリクエストしてください... -skills.view.followup.send=送信 -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.docs.tooltip=スキルガイドを表示 -skills.view.mode.agentic=エージェント型 -skills.view.mode.manual=手動 +# Agents +agents.nav.title=エージェント +agents.view.title=エージェント +agents.view.description=AI エージェント({0})をマシン上で直接実行します。エージェントはファイルの読み書き、シェルコマンドの実行を行い、タスクが完了するまで繰り返します。 +agents.view.empty.search=検索に一致するスキルがありません +agents.view.manage=スキルを管理 +agents.view.running=実行中… +agents.view.no.agent=エージェントがインストールされていません +agents.view.agent.not.installed=未インストール +agents.view.workdir.open=フォルダを開く +agents.view.workspace.empty=ワークスペースにファイルがありません +agents.view.workspace.copy.path=パスをコピー +agents.view.workspace.open.file=ファイルを開く +agents.view.workspace.open.folder=含まれるフォルダを開く +agents.view.workspace.new=新規… +agents.view.workspace.new.folder=新規フォルダ +agents.view.workspace.new.file=新規ファイル +agents.view.workspace.new.subfolder=新規サブフォルダ +agents.view.workspace.new.file.here=ここに新規ファイル +agents.view.workspace.name.placeholder=名前 +agents.view.workspace.duplicate=複製 +agents.view.workspace.delete.confirm.title=「{0}」を削除しますか? +agents.view.workspace.delete.confirm.message=この操作は元に戻せません。 +agents.view.workspace.switcher.title=ワークスペースを切り替え +agents.view.workspace.switcher.empty=ワークスペースがありません +agents.view.workspace.switcher.add=ワークスペースを追加... +agents.view.workspace.switcher.pin=ワークスペースを固定 +agents.view.workspace.switcher.rename=ワークスペースの名前を変更 +agents.view.workspace.switcher.remove.title=「{0}」をワークスペースから削除しますか? +agents.view.workspace.switcher.remove.message=リストから削除するだけです — フォルダとファイルは削除されません。 +agents.view.panel.collapse=パネルを折りたたむ +agents.view.panel.expand=パネルを展開 +agents.view.tab.workspace=ワークスペース +agents.view.tab.history=履歴 +agents.view.search.placeholder=スキルを検索 ... +agents.view.search.clear=検索をクリア +agents.view.history.empty=実行履歴がありません +agents.view.docs.tooltip=エージェントガイドを見る # Agentic run mode -skills.agentic.run=実行 -skills.agentic.goal.placeholder=目標を説明してください — エージェントが適切なスキルを自動で選択します… -skills.agentic.skills.available={0} 件のスキルをエージェントのコンテキストとして利用できます -skills.agentic.no.skills.hint=まだスキルがありません — 設定 → スキル でスキルを追加すると、エージェントに特化した機能を与えられます -skills.agentic.model.default=既定のモデル +agents.agentic.run=実行 +agents.agentic.goal.placeholder=目標を説明してください — エージェントが適切なスキルを自動的に選択します… +agents.agentic.skills.available={0} 個のスキルがエージェントのコンテキストとして利用可能 +agents.agentic.no.skills.hint=カスタムスキルなし — エージェントは組み込みの機能を使用します。設定 → エージェント & スキル でカスタムスキルを追加して拡張できます。 +agents.agentic.model.default=デフォルトモデル # Onboarding Wizard onboarding.title=Askimoへようこそ @@ -1667,7 +1675,7 @@ 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 (Antigravity CLI, Claude Code)、Projects onboarding.step.persona.researcher.description=トピックの調査、データの分析、構造化されたレポートの作成、および知識に基づいた回答の取得。 onboarding.step.persona.researcher.features=有効化:Plans、Projects (RAG) onboarding.step.persona.manager.description=メールの下書き、会議のメモの処理、ステータスレポートの作成、またはマルチステップのコンテンツワークフローの実行。 @@ -1680,3 +1688,13 @@ persona.developer=💻 コードの作成とレビュー persona.researcher=🔬 調査と分析 persona.manager=📋 作成と整理 persona.everything=⚡ 色々なことを組み合わせています + +# Memory pressure +memory.pressure.warning.message=コンテキストウィンドウがいっぱいになりつつあります。 +memory.pressure.critical.message=コンテキストウィンドウがほぼいっぱいです。圧縮して続行するか、新しいセッションを開始してください。 +memory.pressure.action.compress=圧縮 +memory.pressure.compressing=圧縮中… +memory.pressure.chip.tooltip.normal=使用済みコンテキスト +memory.pressure.chip.tooltip.warning=使用済みコンテキスト — クリックして圧縮 +memory.pressure.chip.tooltip.critical=使用済みコンテキスト — 今すぐ圧縮 +memory.pressure.chip.tooltip.unknown=コンテキストサイズはまだ確認されていません — 最初のやり取り後に自動的に更新されます 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..e00acb1c 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -6,7 +6,7 @@ app.quit.confirm=Askimo를 종료하시겠습니까? # Menu Items menu.file=파일 menu.new.project=새 프로젝트 -menu.search.sessions=세션 검색 +menu.search.sessions=대화 검색 menu.export.backup=백업 내보내기... menu.import.backup=백업 가져오기... menu.invalidate.caches=캐시 무효화... @@ -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,13 +88,13 @@ 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=새 채팅 chat.new.tooltip=새 채팅 ({0}+N) -chat.sessions=세션 -chat.sessions.tooltip=채팅 세션 보기 +chat.sessions=대화 +chat.sessions.tooltip=대화 보기 # Sidebar sidebar.expand=사이드바 펼치기 @@ -122,9 +123,9 @@ discover.explore.rag.desc=더 정확하고 맥락을 인식하는 답변을 위 discover.explore.plans.title=플랜 discover.explore.plans.desc=여러 단계의 AI 워크플로를 자동화하고 한 번의 클릭으로 필요할 때 실행하세요. discover.explore.skills.title=스킬 -discover.explore.skills.desc=Gemini CLI 또는 Claude Code로 지원되는 AI 기반 스킬을 워크스페이스에서 직접 실행하세요. -discover.recent.title=최근 세션 -discover.recent.empty=아직 최근 세션이 없습니다. +discover.explore.skills.desc=Antigravity CLI 또는 Claude Code로 지원되는 AI 기반 스킬을 워크스페이스에서 직접 실행하세요. +discover.recent.title=최근 대화 +discover.recent.empty=아직 최근 대화가 없습니다. discover.tokens.period.24h=지난 24시간 discover.tokens.period.week=지난 1주일 discover.tokens.period.month=지난 1개월 @@ -152,20 +153,20 @@ session.delete.confirm.message="{0}"을(를) 삭제하시겠습니까?\n\n이 session.delete.confirm.button=채팅 삭제 session.delete.confirm.cancel=취소 session.export=내보내기 -session.export.title=채팅 세션 내보내기 -session.export.description=채팅 세션을 내보낼 형식과 위치를 선택하세요 +session.export.title=대화 내보내기 +session.export.description=대화를 내보낼 형식과 위치를 선택하세요 session.export.select.format=내보낼 형식 선택 session.export.location=저장 위치 session.export.file.path=파일 경로 session.export.browse=찾아보기 session.rename.title=제목 변경 session.rename.field.label=제목 -session.rename.field.placeholder=세션 제목 입력... +session.rename.field.placeholder=대화 제목 입력... 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 @@ -197,7 +200,7 @@ project.dialog.url.button.cancel=취소 project.dialog.url.button.validating=검증 중... project.delete=프로젝트 삭제 project.delete.confirm.title=프로젝트 삭제? -project.delete.confirm.message=프로젝트 "{0}"을(를) 정말 삭제하시겠습니까?\n\n이 프로젝트의 모든 세션도 영구적으로 삭제됩니다. +project.delete.confirm.message=프로젝트 "{0}"을(를) 정말 삭제하시겠습니까?\n\n이 프로젝트의 모든 대화도 영구적으로 삭제됩니다. project.delete.confirm.button=프로젝트 삭제 project.delete.confirm.cancel=취소 project.not.found=프로젝트를 찾을 수 없습니다 @@ -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=로컬 파일 @@ -235,7 +245,8 @@ projects.sources.add.button=참조 자료 추가 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=프로젝트를 삭제하지 못했습니다. 다시 시도하세요. @@ -243,17 +254,19 @@ projects.error.updating=프로젝트를 업데이트하지 못했습니다. 다 projects.error.not.found=프로젝트를 찾을 수 없습니다. project.update.success=프로젝트가 성공적으로 업데이트되었습니다. project.error.loading=프로젝트를 로드하지 못했습니다. 다시 시도해 주세요. -project.error.loading_sessions=프로젝트 세션을 로드하지 못했습니다. 다시 시도해 주세요. +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=인덱싱됨 @@ -261,10 +274,10 @@ project.indexing.ready.tooltip=지식 소스가 인덱싱되어 AI 컨텍스트 session.move.to.project=프로젝트로 이동 session.move.to.project.new=새 프로젝트 session.remove.from.project={0}에서 제거 -session.move.success=세션이 프로젝트로 성공적으로 이동되었습니다. -session.remove.success=세션이 프로젝트에서 제거되었습니다. -session.error.moving=세션을 프로젝트로 이동하지 못했습니다. 다시 시도해 주세요. -session.error.removing=세션을 프로젝트에서 제거하지 못했습니다. 다시 시도해 주세요. +session.move.success=대화가 프로젝트로 성공적으로 이동되었습니다. +session.remove.success=대화가 프로젝트에서 제거되었습니다. +session.error.moving=대화를 프로젝트로 이동하지 못했습니다. 다시 시도해 주세요. +session.error.removing=대화를 프로젝트에서 제거하지 못했습니다. 다시 시도해 주세요. # Settings settings.title=설정 @@ -272,7 +285,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=컨테이너 위 @@ -294,49 +307,50 @@ settings.ai.provider=AI 제공자 settings.network=네트워크 settings.network.description=네트워크 및 프록시 설정 구성 settings.mcp.servers=MCP 서버 -settings.skills=스킬 -settings.skills.description=스킬은 사용자의 기기에서 직접 실행되는 재사용 가능한 AI 에이전트입니다. 각 스킬은 시스템 프롬프트와 지침을 담고 있는 Markdown 파일입니다. 스킬을 실행하면 {0}를 통해 실행되며 장치 파일을 읽고 쓰고, 셸 명령을 실행하며, 작업을 완료할 때까지 반복합니다. 복사 및 붙여넣기가 필요하지 않습니다. -settings.skills.runtimes=지원되는 런타임: -settings.skills.directory=스킬 디렉터리 -settings.skills.open.folder=폴더 열기 -settings.skills.new.skill=새 스킬 -settings.skills.import.github=GitHub에서 가져오기 -settings.skills.import.github.description=스킬 (.md) 파일이 포함된 GitHub 리포지토리를 스킬 디렉터리로 클론합니다. PATH에 git이 필요합니다. -settings.skills.import.github.url.label=GitHub 리포지토리 URL -settings.skills.import.github.button=가져오기 -settings.skills.import.github.importing=가져오는 중… -settings.skills.import.zip=ZIP에서 가져오기 -settings.skills.import.zip.description=스킬 폴더가 포함된 로컬 ZIP 아카이브를 가져옵니다 (각 스킬 폴더에는 skill.md 파일이 있어야 합니다). -settings.skills.import.zip.picker.title=ZIP 스킬 팩 선택 -settings.skills.import.zip.pick.button=ZIP 파일 선택 -settings.skills.import.zip.button=ZIP 가져오기 -settings.skills.import.zip.importing=ZIP 가져오는 중... -settings.skills.editor.name=이름 -settings.skills.editor.description=설명 -settings.skills.editor.system.prompt=시스템 프롬프트 -settings.skills.editor.system.prompt.placeholder=여기에 시스템 프롬프트를 작성하세요… -settings.skills.editor.system.prompt.hint=스킬이 활성화되어 있을 때 AI에 제공되는 지시입니다. -settings.skills.empty=스킬을 찾을 수 없음 -settings.skills.empty.hint=+ 버튼을 사용하여 첫 번째 스킬을 만드세요 -settings.skills.select.prompt=패널에서 스킬을 선택하여 보거나 편집하세요 -settings.skills.editor.empty.file=빈 파일 -settings.skills.editor.mode.read=읽기 -settings.skills.editor.mode.edit=편집 -settings.skills.editor.line.count={0}줄 -settings.skills.editor.line.count.plural={0}줄 -settings.skills.new.skill.placeholder=my-skill -settings.skills.delete.file.title=파일 삭제 -settings.skills.delete.file.confirm="{0}"을(를) 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다. -settings.skills.delete.folder.title=폴더 삭제 -settings.skills.delete.folder.confirm="{0}" 및 그 안의 모든 스킬을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다. -settings.skills.delete.all.title=모든 스킬 삭제 -settings.skills.delete.all.confirm=모든 스킬을 삭제하시겠습니까? 이 작업은 모든 스킬 폴더를 영구적으로 삭제하며, 취소할 수 없습니다. -settings.skills.import.success.title=가져오기 성공 -settings.skills.import.success.message="{1}"에 {0}개의 기술을 성공적으로 가져왔습니다. -settings.skills.add.file=파일 추가 -settings.skills.add.file.name=파일 이름 -settings.skills.add.folder=폴더 추가 -settings.skills.add.folder.name=폴더 이름 +settings.agents=에이전트 및 스킬 +settings.agents.skills.title=스킬 +settings.agents.description=스킬은 사용자의 기기에서 직접 실행되는 재사용 가능한 AI 에이전트입니다. 각 스킬은 시스템 프롬프트와 지침을 담고 있는 Markdown 파일입니다. 스킬을 실행하면 {0}를 통해 실행되며 장치 파일을 읽고 쓰고, 셸 명령을 실행하며, 작업이 완료될 때까지 반복합니다. 복사 및 붙여넣기가 필요하지 않습니다. +settings.agents.runtimes=지원되는 런타임\: +settings.agents.directory=스킬 디렉터리 +settings.agents.open.folder=폴더 열기 +settings.agents.new.skill=새 스킬 +settings.agents.import.github=GitHub에서 가져오기 +settings.agents.import.github.description=스킬 (.md) 파일이 포함된 GitHub 리포지토리를 스킬 디렉터리로 클론합니다. PATH에 git이 필요합니다. +settings.agents.import.github.url.label=GitHub 리포지토리 URL +settings.agents.import.github.button=가져오기 +settings.agents.import.github.importing=가져오는 중… +settings.agents.import.zip=ZIP에서 가져오기 +settings.agents.import.zip.description=스킬 폴더가 포함된 로컬 ZIP 아카이브를 가져옵니다 (각 스킬 폴더에는 skill.md 파일이 있어야 합니다). +settings.agents.import.zip.picker.title=ZIP 스킬 팩 선택 +settings.agents.import.zip.pick.button=ZIP 파일 선택 +settings.agents.import.zip.button=ZIP 가져오기 +settings.agents.import.zip.importing=ZIP 가져오는 중... +settings.agents.editor.name=이름 +settings.agents.editor.description=설명 +settings.agents.editor.system.prompt=시스템 프롬프트 +settings.agents.editor.system.prompt.placeholder=여기에 시스템 프롬프트를 작성하세요… +settings.agents.editor.system.prompt.hint=스킬이 활성화되어 있을 때 AI에 제공되는 지시입니다. +settings.agents.empty=스킬을 찾을 수 없음 +settings.agents.empty.hint=+ 버튼을 사용하여 첫 번째 스킬을 만드세요 +settings.agents.select.prompt=패널에서 스킬을 선택하여 보거나 편집하세요 +settings.agents.editor.empty.file=빈 파일 +settings.agents.editor.mode.read=읽기 +settings.agents.editor.mode.edit=편집 +settings.agents.editor.line.count={0}줄 +settings.agents.editor.line.count.plural={0}줄 +settings.agents.new.skill.placeholder=my-skill +settings.agents.delete.file.title=파일 삭제 +settings.agents.delete.file.confirm="{0}"을(를) 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다. +settings.agents.delete.folder.title=폴더 삭제 +settings.agents.delete.folder.confirm="{0}" 및 그 안의 모든 스킬을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다. +settings.agents.delete.all.title=모든 스킬 삭제 +settings.agents.delete.all.confirm=모든 스킬을 삭제하시겠습니까? 이 작업은 모든 스킬 폴더를 영구적으로 삭제하며, 취소할 수 없습니다. +settings.agents.import.success.title=가져오기 성공 +settings.agents.import.success.message="{1}"에 {0}개의 기술을 성공적으로 가져왔습니다. +settings.agents.add.file=파일 추가 +settings.agents.add.file.name=파일 이름 +settings.agents.add.folder=폴더 추가 +settings.agents.add.folder.name=폴더 이름 settings.advanced=고급 settings.about=정보 settings.theme=테마 @@ -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=확인 @@ -642,7 +657,7 @@ shortcut.toggle.chat.history=채팅 기록 표시/숨기기 shortcut.open.settings=설정 열기 shortcut.stop.ai.response=AI 응답 중지 shortcut.quit.application=애플리케이션 종료 -shortcut.navigate.to.sessions=세션으로 이동 +shortcut.navigate.to.sessions=대화로 이동 shortcut.navigate.to.projects=프로젝트로 이동 shortcut.navigate.to.bookmarks=책갈피로 이동 shortcut.enter.fullscreen=전체 화면으로 전환 @@ -654,16 +669,16 @@ shortcut.send.message=메시지 전송 shortcut.new.line=새 줄 # Chat View -chat.welcome=Askimo에 오신 것을 환영합니다!\n아래에 메시지를 입력하여 대화를 시작하세요. -chat.no.active.session=사이드바에서 세션을 선택하거나 새 채팅을 시작하세요 +chat.welcome=Askimo에 오신 것을 환영합니다\!\n아래에 메시지를 입력하여 대화를 시작하세요. +chat.no.active.session=사이드바에서 대화를 선택하거나 새 채팅을 시작하세요 chat.search.placeholder=대화 내 검색... chat.search.no.results=결과 없음 chat.search.not.found="{0}"와 일치하는 메시지를 찾을 수 없습니다 # Global Search -global.search.title=세션에서 검색 +global.search.title=대화에서 검색 global.search.query=검색 쿼리 -global.search.query.placeholder=모든 세션에서 검색... +global.search.query.placeholder=모든 대화에서 검색... global.search.filter.date=날짜 범위 global.search.sort.by=정렬 기준 global.search.button=검색 @@ -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,40 +757,40 @@ 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 session.tooltip.started=시작됨 session.tooltip.last.activity=마지막 활동 -sessions.title=채팅 세션 +sessions.title=대화 sessions.col.title=제목 sessions.col.created=생성됨 sessions.col.updated=업데이트됨 sessions.error=❌ {0} -sessions.empty=세션을 찾을 수 없습니다. -sessions.empty.hint=💡 새 대화를 시작해 첫 세션을 만들어 보세요! +sessions.empty=대화를 찾을 수 없습니다. +sessions.empty.hint=💡 새 대화를 시작해 첫 대화를 만들어 보세요\! sessions.search.placeholder=제목으로 검색… -sessions.search.empty="{0}"과(와) 일치하는 세션이 없습니다. +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=다음 페이지 # SessionsViewModel Errors -sessions.error.loading=세션 로드 실패. 다시 시도하세요. -sessions.error.deleting=세션 삭제 실패. 다시 시도하세요. -sessions.error.updating=세션 업데이트 실패. 다시 시도하세요. -sessions.error.renaming=세션 이름 변경 실패. 다시 시도하세요. -sessions.error.not.found=세션을 찾을 수 없습니다. +sessions.error.loading=대화 로드 실패. 다시 시도하세요. +sessions.error.deleting=대화 삭제 실패. 다시 시도하세요. +sessions.error.updating=대화 업데이트 실패. 다시 시도하세요. +sessions.error.renaming=대화 이름 변경 실패. 다시 시도하세요. +sessions.error.not.found=대화를 찾을 수 없습니다. 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=오류 @@ -880,6 +905,7 @@ log.level.trace.description=모든 로그 표시 (가장 상세) # Message Components message.loading.previous=이전 메시지 불러오는 중... message.thinking=생각 중… ({0}s) +message.processing=처리 중… ({0}s) message.thinking.section.streaming=💭 생각 중... message.thinking.section.done=💭 생각 message.copy=메시지 복사 @@ -919,7 +945,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=북마크 @@ -935,7 +961,7 @@ bookmarks.role.user=나 bookmarks.role.ai=AI # Tool call display -tool.call.header.running=도구 실행 중... +tool.call.header.running=도구 실행 중... ({0}s) tool.call.header.done={0}개의 도구 사용됨 tool.call.status.done=완료 tool.call.status.failed=실패 @@ -956,10 +982,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 +992,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 +1025,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 +1041,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 +1057,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 +1085,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 +1096,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 +1146,21 @@ 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.malformed_tool_call=⚠️ AI 모델이 잘못된 도구 호출을 시도했습니다\!\n\n모델이 불완전하거나 잘못된 도구 요청(이름/인수 누락)을 스트리밍했습니다. 이는 Askimo로 인한 문제가 아니며, AI 모델 또는 백엔드의 함수 호출 출력 오류입니다. 소형 모델이나 로컬 모델에서 흔히 발생합니다.\n\n해결 방법\:\n1. 메시지를 다시 보내보세요 — 대개 일시적인 문제입니다\n2. 계속 발생하면 활성화된 도구 수를 줄여보세요\n3. 도구/함수 호출에 더 적합한 다른 모델을 시도해 보세요 +error.system=⚠️ 시스템 오류\n\n예기치 않은 오류가 발생했습니다\: {errorCode}\n\nAskimo 지원팀에 다음 정보를 함께 전달해 주세요\:\n• 수행 중이던 작업\n• 위의 오류 코드\n• 타임스탬프 # Model Availability Errors error.model.not_available.title.chat=모델을 사용할 수 없음 @@ -1152,10 +1168,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 +1187,38 @@ error.indexing.io_error.title=IO 오류 error.indexing.io_error.message=인덱싱 중 IO 오류가 발생했습니다 error.indexing.unknown.title=인덱싱 오류 error.indexing.unknown.message=인덱싱 중 알 수 없는 오류가 발생했습니다 +error.indexing.failed.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 +1226,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 +1269,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 +1286,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 +1312,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 +1338,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 +1347,24 @@ 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.protocol.version.label=프로토콜 버전 +mcp.instance.protocol.version.hint=자동 감지 시간이 초과된 경우에만 명시적으로 설정하세요. 대부분의 서버에는 "자동 감지"로 두세요. +mcp.instance.protocol.version.auto=자동 감지 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 +1375,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 +1401,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 +1420,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 +1476,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 +1492,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 +1542,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=이 계획이 수행할 작업을 알기 쉬운 말로 설명해주세요... @@ -1534,71 +1562,51 @@ plans.interactive.answer.placeholder=답변을 입력하세요... plans.interactive.send=답변 제출 plans.interactive.skip=건너뛰기(비워 두기) -#Skills -skills.nav.title=스킬 -skills.view.title=스킬 -skills.view.empty=아직 스킬이 없습니다 -skills.view.empty.hint=시작하려면 설정 → 스킬에서 스킬을 만드세요 -skills.view.empty.search=검색어와 일치하는 기술이 없습니다 -skills.view.manage=스킬 관리 -skills.view.select.prompt=실행할 스킬을 선택하세요 -skills.view.select.hint=오른쪽 스킬 패널에서 스킬을 선택하세요 -skills.view.run=스킬 실행 -skills.view.run.command=명령 보내기 -skills.view.running=실행 중… -skills.view.no.agent=설치된 에이전트가 없습니다 -skills.view.agent.not.installed=설치되지 않음 -skills.view.agent.install.hint={0} 이(가) 설치되지 않았습니다. 설치 가이드를 참조하세요. -skills.view.agent.configure=에이전트 구성 -skills.view.agent.needs.key={0} 이(가) 설치되었으나 기능을 실행하려면 API 키가 필요합니다. -skills.view.agent.key.placeholder=여기에 API 키를 붙여넣으세요 -skills.view.response.error=오류 -skills.view.workdir.change=변경 -skills.view.workdir.open=폴더 열기 -skills.view.workspace=작업 공간 -skills.view.workspace.empty=작업 공간에 파일이 없습니다 -skills.view.workspace.copy.path=경로 복사 -skills.view.workspace.open.file=파일 열기 -skills.view.workspace.open.folder=포함된 폴더 열기 -skills.view.workspace.new=새로 만들기… -skills.view.workspace.new.folder=새 폴더 -skills.view.workspace.new.file=새 파일 -skills.view.workspace.new.subfolder=새 하위 폴더 -skills.view.workspace.new.file.here=여기에 새 파일 -skills.view.workspace.name.placeholder=이름 -skills.view.workspace.duplicate=복제 -skills.view.workspace.delete.confirm.title="{0}" 삭제? -skills.view.workspace.delete.confirm.message=이 작업은 취소할 수 없습니다. -skills.view.panel.collapse=패널 접기 -skills.view.panel.expand=패널 펼치기 -skills.view.tab.skills=스킬 -skills.view.tab.workspace=작업 공간 -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.system.prompt.preview=시스템 프롬프트 -skills.view.response.title=응답 -skills.view.followup.label=후속 질문 -skills.view.followup.placeholder=후속 질문을 하거나 변경을 요청하세요... -skills.view.followup.send=보내기 -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.docs.tooltip=스킬 가이드 보기 -skills.view.mode.agentic=에이전트형 -skills.view.mode.manual=수동 +# Agents +agents.nav.title=에이전트 +agents.view.title=에이전트 +agents.view.description=AI 에이전트({0})를 내 컴퓨터에서 직접 실행합니다. 에이전트는 파일을 읽고 쓰고, 셸 명령을 실행하며, 작업이 완료될 때까지 반복합니다. +agents.view.empty.search=검색과 일치하는 스킬이 없습니다 +agents.view.manage=스킬 관리 +agents.view.running=실행 중… +agents.view.no.agent=설치된 에이전트가 없습니다 +agents.view.agent.not.installed=설치되지 않음 +agents.view.workdir.open=폴더 열기 +agents.view.workspace.empty=워크스페이스에 파일이 없습니다 +agents.view.workspace.copy.path=경로 복사 +agents.view.workspace.open.file=파일 열기 +agents.view.workspace.open.folder=포함된 폴더 열기 +agents.view.workspace.new=새로 만들기… +agents.view.workspace.new.folder=새 폴더 +agents.view.workspace.new.file=새 파일 +agents.view.workspace.new.subfolder=새 하위 폴더 +agents.view.workspace.new.file.here=여기에 새 파일 +agents.view.workspace.name.placeholder=이름 +agents.view.workspace.duplicate=복제 +agents.view.workspace.delete.confirm.title="{0}"을(를) 삭제하시겠습니까? +agents.view.workspace.delete.confirm.message=이 작업은 취소할 수 없습니다. +agents.view.workspace.switcher.title=워크스페이스 전환 +agents.view.workspace.switcher.empty=아직 워크스페이스가 없습니다 +agents.view.workspace.switcher.add=워크스페이스 추가... +agents.view.workspace.switcher.pin=워크스페이스 고정 +agents.view.workspace.switcher.rename=워크스페이스 이름 변경 +agents.view.workspace.switcher.remove.title="{0}"을(를) 워크스페이스에서 제거하시겠습니까? +agents.view.workspace.switcher.remove.message=목록에서만 제거됩니다 — 폴더와 파일은 삭제되지 않습니다. +agents.view.panel.collapse=패널 접기 +agents.view.panel.expand=패널 펼치기 +agents.view.tab.workspace=워크스페이스 +agents.view.tab.history=기록 +agents.view.search.placeholder=스킬 검색 ... +agents.view.search.clear=검색 지우기 +agents.view.history.empty=아직 실행 기록이 없습니다 +agents.view.docs.tooltip=에이전트 가이드 보기 # Agentic run mode -skills.agentic.run=실행 -skills.agentic.goal.placeholder=목표를 설명하세요 — 에이전트가 적합한 스킬을 자동으로 선택합니다… -skills.agentic.skills.available={0}개의 스킬을 에이전트 컨텍스트로 사용할 수 있습니다 -skills.agentic.no.skills.hint=아직 스킬이 없습니다 — 설정 → 스킬에서 스킬을 추가하여 에이전트에 특화된 기능을 제공하세요 -skills.agentic.model.default=기본 모델 +agents.agentic.run=실행 +agents.agentic.goal.placeholder=목표를 설명하세요 — 에이전트가 적합한 스킬을 자동으로 선택합니다… +agents.agentic.skills.available={0}개의 스킬이 에이전트 컨텍스트로 제공됩니다 +agents.agentic.no.skills.hint=커스텀 스킬 없음 — 에이전트는 자체 내장 기능을 사용합니다. 설정 → 에이전트 & 스킬에서 커스텀 스킬을 추가하여 확장할 수 있습니다. +agents.agentic.model.default=기본 모델 # Onboarding Wizard onboarding.title=Askimo에 오신 것을 환영합니다 @@ -1615,7 +1623,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 +1636,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 +1665,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,16 +1675,26 @@ 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 (Antigravity 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=💻 코드 작성 및 검토 persona.researcher=🔬 조사 및 분석 persona.manager=📋 작성 및 정리 persona.everything=⚡ 여러 가지 작업을 혼합하여 합니다 + +# Memory pressure +memory.pressure.warning.message=컨텍스트 창이 가득 차고 있습니다. +memory.pressure.critical.message=컨텍스트 창이 거의 가득 찼습니다. 계속하려면 압축하거나 새 세션을 시작하세요. +memory.pressure.action.compress=압축 +memory.pressure.compressing=압축 중… +memory.pressure.chip.tooltip.normal=사용된 컨텍스트 +memory.pressure.chip.tooltip.warning=사용된 컨텍스트 — 클릭하여 압축 +memory.pressure.chip.tooltip.critical=사용된 컨텍스트 — 지금 압축 +memory.pressure.chip.tooltip.unknown=컨텍스트 크기가 아직 확인되지 않았습니다 — 첫 번째 대화 후 자동으로 업데이트됩니다 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..a2e1602b 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt_BR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt_BR.properties @@ -6,7 +6,7 @@ app.quit.confirm=Sair do Askimo? # Menu Items menu.file=Arquivo menu.new.project=Novo projeto -menu.search.sessions=Pesquisar nas sessões +menu.search.sessions=Pesquisar nas conversas menu.export.backup=Exportar backup... menu.import.backup=Importar backup... menu.invalidate.caches=Invalidar caches... @@ -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,13 +88,13 @@ 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 chat.new.tooltip=Nova Conversa ({0}+N) -chat.sessions=Sessões -chat.sessions.tooltip=Ver sessões de conversa +chat.sessions=Conversas +chat.sessions.tooltip=Ver conversas # Sidebar sidebar.expand=Expandir barra lateral @@ -122,9 +123,9 @@ discover.explore.rag.desc=Fundamente a sua IA nos seus próprios documentos para discover.explore.plans.title=Planos discover.explore.plans.desc=Automatize workflows de IA em várias etapas e execute-os sob demanda com um único clique. discover.explore.skills.title=Habilidades -discover.explore.skills.desc=Execute habilidades com tecnologia de IA apoiadas pelo Gemini CLI ou Claude Code diretamente do seu espaço de trabalho. -discover.recent.title=Sessões recentes -discover.recent.empty=Ainda não há sessões recentes. +discover.explore.skills.desc=Execute habilidades com tecnologia de IA apoiadas pelo Antigravity CLI ou Claude Code diretamente do seu espaço de trabalho. +discover.recent.title=Conversas recentes +discover.recent.empty=Ainda não há conversas recentes. discover.tokens.period.24h=Últimas 24 horas discover.tokens.period.week=Última semana discover.tokens.period.month=Último mês @@ -152,20 +153,20 @@ session.delete.confirm.message=Tem certeza de que deseja excluir "{0}"?\n\nEsta session.delete.confirm.button=Excluir chat session.delete.confirm.cancel=Cancelar session.export=Exportar -session.export.title=Exportar sessão de chat -session.export.description=Escolha um formato e um local para exportar sua sessão de chat +session.export.title=Exportar conversa +session.export.description=Escolha um formato e um local para exportar sua conversa session.export.select.format=Selecionar formato de exportação session.export.location=Local de salvamento session.export.file.path=Caminho do arquivo session.export.browse=Navegar session.rename.title=Renomear Título session.rename.field.label=Título -session.rename.field.placeholder=Digite o título da sessão... +session.rename.field.placeholder=Digite o título da conversa... 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 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 @@ -197,7 +200,7 @@ project.dialog.url.button.cancel=Cancelar project.dialog.url.button.validating=Validando... project.delete=Excluir projeto project.delete.confirm.title=Excluir projeto? -project.delete.confirm.message=Tem certeza de que deseja excluir o projeto "{0}"?\n\nTodas as sessões deste projeto também serão permanentemente excluídas. +project.delete.confirm.message=Tem certeza de que deseja excluir o projeto "{0}"?\n\nTodas as conversas deste projeto também serão permanentemente excluídas. project.delete.confirm.button=Excluir projeto project.delete.confirm.cancel=Cancelar project.not.found=Projeto não encontrado @@ -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 @@ -235,7 +245,8 @@ projects.sources.add.button=Adicionar material de referência 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. @@ -243,17 +254,19 @@ projects.error.updating=Falha ao atualizar o projeto. Tente novamente. projects.error.not.found=Projeto não encontrado. project.update.success=Projeto atualizado com sucesso. 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.loading_sessions=Falha ao carregar conversas 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 @@ -261,10 +274,10 @@ project.indexing.ready.tooltip=As fontes de conhecimento estão indexadas e pron session.move.to.project=Mover para o projeto session.move.to.project.new=Novo projeto session.remove.from.project=Remover de {0} -session.move.success=Sessão movida para o projeto com sucesso. -session.remove.success=Sessão removida do projeto. -session.error.moving=Falha ao mover a sessão para o projeto. Por favor, tente novamente. -session.error.removing=Falha ao remover a sessão do projeto. Por favor, tente novamente. +session.move.success=Conversa movida para o projeto com sucesso. +session.remove.success=Conversa removida do projeto. +session.error.moving=Falha ao mover a conversa para o projeto. Por favor, tente novamente. +session.error.removing=Falha ao remover a conversa do projeto. Por favor, tente novamente. # Settings settings.title=Configurações @@ -272,7 +285,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 @@ -294,49 +307,50 @@ settings.ai.provider=Provedor de IA settings.network=Rede 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.directory=Diretório de habilidades -settings.skills.open.folder=Abrir pasta -settings.skills.new.skill=Nova habilidade -settings.skills.import.github=Importar do GitHub -settings.skills.import.github.description=Clone um repositório do GitHub que contém arquivos de habilidades (.md) para o seu diretório de habilidades. Requer git no PATH. -settings.skills.import.github.url.label=URL do repositório do GitHub -settings.skills.import.github.button=Importar -settings.skills.import.github.importing=Importando… -settings.skills.import.zip=Importar do ZIP -settings.skills.import.zip.description=Importe um arquivo ZIP local contendo pastas de habilidades (cada pasta deve incluir um arquivo skill.md). -settings.skills.import.zip.picker.title=Selecionar pacote ZIP de habilidades -settings.skills.import.zip.pick.button=Escolher arquivo ZIP -settings.skills.import.zip.button=Importar ZIP -settings.skills.import.zip.importing=Importando ZIP... -settings.skills.editor.name=Nome -settings.skills.editor.description=Descrição -settings.skills.editor.system.prompt=Prompt do sistema -settings.skills.editor.system.prompt.placeholder=Escreva o prompt do sistema aqui… -settings.skills.editor.system.prompt.hint=Esta é a instrução dada à IA quando a habilidade está ativa. -settings.skills.empty=Nenhuma habilidade encontrada -settings.skills.empty.hint=Use o botão + para criar sua primeira habilidade -settings.skills.select.prompt=Selecione uma habilidade no painel para visualizá-la ou editá-la -settings.skills.editor.empty.file=Arquivo vazio -settings.skills.editor.mode.read=Ler -settings.skills.editor.mode.edit=Editar -settings.skills.editor.line.count={0} linha -settings.skills.editor.line.count.plural={0} linhas -settings.skills.new.skill.placeholder=my-skill -settings.skills.delete.file.title=Excluir arquivo -settings.skills.delete.file.confirm=Excluir "{0}"? Esta ação não pode ser desfeita. -settings.skills.delete.folder.title=Excluir pasta -settings.skills.delete.folder.confirm=Excluir "{0}" e todas as habilidades dentro dela? Esta ação não pode ser desfeita. -settings.skills.delete.all.title=Excluir todas as habilidades -settings.skills.delete.all.confirm=Excluir todas as habilidades? Isso removerá permanentemente todas as pastas de habilidades e não poderá ser desfeito. -settings.skills.import.success.title=Importação bem-sucedida -settings.skills.import.success.message={0} habilidade(s) importada(s) com sucesso para "{1}". -settings.skills.add.file=Adicionar arquivo -settings.skills.add.file.name=Nome do arquivo -settings.skills.add.folder=Adicionar pasta -settings.skills.add.folder.name=Nome da pasta +settings.agents=Agentes e habilidades +settings.agents.skills.title=Habilidades +settings.agents.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.agents.runtimes=Ambientes de execução suportados\: +settings.agents.directory=Diretório de habilidades +settings.agents.open.folder=Abrir pasta +settings.agents.new.skill=Nova habilidade +settings.agents.import.github=Importar do GitHub +settings.agents.import.github.description=Clone um repositório do GitHub que contém arquivos de habilidades (.md) para o seu diretório de habilidades. Requer git no PATH. +settings.agents.import.github.url.label=URL do repositório do GitHub +settings.agents.import.github.button=Importar +settings.agents.import.github.importing=Importando… +settings.agents.import.zip=Importar do ZIP +settings.agents.import.zip.description=Importe um arquivo ZIP local contendo pastas de habilidades (cada pasta deve incluir um arquivo skill.md). +settings.agents.import.zip.picker.title=Selecionar pacote ZIP de habilidades +settings.agents.import.zip.pick.button=Escolher arquivo ZIP +settings.agents.import.zip.button=Importar ZIP +settings.agents.import.zip.importing=Importando ZIP... +settings.agents.editor.name=Nome +settings.agents.editor.description=Descrição +settings.agents.editor.system.prompt=Prompt do sistema +settings.agents.editor.system.prompt.placeholder=Escreva o prompt do sistema aqui… +settings.agents.editor.system.prompt.hint=Esta é a instrução dada à IA quando a habilidade está ativa. +settings.agents.empty=Nenhuma habilidade encontrada +settings.agents.empty.hint=Use o botão + para criar sua primeira habilidade +settings.agents.select.prompt=Selecione uma habilidade no painel para visualizá-la ou editá-la +settings.agents.editor.empty.file=Arquivo vazio +settings.agents.editor.mode.read=Ler +settings.agents.editor.mode.edit=Editar +settings.agents.editor.line.count={0} linha +settings.agents.editor.line.count.plural={0} linhas +settings.agents.new.skill.placeholder=my-skill +settings.agents.delete.file.title=Excluir arquivo +settings.agents.delete.file.confirm=Excluir "{0}"? Esta ação não pode ser desfeita. +settings.agents.delete.folder.title=Excluir pasta +settings.agents.delete.folder.confirm=Excluir "{0}" e todas as habilidades dentro dela? Esta ação não pode ser desfeita. +settings.agents.delete.all.title=Excluir todas as habilidades +settings.agents.delete.all.confirm=Excluir todas as habilidades? Isso removerá permanentemente todas as pastas de habilidades e não poderá ser desfeito. +settings.agents.import.success.title=Importação bem-sucedida +settings.agents.import.success.message={0} habilidade(s) importada(s) com sucesso para "{1}". +settings.agents.add.file=Adicionar arquivo +settings.agents.add.file.name=Nome do arquivo +settings.agents.add.folder=Adicionar pasta +settings.agents.add.folder.name=Nome da pasta settings.advanced=Avançado settings.about=Sobre settings.theme=Tema @@ -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 @@ -642,7 +657,7 @@ shortcut.toggle.chat.history=Mostrar/Ocultar histórico do chat shortcut.open.settings=Abrir configurações shortcut.stop.ai.response=Parar resposta da IA shortcut.quit.application=Sair da aplicação -shortcut.navigate.to.sessions=Navegar para sessões +shortcut.navigate.to.sessions=Navegar para conversas shortcut.navigate.to.projects=Ir para Projetos shortcut.navigate.to.bookmarks=Navegar para favoritos shortcut.enter.fullscreen=Entrar em tela cheia @@ -654,16 +669,16 @@ 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.no.active.session=Selecione uma sessão na barra lateral ou inicie um novo chat +chat.welcome=Bem-vindo ao Askimo\!\nComece uma conversa digitando uma mensagem abaixo. +chat.no.active.session=Selecione uma conversa na barra lateral ou inicie um novo chat chat.search.placeholder=Buscar na conversa... chat.search.no.results=Sem resultados chat.search.not.found=Nenhuma mensagem correspondente a "{0}" # Global Search -global.search.title=Pesquisar em Sessões +global.search.title=Pesquisar em Conversas global.search.query=Consulta de pesquisa -global.search.query.placeholder=Pesquisar em todas as sessões... +global.search.query.placeholder=Pesquisar em todas as conversas... global.search.filter.date=Intervalo de datas global.search.sort.by=Ordenar por global.search.button=Pesquisar @@ -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,40 +757,40 @@ 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 session.tooltip.started=Iniciado session.tooltip.last.activity=Última atividade -sessions.title=Sessões de Conversa +sessions.title=Conversas sessions.col.title=Título 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=Nenhuma conversa encontrada. +sessions.empty.hint=💡 Inicie uma nova conversa para criar sua primeira\! sessions.search.placeholder=Pesquisar por título… -sessions.search.empty=Nenhuma sessão corresponde a "{0}". +sessions.search.empty=Nenhuma conversa 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 # SessionsViewModel Errors -sessions.error.loading=Falha ao carregar sessões. Tente novamente. -sessions.error.deleting=Falha ao excluir sessão. Tente novamente. -sessions.error.updating=Falha ao atualizar sessão. Tente novamente. -sessions.error.renaming=Falha ao renomear sessão. Tente novamente. -sessions.error.not.found=Sessão não encontrada. -sessions.error.rename.failed=Falha ao renomear sessão. +sessions.error.loading=Falha ao carregar conversas. Tente novamente. +sessions.error.deleting=Falha ao excluir conversa. Tente novamente. +sessions.error.updating=Falha ao atualizar conversa. Tente novamente. +sessions.error.renaming=Falha ao renomear conversa. Tente novamente. +sessions.error.not.found=Conversa não encontrada. +sessions.error.rename.failed=Falha ao renomear conversa. # 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 @@ -880,6 +905,7 @@ log.level.trace.description=Mostrar todas as mensagens (mais detalhado) # Message Components message.loading.previous=Carregando mensagens anteriores... message.thinking=Pensando… ({0}s) +message.processing=Processando… ({0}s) message.thinking.section.streaming=💭 Pensando... message.thinking.section.done=💭 Pensamento message.copy=Copiar mensagem @@ -919,7 +945,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 @@ -935,7 +961,7 @@ bookmarks.role.user=Você bookmarks.role.ai=IA # Tool call display -tool.call.header.running=Executando ferramenta... +tool.call.header.running=Executando ferramenta... ({0}s) tool.call.header.done={0} ferramenta(s) usada(s) tool.call.status.done=Concluído tool.call.status.failed=Falhou @@ -956,10 +982,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 +992,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 +1025,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 +1041,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 +1057,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 +1085,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 +1096,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 +1146,21 @@ 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.malformed_tool_call=⚠️ O modelo de IA tentou uma chamada de ferramenta inválida\!\n\nO modelo transmitiu uma solicitação de ferramenta incompleta ou malformada (nome/argumentos ausentes). Isso não é causado pelo Askimo — é uma falha na saída de chamada de função do modelo de IA ou do backend, mais comum em modelos menores ou locais.\n\nO que fazer\:\n1. Tente enviar a mensagem novamente — isso geralmente é transitório\n2. Se continuar acontecendo, tente desabilitar algumas ferramentas habilitadas para reduzir a ambiguidade\n3. Considere tentar um modelo diferente mais adequado para chamadas de ferramentas/funções +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 +1168,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 +1187,38 @@ 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 # 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 +1226,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 +1269,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 +1286,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 +1312,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 +1338,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 +1347,24 @@ 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.protocol.version.label=Versão do protocolo +mcp.instance.protocol.version.hint=Defina explicitamente apenas se a detecção automática expirar. Deixe em "Detectar automaticamente" para a maioria dos servidores. +mcp.instance.protocol.version.auto=Detectar automaticamente 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 +1375,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 +1401,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 +1420,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 +1476,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 +1492,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 +1542,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... @@ -1534,71 +1562,51 @@ plans.interactive.answer.placeholder=Digite sua resposta... plans.interactive.send=Enviar resposta plans.interactive.skip=Pular (deixar em branco) -#Skills -skills.nav.title=Habilidades -skills.view.title=Habilidades -skills.view.empty=Ainda não há habilidades -skills.view.empty.hint=Crie habilidades em Configurações → Habilidades para começar -skills.view.empty.search=Nenhuma habilidade corresponde à sua pesquisa -skills.view.manage=Gerenciar habilidades -skills.view.select.prompt=Selecione uma habilidade para executar -skills.view.select.hint=Escolha uma habilidade no painel de habilidades à direita -skills.view.run=Executar habilidade -skills.view.run.command=Enviar comando -skills.view.running=Executando… -skills.view.no.agent=Nenhum agente instalado -skills.view.agent.not.installed=Não instalado -skills.view.agent.install.hint={0} não está instalado. Veja o guia de instalação. -skills.view.agent.configure=Configurar agentes -skills.view.agent.needs.key={0} está instalado, mas requer uma chave API para executar as habilidades. -skills.view.agent.key.placeholder=Cole a chave API aqui -skills.view.response.error=Erro -skills.view.workdir.change=Alterar -skills.view.workdir.open=Abrir pasta -skills.view.workspace=Espaço de trabalho -skills.view.workspace.empty=Nenhum arquivo no espaço de trabalho -skills.view.workspace.copy.path=Copiar caminho -skills.view.workspace.open.file=Abrir arquivo -skills.view.workspace.open.folder=Abrir pasta contêiner -skills.view.workspace.new=Novo… -skills.view.workspace.new.folder=Nova pasta -skills.view.workspace.new.file=Novo arquivo -skills.view.workspace.new.subfolder=Nova subpasta -skills.view.workspace.new.file.here=Novo arquivo aqui -skills.view.workspace.name.placeholder=Nome -skills.view.workspace.duplicate=Duplicar -skills.view.workspace.delete.confirm.title=Excluir "{0}"? -skills.view.workspace.delete.confirm.message=Esta ação não pode ser desfeita. -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.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.system.prompt.preview=Prompt do sistema -skills.view.response.title=Resposta -skills.view.followup.label=Acompanhamento -skills.view.followup.placeholder=Faça uma pergunta de acompanhamento ou solicite uma alteração... -skills.view.followup.send=Enviar -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.docs.tooltip=Ver Guia de Habilidades -skills.view.mode.agentic=Agêntico -skills.view.mode.manual=Manual +# Agents +agents.nav.title=Agentes +agents.view.title=Agentes +agents.view.description=Execute um agente de IA ({0}) diretamente na sua máquina. O agente lê e escreve seus arquivos, executa comandos shell e itera até o trabalho ser concluído. +agents.view.empty.search=Nenhum skill corresponde à sua pesquisa +agents.view.manage=Gerenciar skills +agents.view.running=Executando… +agents.view.no.agent=Nenhum agente instalado +agents.view.agent.not.installed=Não instalado +agents.view.workdir.open=Abrir pasta +agents.view.workspace.empty=Nenhum arquivo no espaço de trabalho +agents.view.workspace.copy.path=Copiar caminho +agents.view.workspace.open.file=Abrir arquivo +agents.view.workspace.open.folder=Abrir pasta contendo +agents.view.workspace.new=Novo… +agents.view.workspace.new.folder=Nova pasta +agents.view.workspace.new.file=Novo arquivo +agents.view.workspace.new.subfolder=Nova subpasta +agents.view.workspace.new.file.here=Novo arquivo aqui +agents.view.workspace.name.placeholder=Nome +agents.view.workspace.duplicate=Duplicar +agents.view.workspace.delete.confirm.title=Excluir "{0}"? +agents.view.workspace.delete.confirm.message=Esta ação não pode ser desfeita. +agents.view.workspace.switcher.title=Trocar espaço de trabalho +agents.view.workspace.switcher.empty=Nenhum espaço de trabalho ainda +agents.view.workspace.switcher.add=Adicionar espaço de trabalho... +agents.view.workspace.switcher.pin=Fixar espaço de trabalho +agents.view.workspace.switcher.rename=Renomear espaço de trabalho +agents.view.workspace.switcher.remove.title=Remover "{0}" dos espaços de trabalho? +agents.view.workspace.switcher.remove.message=Isso apenas o remove da lista — a pasta e seus arquivos não são excluídos. +agents.view.panel.collapse=Recolher painel +agents.view.panel.expand=Expandir painel +agents.view.tab.workspace=Espaço de trabalho +agents.view.tab.history=Histórico +agents.view.search.placeholder=Pesquisar skills ... +agents.view.search.clear=Limpar pesquisa +agents.view.history.empty=Nenhuma execução ainda +agents.view.docs.tooltip=Ver guia de agentes # Agentic run mode -skills.agentic.run=Executar -skills.agentic.goal.placeholder=Descreva seu objetivo — o agente selecionará automaticamente as habilidades certas… -skills.agentic.skills.available={0} habilidades disponíveis como contexto do agente -skills.agentic.no.skills.hint=Ainda não há habilidades — adicione habilidades em Configurações → Habilidades para dar ao agente capacidades especializadas -skills.agentic.model.default=Modelo padrão +agents.agentic.run=Executar +agents.agentic.goal.placeholder=Descreva seu objetivo — o agente selecionará automaticamente os skills adequados… +agents.agentic.skills.available={0} skills disponíveis como contexto do agente +agents.agentic.no.skills.hint=Sem skills personalizados — o agente usa suas capacidades integradas. Adicione skills em Configurações → Agentes & Skills para estendê-lo. +agents.agentic.model.default=Modelo padrão # Onboarding Wizard onboarding.title=Bem-vindo ao Askimo @@ -1615,7 +1623,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 +1636,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 +1665,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,16 +1675,26 @@ 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 (Antigravity 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 persona.researcher=🔬 Pesquisar e analisar persona.manager=📋 Escrever e organizar persona.everything=⚡ Eu faço uma mistura de coisas + +# Memory pressure +memory.pressure.warning.message=A janela de contexto está ficando cheia. +memory.pressure.critical.message=A janela de contexto está quase cheia. Comprima para continuar ou inicie uma nova sessão. +memory.pressure.action.compress=Comprimir +memory.pressure.compressing=Comprimindo… +memory.pressure.chip.tooltip.normal=contexto usado +memory.pressure.chip.tooltip.warning=contexto usado — clique para comprimir +memory.pressure.chip.tooltip.critical=contexto usado — comprimir agora +memory.pressure.chip.tooltip.unknown=Tamanho do contexto ainda não calibrado — será atualizado automaticamente após a primeira troca 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..f3acb05e 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -6,7 +6,7 @@ app.quit.confirm=Rời khỏi Askimo? # Menu Items menu.file=Tệp menu.new.project=Dự án mới -menu.search.sessions=Tìm kiếm trong phiên +menu.search.sessions=Tìm kiếm trong cuộc trò chuyện menu.export.backup=Xuất bản sao lưu... menu.import.backup=Nhập bản sao lưu... menu.invalidate.caches=Vô hiệu hóa bộ nhớ đệm... @@ -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,13 +88,13 @@ 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 chat.new.tooltip=Trò chuyện mới ({0}+N) -chat.sessions=Các phiên -chat.sessions.tooltip=Xem danh sách phiên trò chuyện +chat.sessions=Cuộc trò chuyện +chat.sessions.tooltip=Xem danh sách cuộc trò chuyện # Sidebar sidebar.expand=Mở rộng thanh bên @@ -122,9 +123,9 @@ discover.explore.rag.desc=Đặt nền tảng cho AI bằng tài liệu của ri discover.explore.plans.title=Kế hoạch discover.explore.plans.desc=Tự động hóa quy trình làm việc AI nhiều bước và chạy chúng theo nhu cầu chỉ với một cú nhấp chuột. discover.explore.skills.title=Kỹ năng -discover.explore.skills.desc=Chạy các kỹ năng được hỗ trợ bởi AI dựa trên Gemini CLI hoặc Claude Code trực tiếp từ không gian làm việc của bạn. -discover.recent.title=Phiên gần đây -discover.recent.empty=Chưa có phiên gần đây. +discover.explore.skills.desc=Chạy các kỹ năng được hỗ trợ bởi AI dựa trên Antigravity CLI hoặc Claude Code trực tiếp từ không gian làm việc của bạn. +discover.recent.title=Cuộc trò chuyện gần đây +discover.recent.empty=Chưa có cuộc trò chuyện gần đây. discover.tokens.period.24h=24 giờ qua discover.tokens.period.week=1 tuần qua discover.tokens.period.month=1 tháng qua @@ -152,20 +153,20 @@ session.delete.confirm.message=Bạn có chắc chắn muốn xóa "{0}" không? session.delete.confirm.button=Xóa cuộc trò chuyện session.delete.confirm.cancel=Hủy session.export=Xuất -session.export.title=Xuất phiên trò chuyện -session.export.description=Chọn định dạng và vị trí để xuất phiên trò chuyện của bạn +session.export.title=Xuất cuộc trò chuyện +session.export.description=Chọn định dạng và vị trí để xuất cuộc trò chuyện của bạn session.export.select.format=Chọn định dạng xuất session.export.location=Vị trí lưu session.export.file.path=Đường dẫn tệp session.export.browse=Duyệt session.rename.title=Đổi tiêu đề session.rename.field.label=Tiêu đề -session.rename.field.placeholder=Nhập tiêu đề phiên... +session.rename.field.placeholder=Nhập tiêu đề cuộc trò chuyện... 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=Cuộc 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 @@ -197,7 +200,7 @@ project.dialog.url.button.cancel=Hủy project.dialog.url.button.validating=Đang xác thực... project.delete=Xóa dự án project.delete.confirm.title=Xóa dự án? -project.delete.confirm.message=Bạn có chắc chắn muốn xóa dự án "{0}" không?\n\nTất cả phiên trong dự án này cũng sẽ bị xóa vĩnh viễn. +project.delete.confirm.message=Bạn có chắc chắn muốn xóa dự án "{0}" không?\n\nTất cả cuộc trò chuyện trong dự án này cũng sẽ bị xóa vĩnh viễn. project.delete.confirm.button=Xóa dự án project.delete.confirm.cancel=Hủy project.not.found=Không tìm thấy dự án @@ -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ộ @@ -235,7 +245,8 @@ projects.sources.add.button=Thêm tài liệu tham chiếu 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. @@ -243,17 +254,19 @@ projects.error.updating=Không thể cập nhật dự án. Vui lòng thử lạ projects.error.not.found=Không tìm thấy dự án. project.update.success=Đã cập nhật dự án thành công. 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.loading_sessions=Không thể tải các cuộc trò chuyệ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 @@ -261,10 +274,10 @@ project.indexing.ready.tooltip=Các nguồn kiến thức đã được lập ch session.move.to.project=Chuyển sang dự án session.move.to.project.new=Dự án mới session.remove.from.project=Xóa khỏi {0} -session.move.success=Đã di chuyển phiên sang dự án thành công. -session.remove.success=Đã xóa phiên khỏi dự án. -session.error.moving=Không thể di chuyển phiên sang dự án. Vui lòng thử lại. -session.error.removing=Không thể xóa phiên khỏi dự án. Vui lòng thử lại. +session.move.success=Đã di chuyển cuộc trò chuyện sang dự án thành công. +session.remove.success=Đã xóa cuộc trò chuyện khỏi dự án. +session.error.moving=Không thể di chuyển cuộc trò chuyện sang dự án. Vui lòng thử lại. +session.error.removing=Không thể xóa cuộc trò chuyện khỏi dự án. Vui lòng thử lại. # Settings settings.title=Cài đặt @@ -272,7 +285,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 @@ -294,49 +307,50 @@ settings.ai.provider=Nhà cung cấp AI settings.network=Mạng 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.directory=Thư mục kỹ năng -settings.skills.open.folder=Mở thư mục -settings.skills.new.skill=Kỹ năng mới -settings.skills.import.github=Nhập từ GitHub -settings.skills.import.github.description=Clone một kho lưu trữ GitHub chứa các tệp kỹ năng (.md) vào thư mục kỹ năng của bạn. Yêu cầu git trong PATH. -settings.skills.import.github.url.label=URL kho lưu trữ GitHub -settings.skills.import.github.button=Nhập -settings.skills.import.github.importing=Đang nhập… -settings.skills.import.zip=Nhập từ ZIP -settings.skills.import.zip.description=Nhập tệp ZIP cục bộ chứa các thư mục kỹ năng (mỗi thư mục kỹ năng phải có tệp skill.md). -settings.skills.import.zip.picker.title=Chọn gói ZIP kỹ năng -settings.skills.import.zip.pick.button=Chọn tệp ZIP -settings.skills.import.zip.button=Nhập ZIP -settings.skills.import.zip.importing=Đang nhập ZIP... -settings.skills.editor.name=Tên -settings.skills.editor.description=Mô tả -settings.skills.editor.system.prompt=Prompt hệ thống -settings.skills.editor.system.prompt.placeholder=Viết prompt hệ thống tại đây… -settings.skills.editor.system.prompt.hint=Đây là chỉ dẫn được cung cấp cho AI khi kỹ năng đang hoạt động. -settings.skills.empty=Không tìm thấy kỹ năng nào -settings.skills.empty.hint=Sử dụng nút + để tạo kỹ năng đầu tiên của bạn -settings.skills.select.prompt=Chọn một kỹ năng từ bảng để xem hoặc chỉnh sửa -settings.skills.editor.empty.file=Tệp trống -settings.skills.editor.mode.read=Đọc -settings.skills.editor.mode.edit=Sửa -settings.skills.editor.line.count={0} dòng -settings.skills.editor.line.count.plural={0} dòng -settings.skills.new.skill.placeholder=my-skill -settings.skills.delete.file.title=Xóa tệp -settings.skills.delete.file.confirm=Xóa "{0}"? Không thể hoàn tác thao tác này. -settings.skills.delete.folder.title=Xóa thư mục -settings.skills.delete.folder.confirm=Xóa "{0}" và tất cả kỹ năng bên trong nó? Không thể hoàn tác thao tác này. -settings.skills.delete.all.title=Xóa tất cả kỹ năng -settings.skills.delete.all.confirm=Xóa tất cả kỹ năng? Thao tác này sẽ xóa vĩnh viễn tất cả các thư mục kỹ năng và không thể hoàn tác. -settings.skills.import.success.title=Nhập thành công -settings.skills.import.success.message=Đã nhập thành công {0} kỹ năng vào "{1}". -settings.skills.add.file=Thêm tệp -settings.skills.add.file.name=Tên tệp -settings.skills.add.folder=Thêm thư mục -settings.skills.add.folder.name=Tên thư mục +settings.agents=Tác nhân & Kỹ năng +settings.agents.skills.title=Kỹ năng +settings.agents.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.agents.runtimes=Các môi trường chạy được hỗ trợ\: +settings.agents.directory=Thư mục kỹ năng +settings.agents.open.folder=Mở thư mục +settings.agents.new.skill=Kỹ năng mới +settings.agents.import.github=Nhập từ GitHub +settings.agents.import.github.description=Clone một kho lưu trữ GitHub chứa các tệp kỹ năng (.md) vào thư mục kỹ năng của bạn. Yêu cầu git trong PATH. +settings.agents.import.github.url.label=URL kho lưu trữ GitHub +settings.agents.import.github.button=Nhập +settings.agents.import.github.importing=Đang nhập… +settings.agents.import.zip=Nhập từ ZIP +settings.agents.import.zip.description=Nhập tệp ZIP cục bộ chứa các thư mục kỹ năng (mỗi thư mục kỹ năng phải có tệp skill.md). +settings.agents.import.zip.picker.title=Chọn gói ZIP kỹ năng +settings.agents.import.zip.pick.button=Chọn tệp ZIP +settings.agents.import.zip.button=Nhập ZIP +settings.agents.import.zip.importing=Đang nhập ZIP... +settings.agents.editor.name=Tên +settings.agents.editor.description=Mô tả +settings.agents.editor.system.prompt=Prompt hệ thống +settings.agents.editor.system.prompt.placeholder=Viết prompt hệ thống tại đây… +settings.agents.editor.system.prompt.hint=Đây là chỉ dẫn được cung cấp cho AI khi kỹ năng đang hoạt động. +settings.agents.empty=Không tìm thấy kỹ năng nào +settings.agents.empty.hint=Sử dụng nút + để tạo kỹ năng đầu tiên của bạn +settings.agents.select.prompt=Chọn một kỹ năng từ bảng để xem hoặc chỉnh sửa +settings.agents.editor.empty.file=Tệp trống +settings.agents.editor.mode.read=Đọc +settings.agents.editor.mode.edit=Sửa +settings.agents.editor.line.count={0} dòng +settings.agents.editor.line.count.plural={0} dòng +settings.agents.new.skill.placeholder=my-skill +settings.agents.delete.file.title=Xóa tệp +settings.agents.delete.file.confirm=Xóa "{0}"? Không thể hoàn tác thao tác này. +settings.agents.delete.folder.title=Xóa thư mục +settings.agents.delete.folder.confirm=Xóa "{0}" và tất cả kỹ năng bên trong nó? Không thể hoàn tác thao tác này. +settings.agents.delete.all.title=Xóa tất cả kỹ năng +settings.agents.delete.all.confirm=Xóa tất cả kỹ năng? Thao tác này sẽ xóa vĩnh viễn tất cả các thư mục kỹ năng và không thể hoàn tác. +settings.agents.import.success.title=Nhập thành công +settings.agents.import.success.message=Đã nhập thành công {0} kỹ năng vào "{1}". +settings.agents.add.file=Thêm tệp +settings.agents.add.file.name=Tên tệp +settings.agents.add.folder=Thêm thư mục +settings.agents.add.folder.name=Tên thư mục settings.advanced=Nâng cao settings.about=Giới thiệu settings.theme=Chủ đề @@ -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 @@ -642,7 +657,7 @@ shortcut.toggle.chat.history=Hiện/Ẩn lịch sử chat shortcut.open.settings=Mở cài đặt shortcut.stop.ai.response=Dừng phản hồi AI shortcut.quit.application=Thoát ứng dụng -shortcut.navigate.to.sessions=Đi tới phiên +shortcut.navigate.to.sessions=Đi tới cuộc trò chuyện shortcut.navigate.to.projects=Đi tới Dự án shortcut.navigate.to.bookmarks=Điều hướng đến dấu trang shortcut.enter.fullscreen=Chuyển sang toàn màn hình @@ -654,16 +669,16 @@ 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.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.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 cuộc trò chuyệ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ả chat.search.not.found=Không tìm thấy tin nhắn khớp "{0}" # Global Search -global.search.title=Tìm kiếm trong phiên +global.search.title=Tìm kiếm trong cuộc trò chuyện global.search.query=Truy vấn tìm kiếm -global.search.query.placeholder=Tìm kiếm trong tất cả phiên... +global.search.query.placeholder=Tìm kiếm trong tất cả cuộc trò chuyện... global.search.filter.date=Khoảng thời gian global.search.sort.by=Sắp xếp theo global.search.button=Tìm kiếm @@ -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,40 +757,40 @@ 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 session.tooltip.started=Đã bắt đầu session.tooltip.last.activity=Hoạt động cuối -sessions.title=Các phiên trò chuyện +sessions.title=Cuộc trò chuyện sessions.col.title=Tiêu đề 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=Không có cuộc trò chuyện. +sessions.empty.hint=💡 Bắt đầu một cuộc trò chuyện mới để tạo cuộc đầ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}". +sessions.search.empty=Không có cuộc trò chuyệ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 # SessionsViewModel Errors -sessions.error.loading=Lỗi tải phiên. Vui lòng thử lại. -sessions.error.deleting=Lỗi xóa phiên. Vui lòng thử lại. -sessions.error.updating=Lỗi cập nhật phiên. Vui lòng thử lại. -sessions.error.renaming=Lỗi đổi tên phiên. Vui lòng thử lại. -sessions.error.not.found=Không tìm thấy phiên. +sessions.error.loading=Lỗi tải cuộc trò chuyện. Vui lòng thử lại. +sessions.error.deleting=Lỗi xóa cuộc trò chuyện. Vui lòng thử lại. +sessions.error.updating=Lỗi cập nhật cuộc trò chuyện. Vui lòng thử lại. +sessions.error.renaming=Lỗi đổi tên cuộc trò chuyện. Vui lòng thử lại. +sessions.error.not.found=Không tìm thấy cuộc trò chuyện. 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 @@ -880,6 +905,7 @@ log.level.trace.description=Chi tiết nhất # Message Components message.loading.previous=Đang tải các tin nhắn trước... message.thinking=Đang suy nghĩ… ({0}s) +message.processing=Đang xử lý… ({0}s) message.thinking.section.streaming=💭 Đang suy nghĩ... message.thinking.section.done=💭 Suy nghĩ message.copy=Sao chép tin nhắn @@ -919,7 +945,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 @@ -935,7 +961,7 @@ bookmarks.role.user=Bạn bookmarks.role.ai=AI # Tool call display -tool.call.header.running=Đang chạy công cụ... +tool.call.header.running=Đang chạy công cụ... ({0}s) tool.call.header.done=Đã sử dụng {0} công cụ tool.call.status.done=Hoàn tất tool.call.status.failed=Thất bại @@ -956,10 +982,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 +992,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 +1025,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 +1041,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 +1057,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 +1085,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 +1096,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 +1146,21 @@ 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.malformed_tool_call=⚠️ Mô hình AI đã thử một lệnh gọi công cụ không hợp lệ\!\n\nMô hình đã truyền một yêu cầu công cụ không đầy đủ hoặc sai định dạng (thiếu tên/đối số). Đây không phải lỗi do Askimo gây ra — đây là lỗi trong đầu ra gọi hàm của mô hình AI hoặc backend, thường gặp nhất ở các mô hình nhỏ hơn hoặc cục bộ.\n\nCách xử lý\:\n1. Thử gửi lại tin nhắn — điều này thường chỉ là tạm thời\n2. Nếu vẫn tiếp tục xảy ra, hãy thử tắt một số công cụ đang bật để giảm sự mơ hồ\n3. Cân nhắc thử một mô hình khác phù hợp hơn với việc gọi công cụ/hàm +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 +1168,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 +1187,38 @@ 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 # 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 +1226,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 +1269,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 +1286,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 +1312,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 +1338,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 +1347,24 @@ 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.protocol.version.label=Phiên bản giao thức +mcp.instance.protocol.version.hint=Chỉ đặt rõ ràng nếu tự động phát hiện hết thời gian chờ. Để ở "Tự động phát hiện" cho hầu hết các máy chủ. +mcp.instance.protocol.version.auto=Tự động phát hiện 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 +1375,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 +1401,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 +1420,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 +1476,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 +1492,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 +1542,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... @@ -1534,71 +1562,51 @@ plans.interactive.answer.placeholder=Nhập câu trả lời của bạn... plans.interactive.send=Gửi câu trả lời plans.interactive.skip=Bỏ qua (để trống) -#Skills -skills.nav.title=Kỹ năng -skills.view.title=Kỹ năng -skills.view.empty=Chưa có kỹ năng nào -skills.view.empty.hint=Tạo kỹ năng trong Cài đặt → Kỹ năng để bắt đầu -skills.view.empty.search=Không có kỹ năng nào khớp với tìm kiếm của bạn -skills.view.manage=Quản lý kỹ năng -skills.view.select.prompt=Chọn một kỹ năng để chạy -skills.view.select.hint=Chọn một kỹ năng từ bảng Kỹ năng ở bên phải -skills.view.run=Chạy kỹ năng -skills.view.run.command=Gửi lệnh -skills.view.running=Đang chạy… -skills.view.no.agent=Chưa cài đặt agent nào -skills.view.agent.not.installed=Chưa cài đặt -skills.view.agent.install.hint={0} chưa được cài đặt. Xem hướng dẫn cài đặt. -skills.view.agent.configure=Cấu hình người điều khiển -skills.view.agent.needs.key={0} đã được cài đặt nhưng cần một khóa API để chạy kỹ năng. -skills.view.agent.key.placeholder=Dán khóa API vào đây -skills.view.response.error=Lỗi -skills.view.workdir.change=Thay đổi -skills.view.workdir.open=Mở thư mục -skills.view.workspace=Không gian làm việc -skills.view.workspace.empty=Không có tệp nào trong không gian làm việc -skills.view.workspace.copy.path=Sao chép đường dẫn -skills.view.workspace.open.file=Mở tệp -skills.view.workspace.open.folder=Mở thư mục chứa -skills.view.workspace.new=Mới… -skills.view.workspace.new.folder=Thư mục mới -skills.view.workspace.new.file=Tệp mới -skills.view.workspace.new.subfolder=Thư mục con mới -skills.view.workspace.new.file.here=Tệp mới tại đây -skills.view.workspace.name.placeholder=Tên -skills.view.workspace.duplicate=Nhân bản -skills.view.workspace.delete.confirm.title=Xóa "{0}"? -skills.view.workspace.delete.confirm.message=Hành động này không thể hoàn tác. -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.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.system.prompt.preview=System Prompt -skills.view.response.title=Phản hồi -skills.view.followup.label=Theo dõi -skills.view.followup.placeholder=Đặt câu hỏi theo dõi hoặc yêu cầu thay đổi... -skills.view.followup.send=Gửi -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.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 +# Agents +agents.nav.title=Trợ lý AI +agents.view.title=Trợ lý AI +agents.view.description=Chạy trợ lý AI ({0}) trực tiếp trên máy của bạn. Trợ lý đọc và ghi tệp, thực thi lệnh shell, và lặp lại cho đến khi hoàn thành công việc. +agents.view.empty.search=Không có kỹ năng nào khớp với tìm kiếm của bạn +agents.view.manage=Quản lý kỹ năng +agents.view.running=Đang chạy… +agents.view.no.agent=Chưa cài đặt trợ lý nào +agents.view.agent.not.installed=Chưa cài đặt +agents.view.workdir.open=Mở thư mục +agents.view.workspace.empty=Không có tệp trong không gian làm việc +agents.view.workspace.copy.path=Sao chép đường dẫn +agents.view.workspace.open.file=Mở tệp +agents.view.workspace.open.folder=Mở thư mục chứa +agents.view.workspace.new=Mới… +agents.view.workspace.new.folder=Thư mục mới +agents.view.workspace.new.file=Tệp mới +agents.view.workspace.new.subfolder=Thư mục con mới +agents.view.workspace.new.file.here=Tệp mới tại đây +agents.view.workspace.name.placeholder=Tên +agents.view.workspace.duplicate=Nhân bản +agents.view.workspace.delete.confirm.title=Xóa "{0}"? +agents.view.workspace.delete.confirm.message=Hành động này không thể hoàn tác. +agents.view.workspace.switcher.title=Chuyển không gian làm việc +agents.view.workspace.switcher.empty=Chưa có không gian làm việc nào +agents.view.workspace.switcher.add=Thêm không gian làm việc... +agents.view.workspace.switcher.pin=Ghim không gian làm việc +agents.view.workspace.switcher.rename=Đổi tên không gian làm việc +agents.view.workspace.switcher.remove.title=Xóa "{0}" khỏi không gian làm việc? +agents.view.workspace.switcher.remove.message=Chỉ xóa khỏi danh sách — thư mục và các tệp không bị xóa. +agents.view.panel.collapse=Thu gọn bảng +agents.view.panel.expand=Mở rộng bảng +agents.view.tab.workspace=Không gian làm việc +agents.view.tab.history=Lịch sử +agents.view.search.placeholder=Tìm kiếm kỹ năng ... +agents.view.search.clear=Xóa tìm kiếm +agents.view.history.empty=Chưa có lần chạy nào +agents.view.docs.tooltip=Xem hướng dẫn trợ lý AI # Agentic run mode -skills.agentic.run=Chạy -skills.agentic.goal.placeholder=Mô tả mục tiêu của bạn — tác nhân sẽ tự động chọn các kỹ năng phù hợp… -skills.agentic.skills.available=Có {0} kỹ năng khả dụng làm ngữ cảnh tác nhân -skills.agentic.no.skills.hint=Chưa có kỹ năng nào — hãy thêm kỹ năng trong Cài đặt → Kỹ năng để cung cấp cho tác nhân các khả năng chuyên biệt -skills.agentic.model.default=Mô hình mặc định +agents.agentic.run=Chạy +agents.agentic.goal.placeholder=Mô tả mục tiêu của bạn — trợ lý sẽ tự động chọn kỹ năng phù hợp… +agents.agentic.skills.available={0} kỹ năng khả dụng làm ngữ cảnh cho trợ lý +agents.agentic.no.skills.hint=Không có kỹ năng tùy chỉnh — trợ lý sử dụng các khả năng tích hợp sẵn. Thêm kỹ năng trong Cài đặt → Trợ lý & Kỹ năng để mở rộng. +agents.agentic.model.default=Mô hình mặc định # Onboarding Wizard onboarding.title=Chào mừng đến với Askimo @@ -1615,7 +1623,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 +1636,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 +1665,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,16 +1675,26 @@ 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 (Antigravity 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ã persona.researcher=🔬 Nghiên cứu và phân tích persona.manager=📋 Viết và tổ chức persona.everything=⚡ Tôi làm nhiều việc kết hợp + +# Memory pressure +memory.pressure.warning.message=Cửa sổ ngữ cảnh đang đầy dần. +memory.pressure.critical.message=Cửa sổ ngữ cảnh gần như đã đầy. Nén để tiếp tục hoặc bắt đầu một phiên mới. +memory.pressure.action.compress=Nén +memory.pressure.compressing=Đang nén… +memory.pressure.chip.tooltip.normal=ngữ cảnh đã sử dụng +memory.pressure.chip.tooltip.warning=ngữ cảnh đã sử dụng — nhấp để nén +memory.pressure.chip.tooltip.critical=ngữ cảnh đã sử dụng — nén ngay +memory.pressure.chip.tooltip.unknown=Kích thước ngữ cảnh chưa được hiệu chỉnh — sẽ tự động cập nhật sau lần trao đổi đầu tiên 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..1b9f08d9 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -6,7 +6,7 @@ app.quit.confirm=退出 Askimo? # Menu Items menu.file=文件 menu.new.project=新建项目 -menu.search.sessions=在会话中搜索 +menu.search.sessions=在对话中搜索 menu.export.backup=导出备份... menu.import.backup=导入备份... menu.invalidate.caches=使缓存失效... @@ -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=打开模型功能文件 @@ -92,8 +93,8 @@ eventlog.footer.warning=最旧的条目已被修剪(限制:{0} # Chat Interface chat.new=新聊天 chat.new.tooltip=新聊天 ({0}+N) -chat.sessions=会话 -chat.sessions.tooltip=查看聊天会话 +chat.sessions=对话 +chat.sessions.tooltip=查看对话 # Sidebar sidebar.expand=展开侧边栏 @@ -122,9 +123,9 @@ discover.explore.rag.desc=用您自己的文档为 AI 提供依据,以获得 discover.explore.plans.title=计划 discover.explore.plans.desc=自动化多步骤 AI 工作流,并可按需一键运行。 discover.explore.skills.title=技能 -discover.explore.skills.desc=直接从您的工作区运行由 Gemini CLI 或 Claude Code 支持的 AI 驱动技能。 -discover.recent.title=最近会话 -discover.recent.empty=还没有最近会话。 +discover.explore.skills.desc=直接从您的工作区运行由 Antigravity CLI 或 Claude Code 支持的 AI 驱动技能。 +discover.recent.title=最近对话 +discover.recent.empty=还没有最近对话。 discover.tokens.period.24h=过去 24 小时 discover.tokens.period.week=过去 1 周 discover.tokens.period.month=过去 1 个月 @@ -152,20 +153,20 @@ session.delete.confirm.message=确定要删除 "{0}" 吗?\n\n此操作无法 session.delete.confirm.button=删除聊天 session.delete.confirm.cancel=取消 session.export=导出 -session.export.title=导出聊天会话 -session.export.description=选择格式和保存位置以导出您的聊天会话 +session.export.title=导出对话 +session.export.description=选择格式和保存位置以导出您的对话 session.export.select.format=选择导出格式 session.export.location=保存位置 session.export.file.path=文件路径 session.export.browse=浏览 session.rename.title=重命名标题 session.rename.field.label=标题 -session.rename.field.placeholder=输入会话标题... +session.rename.field.placeholder=输入对话标题... 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=项目 @@ -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 @@ -197,7 +200,7 @@ project.dialog.url.button.cancel=取消 project.dialog.url.button.validating=正在验证... project.delete=删除项目 project.delete.confirm.title=删除项目? -project.delete.confirm.message=您确定要删除项目“{0}”吗?\n\n此项目中的所有会话也将被永久删除。 +project.delete.confirm.message=您确定要删除项目“{0}”吗?\n\n此项目中的所有对话也将被永久删除。 project.delete.confirm.button=删除项目 project.delete.confirm.cancel=取消 project.not.found=未找到项目 @@ -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=本地文件 @@ -235,7 +245,8 @@ projects.sources.add.button=添加参考资料 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=删除项目失败。请重试。 @@ -243,9 +254,11 @@ projects.error.updating=更新项目失败。请重试。 projects.error.not.found=未找到项目。 project.update.success=项目更新成功。 project.error.loading=加载项目失败。请重试。 -project.error.loading_sessions=加载项目会话失败。请重试。 +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 +266,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=已索引 @@ -261,10 +274,10 @@ project.indexing.ready.tooltip=知识源已索引,已为 AI 上下文准备就 session.move.to.project=移动到项目 session.move.to.project.new=新建项目 session.remove.from.project=从 {0} 中移除 -session.move.success=会话已成功移动到项目中。 -session.remove.success=会话已从项目中移除。 -session.error.moving=无法将会话移动到项目中。请重试。 -session.error.removing=无法从项目中移除会话。请重试。 +session.move.success=对话已成功移动到项目中。 +session.remove.success=对话已从项目中移除。 +session.error.moving=无法将对话移动到项目中。请重试。 +session.error.removing=无法从项目中移除对话。请重试。 # Settings settings.title=设置 @@ -272,7 +285,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=容器前景 @@ -294,49 +307,50 @@ settings.ai.provider=AI 提供商 settings.network=网络 settings.network.description=配置网络和代理设置 settings.mcp.servers=MCP 服务器 -settings.skills=技能 -settings.skills.description=技能是可在您的机器上直接运行的可重复使用的 AI 代理。每个技能是一个带有系统提示和说明的 Markdown 文件。当您运行一个技能时,它通过 {0} 执行 — 读取和写入您的文件、运行 shell 命令,并迭代直到任务完成。无需复制粘贴。 -settings.skills.runtimes=支持的运行环境: -settings.skills.directory=技能目录 -settings.skills.open.folder=打开文件夹 -settings.skills.new.skill=新建技能 -settings.skills.import.github=从 GitHub 导入 -settings.skills.import.github.description=将包含技能 (.md) 文件的 GitHub 存储库克隆到你的技能目录中。需要 PATH 中有 git。 -settings.skills.import.github.url.label=GitHub 存储库 URL -settings.skills.import.github.button=导入 -settings.skills.import.github.importing=正在导入… -settings.skills.import.zip=从 ZIP 导入 -settings.skills.import.zip.description=导入包含技能文件夹的本地 ZIP 压缩包(每个技能文件夹应包含 skill.md 入口文件)。 -settings.skills.import.zip.picker.title=选择 ZIP 技能包 -settings.skills.import.zip.pick.button=选择 ZIP 文件 -settings.skills.import.zip.button=导入 ZIP -settings.skills.import.zip.importing=正在导入 ZIP... -settings.skills.editor.name=名称 -settings.skills.editor.description=描述 -settings.skills.editor.system.prompt=系统提示词 -settings.skills.editor.system.prompt.placeholder=在此处编写系统提示词… -settings.skills.editor.system.prompt.hint=这是技能处于活动状态时提供给 AI 的指令。 -settings.skills.empty=未找到技能 -settings.skills.empty.hint=使用 + 按钮创建你的第一个技能 -settings.skills.select.prompt=从面板中选择一个技能以查看或编辑 -settings.skills.editor.empty.file=空文件 -settings.skills.editor.mode.read=阅读 -settings.skills.editor.mode.edit=编辑 -settings.skills.editor.line.count={0} 行 -settings.skills.editor.line.count.plural={0} 行 -settings.skills.new.skill.placeholder=my-skill -settings.skills.delete.file.title=删除文件 -settings.skills.delete.file.confirm=删除 "{0}"?此操作无法撤消。 -settings.skills.delete.folder.title=删除文件夹 -settings.skills.delete.folder.confirm=删除 "{0}" 及其中的所有技能?此操作无法撤消。 -settings.skills.delete.all.title=删除所有技能 -settings.skills.delete.all.confirm=要删除所有技能吗?此操作将永久删除所有技能文件夹,且无法撤销。 -settings.skills.import.success.title=导入成功 -settings.skills.import.success.message=已成功将 {0} 个技能导入到 "{1}" 中。 -settings.skills.add.file=添加文件 -settings.skills.add.file.name=文件名 -settings.skills.add.folder=添加文件夹 -settings.skills.add.folder.name=文件夹名称 +settings.agents=智能体与技能 +settings.agents.skills.title=技能 +settings.agents.description=技能是可在您的机器上直接运行的可重复使用的 AI 代理。每个技能是一个带有系统提示和说明的 Markdown 文件。当您运行一个技能时,它通过 {0} 执行 — 读取和写入您的文件、运行 shell 命令,并迭代直到任务完成。无需复制粘贴。 +settings.agents.runtimes=支持的运行环境: +settings.agents.directory=技能目录 +settings.agents.open.folder=打开文件夹 +settings.agents.new.skill=新建技能 +settings.agents.import.github=从 GitHub 导入 +settings.agents.import.github.description=将包含技能 (.md) 文件的 GitHub 存储库克隆到你的技能目录中。需要 PATH 中有 git。 +settings.agents.import.github.url.label=GitHub 存储库 URL +settings.agents.import.github.button=导入 +settings.agents.import.github.importing=正在导入… +settings.agents.import.zip=从 ZIP 导入 +settings.agents.import.zip.description=导入包含技能文件夹的本地 ZIP 压缩包(每个技能文件夹应包含 skill.md 入口文件)。 +settings.agents.import.zip.picker.title=选择 ZIP 技能包 +settings.agents.import.zip.pick.button=选择 ZIP 文件 +settings.agents.import.zip.button=导入 ZIP +settings.agents.import.zip.importing=正在导入 ZIP... +settings.agents.editor.name=名称 +settings.agents.editor.description=描述 +settings.agents.editor.system.prompt=系统提示词 +settings.agents.editor.system.prompt.placeholder=在此处编写系统提示词… +settings.agents.editor.system.prompt.hint=这是技能处于活动状态时提供给 AI 的指令。 +settings.agents.empty=未找到技能 +settings.agents.empty.hint=使用 + 按钮创建你的第一个技能 +settings.agents.select.prompt=从面板中选择一个技能以查看或编辑 +settings.agents.editor.empty.file=空文件 +settings.agents.editor.mode.read=阅读 +settings.agents.editor.mode.edit=编辑 +settings.agents.editor.line.count={0} 行 +settings.agents.editor.line.count.plural={0} 行 +settings.agents.new.skill.placeholder=my-skill +settings.agents.delete.file.title=删除文件 +settings.agents.delete.file.confirm=删除 "{0}"?此操作无法撤消。 +settings.agents.delete.folder.title=删除文件夹 +settings.agents.delete.folder.confirm=删除 "{0}" 及其中的所有技能?此操作无法撤消。 +settings.agents.delete.all.title=删除所有技能 +settings.agents.delete.all.confirm=要删除所有技能吗?此操作将永久删除所有技能文件夹,且无法撤销。 +settings.agents.import.success.title=导入成功 +settings.agents.import.success.message=已成功将 {0} 个技能导入到 "{1}" 中。 +settings.agents.add.file=添加文件 +settings.agents.add.file.name=文件名 +settings.agents.add.folder=添加文件夹 +settings.agents.add.folder.name=文件夹名称 settings.advanced=高级 settings.about=关于 settings.theme=主题 @@ -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=固定到侧边栏 @@ -642,7 +657,7 @@ shortcut.toggle.chat.history=切换聊天记录 shortcut.open.settings=打开设置 shortcut.stop.ai.response=停止 AI 回复 shortcut.quit.application=退出应用 -shortcut.navigate.to.sessions=前往会话 +shortcut.navigate.to.sessions=前往对话 shortcut.navigate.to.projects=转到项目 shortcut.navigate.to.bookmarks=导航到书签 shortcut.enter.fullscreen=进入全屏 @@ -655,15 +670,15 @@ shortcut.new.line=新行 # Chat View chat.welcome=欢迎使用 Askimo!\n在下方输入消息开始对话。 -chat.no.active.session=从侧边栏选择一个会话,或开始新的聊天 +chat.no.active.session=从侧边栏选择一个对话,或开始新的聊天 chat.search.placeholder=在对话中搜索... chat.search.no.results=无结果 chat.search.not.found=未找到匹配"{0}"的消息 # Global Search -global.search.title=在会话中搜索 +global.search.title=在对话中搜索 global.search.query=搜索查询 -global.search.query.placeholder=搜索所有会话... +global.search.query.placeholder=搜索所有对话... global.search.filter.date=日期范围 global.search.sort.by=排序方式 global.search.button=搜索 @@ -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=正在加载服务器... @@ -742,29 +763,29 @@ chat.attachment.preview.more.lines=还有 {0} 行 # Sessions View session.tooltip.started=已开始 session.tooltip.last.activity=上次活动 -sessions.title=聊天会话 +sessions.title=对话 sessions.col.title=标题 sessions.col.created=已创建 sessions.col.updated=已更新 sessions.error=❌ {0} -sessions.empty=未找到聊天会话。 -sessions.empty.hint=💡 开始新的聊天以创建第一个会话! +sessions.empty=未找到对话。 +sessions.empty.hint=💡 开始新的聊天以创建第一个对话! sessions.search.placeholder=按标题搜索… -sessions.search.empty=没有与 "{0}" 匹配的会话。 +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=下一页 # SessionsViewModel Errors -sessions.error.loading=加载会话失败,请重试。 -sessions.error.deleting=删除会话失败,请重试。 -sessions.error.updating=更新会话失败,请重试。 -sessions.error.renaming=重命名失败,请重试。 -sessions.error.not.found=未找到会话。 -sessions.error.rename.failed=重命名会话失败。 +sessions.error.loading=加载对话失败,请重试。 +sessions.error.deleting=删除对话失败,请重试。 +sessions.error.updating=更新对话失败,请重试。 +sessions.error.renaming=重命名对话失败,请重试。 +sessions.error.not.found=未找到对话。 +sessions.error.rename.failed=重命名对话失败。 # ChatSessionService Errors # Update Check @@ -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=错误 @@ -880,6 +905,7 @@ log.level.trace.description=显示所有日志(最详细) # Message Components message.loading.previous=正在加载更早的消息... message.thinking=思考中… ({0}s) +message.processing=处理中… ({0}s) message.thinking.section.streaming=💭 思考中... message.thinking.section.done=💭 已思考 message.copy=复制消息 @@ -919,7 +945,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=书签 @@ -935,7 +961,7 @@ bookmarks.role.user=你 bookmarks.role.ai=AI # Tool call display -tool.call.header.running=正在运行工具... +tool.call.header.running=正在运行工具... ({0}s) tool.call.header.done=已使用 {0} 个工具 tool.call.status.done=已完成 tool.call.status.failed=失败 @@ -956,10 +982,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 +992,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 +1006,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 +1041,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 +1057,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,12 +1157,9 @@ 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.malformed_tool_call=⚠️ AI 模型尝试了无效的工具调用!\n\n模型流式传输了不完整或格式错误的工具请求(缺少名称/参数)。这不是由 Askimo 引起的 — 这是 AI 模型或后端函数调用输出的故障,较小型或本地模型更常出现此问题。\n\n处理方法:\n1. 尝试重新发送消息 — 通常只是暂时性问题\n2. 如果持续发生,请尝试禁用部分已启用的工具以减少歧义\n3. 考虑尝试更适合工具/函数调用的其他模型 error.system=⚠️ 系统错误\n\n发生了意外错误:{errorCode}\n\n请联系 Askimo 支持,并提供:\n• 您的操作步骤\n• 上述错误代码\n• 发生时间 # Model Availability Errors @@ -1152,7 +1168,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 +1187,7 @@ error.indexing.io_error.title=IO 错误 error.indexing.io_error.message=索引过程中发生 IO 错误 error.indexing.unknown.title=索引错误 error.indexing.unknown.message=索引过程中发生未知错误 +error.indexing.failed.title=索引知识源失败 # RAG Configuration settings.rag.title=RAG 配置 @@ -1255,7 +1273,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 +1293,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 +1312,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 +1338,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 +1347,24 @@ 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.protocol.version.label=协议版本 +mcp.instance.protocol.version.hint=仅在自动检测超时时才显式设置。对于大多数服务器,请保持"自动检测"。 +mcp.instance.protocol.version.auto=自动检测 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 +1401,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 +1420,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 服务器 @@ -1534,71 +1562,51 @@ plans.interactive.answer.placeholder=输入你的答案... plans.interactive.send=提交答案 plans.interactive.skip=跳过(留空) -#Skills -skills.nav.title=技能 -skills.view.title=技能 -skills.view.empty=还没有技能 -skills.view.empty.hint=在设置 → 技能中创建技能以开始使用 -skills.view.empty.search=没有找到符合您搜索条件的技能 -skills.view.manage=管理技能 -skills.view.select.prompt=选择要运行的技能 -skills.view.select.hint=从右侧技能面板中选择一个技能 -skills.view.run=运行技能 -skills.view.run.command=发送命令 -skills.view.running=正在运行… -skills.view.no.agent=未安装代理 -skills.view.agent.not.installed=尚未安装 -skills.view.agent.install.hint={0} 未安装。请参阅安装指南。 -skills.view.agent.configure=配置代理 -skills.view.agent.needs.key={0} 已安装,但需要 API 密钥才能运行技能。 -skills.view.agent.key.placeholder=在此粘贴 API 密钥 -skills.view.response.error=错误 -skills.view.workdir.change=更改 -skills.view.workdir.open=打开文件夹 -skills.view.workspace=工作区 -skills.view.workspace.empty=工作区中没有文件 -skills.view.workspace.copy.path=复制路径 -skills.view.workspace.open.file=打开文件 -skills.view.workspace.open.folder=打开所在文件夹 -skills.view.workspace.new=新建… -skills.view.workspace.new.folder=新建文件夹 -skills.view.workspace.new.file=新建文件 -skills.view.workspace.new.subfolder=新建子文件夹 -skills.view.workspace.new.file.here=在此新建文件 -skills.view.workspace.name.placeholder=名称 -skills.view.workspace.duplicate=复制 -skills.view.workspace.delete.confirm.title=删除"{0}"? -skills.view.workspace.delete.confirm.message=此操作无法撤销。 -skills.view.panel.collapse=收起面板 -skills.view.panel.expand=展开面板 -skills.view.tab.skills=技能 -skills.view.tab.workspace=工作区 -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.system.prompt.preview=系统提示词 -skills.view.response.title=响应 -skills.view.followup.label=后续 -skills.view.followup.placeholder=提出后续问题或请求更改... -skills.view.followup.send=发送 -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.docs.tooltip=查看技能指南 -skills.view.mode.agentic=代理式 -skills.view.mode.manual=手动 +# Agents +agents.nav.title=智能体 +agents.view.title=智能体 +agents.view.description=直接在您的机器上运行 AI 智能体({0})。智能体读写您的文件、执行 Shell 命令,并持续迭代直到任务完成。 +agents.view.empty.search=没有与搜索匹配的技能 +agents.view.manage=管理技能 +agents.view.running=运行中… +agents.view.no.agent=未安装智能体 +agents.view.agent.not.installed=未安装 +agents.view.workdir.open=打开文件夹 +agents.view.workspace.empty=工作区中没有文件 +agents.view.workspace.copy.path=复制路径 +agents.view.workspace.open.file=打开文件 +agents.view.workspace.open.folder=打开所在文件夹 +agents.view.workspace.new=新建… +agents.view.workspace.new.folder=新建文件夹 +agents.view.workspace.new.file=新建文件 +agents.view.workspace.new.subfolder=新建子文件夹 +agents.view.workspace.new.file.here=在此处新建文件 +agents.view.workspace.name.placeholder=名称 +agents.view.workspace.duplicate=复制 +agents.view.workspace.delete.confirm.title=删除"{0}"? +agents.view.workspace.delete.confirm.message=此操作无法撤销。 +agents.view.workspace.switcher.title=切换工作区 +agents.view.workspace.switcher.empty=暂无工作区 +agents.view.workspace.switcher.add=添加工作区... +agents.view.workspace.switcher.pin=固定工作区 +agents.view.workspace.switcher.rename=重命名工作区 +agents.view.workspace.switcher.remove.title=从工作区列表中移除"{0}"? +agents.view.workspace.switcher.remove.message=仅从列表中移除——文件夹及其文件不会被删除。 +agents.view.panel.collapse=折叠面板 +agents.view.panel.expand=展开面板 +agents.view.tab.workspace=工作区 +agents.view.tab.history=历史记录 +agents.view.search.placeholder=搜索技能 ... +agents.view.search.clear=清除搜索 +agents.view.history.empty=暂无运行记录 +agents.view.docs.tooltip=查看智能体指南 # Agentic run mode -skills.agentic.run=运行 -skills.agentic.goal.placeholder=描述你的目标 — 代理将自动选择合适的技能… -skills.agentic.skills.available={0} 个技能可作为代理上下文使用 -skills.agentic.no.skills.hint=还没有技能 — 前往 设置 → 技能 添加技能,让代理具备专门能力 -skills.agentic.model.default=默认模型 +agents.agentic.run=运行 +agents.agentic.goal.placeholder=描述您的目标——智能体将自动选择合适的技能… +agents.agentic.skills.available={0} 个技能可用作智能体上下文 +agents.agentic.no.skills.hint=暂无自定义技能——智能体将使用其内置能力。您可在设置 → 智能体与技能中添加自定义技能来扩展它。 +agents.agentic.model.default=默认模型 # Onboarding Wizard onboarding.title=欢迎使用 Askimo @@ -1667,7 +1675,7 @@ 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 (Antigravity CLI, Claude Code), Projects onboarding.step.persona.researcher.description=研究主题,分析数据,编写结构化报告,并获得基于知识的答案。 onboarding.step.persona.researcher.features=启用:Plans, Projects (RAG) onboarding.step.persona.manager.description=起草电子邮件,处理会议记录,编写状态报告,或运行多步内容工作流。 @@ -1680,3 +1688,13 @@ persona.developer=💻 编写和审查代码 persona.researcher=🔬 研究和分析 persona.manager=📋 撰写和组织 persona.everything=⚡ 我做各种混合的工作 + +# Memory pressure +memory.pressure.warning.message=上下文窗口已快满了。 +memory.pressure.critical.message=上下文窗口即将溢出。请压缩以继续,或开启新会话。 +memory.pressure.action.compress=压缩 +memory.pressure.compressing=正在压缩… +memory.pressure.chip.tooltip.normal=已用上下文 +memory.pressure.chip.tooltip.warning=已用上下文 — 点击以压缩 +memory.pressure.chip.tooltip.critical=已用上下文 — 立即压缩 +memory.pressure.chip.tooltip.unknown=上下文大小尚未校准 — 将在第一次对话后自动更新 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..812b99d2 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -6,7 +6,7 @@ app.quit.confirm=退出 Askimo? # Menu Items menu.file=檔案 menu.new.project=新專案 -menu.search.sessions=在工作階段中搜尋 +menu.search.sessions=在對話中搜尋 menu.export.backup=匯出備份... menu.import.backup=匯入備份... menu.invalidate.caches=使快取失效... @@ -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=開啟模型功能檔案 @@ -122,9 +123,9 @@ discover.explore.rag.desc=用您自己的文件為 AI 提供依據,以獲得 discover.explore.plans.title=計畫 discover.explore.plans.desc=自動化多步驟 AI 工作流程,並可依需求一鍵執行。 discover.explore.skills.title=技能 -discover.explore.skills.desc=直接從您的工作區執行由 Gemini CLI 或 Claude Code 支援的 AI 驅動技能。 -discover.recent.title=最近工作階段 -discover.recent.empty=尚無最近工作階段。 +discover.explore.skills.desc=直接從您的工作區執行由 Antigravity CLI 或 Claude Code 支援的 AI 驅動技能。 +discover.recent.title=最近對話 +discover.recent.empty=尚無最近對話。 discover.tokens.period.24h=過去 24 小時 discover.tokens.period.week=過去 1 週 discover.tokens.period.month=過去 1 個月 @@ -152,8 +153,8 @@ session.delete.confirm.message=您確定要刪除「{0}」嗎?\n\n此操作無 session.delete.confirm.button=刪除聊天 session.delete.confirm.cancel=取消 session.export=匯出 -session.export.title=匯出聊天會話 -session.export.description=選擇匯出聊天會話的格式與儲存位置 +session.export.title=匯出對話 +session.export.description=選擇匯出對話的格式與儲存位置 session.export.select.format=選擇匯出格式 session.export.location=儲存位置 session.export.file.path=檔案路徑 @@ -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=專案 @@ -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 @@ -197,7 +200,7 @@ project.dialog.url.button.cancel=取消 project.dialog.url.button.validating=正在驗證... project.delete=刪除專案 project.delete.confirm.title=刪除專案? -project.delete.confirm.message=您確定要刪除專案「{0}」嗎?\n\n此專案中的所有工作階段也將被永久刪除。 +project.delete.confirm.message=您確定要刪除專案「{0}」嗎?\n\n此專案中的所有對話也將被永久刪除。 project.delete.confirm.button=刪除專案 project.delete.confirm.cancel=取消 project.not.found=找不到專案 @@ -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=本機檔案 @@ -235,7 +245,8 @@ projects.sources.add.button=新增參考資料 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=刪除專案失敗。請再試一次。 @@ -243,9 +254,11 @@ projects.error.updating=更新專案失敗。請再試一次。 projects.error.not.found=找不到專案。 project.update.success=專案更新成功。 project.error.loading=載入專案失敗。請重試。 -project.error.loading_sessions=載入專案工作階段失敗。請重試。 +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 +266,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=已索引 @@ -261,10 +274,10 @@ project.indexing.ready.tooltip=知識來源已索引,已為 AI 上下文準備 session.move.to.project=移動至專案 session.move.to.project.new=新專案 session.remove.from.project=從 {0} 中移除 -session.move.success=工作階段已成功移動到專案中。 -session.remove.success=工作階段已從專案中移除。 -session.error.moving=無法將工作階段移動到專案中。請重試。 -session.error.removing=無法從專案中移除工作階段。請重試。 +session.move.success=對話已成功移動到專案中。 +session.remove.success=對話已從專案中移除。 +session.error.moving=無法將對話移動到專案中。請重試。 +session.error.removing=無法從專案中移除對話。請重試。 # Settings settings.title=設定 @@ -272,7 +285,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=容器前景 @@ -294,49 +307,50 @@ settings.ai.provider=AI 提供者 settings.network=網路 settings.network.description=設定網路與代理設定 settings.mcp.servers=MCP 伺服器 -settings.skills=技能 -settings.skills.description=技能是可在您的機器上直接運行的可重複使用 AI 代理。每個技能是一個帶有系統提示和說明的文件 (Markdown)。當您運行一個技能時,它通過 {0} 執行 — 讀取和寫入您的文件、運行 shell 命令,並迭代直到任務完成。無需複製貼上。 -settings.skills.runtimes=支援的執行環境: -settings.skills.directory=技能目錄 -settings.skills.open.folder=開啟資料夾 -settings.skills.new.skill=新增技能 -settings.skills.import.github=從 GitHub 匯入 -settings.skills.import.github.description=將包含技能 (.md) 檔案的 GitHub 儲存庫複製到你的技能目錄中。需要 PATH 中有 git。 -settings.skills.import.github.url.label=GitHub 儲存庫 URL -settings.skills.import.github.button=匯入 -settings.skills.import.github.importing=正在匯入… -settings.skills.import.zip=從 ZIP 匯入 -settings.skills.import.zip.description=匯入包含技能資料夾的本機 ZIP 壓縮檔(每個技能資料夾應包含 skill.md 進入點檔案)。 -settings.skills.import.zip.picker.title=選取 ZIP 技能包 -settings.skills.import.zip.pick.button=選擇 ZIP 檔案 -settings.skills.import.zip.button=匯入 ZIP -settings.skills.import.zip.importing=正在匯入 ZIP... -settings.skills.editor.name=名稱 -settings.skills.editor.description=描述 -settings.skills.editor.system.prompt=系統提示詞 -settings.skills.editor.system.prompt.placeholder=在此處撰寫系統提示詞… -settings.skills.editor.system.prompt.hint=這是技能啟用時提供給 AI 的指示。 -settings.skills.empty=找不到技能 -settings.skills.empty.hint=使用 + 按鈕建立你的第一個技能 -settings.skills.select.prompt=從面板中選取技能以檢視或編輯 -settings.skills.editor.empty.file=空白檔案 -settings.skills.editor.mode.read=閱讀 -settings.skills.editor.mode.edit=編輯 -settings.skills.editor.line.count={0} 行 -settings.skills.editor.line.count.plural={0} 行 -settings.skills.new.skill.placeholder=my-skill -settings.skills.delete.file.title=刪除檔案 -settings.skills.delete.file.confirm=刪除 "{0}"?此操作無法復原。 -settings.skills.delete.folder.title=刪除資料夾 -settings.skills.delete.folder.confirm=刪除 "{0}" 及其中的所有技能?此操作無法復原。 -settings.skills.delete.all.title=刪除所有技能 -settings.skills.delete.all.confirm=要刪除所有技能嗎?此操作將永久移除所有技能資料夾,無法還原。 -settings.skills.import.success.title=匯入成功 -settings.skills.import.success.message=已成功將 {0} 個技能匯入到 "{1}" 中。 -settings.skills.add.file=新增檔案 -settings.skills.add.file.name=檔案名稱 -settings.skills.add.folder=新增資料夾 -settings.skills.add.folder.name=資料夾名稱 +settings.agents=智慧代理與技能 +settings.agents.skills.title=技能 +settings.agents.description=技能是可在您的機器上直接運行的可重複使用 AI 代理。每個技能是一個帶有系統提示和說明的文件 (Markdown)。當您運行一個技能時,它通過 {0} 執行 — 讀取和寫入您的文件、運行 shell 命令,並迭代直到任務完成。無需複製貼上。 +settings.agents.runtimes=支援的執行環境: +settings.agents.directory=技能目錄 +settings.agents.open.folder=開啟資料夾 +settings.agents.new.skill=新增技能 +settings.agents.import.github=從 GitHub 匯入 +settings.agents.import.github.description=將包含技能 (.md) 檔案的 GitHub 儲存庫複製到你的技能目錄中。需要 PATH 中有 git。 +settings.agents.import.github.url.label=GitHub 儲存庫 URL +settings.agents.import.github.button=匯入 +settings.agents.import.github.importing=正在匯入… +settings.agents.import.zip=從 ZIP 匯入 +settings.agents.import.zip.description=匯入包含技能資料夾的本機 ZIP 壓縮檔(每個技能資料夾應包含 skill.md 進入點檔案)。 +settings.agents.import.zip.picker.title=選取 ZIP 技能包 +settings.agents.import.zip.pick.button=選擇 ZIP 檔案 +settings.agents.import.zip.button=匯入 ZIP +settings.agents.import.zip.importing=正在匯入 ZIP... +settings.agents.editor.name=名稱 +settings.agents.editor.description=描述 +settings.agents.editor.system.prompt=系統提示詞 +settings.agents.editor.system.prompt.placeholder=在此處撰寫系統提示詞… +settings.agents.editor.system.prompt.hint=這是技能啟用時提供給 AI 的指示。 +settings.agents.empty=找不到技能 +settings.agents.empty.hint=使用 + 按鈕建立你的第一個技能 +settings.agents.select.prompt=從面板中選取技能以檢視或編輯 +settings.agents.editor.empty.file=空白檔案 +settings.agents.editor.mode.read=閱讀 +settings.agents.editor.mode.edit=編輯 +settings.agents.editor.line.count={0} 行 +settings.agents.editor.line.count.plural={0} 行 +settings.agents.new.skill.placeholder=my-skill +settings.agents.delete.file.title=刪除檔案 +settings.agents.delete.file.confirm=刪除 "{0}"?此操作無法復原。 +settings.agents.delete.folder.title=刪除資料夾 +settings.agents.delete.folder.confirm=刪除 "{0}" 及其中的所有技能?此操作無法復原。 +settings.agents.delete.all.title=刪除所有技能 +settings.agents.delete.all.confirm=要刪除所有技能嗎?此操作將永久移除所有技能資料夾,無法還原。 +settings.agents.import.success.title=匯入成功 +settings.agents.import.success.message=已成功將 {0} 個技能匯入到 "{1}" 中。 +settings.agents.add.file=新增檔案 +settings.agents.add.file.name=檔案名稱 +settings.agents.add.folder=新增資料夾 +settings.agents.add.folder.name=資料夾名稱 settings.advanced=進階 settings.about=關於 settings.theme=主題 @@ -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=釘選到側邊欄 @@ -642,7 +657,7 @@ shortcut.toggle.chat.history=切換聊天記錄 shortcut.open.settings=開啟設定 shortcut.stop.ai.response=停止 AI 回應 shortcut.quit.application=結束應用程式 -shortcut.navigate.to.sessions=前往工作階段 +shortcut.navigate.to.sessions=前往對話 shortcut.navigate.to.projects=前往專案 shortcut.navigate.to.bookmarks=導航至書籤 shortcut.enter.fullscreen=進入全螢幕 @@ -655,15 +670,15 @@ shortcut.new.line=新行 # Chat View chat.welcome=歡迎使用 Askimo!\n請在下方輸入訊息以開始對話。 -chat.no.active.session=從側邊欄選擇一個會話,或開始新的聊天 +chat.no.active.session=從側邊欄選擇一個對話,或開始新的聊天 chat.search.placeholder=在對話中搜尋... chat.search.no.results=沒有結果 chat.search.not.found=未找到符合「{0}」的訊息 # Global Search -global.search.title=在工作階段中搜尋 +global.search.title=在對話中搜尋 global.search.query=搜尋查詢 -global.search.query.placeholder=搜尋所有工作階段... +global.search.query.placeholder=搜尋所有對話... global.search.filter.date=日期範圍 global.search.sort.by=排序方式 global.search.button=搜尋 @@ -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=正在載入伺服器... @@ -742,28 +763,28 @@ chat.attachment.preview.more.lines=還有 {0} 行 # Sessions View session.tooltip.started=已開始 session.tooltip.last.activity=上次活動 -sessions.title=對話工作階段 +sessions.title=對話 sessions.col.title=標題 sessions.col.created=已建立 sessions.col.updated=已更新 sessions.error=❌ {0} -sessions.empty=找不到對話工作階段。 -sessions.empty.hint=💡 開始新的對話即可建立第一個工作階段! +sessions.empty=找不到對話。 +sessions.empty.hint=💡 開始新的對話即可建立第一個! sessions.search.placeholder=按標題搜尋… -sessions.search.empty=沒有與 "{0}" 相符的會話。 +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=下一頁 # SessionsViewModel Errors -sessions.error.loading=載入對話工作階段失敗,請再試一次。 -sessions.error.deleting=刪除對話工作階段失敗,請再試一次。 -sessions.error.updating=更新對話工作階段失敗,請再試一次。 -sessions.error.renaming=重新命名工作階段失敗,請再試一次。 -sessions.error.not.found=找不到工作階段。 +sessions.error.loading=載入對話失敗,請再試一次。 +sessions.error.deleting=刪除對話失敗,請再試一次。 +sessions.error.updating=更新對話失敗,請再試一次。 +sessions.error.renaming=重新命名對話失敗,請再試一次。 +sessions.error.not.found=找不到對話。 sessions.error.rename.failed=重新命名失敗。 # ChatSessionService Errors @@ -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=錯誤 @@ -880,6 +905,7 @@ log.level.trace.description=顯示所有日誌(最詳細) # Message Components message.loading.previous=正在載入先前訊息... message.thinking=思考中… ({0}s) +message.processing=處理中… ({0}s) message.thinking.section.streaming=💭 思考中... message.thinking.section.done=💭 已思考 message.copy=複製訊息 @@ -919,7 +945,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=書籤 @@ -935,7 +961,7 @@ bookmarks.role.user=你 bookmarks.role.ai=AI # Tool call display -tool.call.header.running=正在執行工具... +tool.call.header.running=正在執行工具... ({0}s) tool.call.header.done=已使用 {0} 個工具 tool.call.status.done=已完成 tool.call.status.failed=失敗 @@ -956,10 +982,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 +993,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 +1006,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 +1041,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 +1057,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,12 +1157,9 @@ 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.malformed_tool_call=⚠️ AI 模型嘗試了無效的工具呼叫!\n\n模型串流傳送了不完整或格式錯誤的工具請求(缺少名稱/參數)。這不是由 Askimo 所引起的 — 這是 AI 模型或後端函式呼叫輸出的問題,較小型或本地模型較常發生此情況。\n\n處理方式:\n1. 嘗試重新傳送訊息 — 通常只是暫時性問題\n2. 如果持續發生,請嘗試停用部分已啟用的工具以減少混淆\n3. 考慮嘗試更適合工具/函式呼叫的其他模型 error.system=⚠️ 系統錯誤\n\n發生未預期的錯誤:{errorCode}\n\n請聯絡 Askimo 支援,並提供:\n• 您當時的操作\n• 上方的錯誤代碼\n• 發生的時間 # Model Availability Errors @@ -1152,7 +1168,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 +1187,7 @@ error.indexing.io_error.title=IO 錯誤 error.indexing.io_error.message=索引過程中發生 IO 錯誤 error.indexing.unknown.title=索引錯誤 error.indexing.unknown.message=索引過程中發生未知錯誤 +error.indexing.failed.title=索引知識來源失敗 # RAG Configuration settings.rag.title=RAG 設定 @@ -1255,7 +1273,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 +1293,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 +1312,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 +1338,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 +1347,24 @@ 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.protocol.version.label=協議版本 +mcp.instance.protocol.version.hint=僅在自動偵測逾時時才明確設定。對於大多數伺服器,請保持「自動偵測」。 +mcp.instance.protocol.version.auto=自動偵測 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 +1401,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 +1420,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 伺服器 @@ -1534,71 +1562,51 @@ plans.interactive.answer.placeholder=輸入你的答案... plans.interactive.send=提交答案 plans.interactive.skip=跳過(留空) -#Skills -skills.nav.title=技能 -skills.view.title=技能 -skills.view.empty=尚無技能 -skills.view.empty.hint=在設定 → 技能中建立技能以開始使用 -skills.view.empty.search=沒有找到符合您搜尋條件的技能 -skills.view.manage=管理技能 -skills.view.select.prompt=選擇要執行的技能 -skills.view.select.hint=從右側技能面板中選擇一個技能 -skills.view.run=執行技能 -skills.view.run.command=傳送命令 -skills.view.running=執行中… -skills.view.no.agent=未安裝代理程式 -skills.view.agent.not.installed=尚未安裝 -skills.view.agent.install.hint={0} 尚未安裝。請參閱安裝指南。 -skills.view.agent.configure=配置代理 -skills.view.agent.needs.key={0} 已安裝,但需要 API 金鑰才能執行技能。 -skills.view.agent.key.placeholder=在此貼上 API 金鑰 -skills.view.response.error=錯誤 -skills.view.workdir.change=變更 -skills.view.workdir.open=打開資料夾 -skills.view.workspace=工作區 -skills.view.workspace.empty=工作區中沒有檔案 -skills.view.workspace.copy.path=複製路徑 -skills.view.workspace.open.file=開啟檔案 -skills.view.workspace.open.folder=開啟所在資料夾 -skills.view.workspace.new=新增… -skills.view.workspace.new.folder=新增資料夾 -skills.view.workspace.new.file=新增檔案 -skills.view.workspace.new.subfolder=新增子資料夾 -skills.view.workspace.new.file.here=在此新增檔案 -skills.view.workspace.name.placeholder=名稱 -skills.view.workspace.duplicate=複製 -skills.view.workspace.delete.confirm.title=刪除「{0}」? -skills.view.workspace.delete.confirm.message=此操作無法復原。 -skills.view.panel.collapse=收合面板 -skills.view.panel.expand=展開面板 -skills.view.tab.skills=技能 -skills.view.tab.workspace=工作區 -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.system.prompt.preview=系統提示詞 -skills.view.response.title=回應 -skills.view.followup.label=後續 -skills.view.followup.placeholder=提出後續問題或要求變更... -skills.view.followup.send=傳送 -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.docs.tooltip=檢視技能指南 -skills.view.mode.agentic=代理式 -skills.view.mode.manual=手動 +# Agents +agents.nav.title=智能體 +agents.view.title=智能體 +agents.view.description=直接在您的機器上執行 AI 智能體({0})。智能體讀寫您的檔案、執行 Shell 指令,並持續疊代直到任務完成。 +agents.view.empty.search=沒有符合搜尋的技能 +agents.view.manage=管理技能 +agents.view.running=執行中… +agents.view.no.agent=未安裝智能體 +agents.view.agent.not.installed=未安裝 +agents.view.workdir.open=開啟資料夾 +agents.view.workspace.empty=工作區中沒有檔案 +agents.view.workspace.copy.path=複製路徑 +agents.view.workspace.open.file=開啟檔案 +agents.view.workspace.open.folder=開啟所在資料夾 +agents.view.workspace.new=新增… +agents.view.workspace.new.folder=新增資料夾 +agents.view.workspace.new.file=新增檔案 +agents.view.workspace.new.subfolder=新增子資料夾 +agents.view.workspace.new.file.here=在此新增檔案 +agents.view.workspace.name.placeholder=名稱 +agents.view.workspace.duplicate=複製 +agents.view.workspace.delete.confirm.title=刪除「{0}」? +agents.view.workspace.delete.confirm.message=此操作無法復原。 +agents.view.workspace.switcher.title=切換工作區 +agents.view.workspace.switcher.empty=尚無工作區 +agents.view.workspace.switcher.add=新增工作區... +agents.view.workspace.switcher.pin=釘選工作區 +agents.view.workspace.switcher.rename=重新命名工作區 +agents.view.workspace.switcher.remove.title=從工作區列表中移除「{0}」? +agents.view.workspace.switcher.remove.message=僅從列表中移除——資料夾及其檔案不會被刪除。 +agents.view.panel.collapse=收合面板 +agents.view.panel.expand=展開面板 +agents.view.tab.workspace=工作區 +agents.view.tab.history=歷史記錄 +agents.view.search.placeholder=搜尋技能 ... +agents.view.search.clear=清除搜尋 +agents.view.history.empty=尚無執行記錄 +agents.view.docs.tooltip=查看智能體指南 # Agentic run mode -skills.agentic.run=執行 -skills.agentic.goal.placeholder=描述你的目標 — 代理程式會自動選擇正確的技能… -skills.agentic.skills.available={0} 個技能可作為代理程式上下文使用 -skills.agentic.no.skills.hint=還沒有技能 — 請在 設定 → 技能 新增技能,讓代理程式具備專門能力 -skills.agentic.model.default=預設模型 +agents.agentic.run=執行 +agents.agentic.goal.placeholder=描述您的目標——智能體將自動選擇合適的技能… +agents.agentic.skills.available={0} 個技能可用作智能體上下文 +agents.agentic.no.skills.hint=尚無自訂技能——智能體將使用其內建能力。您可在設定 → 智能體與技能中新增自訂技能來擴充它。 +agents.agentic.model.default=預設模型 # Onboarding Wizard onboarding.title=歡迎使用 Askimo @@ -1667,7 +1675,7 @@ 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 (Antigravity CLI, Claude Code), Projects onboarding.step.persona.researcher.description=研究主題,分析資料,撰寫結構化報告,並獲得基於知識的答案。 onboarding.step.persona.researcher.features=啟用:Plans, Projects (RAG) onboarding.step.persona.manager.description=起草電子郵件,處理會議記錄,撰寫狀態報告,或執行多步驟內容工作流程。 @@ -1680,3 +1688,13 @@ persona.developer=💻 編寫和審查程式碼 persona.researcher=🔬 研究和分析 persona.manager=📋 撰寫和組織 persona.everything=⚡ 我做各種混合的工作 + +# Memory pressure +memory.pressure.warning.message=上下文視窗已快滿了。 +memory.pressure.critical.message=上下文視窗即將溢出。請壓縮以繼續,或開啟新會話。 +memory.pressure.action.compress=壓縮 +memory.pressure.compressing=正在壓縮… +memory.pressure.chip.tooltip.normal=已用上下文 +memory.pressure.chip.tooltip.warning=已用上下文 — 點擊以壓縮 +memory.pressure.chip.tooltip.critical=已用上下文 — 立即壓縮 +memory.pressure.chip.tooltip.unknown=上下文大小尚未校準 — 將在第一次對話後自動更新