mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-04-26 10:41:41 +00:00
fix(i18n): sync mismatched keys between en.js and zh.js (#3534)
Some checks are pending
E2E Tests / E2E Test - macOS (push) Waiting to run
Qwen Code CI / Lint (push) Waiting to run
Qwen Code CI / Test (push) Blocked by required conditions
Qwen Code CI / Test-1 (push) Blocked by required conditions
Qwen Code CI / Test-2 (push) Blocked by required conditions
Qwen Code CI / Test-3 (push) Blocked by required conditions
Qwen Code CI / Test-4 (push) Blocked by required conditions
Qwen Code CI / Test-5 (push) Blocked by required conditions
Qwen Code CI / Test-6 (push) Blocked by required conditions
Qwen Code CI / Test-7 (push) Blocked by required conditions
Qwen Code CI / Test-8 (push) Blocked by required conditions
Qwen Code CI / Post Coverage Comment (push) Blocked by required conditions
Qwen Code CI / CodeQL (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:docker (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:none (push) Waiting to run
Some checks are pending
E2E Tests / E2E Test - macOS (push) Waiting to run
Qwen Code CI / Lint (push) Waiting to run
Qwen Code CI / Test (push) Blocked by required conditions
Qwen Code CI / Test-1 (push) Blocked by required conditions
Qwen Code CI / Test-2 (push) Blocked by required conditions
Qwen Code CI / Test-3 (push) Blocked by required conditions
Qwen Code CI / Test-4 (push) Blocked by required conditions
Qwen Code CI / Test-5 (push) Blocked by required conditions
Qwen Code CI / Test-6 (push) Blocked by required conditions
Qwen Code CI / Test-7 (push) Blocked by required conditions
Qwen Code CI / Test-8 (push) Blocked by required conditions
Qwen Code CI / Post Coverage Comment (push) Blocked by required conditions
Qwen Code CI / CodeQL (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:docker (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:none (push) Waiting to run
* fix(i18n): sync mismatched keys between en.js and zh.js (#3503) Add 4 keys missing from en.js that are actively used in source code, add 5 missing Chinese translations to zh.js, integrate check-i18n into CI to prevent future drift, and skip JSON file write in CI to avoid dirtying the working tree. --- Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
parent
d36f12c4c4
commit
4e0a37549d
5 changed files with 202 additions and 18 deletions
3
.github/workflows/ci.yml
vendored
3
.github/workflows/ci.yml
vendored
|
|
@ -83,6 +83,9 @@ jobs:
|
|||
- name: 'Run sensitive keyword linter'
|
||||
run: 'node scripts/lint.js --sensitive-keywords'
|
||||
|
||||
- name: 'Run i18n check'
|
||||
run: 'npm run check-i18n'
|
||||
|
||||
- name: 'Build CLI package'
|
||||
run: 'npm run build --workspace=packages/cli'
|
||||
|
||||
|
|
|
|||
|
|
@ -575,6 +575,8 @@ export default {
|
|||
'Updates all extensions or a named extension to the latest version.':
|
||||
'Updates all extensions or a named extension to the latest version.',
|
||||
'Update all extensions.': 'Update all extensions.',
|
||||
'The name of the extension to update.':
|
||||
'The name of the extension to update.',
|
||||
'Either an extension name or --all must be provided':
|
||||
'Either an extension name or --all must be provided',
|
||||
'Lists installed extensions.': 'Lists installed extensions.',
|
||||
|
|
@ -726,6 +728,7 @@ export default {
|
|||
'User Settings': 'User Settings',
|
||||
'System Settings': 'System Settings',
|
||||
Extensions: 'Extensions',
|
||||
'Session (temporary)': 'Session (temporary)',
|
||||
// Hooks - Status
|
||||
'✓ Enabled': '✓ Enabled',
|
||||
'✗ Disabled': '✗ Disabled',
|
||||
|
|
@ -1896,6 +1899,8 @@ export default {
|
|||
// Coding Plan Authentication
|
||||
// ============================================================================
|
||||
'API key cannot be empty.': 'API key cannot be empty.',
|
||||
'Invalid API key. Coding Plan API keys start with "sk-sp-". Please check.':
|
||||
'Invalid API key. Coding Plan API keys start with "sk-sp-". Please check.',
|
||||
'You can get your Coding Plan API key here':
|
||||
'You can get your Coding Plan API key here',
|
||||
'API key is stored in settings.env. You can migrate it to a .env file for better security.':
|
||||
|
|
@ -1973,6 +1978,8 @@ export default {
|
|||
'Show context window usage breakdown.',
|
||||
'Run /context detail for per-item breakdown.':
|
||||
'Run /context detail for per-item breakdown.',
|
||||
'Show context window usage breakdown. Use "/context detail" for per-item breakdown.':
|
||||
'Show context window usage breakdown. Use "/context detail" for per-item breakdown.',
|
||||
'body loaded': 'body loaded',
|
||||
memory: 'memory',
|
||||
'{{region}} configuration updated successfully.':
|
||||
|
|
|
|||
|
|
@ -578,6 +578,7 @@ export default {
|
|||
'(user)': '(用户)',
|
||||
'[not set]': '[未设置]',
|
||||
'[value stored in keychain]': '[值存储在钥匙串中]',
|
||||
'Value:': '值:',
|
||||
'Manage extension settings.': '管理扩展设置。',
|
||||
'You need to specify a command (set or list).':
|
||||
'您需要指定命令(set 或 list)。',
|
||||
|
|
@ -1037,6 +1038,8 @@ export default {
|
|||
'Command:': '命令:',
|
||||
'Working Directory:': '工作目录:',
|
||||
'Capabilities:': '功能:',
|
||||
'No server selected': '未选择服务器',
|
||||
prompts: '提示',
|
||||
|
||||
// MCP Tool List
|
||||
'No tools available for this server.': '此服务器没有可用工具。',
|
||||
|
|
@ -1049,7 +1052,9 @@ export default {
|
|||
'{{current}}/{{total}}': '{{current}}/{{total}}',
|
||||
|
||||
// MCP Tool Detail
|
||||
required: '必需',
|
||||
Type: '类型',
|
||||
Enum: '枚举',
|
||||
Parameters: '参数',
|
||||
'No tool selected': '未选择工具',
|
||||
Annotations: '注解',
|
||||
|
|
|
|||
|
|
@ -429,15 +429,17 @@ async function main() {
|
|||
console.log(` - "${key}"`),
|
||||
);
|
||||
|
||||
// Save these keys to a JSON file
|
||||
const outputPath = path.join(
|
||||
__dirname,
|
||||
'unused-keys-only-in-locales.json',
|
||||
);
|
||||
saveKeysOnlyInLocalesToJson(
|
||||
result.stats.unusedKeysOnlyInLocales,
|
||||
outputPath,
|
||||
);
|
||||
// Save these keys to a JSON file (skip in CI to avoid dirtying the working tree)
|
||||
if (!process.env['CI']) {
|
||||
const outputPath = path.join(
|
||||
__dirname,
|
||||
'unused-keys-only-in-locales.json',
|
||||
);
|
||||
saveKeysOnlyInLocalesToJson(
|
||||
result.stats.unusedKeysOnlyInLocales,
|
||||
outputPath,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
console.log();
|
||||
|
|
|
|||
|
|
@ -1,62 +1,229 @@
|
|||
{
|
||||
"generatedAt": "2026-01-07T14:56:23.662Z",
|
||||
"generatedAt": "2026-04-22T15:40:32.318Z",
|
||||
"keys": [
|
||||
" - en-US: English",
|
||||
" - zh-CN: Simplified Chinese",
|
||||
" Models: Qwen latest models\n",
|
||||
" qwen auth qwen-oauth - Authenticate with Qwen OAuth (discontinued)",
|
||||
"(Press Enter to submit, Escape to cancel)",
|
||||
"(Press Esc to close)",
|
||||
"(Press Escape to go back)",
|
||||
"(esc to cancel, {{time}})",
|
||||
"(set)",
|
||||
"A checkpoint with the tag {{tag}} already exists. Do you want to overwrite it?",
|
||||
"API Key:",
|
||||
"API key is stored in settings.env. You can migrate it to a .env file for better security.",
|
||||
"API-KEY",
|
||||
"About Qwen Code",
|
||||
"Accept suggestion / Autocomplete",
|
||||
"Add content to global memory.",
|
||||
"Add content to project-level memory.",
|
||||
"Add content to the memory. Use --global for global memory or --project for project memory.",
|
||||
"Add file context",
|
||||
"Any other key",
|
||||
"Apply to current session only (temporary)",
|
||||
"Approval mode changed to: {{mode}}",
|
||||
"Approval mode changed to: {{mode}} (saved to {{scope}} settings{{location}})",
|
||||
"Attempting to save to global memory: \"{{text}}\"",
|
||||
"Attempting to save to memory {{scope}}: \"{{fact}}\"",
|
||||
"Attempting to save to project memory: \"{{text}}\"",
|
||||
"Auth Method",
|
||||
"Authenticate with an OAuth-enabled MCP server",
|
||||
"Authenticated successfully with {{region}}. API key and model configs saved to settings.json (backed up).",
|
||||
"Auto-edit mode - Automatically approve file edits",
|
||||
"Available approval modes:",
|
||||
"CLI Version",
|
||||
"Cannot ask user questions in non-interactive mode. Please run in interactive mode to use this tool.",
|
||||
"Change auth (executes the /auth command)",
|
||||
"Chat history is already compressed.",
|
||||
"Checking...",
|
||||
"Coding Plan API key not found. Please re-authenticate with Coding Plan.",
|
||||
"Coding Plan configuration updated successfully. New models are now available.",
|
||||
"Commands for interacting with memory.",
|
||||
"Configured Hooks ({{count}} total)",
|
||||
"Continue with {{model}}",
|
||||
"Conversation checkpoint '{{tag}}' has been deleted.",
|
||||
"Conversation checkpoint saved with tag: {{tag}}.",
|
||||
"Conversation shared to {{filePath}}",
|
||||
"Current (effective) configuration",
|
||||
"Current approval mode: {{mode}}",
|
||||
"Current memory content from {{count}} file(s):",
|
||||
"Cursor: session={{sessionId}}, offset={{offset}}, updated={{updatedAt}}",
|
||||
"Deduplicated entries: {{count}}",
|
||||
"Default mode - Require approval for file edits or shell commands",
|
||||
"Delete a conversation checkpoint. Usage: /chat delete <tag>",
|
||||
"Destructive",
|
||||
"Disable Auto Update",
|
||||
"Disable Cache Control",
|
||||
"Disable Fuzzy Search",
|
||||
"Disable Loading Phrases",
|
||||
"Disable Server",
|
||||
"Disable an active hook",
|
||||
"Disable an extension",
|
||||
"Enable Prompt Completion",
|
||||
"Enable Tool Output Truncation",
|
||||
"Enable a disabled hook",
|
||||
"Enable an extension",
|
||||
"Error sharing conversation: {{error}}",
|
||||
"Error: No checkpoint found with tag '{{tag}}'.",
|
||||
"Example: /language output Português",
|
||||
"Extension \"{{name}}\" disabled for scope \"{{scope}}\"",
|
||||
"Extension \"{{name}}\" disabled successfully.",
|
||||
"Extension \"{{name}}\" enabled for scope \"{{scope}}\"",
|
||||
"Extension \"{{name}}\" enabled successfully.",
|
||||
"Extension \"{{name}}\" uninstalled successfully.",
|
||||
"Failed to authenticate with MCP server '{{name}}': {{error}}",
|
||||
"Failed to change approval mode: {{error}}",
|
||||
"Failed to login. Message: {{message}}",
|
||||
"Failed to process user answers:",
|
||||
"Failed to save approval mode: {{error}}",
|
||||
"Failed to switch model to '{{modelId}}'.\n\n{{error}}",
|
||||
"Failed to uninstall extension \"{{name}}\": {{error}}",
|
||||
"Failed to update extension \"{{name}}\": {{error}}",
|
||||
"Failed to validate credentials",
|
||||
"Get started",
|
||||
"Git Commit",
|
||||
"Global memory content:\n\n---\n{{content}}\n---",
|
||||
"Global memory file not found or is currently empty.",
|
||||
"Global memory is currently empty.",
|
||||
"IDE Mode",
|
||||
"If the browser does not open, copy and paste this URL into your browser:",
|
||||
"Installs an extension from a git repository URL, local path, or claude marketplace (marketplace-url:plugin-name).",
|
||||
"Invalid credentials: {{errorMessage}}",
|
||||
"Invalid file format. Only .md and .json are supported.",
|
||||
"Invalid language. Available: en-US, zh-CN",
|
||||
"LLM output language not set",
|
||||
"LLM output language rule file generated at {{path}}",
|
||||
"List active extensions",
|
||||
"List available Qwen Code tools. Usage: /tools [desc]",
|
||||
"List configured MCP servers and tools",
|
||||
"List configured MCP servers and tools, or authenticate with OAuth-enabled servers",
|
||||
"List of saved conversations:",
|
||||
"List saved conversation checkpoints",
|
||||
"MCP Management",
|
||||
"MCP server '{{name}}' not found.",
|
||||
"MCP servers with OAuth authentication:",
|
||||
"Make sure to copy the COMPLETE URL - it may wrap across multiple lines.",
|
||||
"Manage conversation history.",
|
||||
"Managed auto-memory dream found nothing to improve.",
|
||||
"Managed auto-memory extraction found no new durable memories.",
|
||||
"Managed auto-memory extraction is already running.",
|
||||
"Managed auto-memory root: {{root}}",
|
||||
"Managed auto-memory topics:",
|
||||
"Memory Discovery Max Dirs",
|
||||
"Memory is currently empty.",
|
||||
"Missing tag. Usage: /chat delete <tag>",
|
||||
"Missing tag. Usage: /chat resume <tag>",
|
||||
"Missing tag. Usage: /chat save <tag>",
|
||||
"More instructions about configuring `modelProviders` manually.",
|
||||
"NPM Version",
|
||||
"New model configurations are available for Alibaba Cloud Coding Plan. Update now?",
|
||||
"No MCP servers configured with OAuth authentication.",
|
||||
"No chat client available to extract memory.",
|
||||
"No chat client available to save conversation.",
|
||||
"No chat client available to share conversation.",
|
||||
"No conversation found to save.",
|
||||
"No conversation found to share.",
|
||||
"No extensions found.",
|
||||
"No extraction cursor found yet.",
|
||||
"No hooks configured. Add hooks in your settings.json file.",
|
||||
"No saved checkpoint found with tag: {{tag}}.",
|
||||
"No saved conversation checkpoints found.",
|
||||
"Node.js Version",
|
||||
"Not Sure Yet",
|
||||
"Note: Newest last, oldest first",
|
||||
"Note: Your existing API key in settings.json will not be cleared when using Qwen OAuth. You can switch back to OpenAI authentication later if needed.",
|
||||
"Note: Your existing API key will not be cleared when using Qwen OAuth.",
|
||||
"OS Arch",
|
||||
"OS Platform",
|
||||
"OS Release",
|
||||
"Open MCP management dialog, or authenticate with OAuth-enabled servers",
|
||||
"Open World",
|
||||
"Open command menu",
|
||||
"OpenAI API key is required to use OpenAI authentication.",
|
||||
"OpenAI Configuration Required",
|
||||
"Or scan the QR code below:",
|
||||
"Paste your api key of ModelStudio Coding Plan and you're all set!",
|
||||
"Persist for this project/workspace",
|
||||
"Persist for this user on this machine",
|
||||
"Plan mode - Analyze only, do not modify files or execute commands",
|
||||
"Please answer the following question(s):",
|
||||
"Please enter your OpenAI configuration. You can get an API key from",
|
||||
"Press ? again to close",
|
||||
"Press Enter or Esc to go back",
|
||||
"Press Enter to continue, Tab/↑↓ to navigate, Esc to cancel",
|
||||
"Press Enter to start authentication, Esc to go back",
|
||||
"Press Y/Enter to confirm, N/Esc to cancel",
|
||||
"Pro quota limit reached for {{model}}.",
|
||||
"Project memory content from {{path}}:\n\n---\n{{content}}\n---",
|
||||
"Project memory file not found or is currently empty.",
|
||||
"Project memory is currently empty.",
|
||||
"Project settings (local)",
|
||||
"Qwen 3.6 Plus — efficient hybrid model with leading coding performance",
|
||||
"Qwen OAuth authentication cancelled.",
|
||||
"Qwen OAuth authentication timed out. Please try again.",
|
||||
"Qwen OAuth free tier was discontinued on 2026-04-15. Run /auth to switch provider.",
|
||||
"Rate limit error: {{reason}}",
|
||||
"Read Only",
|
||||
"Refresh the memory from the source.",
|
||||
"Refreshing memory from source files...",
|
||||
"Restarting MCP servers...",
|
||||
"Restarts MCP servers.",
|
||||
"Resume a conversation from a checkpoint. Usage: /chat resume <tag>",
|
||||
"Reverse search history",
|
||||
"Run managed auto-memory extraction for the current session.",
|
||||
"Save a durable memory using the save_memory tool.",
|
||||
"Save the current conversation as a checkpoint. Usage: /chat save <tag>",
|
||||
"Saved in .qwen/settings.local.json",
|
||||
"Scope subcommands do not accept additional arguments.",
|
||||
"Set UI language to English (en-US)",
|
||||
"Set UI language to Simplified Chinese (zh-CN)",
|
||||
"Select API-KEY configuration mode:",
|
||||
"Select the scope for this action:",
|
||||
"Settings service is not available; unable to persist the approval mode.",
|
||||
"Share the current conversation to a markdown or json file. Usage: /chat share <file>",
|
||||
"Show global memory contents.",
|
||||
"Show managed auto-memory status.",
|
||||
"Show project-level memory contents.",
|
||||
"Show the current memory contents.",
|
||||
"The command \"/{{command}}\" is not supported in non-interactive mode.",
|
||||
"The latest Qwen Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)",
|
||||
"This extension will exclude the following core tools: {{tools}}",
|
||||
"Toggle shell mode",
|
||||
"Toggle this help display",
|
||||
"Tools for {{name}}",
|
||||
"Uninstall an extension",
|
||||
"Uninstalling extension \"{{name}}\"...",
|
||||
"Unsupported scope \"{{scope}}\", should be one of \"user\" or \"workspace\"",
|
||||
"Up to date",
|
||||
"Update available",
|
||||
"Update extensions. Usage: update <extension-names>|--all",
|
||||
"Usage: /approval-mode <mode> [--session|--user|--project]",
|
||||
"Usage: /language ui [zh-CN|en-US]",
|
||||
"YOLO mode - Automatically approve all tools"
|
||||
"Usage: /extensions uninstall <extension-name>",
|
||||
"Usage: /extensions update <extension-names>|--all",
|
||||
"Usage: /extensions {{command}} <extension> [--scope=<user|workspace>]",
|
||||
"Usage: /memory add --global <text to remember>",
|
||||
"Usage: /memory add --project <text to remember>",
|
||||
"Usage: /memory add [--global|--project] <text to remember>",
|
||||
"Usage: /remember [--global|--project] <text to remember>",
|
||||
"Use /mcp auth <server-name> to authenticate.",
|
||||
"Use /trust to manage folder trust settings for this workspace.",
|
||||
"Use coding plan credentials or your own api-keys/providers.",
|
||||
"User - Applies to all projects",
|
||||
"User Scope",
|
||||
"User declined to answer the questions.",
|
||||
"User has provided the following answers:",
|
||||
"View Extension",
|
||||
"Vision Model Preview",
|
||||
"Workspace - Applies to current project only",
|
||||
"Workspace Scope",
|
||||
"Y/Enter to confirm, N/Esc to cancel",
|
||||
"YOLO mode - Automatically approve all tools",
|
||||
"Yes, allow always ...",
|
||||
"Yes, allow always for this session",
|
||||
"Yes, always allow all tools from server \"{{server}}\"",
|
||||
"Yes, always allow tool \"{{tool}}\" from server \"{{server}}\"",
|
||||
"change the auth method",
|
||||
"compact mode: on (Ctrl+O off)",
|
||||
"↑/↓: Navigate | Space/Enter: Toggle | Esc: Cancel",
|
||||
"↑/↓: Navigate | ←/→: Switch tabs | Space/Enter: Toggle | Esc: Cancel",
|
||||
"✓ Enabled",
|
||||
"✗ Disabled"
|
||||
],
|
||||
"count": 56
|
||||
"count": 223
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue