From c09d9db8449ca3709a5e94ef5e72135b8c3636c5 Mon Sep 17 00:00:00 2001 From: yunyancuo <115089631+yunyancuo@users.noreply.github.com> Date: Tue, 1 Sep 2026 16:50:24 +0800 Subject: [PATCH 1/2] fix(i18n): add missing en-US dashboard translations Fill 26 keys present in zh-CN but missing from en-US locale files: - tool-use: the whole dialogs.syncProvider subtree (MCP server sync dialog showed untranslated keys in English UI) - config-metadata: section hints for knowledgebase and websearch - provider: vllm_rerank description - subagent: personaPreview label Verified all en-US locale files now have full key parity with zh-CN. --- .../en-US/features/config-metadata.json | 2 ++ .../i18n/locales/en-US/features/provider.json | 1 + .../i18n/locales/en-US/features/subagent.json | 1 + .../i18n/locales/en-US/features/tool-use.json | 36 +++++++++++++++++++ 4 files changed, 40 insertions(+) diff --git a/dashboard/src/i18n/locales/en-US/features/config-metadata.json b/dashboard/src/i18n/locales/en-US/features/config-metadata.json index 89133e0f59..df81281a63 100644 --- a/dashboard/src/i18n/locales/en-US/features/config-metadata.json +++ b/dashboard/src/i18n/locales/en-US/features/config-metadata.json @@ -146,6 +146,7 @@ }, "knowledgebase": { "description": "Knowledge Base", + "hint": "AstrBot's \"external brain\".", "kb_names": { "description": "Knowledge Base List", "hint": "Supports multiple selections" @@ -165,6 +166,7 @@ }, "websearch": { "description": "Web Search", + "hint": "Enables AstrBot to access the internet and stay up to date.", "provider_settings": { "web_search": { "description": "Enable Web Search" diff --git a/dashboard/src/i18n/locales/en-US/features/provider.json b/dashboard/src/i18n/locales/en-US/features/provider.json index 80cff35c1d..636055bc8e 100644 --- a/dashboard/src/i18n/locales/en-US/features/provider.json +++ b/dashboard/src/i18n/locales/en-US/features/provider.json @@ -23,6 +23,7 @@ "description": { "openai": "Supports all OpenAI API-style providers.", "kimi_code": "Dedicated Kimi CodingPlan / Kimi Code integration using a custom Anthropic API adapter.", + "vllm_rerank": "Also supports Jina AI, Cohere, PPIO and other providers.", "default": "" } }, diff --git a/dashboard/src/i18n/locales/en-US/features/subagent.json b/dashboard/src/i18n/locales/en-US/features/subagent.json index e9ea127f51..eb7be092d8 100644 --- a/dashboard/src/i18n/locales/en-US/features/subagent.json +++ b/dashboard/src/i18n/locales/en-US/features/subagent.json @@ -60,6 +60,7 @@ "providerHint": "Leave empty to follow the global default provider.", "personaLabel": "Choose Persona", "personaHint": "The SubAgent inherits the selected Persona's system settings and tools.", + "personaPreview": "Persona preview", "descriptionLabel": "Description for the main LLM (used to decide handoff)", "descriptionHint": "Shown to the main LLM as the transfer_to_* tool description—keep it short and clear." }, diff --git a/dashboard/src/i18n/locales/en-US/features/tool-use.json b/dashboard/src/i18n/locales/en-US/features/tool-use.json index ce808ea3a9..e4284e534a 100644 --- a/dashboard/src/i18n/locales/en-US/features/tool-use.json +++ b/dashboard/src/i18n/locales/en-US/features/tool-use.json @@ -92,6 +92,42 @@ } }, "dialogs": { + "syncProvider": { + "title": "Sync MCP Servers", + "subtitle": "Sync MCP server configurations from a provider to local", + "steps": { + "selectProvider": "Step 1: Select a provider", + "configureAuth": "Step 2: Configure authentication", + "syncServers": "Step 3: Sync servers" + }, + "providers": { + "modelscope": "ModelScope", + "description": "ModelScope is an open-source model community offering MCP servers for various machine learning and AI services" + }, + "fields": { + "provider": "Select a provider", + "accessToken": "Access token", + "tokenHint": "Enter your ModelScope access token", + "tokenRequired": "Access token is required" + }, + "buttons": { + "cancel": "Cancel", + "previous": "Previous", + "next": "Next", + "getToken": "Get token", + "sync": "Start sync" + }, + "status": { + "selectProvider": "Select an MCP server provider to continue", + "enterToken": "Enter your access token to continue", + "readyToSync": "Ready to sync server configuration" + }, + "messages": { + "syncSuccess": "MCP servers synced successfully!", + "syncError": "Sync failed: {error}", + "tokenHelp": "How do I get a ModelScope access token? Click the button on the right for instructions" + } + }, "addServer": { "title": "Add MCP Server", "editTitle": "Edit MCP Server", From c29436eaac36529d84675e7cbcaf005afa27ff7b Mon Sep 17 00:00:00 2001 From: yunyancuo <115089631+yunyancuo@users.noreply.github.com> Date: Tue, 1 Sep 2026 17:15:36 +0800 Subject: [PATCH 2/2] fix(i18n): move syncProvider keys to the tooluse namespace root McpServersSection.vue resolves features.tooluse.syncProvider.* (the subtree must sit at the file root); the previous commit had mirrored zh-CN's placement under dialogs, which the namespace lookup never reaches. Also drop form.personaPreview: the component consumes cards.personaPreview (already present); form.personaPreview is an unused key. --- .../i18n/locales/en-US/features/subagent.json | 1 - .../i18n/locales/en-US/features/tool-use.json | 66 +++++-------------- 2 files changed, 15 insertions(+), 52 deletions(-) diff --git a/dashboard/src/i18n/locales/en-US/features/subagent.json b/dashboard/src/i18n/locales/en-US/features/subagent.json index eb7be092d8..e9ea127f51 100644 --- a/dashboard/src/i18n/locales/en-US/features/subagent.json +++ b/dashboard/src/i18n/locales/en-US/features/subagent.json @@ -60,7 +60,6 @@ "providerHint": "Leave empty to follow the global default provider.", "personaLabel": "Choose Persona", "personaHint": "The SubAgent inherits the selected Persona's system settings and tools.", - "personaPreview": "Persona preview", "descriptionLabel": "Description for the main LLM (used to decide handoff)", "descriptionHint": "Shown to the main LLM as the transfer_to_* tool description—keep it short and clear." }, diff --git a/dashboard/src/i18n/locales/en-US/features/tool-use.json b/dashboard/src/i18n/locales/en-US/features/tool-use.json index e4284e534a..55c6a7bf79 100644 --- a/dashboard/src/i18n/locales/en-US/features/tool-use.json +++ b/dashboard/src/i18n/locales/en-US/features/tool-use.json @@ -92,42 +92,6 @@ } }, "dialogs": { - "syncProvider": { - "title": "Sync MCP Servers", - "subtitle": "Sync MCP server configurations from a provider to local", - "steps": { - "selectProvider": "Step 1: Select a provider", - "configureAuth": "Step 2: Configure authentication", - "syncServers": "Step 3: Sync servers" - }, - "providers": { - "modelscope": "ModelScope", - "description": "ModelScope is an open-source model community offering MCP servers for various machine learning and AI services" - }, - "fields": { - "provider": "Select a provider", - "accessToken": "Access token", - "tokenHint": "Enter your ModelScope access token", - "tokenRequired": "Access token is required" - }, - "buttons": { - "cancel": "Cancel", - "previous": "Previous", - "next": "Next", - "getToken": "Get token", - "sync": "Start sync" - }, - "status": { - "selectProvider": "Select an MCP server provider to continue", - "enterToken": "Enter your access token to continue", - "readyToSync": "Ready to sync server configuration" - }, - "messages": { - "syncSuccess": "MCP servers synced successfully!", - "syncError": "Sync failed: {error}", - "tokenHelp": "How do I get a ModelScope access token? Click the button on the right for instructions" - } - }, "addServer": { "title": "Add MCP Server", "editTitle": "Edit MCP Server", @@ -166,38 +130,38 @@ }, "syncProvider": { "title": "Sync MCP Servers", - "subtitle": "Sync MCP server configurations from providers to local", + "subtitle": "Sync MCP server configurations from a provider to local", "steps": { - "selectProvider": "Step 1: Select Provider", - "configureAuth": "Step 2: Configure Authentication", - "syncServers": "Step 3: Sync Servers" + "selectProvider": "Step 1: Select a provider", + "configureAuth": "Step 2: Configure authentication", + "syncServers": "Step 3: Sync servers" }, "providers": { "modelscope": "ModelScope", - "description": "ModelScope is an open model community providing MCP servers for various machine learning and AI services" + "description": "ModelScope is an open-source model community offering MCP servers for various machine learning and AI services" }, "fields": { - "provider": "Select Provider", - "accessToken": "Access Token", - "tokenRequired": "Access token is required", - "tokenHint": "Please enter your ModelScope access token" + "provider": "Select a provider", + "accessToken": "Access token", + "tokenHint": "Enter your ModelScope access token", + "tokenRequired": "Access token is required" }, "buttons": { "cancel": "Cancel", "previous": "Previous", "next": "Next", - "sync": "Start Sync", - "getToken": "Get Token" + "getToken": "Get token", + "sync": "Start sync" }, "status": { - "selectProvider": "Please select an MCP server provider", - "enterToken": "Please enter the access token to continue", - "readyToSync": "Ready to sync server configurations" + "selectProvider": "Select an MCP server provider to continue", + "enterToken": "Enter your access token to continue", + "readyToSync": "Ready to sync server configuration" }, "messages": { "syncSuccess": "MCP servers synced successfully!", "syncError": "Sync failed: {error}", - "tokenHelp": "How to get a ModelScope access token? Click the button on the right for instructions" + "tokenHelp": "How do I get a ModelScope access token? Click the button on the right for instructions" } }, "messages": {