@vibeapi/api-helper 0.0.132 → 0.0.134

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,274 +1,274 @@
1
1
  {
2
2
  "cli": {
3
- "error_unknown": "未知命令: {{command}}",
4
- "unknown_hint": "下一步:运行 {{cli}} --help 查看可用命令",
3
+ "error_unknown": "未知命令:{{command}}",
4
+ "unknown_hint": "下一步:运行 {{cli}} --help 查看可用命令。",
5
5
  "unknown_hint_suggestion": "你是不是想运行 {{cli}} {{command}}?",
6
6
  "err_unknown_option": "未知选项:{{name}}",
7
7
  "err_missing_argument": "缺少参数:{{name}}",
8
8
  "err_missing_option": "缺少必填选项:{{name}}",
9
- "unknown_option_hint": "下一步:运行 {{cli}} {{command}} --help 查看正确用法",
10
- "unknown_option_hint_root": "下一步:运行 {{cli}} --help 查看正确用法"
9
+ "unknown_option_hint": "下一步:运行 {{cli}} {{command}} --help 查看正确用法。",
10
+ "unknown_option_hint_root": "下一步:运行 {{cli}} --help 查看正确用法。"
11
11
  },
12
12
  "lang": {
13
13
  "current": "当前语言",
14
- "show_usage": "{{cli}} lang show - 显示当前语言",
15
- "set_usage": "{{cli}} lang set <zh_CN|en_US> - 设置语言",
16
- "changed": "语言已从 {{from}} 更改为 {{to}}",
17
- "invalid": "不支持的语言: {{lang}}",
14
+ "show_usage": "{{cli}} lang show:显示当前语言",
15
+ "set_usage": "{{cli}} lang set <zh_CN|en_US>:设置语言",
16
+ "changed": "已将语言从 {{from}} 改为 {{to}}",
17
+ "invalid": "不支持这种语言:{{lang}}",
18
18
  "available": "可用语言"
19
19
  },
20
20
  "auth": {
21
- "token_prompt": "请输入API密钥",
22
- "token_required": "API密钥不能为空",
23
- "saved": "API密钥已保存",
24
- "revoke_confirm": "确认要删除当前 Profile 保存的 API Key(含各工具专属 Key)吗?",
25
- "revoked": "已删除保存的 API Key",
26
- "not_revoked": "取消删除操作",
21
+ "token_prompt": "请输入令牌",
22
+ "token_required": "请填写令牌",
23
+ "saved": "已保存令牌",
24
+ "revoke_confirm": "删除当前 Profile 保存的令牌(包括各工具专属令牌)?",
25
+ "revoked": "已删除保存的令牌",
26
+ "not_revoked": "已取消删除",
27
27
  "reload_tool_not_supported": "不支持重新加载 {{tool}}",
28
- "reload_missing_config": "还没有保存的 API Key,先运行 {{cli}} setup --key <你的 Key>",
28
+ "reload_missing_config": "还没有保存的令牌。请先运行 {{cli}} setup --key <你的令牌>",
29
29
  "reloading": "正在把配置重新写入 {{tool}}…",
30
- "reloaded": "{{tool}} 的配置已重新写入",
31
- "reload_failed": "重新写入配置失败:"
30
+ "reloaded": "已重新写入 {{tool}} 的配置",
31
+ "reload_failed": "无法重新写入配置:"
32
32
  },
33
33
  "wizard": {
34
- "banner_subtitle": "统一管理您的 Claude Code 等编码工具",
35
- "welcome": "欢迎使用 {{product}}!",
36
- "privacy_note": "配置和 API Key 只保存在本机;运行情况统计(命令与出错信息,不含 Key)会发给 {{brand}},设环境变量 {{envPrefix}}_TELEMETRY=0 可关闭。",
34
+ "banner_subtitle": "统一管理你的 Claude Code 等编码工具",
35
+ "welcome": "欢迎使用 {{product}}",
36
+ "privacy_note": "配置和令牌只保存在本机;运行情况统计(命令和出错信息,不含令牌)会发送给 {{brand}},设置环境变量 {{envPrefix}}_TELEMETRY=0 可以关闭。",
37
37
  "select_language": "请选择界面语言",
38
- "input_api_key": "输入 API Key",
39
- "api_key_input_hint": "请输入您的 API Key(输入时会隐藏显示)",
40
- "input_your_api_key": "请在这里输入您的 API key, 回车键确认:",
41
- "api_key_required": "API密钥不能为空",
38
+ "input_api_key": "输入令牌",
39
+ "api_key_input_hint": "请输入你的令牌(输入内容不会显示)",
40
+ "input_your_api_key": "请在这里输入你的令牌,按回车确认:",
41
+ "api_key_required": "请填写令牌",
42
42
  "select_tool": "请选择要配置的编码工具",
43
43
  "tool_not_installed": "{{tool}} 尚未安装",
44
- "install_tool_confirm": "是否现在安装?",
45
- "tool_installed": "工具安装成功",
46
- "install_failed": "安装失败",
47
- "install_skipped": "已跳过安装,您可以稍后手动安装",
44
+ "install_tool_confirm": "现在安装?",
45
+ "tool_installed": "已安装",
46
+ "install_failed": "无法完成安装",
47
+ "install_skipped": "已跳过安装,你可以稍后自行安装。",
48
48
  "menu_title": "管理菜单",
49
49
  "select_action": "请选择操作",
50
50
  "retry_input": "重新输入",
51
- "action_load_config": "应用配置 - (把你的 API 配置写入 {{tool}})",
52
- "action_unload_config": "移除配置 - (从 {{tool}} 删掉 API 配置)",
53
- "action_clear_model": "清除模型设置 - (让 {{tool}} 用自带默认模型,保留 API Key)",
54
- "loading_config": "正在应用配置...",
55
- "run_tool_hint": "✅ 现在运行 `{{command}}` 就能用上你的配置了",
56
- "config_failed": "配置装载失败",
57
- "confirm_unload_config": "确认从 {{tool}} 移除配置吗?",
58
- "confirm_clear_model": "确认清除 {{tool}} 钉死的模型设置吗?(API Key 与你的 hooks / MCP 配置保持不变)",
59
- "unloading_config": "正在移除配置...",
60
- "config_unloaded": "配置已移除",
61
- "config_unload_failed": "移除配置失败",
51
+ "action_load_config": "应用配置:把令牌和模型配置写入 {{tool}}",
52
+ "action_unload_config": "移除配置:从 {{tool}} 删除令牌、接入地址和模型设置",
53
+ "action_clear_model": "清除模型设置:让 {{tool}} 使用自带默认模型,保留令牌",
54
+ "loading_config": "正在应用配置…",
55
+ "run_tool_hint": "✅ 现在运行 `{{command}}` 即可使用新配置",
56
+ "config_failed": "无法应用配置",
57
+ "confirm_unload_config": "从 {{tool}} 移除配置?",
58
+ "confirm_clear_model": "清除 {{tool}} 固定的模型设置?令牌和你的 hooks、MCP 配置保持不变。",
59
+ "unloading_config": "正在移除配置…",
60
+ "config_unloaded": "已移除配置",
61
+ "config_unload_failed": "无法移除配置",
62
62
  "config_models": "模型配置",
63
63
  "not_set": "未设置",
64
64
  "press_enter": "按回车继续",
65
- "api_key_get_hint": "如需获取 API Key,请访问: {{url}}",
66
- "menu_config_language": "界面语言配置",
67
- "menu_change_api_key": "更换 API Key",
65
+ "api_key_get_hint": "还没有令牌的话,在控制台的「令牌」页新建:{{url}}",
66
+ "menu_config_language": "界面语言",
67
+ "menu_change_api_key": "更换令牌",
68
68
  "settings": "设置",
69
- "goodbye_message": "再见!需要配置更多工具时运行 {{cli}} setup --key <你的 Key>",
70
- "lang_auto_zh": "检测到系统语言为中文,已自动使用中文界面(主菜单或 {{cli}} lang set en_US 可随时切换)。",
71
- "goodbye_message_tools": "再见! 终端输入 {{commands}} 即可开始编码!",
72
- "goodbye_claude_hint": "也可以在 VSCode 安装 Claude 插件使用 Claude Code。",
69
+ "goodbye_message": "再见。需要配置更多工具时,运行 {{cli}} setup --key <你的令牌>",
70
+ "lang_auto_zh": "系统语言是中文,已自动使用中文界面。可以在主菜单或用 {{cli}} lang set en_US 切换。",
71
+ "goodbye_message_tools": "再见。在终端输入 {{commands}} 即可开始编码。",
72
+ "goodbye_claude_hint": "也可以在 VS Code 里安装 Claude 插件来使用 Claude Code。",
73
73
  "nav_return": "返回",
74
74
  "nav_exit": "退出",
75
75
  "current_active": "当前",
76
76
  "hint_navigate": "↑↓ 选择",
77
77
  "hint_confirm": "Enter 确认",
78
- "validating_api_key": "正在验证 API Key...",
79
- "api_key_valid": "API Key 验证通过",
80
- "api_key_invalid": "API Key 无效或已过期",
81
- "api_key_network_error": "无法验证 API Key(网络不通或网关返回异常);请检查网络,或运行 {{cli}} base auto 换一个接入地址",
82
- "please_config_api_key_first": "请先配置有效的 API Key",
83
- "please_reconfig_api_key": "请重新配置 API Key",
78
+ "validating_api_key": "正在验证令牌…",
79
+ "api_key_valid": "令牌有效",
80
+ "api_key_invalid": "令牌无效或已过期",
81
+ "api_key_network_error": "无法验证令牌:网络不通或网关返回异常。请检查网络,或运行 {{cli}} base auto 更换接入地址",
82
+ "please_config_api_key_first": "请先配置有效的令牌",
83
+ "please_reconfig_api_key": "请重新配置令牌",
84
84
  "select_model_config": "请选择模型",
85
85
  "recommended": "推荐",
86
86
  "other_models": "其他模型",
87
- "custom_model_input": "自定义输入模型名",
88
- "input_custom_model": "请输入自定义模型名称",
89
- "model_haiku": "Haiku 模型 (快速)",
90
- "model_sonnet": "Sonnet 模型 (平衡)",
91
- "model_opus": "Opus 模型 (强大)",
92
- "model_reasoning": "Reasoning 模型 (推理)",
93
- "models_saved": "模型配置已保存",
94
- "use_default_model": "使用默认模型 ({{model}})",
87
+ "custom_model_input": "手动输入模型名",
88
+ "input_custom_model": "请输入模型名称",
89
+ "model_haiku": "Haiku 模型(快速)",
90
+ "model_sonnet": "Sonnet 模型(均衡)",
91
+ "model_opus": "Opus 模型(强大)",
92
+ "model_reasoning": "Reasoning 模型(推理)",
93
+ "models_saved": "已保存模型配置",
94
+ "use_default_model": "使用默认模型({{model}})",
95
95
  "model_builtin_default": "工具自带默认",
96
96
  "select_tool_model": "选择 {{tool}} 使用的模型",
97
- "fetch_models_from_api": "实时从 API 获取模型...",
98
- "fetching_models": "正在获取模型列表...",
99
- "fetch_models_failed": "获取模型列表失败,请手动输入模型 ID",
97
+ "fetch_models_from_api": "从网关获取模型列表…",
98
+ "fetching_models": "正在获取模型列表…",
99
+ "fetch_models_failed": "无法获取模型列表,请手动输入模型 ID",
100
100
  "select_fetched_model": "选择一个模型",
101
101
  "claude_model_hint": "提示:在 Claude Code 里也可以随时用 /model 命令切换模型",
102
102
  "codex_enable_1m_context": "为 Codex 启用 1M 上下文窗口?",
103
- "action_restore_config": "↩️ 还原 {{tool}} 最近一次配置",
104
- "confirm_restore_config": "确定把 {{tool}} 还原到上次更改前吗?(当前状态会先自动备份,可再还原回来)",
105
- "restoring_config": "正在还原配置...",
106
- "config_restored": "{{tool}} 配置已还原",
107
- "restore_no_backup": "没有可还原的备份",
108
- "config_restore_failed": "还原失败",
109
- "load_config_now": "现在就把配置应用到工具吗?",
110
- "load_config_yes": "好,马上应用",
103
+ "action_restore_config": "↩️ 还原 {{tool}} 上次修改前的配置",
104
+ "confirm_restore_config": "把 {{tool}} 还原到上次修改前?当前状态会先自动备份,之后还能还原回来。",
105
+ "restoring_config": "正在还原配置…",
106
+ "config_restored": "已还原 {{tool}} 的配置",
107
+ "restore_no_backup": "没有可以还原的备份",
108
+ "config_restore_failed": "无法还原配置",
109
+ "load_config_now": "现在把配置应用到工具?",
110
+ "load_config_yes": "立即应用",
111
111
  "load_config_later": "稍后再说",
112
- "what_next": "接下来您想做什么?",
112
+ "what_next": "接下来做什么?",
113
113
  "continue_config": "继续配置其他选项",
114
114
  "exit_and_start": "退出并开始使用",
115
- "custom_model_mode": "选择自定义模型模式",
116
- "custom_model_single": "所有角色使用同一模型",
115
+ "custom_model_mode": "选择自定义模型的方式",
116
+ "custom_model_single": "所有角色使用同一个模型",
117
117
  "custom_model_per_role": "分别配置每个角色",
118
- "desktop_hide_official_login": "隐藏 Claude Desktop 里的官方登录(Claude.ai 账号)入口,只走网关?",
119
- "action_force_config": "重置为推荐配置 - (删掉 {{tool}} 原配置文件后整份重写,修复改坏的配置)",
120
- "menu_base_url": "切换接入地址(当前 {{url}})",
121
- "base_testing": "正在测试各个接入地址...",
122
- "base_select": "选择接入地址(所有已配置的工具会一起换过去)"
118
+ "desktop_hide_official_login": "在 Claude Desktop 里隐藏官方登录(Claude.ai 账号)入口,只通过网关使用?",
119
+ "action_force_config": "重置为推荐配置:删除 {{tool}} 原有配置文件后整份重写,用于修复改坏的配置",
120
+ "menu_base_url": "切换接入地址(当前:{{url}})",
121
+ "base_testing": "正在测试各个接入地址…",
122
+ "base_select": "选择接入地址(已配置的工具会一起切换)"
123
123
  },
124
124
  "doctor": {
125
- "checking": "正在进行健康检查...",
126
- "check_api_key_network": "检查 API Key 和网络连接",
125
+ "checking": "正在检查…",
126
+ "check_api_key_network": "检查令牌和网络连接",
127
127
  "check_tools": "检查已安装的工具",
128
- "all_good": "所有检查通过!",
129
- "network_error": "请求网关失败",
130
- "api_key_invalid": "API Key 无效或已过期",
131
- "api_key_missing": "还没有保存 API Key,运行 {{cli}} setup --key <你的 Key>",
132
- "results_title": "健康检查结果:",
133
- "no_tools_installed": "未安装任何工具",
128
+ "all_good": "所有检查都已通过",
129
+ "network_error": "无法连接网关",
130
+ "api_key_invalid": "令牌无效或已过期",
131
+ "api_key_missing": "还没有保存令牌。请运行 {{cli}} setup --key <你的令牌>",
132
+ "results_title": "检查结果:",
133
+ "no_tools_installed": "还没有安装任何工具",
134
134
  "proxy": "代理设置",
135
135
  "check_proxy": "检查代理设置",
136
136
  "proxy_none": "未设置代理环境变量",
137
- "proxy_dead": "连不上 {{proxies}}:代理软件可能没开。Claude Code、Codex 都会走这个代理,请打开代理软件,或删掉这个环境变量后重开终端",
138
- "api_key_network": "API Key 与网络",
137
+ "proxy_dead": "无法连接 {{proxies}}:代理软件可能没有打开。Claude Code、Codex 都会通过这个代理连接,请打开代理软件,或删除这个环境变量后重新打开终端",
138
+ "api_key_network": "令牌与网络",
139
139
  "installed_tools": "已安装的工具",
140
140
  "tool_outdated": "低于最低版本 {{min}}",
141
- "tool_duplicates": "还有另外的安装:{{others}}",
141
+ "tool_duplicates": "另有安装:{{others}}",
142
142
  "run_upgrade": "运行 {{cli}} upgrade {{tool}} 处理",
143
143
  "claude_config": "Claude Code 配置",
144
- "claude_managed": "托管配置会盖掉 {{product}} 写入的设置({{detail}}),一般是公司电脑统一下发的,请联系管理员",
145
- "claude_not_configured": "~/.claude/settings.json 里没有 {{brand}} 的地址或 Key,运行 {{cli}} setup --key <你的 Key> 重新配置",
146
- "claude_config_changed": "~/.claude/settings.json 里的地址或 Key 和 {{product}} 保存的不一致(可能被别的工具改过),运行 {{cli}} setup --key <你的 Key> 重新写入",
144
+ "claude_managed": "托管配置会覆盖 {{product}} 写入的设置({{detail}}),通常由公司电脑统一下发,请联系公司 IT 管理员",
145
+ "claude_not_configured": "~/.claude/settings.json 里没有 {{brand}} 的地址或令牌,请运行 {{cli}} setup --key <你的令牌> 重新配置",
146
+ "claude_config_changed": "~/.claude/settings.json 里的地址或令牌与 {{product}} 保存的不一致,可能被别的工具改过。请运行 {{cli}} setup --key <你的令牌> 重新写入",
147
147
  "claude_request": "Claude Code 实际请求",
148
- "check_claude_request": "用 Claude Code 发一条测试请求",
149
- "claude_request_skipped": "没找到 claude 命令",
150
- "claude_request_failed": "请求失败:{{reason}}",
151
- "deep_hint": "加上 --deep 会用 Claude Code 实际发一条请求(消耗少量额度),确认整条链路能用",
148
+ "check_claude_request": "用 Claude Code 发送一条测试请求",
149
+ "claude_request_skipped": "找不到 claude 命令",
150
+ "claude_request_failed": "请求未成功:{{reason}}",
151
+ "deep_hint": "加上 --deep 会用 Claude Code 实际发送一条请求(消耗少量额度),确认整条链路可用",
152
152
  "codex_auth": "Codex 令牌",
153
153
  "codex_work_mode": "Codex 桌面版模式",
154
154
  "codex_catalog": "Codex 模型菜单",
155
- "codex_catalog_rejected": "Codex({{version}},{{path}})读不了模型菜单:{{error}}。运行 {{cli}} refresh 重写;仍然失败就升级这份 Codex(桌面版自带的随 ChatGPT 应用升级)",
156
- "codex_stale_bearer": "{{path}} 的 [model_providers.custom] 里有 experimental_bearer_token(多半是 cc-switch 等工具代理模式留下的 PROXY_MANAGED),Codex 会把它当令牌发出去,导致 401 Invalid token;运行 {{cli}} setup --key <你的 Key> 会删掉它",
157
- "codex_chatgpt_login": "Codex 当前是 ChatGPT 账号登录状态,会把 ChatGPT 的凭据发给 {{brand}},导致 401 Invalid token;运行 {{cli}} setup --key <你的 Key> 改回令牌登录",
155
+ "codex_catalog_rejected": "Codex({{version}},{{path}})无法读取模型菜单:{{error}}。请运行 {{cli}} refresh 重新写入;仍然不行就升级这份 Codex(桌面版自带的 Codex 随 ChatGPT 应用升级)",
156
+ "codex_stale_bearer": "{{path}} 的 [model_providers.custom] 里有 experimental_bearer_token(多半是 cc-switch 等工具的代理模式留下的 PROXY_MANAGED),Codex 会把它当作令牌发送,导致 401 Invalid token。运行 {{cli}} setup --key <你的令牌> 会删除它",
157
+ "codex_chatgpt_login": "Codex 当前用 ChatGPT 账号登录,会把 ChatGPT 的凭据发送给 {{brand}},导致 401 Invalid token。请运行 {{cli}} setup --key <你的令牌> 改回令牌登录",
158
158
  "claude_login": "Claude 官方登录",
159
159
  "check_other_addresses": "测试其他接入地址",
160
160
  "other_addresses": "其他接入地址",
161
- "other_addresses_found": "这些地址能用:{{urls}}。运行 {{cli}} base auto 换过去,用 {{product}} 配置过的工具会一起改",
162
- "other_addresses_none": "其他接入地址也都连不上,请检查网络或代理",
161
+ "other_addresses_found": "这些地址可用:{{urls}}。运行 {{cli}} base auto 切换过去,用 {{product}} 配置过的工具会一起切换",
162
+ "other_addresses_none": "其他接入地址也都无法连接,请检查网络或代理",
163
163
  "balance": "余额",
164
- "balance_tool": "余额({{tool}} 专属 Key)",
164
+ "balance_tool": "余额({{tool}} 专属令牌)",
165
165
  "check_balance": "查询余额",
166
- "check_client_config": "正在检查网关模型配置...",
166
+ "check_client_config": "正在检查网关模型配置…",
167
167
  "client_config": "网关模型配置",
168
168
  "client_config_revision": "修订 {{revision}}",
169
169
  "report_uploading": "正在上传诊断信息…",
170
170
  "report_done": "诊断码:{{code}}(把它发给客服,客服就能看到这次检查的结果和最近的运行记录)",
171
- "report_failed": "诊断信息没有上传成功;可以截图上面的结果发给客服,网络恢复后再运行 {{cli}} doctor --report",
172
- "report_hint": "需要客服帮忙时运行 {{cli}} doctor --report,把得到的诊断码发给客服"
171
+ "report_failed": "无法上传诊断信息。可以把上面的结果截图发给客服,网络恢复后再运行 {{cli}} doctor --report",
172
+ "report_hint": "需要客服帮助时,运行 {{cli}} doctor --report,把得到的诊断码发给客服"
173
173
  },
174
174
  "status": {
175
175
  "title": "当前状态",
176
- "api_key": "API Key",
177
- "base_url": "API 地址",
176
+ "api_key": "令牌",
177
+ "base_url": "接入地址",
178
178
  "language": "语言",
179
179
  "models": "模型",
180
180
  "tools": "工具",
181
181
  "config_loaded": "已应用配置",
182
182
  "config_not_loaded": "未应用配置",
183
- "tool_key_label": "{{tool}} 专属 Key",
183
+ "tool_key_label": "{{tool}} 专属令牌",
184
184
  "balance": "余额",
185
- "balance_account_low": "{{amount}}(令牌额度),但账户余额不够付这么多,到控制台充值",
185
+ "balance_account_low": "{{amount}}(令牌额度),但钱包余额不足以支付这么多,请在控制台充值",
186
186
  "balance_token_limited": "{{amount}}(令牌额度)",
187
- "balance_empty": "{{amount}},已用完,到控制台充值后才能继续用",
188
- "balance_token_empty": "{{amount}},令牌额度已用完,到控制台调高这个令牌的额度"
187
+ "balance_empty": "{{amount}},额度已用完,在控制台充值后才能继续使用",
188
+ "balance_token_empty": "{{amount}},令牌额度已用完,请在控制台调高这个令牌的额度"
189
189
  },
190
190
  "messages": {
191
- "env_vars_cleared": "检测到 shell 环境变量 {{vars}} 并已自动清除(它们会覆盖 {{product}} 写入的配置)。如已写入 shell 配置文件,请重开终端生效。",
192
- "env_vars_ignored": "检测到环境变量 {{vars}},本次运行已忽略(它们会覆盖 {{product}} 写入的配置)。{{product}} 没在你的 shell 配置文件里找到它,它可能来自其他配置文件或启动 {{product}} 的程序,在那里运行的工具仍会受它影响。",
193
- "certificate_intercepted": "连接 {{url}} 时证书不对:通常是当前网络的 DNS 被劫持(校园网、酒店网络常见),而不是 Key 有问题。请换个网络、把电脑的 DNS 改成 119.29.29.29 / 223.5.5.5,或开代理后重试",
194
- "env_vars_machine_left": "系统环境变量里还有 {{vars}},需要管理员权限才能删:用管理员身份打开终端再运行一次刚才的 {{cli}} 命令,或在「系统属性 → 环境变量 → 系统变量」里手动删除"
191
+ "env_vars_cleared": "发现 shell 环境变量 {{vars}},已自动清除(它们会覆盖 {{product}} 写入的配置)。如果它们写在 shell 配置文件里,请重新打开终端使修改生效。",
192
+ "env_vars_ignored": "发现环境变量 {{vars}},本次运行已忽略(它们会覆盖 {{product}} 写入的配置)。{{product}} 没有在你的 shell 配置文件里找到它,它可能来自其他配置文件或启动 {{product}} 的程序,在那里运行的工具仍会受它影响。",
193
+ "certificate_intercepted": "连接 {{url}} 时证书不对:通常是当前网络的 DNS 被劫持(校园网、酒店网络常见),不是令牌的问题。请换一个网络、把电脑的 DNS 改成 119.29.29.29 或 223.5.5.5,或者打开代理后重试",
194
+ "env_vars_machine_left": "系统环境变量里还有 {{vars}},需要管理员权限才能删除:请以管理员身份打开终端,再运行一次刚才的 {{cli}} 命令,或在「系统属性」的「环境变量」里的「系统变量」中手动删除"
195
195
  },
196
196
  "config": {
197
197
  "profile_list_title": "Profile 列表",
198
198
  "preset_list_title": "自定义预设",
199
199
  "backup_list_title": "配置备份",
200
200
  "profile_active_label": "当前",
201
- "profile_invalid_name": "Profile 名称非法: {{name}}",
202
- "preset_invalid_name": "预设名称非法: {{name}}",
203
- "profile_exists": "Profile 已存在: {{name}}",
204
- "profile_created": "Profile 已创建: {{name}}",
205
- "profile_activated": "当前 Profile: {{name}}",
206
- "profile_deleted": "Profile 已删除: {{name}}",
201
+ "profile_invalid_name": "无法使用 Profile 名称 {{name}}:只能包含字母、数字和 . _ -",
202
+ "preset_invalid_name": "无法使用预设名称 {{name}}:只能包含字母、数字和 . _ -",
203
+ "profile_exists": "Profile 已存在:{{name}}",
204
+ "profile_created": "已新建 Profile:{{name}}",
205
+ "profile_activated": "当前 Profile:{{name}}",
206
+ "profile_deleted": "已删除 Profile:{{name}}",
207
207
  "profile_cannot_delete_last": "无法删除最后一个 Profile",
208
- "preset_saved": "已保存自定义预设: {{name}}",
209
- "preset_applied": "已应用自定义预设: {{name}}",
210
- "preset_deleted": "已删除自定义预设: {{name}}",
211
- "preset_not_found": "自定义预设不存在: {{name}}",
212
- "backup_created": "备份已创建: {{path}}",
213
- "backup_restored": "备份已恢复: {{name}}",
208
+ "preset_saved": "已保存自定义预设:{{name}}",
209
+ "preset_applied": "已应用自定义预设:{{name}}",
210
+ "preset_deleted": "已删除自定义预设:{{name}}",
211
+ "preset_not_found": "找不到自定义预设:{{name}}",
212
+ "backup_created": "已创建备份:{{path}}",
213
+ "backup_restored": "已恢复备份:{{name}}",
214
214
  "backup_restore_missing_name": "请指定备份名称:{{cli}} config backup restore <名称>(名称用 {{cli}} config backup list 查看)",
215
- "profile_delete_confirm": "确定删除 Profile {{name}}?将同时清除其密钥",
215
+ "profile_delete_confirm": "删除 Profile {{name}}?其中保存的令牌会一起删除。",
216
216
  "profile_create_dry_run": "将新建 Profile {{name}}",
217
217
  "profile_use_dry_run": "将切换到 Profile {{name}}",
218
218
  "preset_save_dry_run": "将把当前模型保存为预设 {{name}}",
219
219
  "preset_use_dry_run": "将应用预设 {{name}}",
220
220
  "preset_delete_dry_run": "将删除预设 {{name}}",
221
- "tool_model_set_dry_run": "将把 {{tool}} 的 {{slot}} 模型设为 {{model}}",
221
+ "tool_model_set_dry_run": "将把 {{tool}} 的 {{slot}} 模型设置为 {{model}}",
222
222
  "tool_model_clear_dry_run": "将清除 {{tool}} 的模型覆盖",
223
223
  "backup_create_dry_run": "将创建一份配置备份",
224
224
  "tool_restore_dry_run": "将把 {{tool}} 的配置还原到最近一次备份",
225
225
  "tool_apply_dry_run": "将重新写入 {{tool}} 的配置",
226
226
  "profile_delete_dry_run": "将删除 Profile {{name}}",
227
227
  "profile_delete_aborted": "已取消删除 Profile",
228
- "backup_restore_confirm": "确定恢复备份 {{name}}?当前配置与 api_key 将被覆盖",
228
+ "backup_restore_confirm": "恢复备份 {{name}}?当前配置和保存的令牌会被覆盖。",
229
229
  "backup_restore_dry_run": "将恢复备份 {{name}}",
230
230
  "backup_restore_aborted": "已取消恢复备份",
231
- "unknown_command": "未知命令: {{command}}",
232
- "usage_hint": "用法: {{cli}} config [profile|preset|backup|tool-model|<tool-name>] [...]",
233
- "unknown_action": "未知操作: {{action}}",
234
- "unknown_tool": "未知工具: {{tool}}",
231
+ "unknown_command": "未知命令:{{command}}",
232
+ "usage_hint": "用法:{{cli}} config [profile|preset|backup|tool-model|<tool-name>] [...]",
233
+ "unknown_action": "未知操作:{{action}}",
234
+ "unknown_tool": "未知工具:{{tool}}",
235
235
  "empty_list": "暂无条目",
236
- "requires_argument": "非交互模式下需要传入参数",
236
+ "requires_argument": "非交互模式下需要提供参数",
237
237
  "tool_model_list_title": "按工具的模型覆盖",
238
- "tool_model_set": "已设置 {{tool}} 的 {{slot}} 模型为 {{model}}",
238
+ "tool_model_set": "已将 {{tool}} 的 {{slot}} 模型设置为 {{model}}",
239
239
  "tool_model_cleared": "已清除 {{tool}} 的模型覆盖",
240
- "tool_model_usage": "用法: {{cli}} config tool-model set <tool> [slot] <model>",
241
- "confirm_restore": "确定把 {{tool}} 还原到上次更改前吗?(当前状态会先自动备份)",
242
- "config_restored": "{{tool}} 配置已还原",
243
- "restore_no_backup": "{{tool}} 没有可还原的备份",
240
+ "tool_model_usage": "用法:{{cli}} config tool-model set <tool> [slot] <model>",
241
+ "confirm_restore": "把 {{tool}} 还原到上次修改前?当前状态会先自动备份。",
242
+ "config_restored": "已还原 {{tool}} 的配置",
243
+ "restore_no_backup": "{{tool}} 没有可以还原的备份",
244
244
  "tool_backups_title": "{{tool}} 的配置备份",
245
- "clear_model_dry_run": "将清除 {{tool}} 中钉死的模型设置(保留 API Key)",
246
- "clear_model_done": "已清除 {{tool}} 钉死的模型设置,恢复使用工具自带默认模型:",
247
- "clear_model_none": "{{tool}} 当前没有钉死的模型设置,无需清理",
245
+ "clear_model_dry_run": "将清除 {{tool}} 固定的模型设置(保留令牌)",
246
+ "clear_model_done": "已清除 {{tool}} 固定的模型设置,恢复使用工具自带的默认模型:",
247
+ "clear_model_none": "{{tool}} 当前没有固定的模型设置,无需清除",
248
248
  "clear_model_unsupported": "{{tool}} 不支持清除模型设置",
249
- "clear_model_restart_hint": "请重启 {{tool}} 后生效(API Key 与你的 hooks / MCP 配置未改动)",
250
- "confirm_force": "确认重置 {{tool}} 的配置吗?会先快照、再删掉它的配置文件,用推荐配置整份重写(您自行添加的字段会丢失,可用 restore 撤销)",
251
- "force_done": "已重置 {{tool}} 的配置文件(原文件已快照,`{{cli}} config {{name}} restore` 可撤销)",
252
- "confirm_remove": "确定从 {{tool}} 移除 {{brand}} 的配置吗?(当前状态会先自动备份,可用 {{cli}} config {{name}} restore 还原)",
253
- "remove_dry_run": "将从 {{tool}} 移除 {{brand}} 的服务商地址、Key 和模型设置(别家写入的不动),其它设置保留",
249
+ "clear_model_restart_hint": "重启 {{tool}} 后生效(令牌和你的 hooks、MCP 配置没有改动)",
250
+ "confirm_force": "重置 {{tool}} 的配置?会先保存快照,再删除它的配置文件,用推荐配置整份重写。你自己添加的字段会丢失,可以用 restore 撤销。",
251
+ "force_done": "已重置 {{tool}} 的配置文件(原文件已保存快照,运行 `{{cli}} config {{name}} restore` 可以撤销)",
252
+ "confirm_remove": "从 {{tool}} 移除 {{brand}} 的配置?当前状态会先自动备份,可以用 {{cli}} config {{name}} restore 还原。",
253
+ "remove_dry_run": "将从 {{tool}} 移除 {{brand}} 的服务商地址、令牌和模型设置(其他服务商写入的不动),其他设置保留",
254
254
  "remove_done": "已从 {{tool}} 移除 {{brand}} 的配置",
255
- "reopen_hint": "已经打开的 {{tool}} 要完全退出后重新打开才会生效",
255
+ "reopen_hint": "已经打开的 {{tool}} 需要完全退出后重新打开才会生效",
256
256
  "remove_nothing": "{{tool}} 里没有 {{brand}} 的配置,无需移除"
257
257
  },
258
258
  "logs": {
259
- "directory": "日志目录: {{dir}}",
259
+ "directory": "日志目录:{{dir}}",
260
260
  "files_title": "日志文件",
261
261
  "no_files": "暂无日志文件",
262
- "no_such_file": "没有找到日志文件 {{file}},运行 {{cli}} logs 查看列表"
262
+ "no_such_file": "找不到日志文件 {{file}},运行 {{cli}} logs 查看列表"
263
263
  },
264
264
  "completion": {
265
- "instructions_bash": "请将以上输出保存到 ~/.{{cli}}-completion.bash,并在 shell rc 中添加 'source ~/.{{cli}}-completion.bash'",
266
- "instructions_zsh": "请将以上输出保存到 ~/.{{cli}}-completion.zsh,并在 shell rc 中添加 'source ~/.{{cli}}-completion.zsh'",
267
- "instructions_fish": "请将以上输出保存到 ~/.config/fish/completions/{{cli}}.fish",
268
- "unsupported_shell": "暂不支持的 shell: {{shell}} (支持 bash/zsh/fish)"
265
+ "instructions_bash": "请把以上输出保存到 ~/.{{cli}}-completion.bash,并在 shell rc 文件中添加 'source ~/.{{cli}}-completion.bash'",
266
+ "instructions_zsh": "请把以上输出保存到 ~/.{{cli}}-completion.zsh,并在 shell rc 文件中添加 'source ~/.{{cli}}-completion.zsh'",
267
+ "instructions_fish": "请把以上输出保存到 ~/.config/fish/completions/{{cli}}.fish",
268
+ "unsupported_shell": "暂不支持这种 shell:{{shell}}(支持 bash、zsh、fish)"
269
269
  },
270
270
  "bench": {
271
- "running": "正在执行基准测试...",
271
+ "running": "正在运行基准测试…",
272
272
  "result_title": "基准测试结果",
273
273
  "samples": "样本",
274
274
  "median": "中位数",
@@ -276,145 +276,145 @@
276
276
  "min": "最小值",
277
277
  "max": "最大值",
278
278
  "errors": "错误",
279
- "missing_api_key": "还没有保存 API Key",
280
- "stream_running": "正在用 {{model}} 发一条流式请求…",
279
+ "missing_api_key": "还没有保存令牌",
280
+ "stream_running": "正在用 {{model}} 发送一条流式请求…",
281
281
  "stream_title": "流式请求",
282
282
  "stream_model": "模型",
283
283
  "stream_first_token": "首字时间",
284
284
  "stream_total": "总耗时",
285
285
  "stream_ok": "流正常结束",
286
- "stream_hint": "加 --stream 再发一条真实的流式请求,看首字时间和流能否正常结束(消耗极少额度):{{cli}} bench --stream",
286
+ "stream_hint": "加上 --stream 会再发送一条真实的流式请求,查看首字时间和流能否正常结束(消耗极少额度):{{cli}} bench --stream",
287
287
  "stream_fail": {
288
288
  "http": "请求被拒绝",
289
- "stream_error": "流里返回了错误",
290
- "incomplete": "流中途断了,没有收到结束标记(回答会被截断)",
289
+ "stream_error": "流中返回了错误",
290
+ "incomplete": "流中途断开,没有收到结束标记(回答会被截断)",
291
291
  "no_text": "流结束了,但没有返回任何文字",
292
292
  "timeout": "60 秒内没有结束",
293
- "network": "连接失败",
294
- "no_model": "这把 Key 拉不到模型列表,用 --model <模型> 指定一个:{{cli}} bench --stream --model <模型>"
293
+ "network": "无法连接",
294
+ "no_model": "无法获取这个令牌的模型列表。请用 --model <模型> 指定一个:{{cli}} bench --stream --model <模型>"
295
295
  }
296
296
  },
297
297
  "update": {
298
- "checking": "正在检查更新...",
299
- "current": "当前版本: {{version}}",
300
- "latest": "最新版本: {{version}}",
301
- "source": "版本来源: {{source}}",
302
- "up_to_date": "您已是最新版本",
303
- "available": "存在新版本",
304
- "fetch_failed": "获取最新版本失败: {{error}}",
305
- "command_hint": "升级命令: {{command}}",
306
- "auto_installing": "正在自动升级 {{product}} 到 {{version}}...",
307
- "auto_installed": "{{product}} 已升级到 {{version}},正在重新执行当前命令...",
308
- "auto_failed": "自动升级失败({{error}}),继续使用当前版本",
309
- "reexec_failed": "升级成功但无法重新启动({{error}}),继续当前进程"
298
+ "checking": "正在检查更新…",
299
+ "current": "当前版本:{{version}}",
300
+ "latest": "最新版本:{{version}}",
301
+ "source": "版本来源:{{source}}",
302
+ "up_to_date": "已是最新版本",
303
+ "available": "有新版本可用",
304
+ "fetch_failed": "无法获取最新版本:{{error}}",
305
+ "command_hint": "升级命令:{{command}}",
306
+ "auto_installing": "正在自动升级 {{product}} 到 {{version}}…",
307
+ "auto_installed": "已将 {{product}} 升级到 {{version}},正在重新运行当前命令…",
308
+ "auto_failed": "无法自动升级({{error}}),继续使用当前版本",
309
+ "reexec_failed": "已升级,但无法重新启动({{error}}),继续使用当前进程"
310
310
  },
311
311
  "runtime": {
312
312
  "dry_run_label": "[预演]",
313
313
  "dry_run_unsupported": "`{{command}}` 不支持 --dry-run,没有做任何修改",
314
314
  "dry_run_unsupported_hint": "支持预演的命令:setup、config、codex sessions(不带 --undo),以及 status、doctor(不带 --report)、bench、logs 这些只读命令",
315
- "non_interactive_required_token": "非交互模式下必须提供 API Token"
315
+ "non_interactive_required_token": "非交互模式下必须提供令牌"
316
316
  },
317
317
  "setup": {
318
318
  "dry_run_tool": "将配置 {{tool}},写入:",
319
- "dry_run_key": "Key 将保存到 {{file}}",
319
+ "dry_run_key": "令牌将保存到 {{file}}",
320
320
  "dry_run_none": "没有可配置的工具,不会写入任何文件",
321
- "usage": "用法: {{cli}} setup --key sk-xxx 或 {{cli}} setup --claudekey sk-a --codexkey sk-b …(各工具的专属 Key 见 {{cli}} setup --help) 或 {{cli}} setup --1m|--no-1m 或 {{cli}} setup --claude-official on|off",
322
- "codex_1m_enabled": "Codex 1M 上下文已开启",
323
- "codex_1m_disabled": "Codex 1M 上下文已关闭",
324
- "codex_1m_missing_key": "未找到已保存的 Codex API Key;先运行 {{cli}} setup --codexkey <你的 Key>(或 --key)",
325
- "validating": "正在验证 {{label}} 的 API Key...",
326
- "unreachable": "连不上接入地址 {{url}}({{reason}})",
327
- "invalid_key": "{{label}} 的 API Key 无效: {{reason}}",
328
- "probe_failed": "{{label}} 的模型能力探测失败(网络原因),按全部可用继续",
329
- "key_no_claude": "{{label}} 无法访问 Claude 模型(令牌分组不含 Claude),已跳过 {{tool}}",
330
- "key_no_gpt": "{{label}} 无法访问 GPT 模型(令牌分组不含 GPT),已跳过 {{tool}}",
331
- "key_no_grok": "{{label}} 无法访问 Grok 模型(令牌分组不含 Grok),已跳过 {{tool}}",
332
- "key_no_gemini": "{{label}} 无法访问 Gemini 模型(令牌分组不含 Gemini),已跳过 {{tool}}",
333
- "key_no_family": "该 Key 探测不到 Claude / GPT / Grok / Gemini 模型,请确认令牌分组后重试",
334
- "skip_no_claude": "该 Key 未开通 Claude 模型分组,已跳过 Claude Code",
335
- "skip_no_gpt": "该 Key 未开通 GPT 模型分组,已跳过 Codex",
336
- "skip_no_grok": "该 Key 未开通 Grok 模型分组,已跳过 Grok Build",
337
- "skip_no_gemini": "该 Key 未开通 Gemini 模型分组,已跳过 Antigravity CLI",
338
- "apply_failed": "{{tool}} 配置写入失败: {{reason}}",
339
- "install_hint": "没检测到 {{tool}},运行 {{install}} 安装",
321
+ "usage": "用法:{{cli}} setup --key sk-xxx 或 {{cli}} setup --claudekey sk-a --codexkey sk-b …(各工具的专属令牌见 {{cli}} setup --help) 或 {{cli}} setup --1m|--no-1m 或 {{cli}} setup --claude-official on|off",
322
+ "codex_1m_enabled": "已开启 Codex 1M 上下文",
323
+ "codex_1m_disabled": "已关闭 Codex 1M 上下文",
324
+ "codex_1m_missing_key": "找不到已保存的 Codex 令牌。请先运行 {{cli}} setup --codexkey <你的令牌>(或 --key)",
325
+ "validating": "正在验证 {{label}} 的令牌…",
326
+ "unreachable": "无法连接接入地址 {{url}}({{reason}})",
327
+ "invalid_key": "{{label}} 的令牌无效:{{reason}}",
328
+ "probe_failed": "无法检测 {{label}} 能用哪些模型(网络原因),按全部可用继续",
329
+ "key_no_claude": "{{label}} 无法使用 Claude 模型(令牌所在分组不含 Claude),已跳过 {{tool}}",
330
+ "key_no_gpt": "{{label}} 无法使用 GPT 模型(令牌所在分组不含 GPT),已跳过 {{tool}}",
331
+ "key_no_grok": "{{label}} 无法使用 Grok 模型(令牌所在分组不含 Grok),已跳过 {{tool}}",
332
+ "key_no_gemini": "{{label}} 无法使用 Gemini 模型(令牌所在分组不含 Gemini),已跳过 {{tool}}",
333
+ "key_no_family": "这个令牌无法使用 Claude、GPT、Grok、Gemini 模型,请检查令牌所在分组后重试",
334
+ "skip_no_claude": "这个令牌没有开通 Claude 模型分组,已跳过 Claude Code",
335
+ "skip_no_gpt": "这个令牌没有开通 GPT 模型分组,已跳过 Codex",
336
+ "skip_no_grok": "这个令牌没有开通 Grok 模型分组,已跳过 Grok Build",
337
+ "skip_no_gemini": "这个令牌没有开通 Gemini 模型分组,已跳过 Antigravity CLI",
338
+ "apply_failed": "无法写入 {{tool}} 的配置:{{reason}}",
339
+ "install_hint": "没有找到 {{tool}},运行 {{install}} 安装",
340
340
  "done": "完成:已配置 {{count}} 个工具。",
341
- "desktop_official_login_missing_key": "未找到已保存的 Claude Desktop API Key;先运行 {{cli}} setup --desktopkey <你的 Key>(或 --key)",
342
- "claude_official_invalid": "--claude-official 的值无效: {{value}}(只接受 on / off)",
341
+ "desktop_official_login_missing_key": "找不到已保存的 Claude Desktop 令牌。请先运行 {{cli}} setup --desktopkey <你的令牌>(或 --key)",
342
+ "claude_official_invalid": "--claude-official 的值应为 on 或 off,收到:{{value}}",
343
343
  "done_commands": "在终端输入 {{commands}} 开始使用",
344
- "failed_summary": "{{count}} 个工具没有配好,原因见上方",
345
- "offer_upgrade": "{{tools}} 版本过旧,现在升级吗?",
346
- "offer_restart": "{{tool}} 正在运行,要重启它让新配置生效吗?(会关掉当前窗口)",
347
- "restarted": "{{tool}} 已重启",
348
- "restart_failed": "{{tool}} 没能自动重启,请完全退出后手动打开",
349
- "elevation_running": "请在弹出的系统窗口里点「是」…",
350
- "elevation_done": "{{tool}} 的注册表已更新",
351
- "elevation_failed": "没能更新 {{tool}} 的注册表(系统确认被取消,或这个账号不是管理员):用管理员身份打开 PowerShell 再运行 {{cli}} setup --desktopkey <你的 Key>",
352
- "desktop_registry_invalid": "--desktop-registry 只接受 on 或 off,收到的是 {{value}}",
353
- "install_confirm": "{{tools}} 还没装,现在从国内镜像装上吗?",
354
- "install_all_hint": "也可以运行 {{cli}} setup --key <你的 Key> --install 一次装好",
355
- "still_missing": "{{tools}} 还没装,没有写它们的配置;按上方的命令装好后运行 {{commands}}",
356
- "path_reload": "在当前窗口运行 exec \"$SHELL\" -l(或新开一个终端)后就能用 {{commands}}",
357
- "path_added": "{{tool}} 已装在 {{dir}},但这个目录不在 PATH 里,已加入用户 PATH",
358
- "path_reload_windows": "新开一个终端后就能用 {{commands}}",
344
+ "failed_summary": "{{count}} 个工具未完成配置,原因见上方",
345
+ "offer_upgrade": "升级 {{tools}}?当前版本过旧。",
346
+ "offer_restart": "重启 {{tool}} 让新配置生效?它正在运行,当前窗口会被关闭。",
347
+ "restarted": "已重启 {{tool}}",
348
+ "restart_failed": "无法自动重启 {{tool}},请完全退出后手动打开",
349
+ "elevation_running": "请在弹出的系统窗口里点击「是」…",
350
+ "elevation_done": "已更新 {{tool}} 的注册表",
351
+ "elevation_failed": "无法更新 {{tool}} 的注册表:系统确认被取消,或这个账号不是管理员。请以管理员身份打开 PowerShell,再运行 {{cli}} setup --desktopkey <你的令牌>",
352
+ "desktop_registry_invalid": "--desktop-registry 的值应为 on 或 off,收到:{{value}}",
353
+ "install_confirm": "现在从国内镜像安装 {{tools}}?",
354
+ "install_all_hint": "也可以运行 {{cli}} setup --key <你的令牌> --install 一次安装完成",
355
+ "still_missing": "{{tools}} 还没有安装,没有写入它们的配置。按上方的命令安装后,运行 {{commands}}",
356
+ "path_reload": "在当前窗口运行 exec \"$SHELL\" -l(或新开一个终端)后即可使用 {{commands}}",
357
+ "path_added": "{{tool}} 安装在 {{dir}},这个目录不在 PATH 里,已加入用户 PATH",
358
+ "path_reload_windows": "新开一个终端后即可使用 {{commands}}",
359
359
  "list_separator": "、",
360
- "gui_preconfigured": "{{tool}} 还没装,配置已先写好,装好后打开就能用(下载:{{install}})",
361
- "validate_failed": "验证 {{label}} 的 API Key 失败: {{reason}}",
362
- "skip_no_claude_desktop": "该 Key 未开通 Claude 模型分组,已跳过 Claude Code 和 Claude Desktop"
360
+ "gui_preconfigured": "{{tool}} 还没有安装,已提前写好配置,安装后打开即可使用(下载:{{install}})",
361
+ "validate_failed": "无法验证 {{label}} 的令牌:{{reason}}",
362
+ "skip_no_claude_desktop": "这个令牌没有开通 Claude 模型分组,已跳过 Claude Code 和 Claude Desktop"
363
363
  },
364
364
  "tools": {
365
- "version_outdated": "版本 {{current}} 过旧,需要 {{min}} 及以上,运行 {{upgrade}} 升级",
365
+ "version_outdated": "版本 {{current}} 过旧,需要 {{min}} 或更高版本,运行 {{upgrade}} 升级",
366
366
  "agy": {
367
- "menu_written": "模型菜单 {{count}} 个({{list}}),默认 {{default}}",
368
- "effort_after_reopen": "现在就能运行 agy;新开的终端里模型菜单还会带思考档位(低 / 中 / 高)"
367
+ "menu_written": "模型菜单共 {{count}} 个({{list}}),默认 {{default}}",
368
+ "effort_after_reopen": "现在即可运行 agy;在新开的终端里,模型菜单还会提供思考档位(低、中、高)"
369
369
  },
370
370
  "grok": {
371
- "menu_written": "模型菜单 {{count}} 个({{list}}),默认 {{default}}",
371
+ "menu_written": "模型菜单共 {{count}} 个({{list}}),默认 {{default}}",
372
372
  "list_separator": "、"
373
373
  },
374
374
  "codex": {
375
- "sessions_offer": "发现 {{count}} 个以前的 Codex 会话,换到 {{brand}} 后在会话列表里看不到,要搬过来吗?(会先备份,可撤回)",
376
- "sessions_hidden": "有 {{count}} 个以前的 Codex 会话换到 {{brand}} 后在列表里看不到:运行 {{cli}} codex sessions 搬过来(会先备份,可撤回)",
377
- "sessions_hidden_running": "有 {{count}} 个以前的 Codex 会话换到 {{brand}} 后在列表里看不到:完全退出 Codex(含桌面版)后运行 {{cli}} codex sessions 搬过来",
378
- "work_mode_hint": "Codex 桌面版请用 Codex 模式(左上角切换):用 API Key 时 ChatGPT Work 模式可能发不出消息,提示「Could not start this chat」,这是 OpenAI 的已知问题",
379
- "work_mode_on": "Codex 桌面版现在是 ChatGPT Work 模式,用 API Key 时可能发不出消息(提示「Could not start this chat」,OpenAI 的已知问题):请在左上角切回 Codex 模式",
380
- "catalog_written": "模型菜单 {{count}} 个({{breakdown}}),重开 Codex(含桌面版)后生效",
381
- "catalog_skipped": "没读到 Codex 自带的模型列表(未安装或版本低于 0.122),模型菜单只有 GPT;运行 {{cli}} upgrade codex 后再运行 {{cli}} config codex --non-interactive",
382
- "catalog_rejected": "Codex({{version}},{{path}})读不了 {{brand}} 的模型菜单,已改回 Codex 自带的菜单(只有 GPT);升级这份 Codex(桌面版自带的随 ChatGPT 应用升级)后运行 {{cli}} refresh",
383
- "unload_sign_in": "Codex 已退出 API Key 登录。改用 ChatGPT 订阅:终端运行 codex login;Codex 桌面版完全退出后重开,按提示登录",
384
- "unload_chatgpt_restored": "Codex 已改回你的 ChatGPT 登录;Codex 桌面版完全退出后重开即可",
385
- "unload_other_key": "Codex 仍在用另一个 API Key 登录(不是 {{brand}} 的 Key,没有动它)。改用 ChatGPT 订阅:运行 codex logout,再运行 codex login"
375
+ "sessions_offer": "把 {{count}} 个以前的 Codex 会话移过来?切换到 {{brand}} 后它们不在会话列表里显示。会先备份,可以撤销。",
376
+ "sessions_hidden": "有 {{count}} 个以前的 Codex 会话在切换到 {{brand}} 后不在列表里显示。运行 {{cli}} codex sessions 可以把它们移过来(会先备份,可以撤销)",
377
+ "sessions_hidden_running": "有 {{count}} 个以前的 Codex 会话在切换到 {{brand}} 后不在列表里显示。完全退出 Codex(包括桌面版)后,运行 {{cli}} codex sessions 把它们移过来",
378
+ "work_mode_hint": "Codex 桌面版请使用 Codex 模式(在左上角切换):使用令牌时,ChatGPT Work 模式可能无法发送消息,提示「Could not start this chat」,这是 OpenAI 的已知问题",
379
+ "work_mode_on": "Codex 桌面版当前是 ChatGPT Work 模式,使用令牌时可能无法发送消息(提示「Could not start this chat」,这是 OpenAI 的已知问题)。请在左上角切回 Codex 模式",
380
+ "catalog_written": "模型菜单共 {{count}} 个({{breakdown}}),重新打开 Codex(包括桌面版)后生效",
381
+ "catalog_skipped": "无法读取 Codex 自带的模型列表(未安装或版本低于 0.122),模型菜单里只有 GPT。请运行 {{cli}} upgrade codex,再运行 {{cli}} config codex --non-interactive",
382
+ "catalog_rejected": "Codex({{version}},{{path}})无法读取 {{brand}} 的模型菜单,已改回 Codex 自带的菜单(只有 GPT)。请升级这份 Codex(桌面版自带的 Codex 随 ChatGPT 应用升级),再运行 {{cli}} refresh",
383
+ "unload_sign_in": "Codex 已退出令牌登录。要改用 ChatGPT 订阅:在终端运行 codex login;Codex 桌面版完全退出后重新打开,按提示登录",
384
+ "unload_chatgpt_restored": "Codex 已改回你的 ChatGPT 登录;把 Codex 桌面版完全退出后重新打开即可",
385
+ "unload_other_key": "Codex 仍在用另一个令牌登录(不是 {{brand}} 的令牌,没有改动)。要改用 ChatGPT 订阅:运行 codex logout,再运行 codex login"
386
386
  },
387
387
  "claude_desktop": {
388
- "code_cli_downloading": "正在为 Claude 桌面端的 Code 标签页从国内镜像下载 Claude Code {{version}}(约 100 MB)",
389
- "code_cli_installed": "Claude 桌面端的 Code 标签页已备好 Claude Code {{version}},不用再从 downloads.claude.ai 下载",
390
- "code_cli_failed": "没能给 Claude 桌面端的 Code 标签页备好 Claude Code({{reason}}),Code 标签页可能提示无法下载;排除上面的原因后运行 {{cli}} setup --desktopkey <你的 Key> 重试",
391
- "restart_hint": "完全退出 Claude 桌面端再重新打开才会生效",
392
- "managed_conflict": "检测到托管配置 {{path}},Claude Desktop 会优先使用它并忽略本地配置;请先移除该描述文件 / 策略再重启",
393
- "registry_written": "已同步写入注册表 {{key}} 作为兜底(与官网下载的 .reg 等效);应用内「Configure Third-Party Inference」窗口会显示为托管状态,移除配置时会一并清理",
394
- "models_written_gateway": "已写入 {{count}} 个模型(1M 标记依据网关分组表,匹配分组:{{groups}}):{{list}}",
395
- "models_written_fallback": "已写入 {{count}} 个模型(网关分组表不可用或未匹配到分组,1M 标记按内置规则):{{list}}",
396
- "models_written_slots": "已写入 {{count}} 个模型(离线:按当前 profile 的模型槽位,未拉取网关模型列表):{{list}}",
397
- "official_login_hidden": "官方登录(Claude.ai 账号)入口已隐藏,桌面端只走网关;要恢复运行 {{cli}} setup --claude-official on",
398
- "official_login_shown": "官方登录(Claude.ai 账号)入口保持可见,用户可在网关与官方账号间切换;要隐藏运行 {{cli}} setup --claude-official off",
388
+ "code_cli_downloading": "正在从国内镜像下载 Claude Code {{version}},供 Claude Desktop 的 Code 标签页使用(约 100 MB)…",
389
+ "code_cli_installed": "Claude Desktop 的 Code 标签页已准备好 Claude Code {{version}},不必再从 downloads.claude.ai 下载",
390
+ "code_cli_failed": "无法为 Claude Desktop 的 Code 标签页准备 Claude Code({{reason}}),Code 标签页可能提示无法下载。排除上面的原因后,运行 {{cli}} setup --desktopkey <你的令牌> 重试",
391
+ "restart_hint": "完全退出 Claude Desktop 后重新打开才会生效",
392
+ "managed_conflict": "发现托管配置 {{path}},Claude Desktop 会优先使用它,忽略本地配置。请先移除这个描述文件或策略,再重启 Claude Desktop",
393
+ "registry_written": "已同时写入注册表 {{key}} 作为备用(与官网下载的 .reg 效果相同)。应用内的「Configure Third-Party Inference」窗口会显示为托管状态,移除配置时会一并清除",
394
+ "models_written_gateway": "已写入 {{count}} 个模型(按网关公布的分组判断是否支持 1M,匹配的分组:{{groups}}):{{list}}",
395
+ "models_written_fallback": "已写入 {{count}} 个模型(无法读取网关分组或没有匹配的分组,按内置规则判断是否支持 1M):{{list}}",
396
+ "models_written_slots": "已写入 {{count}} 个模型(离线:按当前 Profile 的模型槽位写入,没有获取网关模型列表):{{list}}",
397
+ "official_login_hidden": "已隐藏官方登录(Claude.ai 账号)入口,Claude Desktop 只通过网关使用。要恢复,运行 {{cli}} setup --claude-official on",
398
+ "official_login_shown": "官方登录(Claude.ai 账号)入口保持显示,可以在网关和官方账号之间切换。要隐藏,运行 {{cli}} setup --claude-official off",
399
399
  "models_summary": "{{count}} 个 Claude 模型,默认 {{default}}",
400
- "registry_denied": "没有管理员权限,跳过了注册表兜底;注册表里没有旧配置,本地配置会生效",
401
- "policy_stale_remove": "桌面端还在用注册表里的旧配置(多半是以前从网关页面下载 .reg 写入的),它会挡住刚写好的配置;删掉它需要管理员确认一次,之后更新不再需要管理员",
402
- "policy_stale_write": "桌面端还在用注册表里的旧配置(多半是以前从网关页面下载 .reg 写入的);把新配置写进去需要管理员确认一次",
403
- "elevate_remove": "删掉注册表里的旧配置吗?会弹出一次系统的管理员确认,之后更新桌面端不再需要管理员",
404
- "elevate_write": "把新配置写进注册表吗?会弹出一次系统的管理员确认",
405
- "refresh_needs_admin": "Claude 桌面端的模型列表在注册表里,更新它需要管理员确认:运行 {{cli}} setup --desktopkey <你的 Key>,按提示确认即可",
406
- "registry_removed": "已删掉注册表 {{key}} 里的旧配置,桌面端改读本地配置"
400
+ "registry_denied": "没有管理员权限,已跳过写入注册表;注册表里没有旧配置,本地配置会生效",
401
+ "policy_stale_remove": "Claude Desktop 还在使用注册表里的旧配置(多半是以前从网关页面下载 .reg 写入的),它会让刚写好的配置不生效。删除它需要管理员确认一次,之后更新不再需要管理员",
402
+ "policy_stale_write": "Claude Desktop 还在使用注册表里的旧配置(多半是以前从网关页面下载 .reg 写入的);把新配置写进注册表需要管理员确认一次",
403
+ "elevate_remove": "删除注册表里的旧配置?系统会弹出一次管理员确认,之后更新 Claude Desktop 不再需要管理员。",
404
+ "elevate_write": "把新配置写进注册表?系统会弹出一次管理员确认。",
405
+ "refresh_needs_admin": "Claude Desktop 的模型列表保存在注册表里,更新它需要管理员确认:运行 {{cli}} setup --desktopkey <你的令牌>,按提示确认即可",
406
+ "registry_removed": "已删除注册表 {{key}} 里的旧配置,Claude Desktop 改为读取本地配置"
407
407
  },
408
408
  "claude_code": {
409
- "gateway_models": "/model 菜单加入 {{count}} 个其他模型({{vendors}})",
410
- "tier_fallback": "当前 Key 用不了 Claude Code 默认的 {{from}},{{tier}} 档已改用 {{to}}",
411
- "stable_channel": "settings.json 里的更新渠道是 stable,这个渠道可能还没到 {{min}};把 autoUpdatesChannel 改成 latest 后再升级",
412
- "managed_override": "检测到 Claude Code 的托管配置({{source}}),其中 {{keys}} 优先于 {{product}} 写入的设置,会让这里的配置不生效;托管配置一般是公司电脑统一下发的,请联系管理员",
413
- "no_git_bash": "没找到 Git for Windows:Claude Code 会改用 PowerShell 执行命令,可以用,但 bash 写法的命令和脚本跑不了;建议安装 Git(winget install Git.Git,或从国内镜像 https://registry.npmmirror.com/binary.html?path=git-for-windows/ 下载)",
414
- "plugins_installed": "装好 {{count}} 个官方插件(代码审查、功能开发、前端设计等),输入 / 可以看到",
415
- "plugins_failed": "有官方插件没装上(连不上插件源或安装出错),不影响使用;网络好时再运行 {{cli}} config claude-code --non-interactive 补装",
416
- "account_login_overridden": "这台电脑的 Claude Code 登录过 Claude 官方账号;{{product}} 写入的 {{brand}} 令牌会优先生效,Claude Code 走 {{brand}}。要改回官方账号,运行 {{cli}} config claude-code remove",
417
- "plugins_need_git": "官方插件要用 Git 下载,这台电脑还没有 Git(Mac 上要先装好苹果命令行工具),不影响使用;装好 Git 后运行 {{cli}} config claude-code --non-interactive 补装"
409
+ "gateway_models": "/model 菜单新增 {{count}} 个其他模型({{vendors}})",
410
+ "tier_fallback": "当前令牌无法使用 Claude Code 默认的 {{from}},{{tier}} 档已改用 {{to}}",
411
+ "stable_channel": "settings.json 里的更新渠道是 stable,这个渠道可能还没有更新到 {{min}}。请把 autoUpdatesChannel 改成 latest 后再升级",
412
+ "managed_override": "发现 Claude Code 的托管配置({{source}}),其中 {{keys}} 优先于 {{product}} 写入的设置,这里的配置不会生效。托管配置通常由公司电脑统一下发,请联系公司 IT 管理员",
413
+ "no_git_bash": "找不到 Git for Windows:Claude Code 会改用 PowerShell 运行命令,可以使用,但 bash 写法的命令和脚本无法运行。建议安装 Git(winget install Git.Git,或从国内镜像 https://registry.npmmirror.com/binary.html?path=git-for-windows/ 下载)",
414
+ "plugins_installed": "已安装 {{count}} 个官方插件(代码审查、功能开发、前端设计等),输入 / 即可看到",
415
+ "plugins_failed": "部分官方插件无法安装(无法连接插件源或安装出错),不影响使用。网络正常时运行 {{cli}} config claude-code --non-interactive 补装",
416
+ "account_login_overridden": "这台电脑的 Claude Code 登录过 Claude 官方账号;{{product}} 写入的 {{brand}} 令牌会优先生效,Claude Code 会通过 {{brand}} 使用。要改回官方账号,运行 {{cli}} config claude-code remove",
417
+ "plugins_need_git": "官方插件需要用 Git 下载,这台电脑还没有 Git(Mac 上需要先安装苹果命令行工具),不影响使用。安装 Git 后运行 {{cli}} config claude-code --non-interactive 补装"
418
418
  },
419
419
  "model_family": {
420
420
  "gpt": "GPT",
@@ -435,39 +435,40 @@
435
435
  "supported": "支持的工具:{{tools}}",
436
436
  "nothing_installed": "没有找到已安装的 {{tools}}",
437
437
  "current": "当前:{{copy}}",
438
- "not_installed_installing": "没有找到 {{tool}},用国内镜像安装",
439
- "fallback_mirror": "官方渠道升级失败,改用国内镜像安装",
440
- "unknown_install": "不认识这份安装的来源({{path}}),没法自动升级,请按当初的安装方式升级",
441
- "npm_permission": "npm 安装没有完成。如果上面的输出里有 EACCES(没有权限写全局目录):可以用 sudo {{command}},或运行 npm config set prefix ~/.npm-global 并把 ~/.npm-global/bin 加进 PATH 后重试",
438
+ "not_installed_installing": "没有找到 {{tool}},正在从国内镜像安装…",
439
+ "fallback_mirror": "无法通过官方渠道升级,改为从国内镜像安装",
440
+ "unknown_install": "无法自动升级:不清楚这份程序的安装来源({{path}})。请按当初的安装方式升级",
441
+ "npm_permission": "npm 安装未完成。如果上面的输出里有 EACCES(没有权限写入全局目录),可以使用 sudo {{command}},或运行 npm config set prefix ~/.npm-global,并把 ~/.npm-global/bin 加入 PATH 后重试",
442
442
  "duplicates": "本机有多份 {{tool}},保留 {{keep}},多余的是 {{others}}",
443
- "duplicates_note": "本机有 {{count}} 份,终端里实际运行的是 {{active}},另外还有 {{others}};运行 {{cli}} upgrade {{tool}} 升级并只留一份",
444
- "confirm_remove": "删掉多余的那几份吗?",
443
+ "duplicates_note": "本机有 {{count}} 份,终端里实际运行的是 {{active}},另外还有 {{others}}。运行 {{cli}} upgrade {{tool}} 可以升级并只保留一份",
444
+ "confirm_remove": "删除多余的副本?",
445
445
  "removed": "已删除 {{copy}}",
446
446
  "remove_by_hand": "请手动删除:{{how}}",
447
447
  "delete_paths": "删除 {{paths}}",
448
- "still_missing": "{{tool}} 仍未安装成功,请看上面的输出",
448
+ "still_missing": "{{tool}} 仍未安装,请查看上面的输出",
449
449
  "still_old": "升级后是 {{copy}},仍低于 {{min}}",
450
- "done": "已是 {{copy}}",
451
- "native_mirror_trying": "官方下载服务器连不上,改从国内镜像下载同一个原生程序,原地替换",
452
- "native_mirror_done": "已从国内镜像换成 {{version}}(已核对 npm 校验值;官方清单连不上,未额外核对)",
453
- "native_mirror_done_verified": "已从国内镜像换成 {{version}}(已核对 npm 与官方发布清单的校验值)",
454
- "native_mirror_failed": "从国内镜像替换失败:{{reason}}"
450
+ "done": "现在是 {{copy}}",
451
+ "native_mirror_trying": "无法连接官方下载服务器,改为从国内镜像下载同一个原生程序并原地替换…",
452
+ "native_mirror_done": "已从国内镜像替换为 {{version}}(已核对 npm 校验值;无法连接官方清单,未额外核对)",
453
+ "native_mirror_done_verified": "已从国内镜像替换为 {{version}}(已核对 npm 与官方发布清单的校验值)",
454
+ "native_mirror_failed": "无法从国内镜像替换:{{reason}}",
455
+ "install_label": "{{kind}} {{version}}({{path}})"
455
456
  },
456
457
  "install": {
457
- "permission_unix": "多半是 npm 没有权限写全局目录。可以二选一:① sudo {{command}};② 运行 npm config set prefix ~/.npm-global,把 export PATH=~/.npm-global/bin:$PATH 加进 ~/.zshrc 或 ~/.bashrc,重开终端后再运行 {{command}}",
458
- "permission_windows": "多半是权限不足或文件被占用:关掉正在运行的这个工具,用管理员身份打开终端,再运行 {{command}}",
459
- "what_next": "接下来怎么做?",
460
- "installed_continue": "我已经手动装好了,继续",
458
+ "permission_unix": "多半是 npm 没有权限写入全局目录。可以任选一种:① sudo {{command}};② 运行 npm config set prefix ~/.npm-global,把 export PATH=~/.npm-global/bin:$PATH 加入 ~/.zshrc 或 ~/.bashrc,重新打开终端后再运行 {{command}}",
459
+ "permission_windows": "多半是权限不足或文件被占用:请关闭正在运行的这个工具,以管理员身份打开终端,再运行 {{command}}",
460
+ "what_next": "接下来做什么?",
461
+ "installed_continue": "我已自行安装,继续",
461
462
  "cancel_install": "取消",
462
463
  "user_cancelled": "已取消安装",
463
- "still_not_installed": "还是没找到 {{tool}},请确认安装成功、重开终端后再试",
464
+ "still_not_installed": "仍然找不到 {{tool}},请确认已安装,重新打开终端后再试",
464
465
  "verified_success": "已找到 {{tool}},继续配置",
465
- "install_failed_detail": "安装没有完成,详情见上面的输出或 {{cli}} logs tail",
466
- "downloading": "正在下载安装,大约几十到一百多 MB,网络正常时一两分钟内完成",
467
- "script_failed_npm": "安装脚本没能完成,改用 npm 从国内镜像安装",
468
- "script_stalled_npm": "安装脚本 {{minutes}} 分钟没有任何进展,网络连不上下载地址,改用 npm 从国内镜像安装",
469
- "script_timeout_npm": "安装脚本运行 1 小时仍未完成,改用 npm 从国内镜像安装",
470
- "manual_command": "{{tool}} 没装上,网络好的时候可以手动运行:{{command}}",
466
+ "install_failed_detail": "安装未完成,详情见上面的输出,或运行 {{cli}} logs tail 查看",
467
+ "downloading": "正在下载并安装,大小约几十到一百多 MB,网络正常时一两分钟内完成…",
468
+ "script_failed_npm": "安装脚本未完成,改为用 npm 从国内镜像安装",
469
+ "script_stalled_npm": "安装脚本 {{minutes}} 分钟没有任何进展,无法连接下载地址,改为用 npm 从国内镜像安装",
470
+ "script_timeout_npm": "安装脚本运行 1 小时仍未完成,改为用 npm 从国内镜像安装",
471
+ "manual_command": "{{tool}} 未安装。网络正常时可以手动运行:{{command}}",
471
472
  "manual_npm": "或者用 npm 安装:{{command}}"
472
473
  },
473
474
  "model_refresh": {
@@ -476,42 +477,42 @@
476
477
  "removed": "移除 {{models}}"
477
478
  },
478
479
  "codex_sessions": {
479
- "codex_running": "Codex 还在运行(进程 {{pids}}),它会覆盖这次修改:请先完全退出 Codex(含桌面版和后台服务)再运行 {{cli}} codex sessions",
480
- "nothing": "已扫描 {{scanned}} 个会话,全都在「{{target}}」下,不用处理",
481
- "dry_run": "将把 {{count}} 个会话从「{{from}}」移到「{{target}}」(试运行,未修改)",
482
- "moved": "已把 {{count}} 个会话从「{{from}}」移到「{{target}}」,重开 Codex 后都能看到(已归档的在归档里);以后换回另一种登录方式时再运行 {{cli}} codex sessions",
483
- "db_skipped": "Codex 的数据库没有更新({{reason}}),会话文件已改好;升级 Node.js 到 22.13 以上后再运行 {{cli}} codex sessions",
484
- "backup": "备份与还原记录在 {{dir}},还原用 {{cli}} codex sessions --undo <这个目录>",
480
+ "codex_running": "Codex 还在运行(进程 {{pids}}),会覆盖这次修改。请先完全退出 Codex(包括桌面版和后台服务),再运行 {{cli}} codex sessions",
481
+ "nothing": "已扫描 {{scanned}} 个会话,都已在「{{target}}」下,无需处理",
482
+ "dry_run": "将把 {{count}} 个会话从「{{from}}」移到「{{target}}」(预演,未修改)",
483
+ "moved": "已把 {{count}} 个会话从「{{from}}」移到「{{target}}」,重新打开 Codex 后即可看到(已归档的在归档里)。以后换回另一种登录方式时,再运行 {{cli}} codex sessions",
484
+ "db_skipped": "会话文件已修改,但无法更新 Codex 的数据库({{reason}})。请把 Node.js 升级到 22.13 或更高版本,再运行 {{cli}} codex sessions",
485
+ "backup": "备份和还原记录保存在 {{dir}},还原请运行 {{cli}} codex sessions --undo <这个目录>",
485
486
  "undone": "已还原 {{files}} 个会话文件、{{rows}} 条数据库记录"
486
487
  },
487
488
  "plan": {
488
- "title": "将要修改(改前自动备份):",
489
- "confirm": "确认写入?",
489
+ "title": "将要修改(修改前自动备份):",
490
+ "confirm": "写入这些修改?",
490
491
  "cancelled": "已取消,没有修改任何文件",
491
- "install_first": "{{tool}} 还没装:先安装,装好再写配置"
492
+ "install_first": "{{tool}} 还没有安装:先安装,安装后再写入配置"
492
493
  },
493
494
  "sessions": {
494
- "unknown_tool": "不认识的工具:{{tool}}(能看会话的工具:{{tools}})",
495
- "unknown_tool_hint": "去掉 --tool 看全部,或运行 {{cli}} sessions --tool codex",
496
- "id_too_short": "会话 ID「{{id}}」太短,至少写前 4 位",
495
+ "unknown_tool": "未知工具:{{tool}}(可以查看会话的工具:{{tools}})",
496
+ "unknown_tool_hint": "去掉 --tool 查看全部,或运行 {{cli}} sessions --tool codex",
497
+ "id_too_short": "会话 ID「{{id}}」太短,至少要写前 4 位",
497
498
  "list_hint": "运行 {{cli}} sessions 查看会话和 ID",
498
499
  "not_found": "本机没有 ID 以「{{id}}」开头的会话",
499
500
  "ambiguous": "有多个会话的 ID 以「{{id}}」开头:{{ids}}",
500
- "ambiguous_hint": "多写几位 ID 再试",
501
- "bad_limit": "数量不对:{{value}}",
502
- "bad_limit_hint": "写一个正整数,如 {{cli}} sessions --limit 50;全部列出用 --all",
501
+ "ambiguous_hint": "请多写几位 ID 后重试",
502
+ "bad_limit": "数量无效:{{value}}",
503
+ "bad_limit_hint": "应为正整数,例如:{{cli}} sessions --limit 50;全部列出用 --all",
503
504
  "none": "本机没有找到符合条件的会话",
504
- "list_footer": "共列出 {{count}} 个。看详情:{{cli}} sessions show <ID>;续聊:{{cli}} sessions resume <ID>;导出:{{cli}} sessions export <ID> -o <目录>",
505
+ "list_footer": "共列出 {{count}} 个。查看详情:{{cli}} sessions show <ID>;继续对话:{{cli}} sessions resume <ID>;导出:{{cli}} sessions export <ID> -o <目录>",
505
506
  "more_messages": "还有 {{more}} 条消息,全部导出:{{cli}} sessions export {{id}} -o <目录>",
506
- "no_resume": "没有续聊命令,请在应用里打开",
507
- "cannot_resume": "{{tool}} 的会话没有续聊命令",
507
+ "no_resume": "没有继续对话的命令,请在应用里打开",
508
+ "cannot_resume": "{{tool}} 的会话没有继续对话的命令",
508
509
  "cannot_resume_hint": "请在 {{tool}} 应用里打开这个会话",
509
- "cwd_missing": "会话的目录 {{dir}} 已经不在了,在当前目录启动",
510
- "run_failed": "启动 {{command}} 失败:{{error}}",
511
- "run_failed_hint": "确认已安装这个工具,或手动运行:{{line}}",
512
- "export_needs_output": "导出需要指定目录",
513
- "export_bad_path": "导出文件名不对:{{path}}",
514
- "export_hint": "例如 {{cli}} sessions export <ID> -o ./sessions",
510
+ "cwd_missing": "会话的目录 {{dir}} 已不存在,将在当前目录启动",
511
+ "run_failed": "无法启动 {{command}}:{{error}}",
512
+ "run_failed_hint": "请确认已安装这个工具,或手动运行:{{line}}",
513
+ "export_needs_output": "导出需要指定目录,请用 -o <目录> 指定",
514
+ "export_bad_path": "导出文件名无效:{{path}}",
515
+ "export_hint": "例如:{{cli}} sessions export <ID> -o ./sessions",
515
516
  "role": {
516
517
  "user": "用户",
517
518
  "assistant": "助手",
@@ -526,35 +527,35 @@
526
527
  "provider": "服务商",
527
528
  "messages": "消息数",
528
529
  "file": "文件",
529
- "resume": "续聊"
530
+ "resume": "继续对话"
530
531
  }
531
532
  },
532
533
  "base": {
533
534
  "current": "当前接入地址:{{url}}",
534
535
  "current_mark": "当前",
535
536
  "custom_label": "自定义地址",
536
- "usage_hint": "切换:{{cli}} base <序号或地址>;按上面的顺序自动选第一个能用的(不是最快的,尽量连主站):{{cli}} base auto;回到主站:{{cli}} base default",
537
+ "usage_hint": "切换:{{cli}} base <序号或地址>;按上面的顺序自动选择第一个可用的地址(不是最快的,优先连接主站):{{cli}} base auto;回到主站:{{cli}} base default",
537
538
  "switched": "已切换到 {{url}}",
538
539
  "kept": "当前地址 {{url}} 可用,已保存",
539
- "no_tools": "这台电脑上没有用 {{product}} 配置过的工具,所以只保存了地址,其它配置都没动。自己手动配置的工具,请把里面的 {{siteHost}} 换成 {{url}};也可以运行 {{cli}} setup --key <你的 Key>,交给 {{product}} 统一配置(会改写这些工具里的 {{brand}} 配置,改前自动备份)",
540
- "none_reachable": "所有接入地址都连不上,请检查网络或代理",
541
- "bad_index": "没有第 {{index}} 个地址(共 {{count}} 个),先运行 {{cli}} base 查看列表",
542
- "bad_url": "{{value}} 不是有效的地址,示例:{{altSiteUrl}}",
543
- "unreachable": "{{url}} 连不上:{{reason}}。没有切换",
540
+ "no_tools": "这台电脑上没有用 {{product}} 配置过的工具,所以只保存了地址,其他配置都没有改动。你自己手动配置的工具,请把其中的 {{siteHost}} 换成 {{url}};也可以运行 {{cli}} setup --key <你的令牌>,交给 {{product}} 统一配置(会改写这些工具里的 {{brand}} 配置,修改前自动备份)",
541
+ "none_reachable": "所有接入地址都无法连接,请检查网络或代理",
542
+ "bad_index": "没有第 {{index}} 个地址(共 {{count}} 个),请先运行 {{cli}} base 查看列表",
543
+ "bad_url": "{{value}} 不是有效的地址,例如:{{altSiteUrl}}",
544
+ "unreachable": "无法连接 {{url}}:{{reason}}。没有切换",
544
545
  "error_certificate": "证书不对,当前网络可能把这个域名解析到了别的地址",
545
546
  "error_timeout": "超时",
546
- "error_network": "网络连接失败",
547
+ "error_network": "无法连接",
547
548
  "error_not_gateway": "返回的不是 {{brand}}",
548
549
  "tools_moved": "以下工具已改用这个地址:",
549
- "setup_fallback": "{{from}} 连不上:{{reason}}。已改用 {{url}},以后也用这个地址;网络恢复后可运行 {{cli}} base default 换回主站",
550
+ "setup_fallback": "无法连接 {{from}}:{{reason}}。已改用 {{url}},之后也会使用这个地址;网络恢复后可以运行 {{cli}} base default 换回主站",
550
551
  "models_count": "{{count}} 个模型",
551
552
  "fastest": "最快",
552
553
  "error_key_rejected": "令牌被拒绝(无效或已过期)",
553
- "key_rejected_everywhere": "所有地址都拒绝了这把令牌,令牌可能无效或已过期,请到控制台检查;换了新令牌后运行 {{cli}} setup --key <新 Key>",
554
- "probe_with_key": "用你保存的令牌在内置地址和当前地址上拉模型列表(其它地址只测网关能否打开),每个地址测 3 次取中位数",
555
- "probe_without_key": "还没有保存令牌,只测网关能否打开;运行 {{cli}} setup --key <你的 Key> 后会改为实际拉模型列表",
556
- "setup_fallback_main": "{{from}} 连不上:{{reason}}。已改回主站 {{url}}",
557
- "next_addresses": "下一步:运行 {{cli}} base 查看可用接入地址,或 {{cli}} base auto 自动切换"
554
+ "key_rejected_everywhere": "所有地址都拒绝了这个令牌,它可能无效或已过期,请在控制台的「令牌」页检查。换了新令牌后,运行 {{cli}} setup --key <新令牌>",
555
+ "probe_with_key": "用你保存的令牌在内置地址和当前地址上获取模型列表(其他地址只测试网关能否打开),每个地址测 3 次取中位数",
556
+ "probe_without_key": "还没有保存令牌,只测试网关能否打开;运行 {{cli}} setup --key <你的令牌> 后会改为实际获取模型列表",
557
+ "setup_fallback_main": "无法连接 {{from}}:{{reason}}。已改回主站 {{url}}",
558
+ "next_addresses": "下一步:运行 {{cli}} base 查看可用的接入地址,或运行 {{cli}} base auto 自动切换。"
558
559
  },
559
560
  "help": {
560
561
  "help_command": "显示某个命令的帮助",
@@ -571,262 +572,262 @@
571
572
  "environment": "查看 {{product}} 读取的环境变量"
572
573
  },
573
574
  "title": {
574
- "usage": "用法:",
575
- "arguments": "参数:",
576
- "options": "选项:",
577
- "global_options": "全局选项:",
578
- "commands": "命令:",
579
- "examples": "示例:",
580
- "learn_more": "了解更多:",
581
- "when": "何时用:",
582
- "prerequisites": "前提:",
583
- "alternatives": "替代:"
575
+ "usage": "用法:",
576
+ "arguments": "参数:",
577
+ "options": "选项:",
578
+ "global_options": "全局选项:",
579
+ "commands": "命令:",
580
+ "examples": "示例:",
581
+ "learn_more": "了解更多:",
582
+ "when": "何时使用:",
583
+ "prerequisites": "前提:",
584
+ "alternatives": "替代方式:"
584
585
  },
585
586
  "group": {
586
- "global_options": "全局选项:",
587
- "configure": "配置:",
588
- "diagnose": "诊断:",
589
- "maintain": "维护:"
587
+ "global_options": "全局选项:",
588
+ "configure": "配置:",
589
+ "diagnose": "诊断:",
590
+ "maintain": "维护:"
590
591
  },
591
592
  "global": {
592
593
  "help": "显示帮助",
593
594
  "version": "显示版本号",
594
- "base": "接入地址(setup / init / auth / config / enter 和主菜单会保存,其他命令只本次生效)",
595
- "non_interactive": "不弹出任何提问,需要确认的操作直接执行(脚本、CI 用)",
596
- "json": "输出 JSON(支持的命令)",
597
- "yes": "需要确认时一律回答「是」(--non-interactive、--json 也一样)",
598
- "dry_run": "只显示会改什么,不写入(不支持预演的命令直接拒绝)",
599
- "no_color": "不用颜色"
595
+ "base": "接入地址(setup、init、auth、config、enter 和主菜单会保存,其他命令只在本次生效)",
596
+ "non_interactive": "不提出任何问题,需要确认的操作直接执行(用于脚本、CI)",
597
+ "json": "输出 JSON(仅限支持的命令)",
598
+ "yes": "需要确认时一律回答「是」(--non-interactive、--json 也是这样)",
599
+ "dry_run": "只显示会修改什么,不写入(不支持预演的命令会直接拒绝)",
600
+ "no_color": "不使用颜色"
600
601
  },
601
602
  "root": {
602
- "summary": "在多个编码工具里统一配置 {{brand}} 的 Key 和模型",
603
- "description": "{{product}}:在 Claude Code、Codex、Grok Build 等编码工具里统一配置 {{brand}} 的 Key 和模型。\n不带命令运行 {{cli}} 会打开主菜单。",
603
+ "summary": "在多个编码工具里统一配置 {{brand}} 的令牌和模型",
604
+ "description": "{{product}}:在 Claude Code、Codex、Grok Build 等编码工具里统一配置 {{brand}} 的令牌和模型。\n不带命令运行 {{cli}} 会打开主菜单。",
604
605
  "ex": {
605
606
  "menu": "打开主菜单",
606
- "setup": "用一把 Key 配好它能用的所有工具",
607
+ "setup": "用一个令牌配置它能用的全部工具",
607
608
  "doctor": "检查配置和网络问题",
608
- "base": "主域名连不上时换到能用的地址",
609
+ "base": "主域名无法连接时,切换到可用的地址",
609
610
  "config": "打开 Codex 的配置菜单"
610
611
  }
611
612
  },
612
613
  "setup": {
613
- "summary": "一条命令配好工具(按 Key 能用的模型自动选)",
614
- "description": "不进向导,一条命令写好配置。\n--key 先用 Key 拉模型列表,按能用的模型配置对应工具(见下表)。\n不同分组的 Key 用 --claudekey / --codexkey / --grokkey / --desktopkey / --agykey 分开给。\n重复执行就是换 Key,其他配置保留。",
614
+ "summary": "一条命令完成工具配置(按令牌能用的模型自动选择工具)",
615
+ "description": "不进入向导,一条命令写好配置。\n--key 先用令牌获取模型列表,按能用的模型配置对应工具(见下表)。\n不同分组的令牌用 --claudekey、--codexkey、--grokkey、--desktopkey、--agykey 分别提供。\n再次运行即可更换令牌,其他配置保留。",
615
616
  "opt": {
616
- "key": "一把 Key,按它能用的模型自动配置工具",
617
- "claudekey": "单独给 Claude Code 的 Key",
618
- "codexkey": "单独给 Codex 的 Key",
619
- "grokkey": "单独给 Grok Build 的 Key",
620
- "desktopkey": "单独给 Claude Desktop 的 Key",
621
- "agykey": "单独给 Antigravity CLI 的 Key(要能用 Gemini 模型)",
622
- "openclawkey": "单独给 OpenClaw 的 Key",
623
- "hermeskey": "单独给 Hermes 的 Key",
624
- "atomcodekey": "单独给 AtomCode 的 Key",
625
- "one_m": "Codex 打开 1M 上下文",
626
- "no_one_m": "Codex 关闭 1M 上下文",
617
+ "key": "一个令牌,按它能用的模型自动配置工具",
618
+ "claudekey": "Claude Code 专属令牌",
619
+ "codexkey": "Codex 专属令牌",
620
+ "grokkey": "Grok Build 专属令牌",
621
+ "desktopkey": "Claude Desktop 专属令牌",
622
+ "agykey": "Antigravity CLI 专属令牌(需要能使用 Gemini 模型)",
623
+ "openclawkey": "OpenClaw 专属令牌",
624
+ "hermeskey": "Hermes 专属令牌",
625
+ "atomcodekey": "AtomCode 专属令牌",
626
+ "one_m": "为 Codex 开启 1M 上下文",
627
+ "no_one_m": "为 Codex 关闭 1M 上下文",
627
628
  "claude_official": "Claude Desktop 是否显示 Claude.ai 登录入口(默认 off)",
628
- "desktop_registry": "Windows Claude Desktop 一律写注册表策略(on)或自动判断(off)",
629
- "force": "先备份,再用推荐配置整份重写(修复被改坏的配置)",
630
- "all": "配置 Key 能用的全部工具(默认就是这样)",
631
- "install": "没装的工具直接从国内镜像装上,不再询问",
632
- "no_install": "没装的工具只给出安装命令,不安装"
629
+ "desktop_registry": "Windows 版 Claude Desktop:始终写入注册表策略(on)或自动判断(off)",
630
+ "force": "先备份,再用推荐配置整份重写(用于修复改坏的配置)",
631
+ "all": "配置令牌能用的全部工具(默认行为)",
632
+ "install": "未安装的工具直接从国内镜像安装,不再询问",
633
+ "no_install": "未安装的工具只给出安装命令,不安装"
633
634
  },
634
- "autodetect_title": "--key 能用的模型 → 自动配置的工具:",
635
+ "autodetect_title": "--key 能用的模型和自动配置的工具:",
635
636
  "autodetect": {
636
- "claude": "Claude Code、Claude Desktop(macOS / Windows 没装也先写好;Linux 已装才配)",
637
+ "claude": "Claude Code、Claude Desktop(macOS、Windows 上未安装也会提前写好;Linux 上已安装才配置)",
637
638
  "gpt": "Codex",
638
639
  "grok": "Grok Build",
639
640
  "gemini": "Antigravity CLI"
640
641
  },
641
642
  "ex": {
642
- "key": "用一把 Key 配好它能用的所有工具",
643
- "split": "Claude、GPT、Gemini 分组的 Key 分开配",
643
+ "key": "用一个令牌配置它能用的全部工具",
644
+ "split": "Claude、GPT、Gemini 分组的令牌分别配置",
644
645
  "force": "配置被改坏时整份重写(会先备份)",
645
646
  "base": "在备用地址上配置",
646
- "install": "配好后把没装的工具一起装上(国内镜像)"
647
+ "install": "配置完成后一起安装未安装的工具(国内镜像)"
647
648
  },
648
- "when": "拿到 Key 后第一次配置,或者换 Key、修复被改坏的配置时。",
649
- "needs": "一把 {{brand}} 的 API Key(在控制台的「令牌」页创建)\n工具可以之后再装:没装的命令行工具会先写好配置,再问要不要从国内镜像装上(--install 直接装);Claude Desktop 在 macOS / Windows 上没装也先写好,装好打开就能用;Linux 版只配已装的",
649
+ "when": "拿到令牌后第一次配置,或更换令牌、修复改坏的配置时。",
650
+ "needs": "一个 {{brand}} 令牌(在控制台的「令牌」页新建)\n工具可以之后再安装:未安装的命令行工具会先写好配置,再询问是否从国内镜像安装(加 --install 直接安装);Claude Desktop 在 macOS、Windows 上未安装也会提前写好配置,安装后打开即可使用;Linux 版只配置已安装的",
650
651
  "alt": {
651
- "init": "想一步步选工具和模型",
652
- "config": "只改一个工具",
653
- "auth": "只保存 Key,不写工具配置"
652
+ "init": "想一步步选择工具和模型",
653
+ "config": "只修改一个工具",
654
+ "auth": "只保存令牌,不写工具配置"
654
655
  }
655
656
  },
656
657
  "init": {
657
658
  "summary": "首次使用的配置向导",
658
- "description": "一步步引导你填 Key、选工具并写好配置。\n直接运行 {{cli}}(不带命令)打开主菜单。",
659
+ "description": "一步步引导你填写令牌、选择工具并写好配置。\n直接运行 {{cli}}(不带命令)会打开主菜单。",
659
660
  "ex": {
660
661
  "run": "运行配置向导",
661
662
  "base": "在备用地址上运行向导",
662
663
  "menu": "打开主菜单"
663
664
  },
664
665
  "when": "第一次使用,想一步步回答问题完成配置时。",
665
- "needs": "一把 {{brand}} 的 API Key",
666
+ "needs": "一个 {{brand}} 令牌",
666
667
  "alt": {
667
668
  "setup": "不想回答问题,或在脚本里配置",
668
- "menu": "已经配置过,只想改某一项"
669
+ "menu": "已经配置过,只想修改某一项"
669
670
  }
670
671
  },
671
672
  "auth": {
672
- "summary": "保存或撤销 API Key",
673
- "description": "不带参数:提示你输入 Key。\n带 Key:校验后保存到 ~/{{configDir}}/config.yaml。",
673
+ "summary": "保存或删除令牌",
674
+ "description": "不带参数:提示你输入令牌。\n带令牌:验证后保存到 ~/{{configDir}}/config.yaml。",
674
675
  "arg": {
675
- "token": "要保存的 API Key"
676
+ "token": "要保存的令牌"
676
677
  },
677
- "revoke": "删除已保存的 API Key",
678
- "reload": "把已保存的 Key 重新写进 Claude Code(claude / claude-code)",
678
+ "revoke": "删除已保存的令牌",
679
+ "reload": "把已保存的令牌重新写入 Claude Code(claude / claude-code)",
679
680
  "ex": {
680
- "prompt": "提示输入 Key",
681
- "save": "直接保存一把 Key",
682
- "revoke": "删除已保存的 Key,不再询问",
683
- "reload": "把 Key 重新写进 Claude Code",
684
- "revoke_ask": "删除已保存的 Key(会先确认)",
681
+ "prompt": "提示输入令牌",
682
+ "save": "直接保存一个令牌",
683
+ "revoke": "删除已保存的令牌,不再询问",
684
+ "reload": "把令牌重新写入 Claude Code",
685
+ "revoke_ask": "删除已保存的令牌(会先确认)",
685
686
  "reload_json": "同上,输出 JSON"
686
687
  },
687
- "when": "只想保存、更换或删除 Key,不动工具配置时。",
688
+ "when": "只想保存、更换或删除令牌,不改动工具配置时。",
688
689
  "alt": {
689
- "setup": "保存 Key 并同时写好工具配置"
690
+ "setup": "保存令牌并同时写好工具配置"
690
691
  }
691
692
  },
692
693
  "config": {
693
- "summary": "按工具配置;管理 profile、模型预设和备份",
694
- "description": "不带参数:选一个工具,打开它的配置菜单。\n子命令和工具名见下表。",
694
+ "summary": "按工具配置;管理 Profile、模型预设和备份",
695
+ "description": "不带参数:选择一个工具,打开它的配置菜单。\n子命令和工具名见下表。",
695
696
  "arg": {
696
697
  "args": "子命令和参数(见下表)"
697
698
  },
698
699
  "opt": {
699
700
  "force": "先备份,再用推荐配置整份重写该工具的配置"
700
701
  },
701
- "subcommands_title": "子命令:",
702
+ "subcommands_title": "子命令:",
702
703
  "sub": {
703
704
  "tool": "打开该工具的配置菜单",
704
705
  "tool_force": "先备份,再用推荐配置整份重写",
705
- "tool_non_interactive": "不弹菜单,用已保存的 Key 直接写配置",
706
- "tool_restore": "还原该工具最近一次备份",
706
+ "tool_non_interactive": "不显示菜单,用已保存的令牌直接写入配置",
707
+ "tool_restore": "还原该工具最近一次的备份",
707
708
  "tool_backups": "列出该工具的备份",
708
- "tool_clear_model": "只清除写死的模型设置,保留 Key、hooks、MCP 和插件",
709
- "tool_model_list": "列出各工具单独设的模型",
710
- "tool_model_set": "给某个工具单独设模型(slot 默认 opus,即主模型)",
711
- "tool_model_clear": "清除某个工具单独设的模型",
712
- "profile_list": "列出 profile(一套 Key + 地址 + 模型)",
713
- "profile_create": "新建 profile",
714
- "profile_use": "切换到某个 profile",
715
- "profile_delete": "删除 profile",
709
+ "tool_clear_model": "只清除固定的模型设置,保留令牌、hooks、MCP 和插件",
710
+ "tool_model_list": "列出各工具单独设置的模型",
711
+ "tool_model_set": "为某个工具单独设置模型(slot 默认为 opus,即主模型)",
712
+ "tool_model_clear": "清除某个工具单独设置的模型",
713
+ "profile_list": "列出 Profile(每个 Profile 包含一套令牌、地址和模型)",
714
+ "profile_create": "新建 Profile",
715
+ "profile_use": "切换到某个 Profile",
716
+ "profile_delete": "删除 Profile",
716
717
  "preset_list": "列出模型预设",
717
- "preset_save": "把当前模型组合存成预设",
718
+ "preset_save": "把当前的模型组合保存为预设",
718
719
  "preset_use": "使用某个预设",
719
720
  "preset_delete": "删除预设",
720
721
  "backup_list": "列出 {{product}} 配置的备份",
721
- "backup_create": "备份 {{product}} 配置(可加标签)",
722
+ "backup_create": "备份 {{product}} 配置(可以加标签)",
722
723
  "backup_restore": "从备份还原 {{product}} 配置",
723
- "tool_remove": "移除 {{brand}} 写入的服务商、Key 和模型设置,其它设置保留"
724
+ "tool_remove": "移除 {{brand}} 写入的服务商、令牌和模型设置,其他设置保留"
724
725
  },
725
- "tools_title": "工具名:",
726
+ "tools_title": "工具名:",
726
727
  "ex": {
727
728
  "menu": "打开 Codex 的配置菜单",
728
729
  "force": "把 Claude Code 的配置整份重写",
729
- "tool_model": "Codex 单独用某个模型",
730
- "profile": "新建一个叫 work 的 profile",
731
- "remove": "不再让 Codex 用 {{brand}}(例如改回 ChatGPT 订阅登录)"
730
+ "tool_model": "Codex 单独使用某个模型",
731
+ "profile": "新建一个名为 work 的 Profile",
732
+ "remove": "不再让 Codex 使用 {{brand}}(例如改回 ChatGPT 订阅登录)"
732
733
  },
733
- "when": "调整单个工具(换模型、重写或还原配置),或管理 profile、模型预设和备份时。",
734
- "needs": "写工具配置前要先保存 Key:{{cli}} auth <key> 或 {{cli}} setup --key <key>",
734
+ "when": "调整单个工具(更换模型、重写或还原配置),或管理 Profile、模型预设和备份时。",
735
+ "needs": "写入工具配置前,需要先保存令牌:{{cli}} auth <你的令牌> 或 {{cli}} setup --key <你的令牌>",
735
736
  "alt": {
736
- "setup": "一次重写所有工具的配置",
737
- "status": "只看当前配置,不修改"
737
+ "setup": "一次重写全部工具的配置",
738
+ "status": "只查看当前配置,不修改"
738
739
  }
739
740
  },
740
741
  "base": {
741
742
  "summary": "查看、测速并切换接入地址",
742
- "description": "主域名连不上或证书报错时,换一个接入地址。\n切换后,用 {{product}} 保存的 Key 配过的工具会一起改到新地址。",
743
+ "description": "主域名无法连接或证书报错时,切换到另一个接入地址。\n切换后,用 {{product}} 保存的令牌配置过的工具会一起改到新地址。",
743
744
  "arg": {
744
- "target": "切换到哪里(见下表),不填就列出地址并测试"
745
+ "target": "切换到哪个地址(见下表),不填则列出地址并测试"
745
746
  },
746
- "targets_title": "目标写法:",
747
+ "targets_title": "目标写法:",
747
748
  "target": {
748
749
  "none_term": "(不填)",
749
750
  "none": "列出全部地址并逐个测试,标出当前地址",
750
751
  "index_term": "<序号>",
751
- "index": "切到列表里的第 n 个地址",
752
+ "index": "切换到列表里的第 n 个地址",
752
753
  "url_term": "<地址>",
753
- "url": "切到指定地址,如 {{altSiteUrl}}",
754
- "auto": "按列表顺序切到第一个能用的(不是最快的,尽量连主站)",
754
+ "url": "切换到指定地址,例如:{{altSiteUrl}}",
755
+ "auto": "按列表顺序切换到第一个可用的地址(不是最快的,优先连接主站)",
755
756
  "default": "回到主站 {{url}}"
756
757
  },
757
758
  "ex": {
758
759
  "list": "列出地址并测试",
759
- "auto": "自动换到第一个能用的地址",
760
- "index": "切到列表里的第 2 个地址",
761
- "url": "切到指定地址",
760
+ "auto": "自动切换到第一个可用的地址",
761
+ "index": "切换到列表里的第 2 个地址",
762
+ "url": "切换到指定地址",
762
763
  "default": "回到主站"
763
764
  },
764
- "when": "工具报连接失败、超时或证书错误时。",
765
- "needs": "保存过 Key 时,内置地址和当前地址会用它确认线路真的能用;其它地址和没有 Key 时只测网关是否在线",
765
+ "when": "工具报告无法连接、超时或证书错误时。",
766
+ "needs": "保存过令牌时,内置地址和当前地址会用它确认地址确实可用;其他地址,或没有保存令牌时,只测试网关是否在线",
766
767
  "alt": {
767
768
  "doctor": "不确定是不是地址的问题",
768
- "bench": "只测延迟,不切换"
769
+ "bench": "只测试延迟,不切换"
769
770
  }
770
771
  },
771
772
  "status": {
772
773
  "summary": "查看当前配置",
773
- "description": "显示当前的 Key 和它的余额、接入地址、语言、模型,以及各工具是否已配置。",
774
+ "description": "显示当前的令牌和它的余额、接入地址、语言、模型,以及各工具是否已配置。",
774
775
  "ex": {
775
776
  "show": "查看当前配置",
776
- "json": "输出 JSON,给脚本读"
777
+ "json": "输出 JSON,供脚本读取"
777
778
  },
778
- "when": "想确认现在用的是哪个 Key、地址和模型时。",
779
+ "when": "想确认现在使用的是哪个令牌、地址和模型时。",
779
780
  "alt": {
780
- "doctor": "要检查配置能不能用,而不只是查看"
781
+ "doctor": "要检查配置能否正常使用,而不只是查看"
781
782
  }
782
783
  },
783
784
  "doctor": {
784
785
  "summary": "检查配置和网络问题",
785
- "description": "检查 Key、余额、网络、代理、已安装的工具和它们的配置,并给出处理办法。",
786
+ "description": "检查令牌、余额、网络、代理、已安装的工具和它们的配置,并给出处理办法。",
786
787
  "opt": {
787
- "deep": "装了 Claude Code 时,再用它真实发一条请求(消耗少量额度)",
788
- "report": "检查后上传诊断信息(检查结果、工具版本、设置和最近的运行记录,不含 Key 和对话内容),得到一个诊断码发给客服"
788
+ "deep": "已安装 Claude Code 时,再用它实际发送一条请求(消耗少量额度)",
789
+ "report": "检查后上传诊断信息(检查结果、工具版本、设置和最近的运行记录,不含令牌和对话内容),得到一个诊断码发给客服"
789
790
  },
790
791
  "ex": {
791
- "run": "做一次检查",
792
- "deep": "装了 Claude Code 时连它的实际请求一起检查",
792
+ "run": "运行一次检查",
793
+ "deep": "已安装 Claude Code 时,连同它的实际请求一起检查",
793
794
  "report": "上传诊断信息,得到诊断码发给客服"
794
795
  },
795
- "when": "工具报错(401、连不上、找不到模型)又不知道原因时。",
796
+ "when": "工具报错(401、无法连接、找不到模型)又不清楚原因时。",
796
797
  "alt": {
797
- "base": "已经确定是接入地址连不上",
798
- "logs": "要把出错细节发给客服"
798
+ "base": "已经确定是接入地址无法连接",
799
+ "logs": "需要把出错细节发给客服"
799
800
  }
800
801
  },
801
802
  "bench": {
802
- "summary": "测接入地址的延迟",
803
- "description": "用已保存的 Key 向当前接入地址请求几次模型列表,统计耗时;加 --stream 再发一条真实的流式请求,看首字时间和流能否正常结束。",
803
+ "summary": "测试接入地址的延迟",
804
+ "description": "用已保存的令牌向当前接入地址请求几次模型列表,统计耗时;加上 --stream 会再发送一条真实的流式请求,查看首字时间和流能否正常结束。",
804
805
  "opt": {
805
806
  "samples": "请求次数(1–50)",
806
- "stream": "再发一条真实的流式请求,看首字时间和流能否正常结束(消耗极少额度)",
807
- "model": "流式请求用的模型(默认按 Key 能用的模型自动选)"
807
+ "stream": "再发送一条真实的流式请求,查看首字时间和流能否正常结束(消耗极少额度)",
808
+ "model": "流式请求使用的模型(默认按令牌能用的模型自动选择)"
808
809
  },
809
810
  "ex": {
810
811
  "run": "请求 5 次",
811
812
  "samples": "只请求 3 次",
812
- "stream": "测延迟,再测一次流式请求",
813
- "stream_model": "用指定模型测流式请求",
813
+ "stream": "测试延迟,再测试一次流式请求",
814
+ "stream_model": "用指定模型测试流式请求",
814
815
  "json": "输出 JSON"
815
816
  },
816
- "when": "感觉变慢,或想看当前地址的延迟时。",
817
- "needs": "已保存 Key({{cli}} auth <key>)",
817
+ "when": "感觉变慢,或想查看当前地址的延迟时。",
818
+ "needs": "已保存令牌({{cli}} auth <你的令牌>)",
818
819
  "alt": {
819
- "base": "一次测试全部地址,并可切换"
820
+ "base": "一次测试全部地址,并可以切换"
820
821
  }
821
822
  },
822
823
  "logs": {
823
824
  "summary": "查看 {{product}} 日志",
824
- "description": "日志按天存在 ~/{{configDir}} 目录。出问题时可以把 tail 的输出发给客服。",
825
+ "description": "日志按天保存在 ~/{{configDir}} 目录。出现问题时,可以把 tail 的输出发给客服。",
825
826
  "arg": {
826
- "action": "list / tail / path(默认 list)",
827
- "file": "tail 时指定日志文件"
827
+ "action": "list、tail 或 path(默认 list)",
828
+ "file": "tail 时要查看的日志文件"
828
829
  },
829
- "actions_title": "动作:",
830
+ "actions_title": "操作:",
830
831
  "action": {
831
832
  "list": "列出日志文件",
832
833
  "tail": "显示最新日志的末尾(或指定文件)",
@@ -834,51 +835,51 @@
834
835
  },
835
836
  "ex": {
836
837
  "list": "列出日志文件",
837
- "tail": "看最新日志",
838
+ "tail": "查看最新日志",
838
839
  "path": "显示日志目录"
839
840
  },
840
- "when": "命令出错想看细节,或客服要日志时。",
841
+ "when": "命令出错需要查看细节,或客服需要日志时。",
841
842
  "alt": {
842
- "doctor": "先自查常见问题"
843
+ "doctor": "先自行检查常见问题"
843
844
  }
844
845
  },
845
846
  "upgrade": {
846
847
  "summary": "升级 Claude Code、Codex 等编码工具",
847
- "description": "按每份工具当初的安装方式升级:原生安装用工具自带的更新,npm 安装从国内镜像(npmmirror)重装,Homebrew 安装用 brew upgrade;原生或 Homebrew 升级失败时,改用 {{brand}} 一键安装脚本(程序取自国内镜像)。点名了但还没装的工具也用这个脚本装上。\n不填工具名就升级已安装的全部。\n升级 {{product}} 自己用 {{cli}} update。",
848
+ "description": "按每份工具当初的安装方式升级:原生安装用工具自带的更新,npm 安装从国内镜像(npmmirror)重新安装,Homebrew 安装用 brew upgrade;原生或 Homebrew 方式无法升级时,改用 {{brand}} 一键安装脚本(程序取自国内镜像)。指定了但还没有安装的工具,也用这个脚本安装。\n不填工具名则升级已安装的全部工具。\n升级 {{product}} 本身请用 {{cli}} update。",
848
849
  "arg": {
849
- "tools": "claude-code / codex / grok / agy,可以写多个"
850
+ "tools": "claude-code、codex、grok、agy,可以填写多个"
850
851
  },
851
852
  "ex": {
852
853
  "all": "升级已安装的全部工具",
853
854
  "one": "只升级 Claude Code",
854
855
  "many": "升级 Codex 和 Antigravity CLI"
855
856
  },
856
- "when": "{{cli}} doctor 提示版本过低,或工具自带的更新失败时。",
857
- "needs": "不写工具名时只升级已经安装的工具",
857
+ "when": "{{cli}} doctor 提示版本过低,或工具自带的更新无法完成时。",
858
+ "needs": "不填工具名时,只升级已经安装的工具",
858
859
  "alt": {
859
- "update": "升级 {{product}} 自己"
860
+ "update": "升级 {{product}} 本身"
860
861
  }
861
862
  },
862
863
  "refresh": {
863
- "summary": "马上更新各工具的模型菜单",
864
- "description": "按网关当前的模型配置和 Key 现在能用的模型,重写各工具的模型菜单,不等每小时一次的自动同步。",
865
- "when": "Key 换了分组、能用的模型变了,或网关刚上新、下架模型时。",
864
+ "summary": "立即更新各工具的模型菜单",
865
+ "description": "按网关当前的模型配置和令牌现在能用的模型,重写各工具的模型菜单,不必等待每小时一次的自动同步。",
866
+ "when": "令牌换了分组、能用的模型有变化,或网关刚上架、下架模型时。",
866
867
  "alt": {
867
- "setup": "要换 Key 或重新配置工具"
868
+ "setup": "要更换令牌或重新配置工具"
868
869
  },
869
870
  "ex": {
870
- "run": "马上更新模型菜单",
871
- "base": "按另一个接入地址的配置更新(只对这一次生效)"
871
+ "run": "立即更新模型菜单",
872
+ "base": "按另一个接入地址的配置更新(只在本次生效)"
872
873
  }
873
874
  },
874
875
  "update": {
875
- "summary": "检查 {{product}} 有没有新版本",
876
- "description": "依次查 {{updateSources}} 源,有新版时给出安装命令。\n全局安装的 {{product}} 启动时也会检查(6 小时一次),有新版就自动安装并重新执行当前命令。",
876
+ "summary": "检查 {{product}} 是否有新版本",
877
+ "description": "依次查询这些来源:{{updateSources}}。有新版本时给出安装命令。\n全局安装的 {{product}} 启动时也会检查(每 6 小时一次),有新版本时自动安装并重新运行当前命令。",
877
878
  "ex": {
878
879
  "check": "检查新版本",
879
880
  "json": "输出 JSON"
880
881
  },
881
- "when": "想确认 {{product}} 是不是最新版时。",
882
+ "when": "想确认 {{product}} 是否为最新版本时。",
882
883
  "alt": {
883
884
  "upgrade": "升级 Claude Code、Codex 等工具"
884
885
  }
@@ -886,71 +887,71 @@
886
887
  "codex": {
887
888
  "summary": "Codex 辅助功能",
888
889
  "description": "Codex 相关的辅助命令。",
889
- "when": "Codex 出现 {{product}} 能修的问题时(目前是会话列表变空)。"
890
+ "when": "Codex 出现 {{product}} 能处理的问题时(目前是会话列表变空)。"
890
891
  },
891
892
  "codex_sessions": {
892
893
  "summary": "让旧会话重新出现在 Codex 列表里",
893
- "description": "Codex 按服务商筛选会话,换过登录方式或服务商后旧会话会被隐藏。\n这个命令把本地会话改到当前服务商;会先备份,可用 --undo 撤销。\n运行前请先退出 Codex。",
894
+ "description": "Codex 按服务商筛选会话,更换登录方式或服务商后,旧会话会被隐藏。\n这个命令把本地会话改到当前服务商;会先备份,可以用 --undo 撤销。\n运行前请先退出 Codex。",
894
895
  "opt": {
895
- "to": "改到哪个服务商(默认 Codex 当前用的)",
896
+ "to": "改到哪个服务商(默认为 Codex 当前使用的服务商)",
896
897
  "undo": "按这个备份目录把会话改回去"
897
898
  },
898
899
  "ex": {
899
- "move": "把所有会话改到当前服务商",
900
+ "move": "把全部会话改到当前服务商",
900
901
  "to": "把会话改到 custom 服务商",
901
902
  "undo": "撤销上一次修改(目录见上次输出)"
902
903
  },
903
- "when": "Codex 的历史会话列表变空或少了时。",
904
- "needs": "先退出 Codex(运行中会拒绝修改)",
904
+ "when": "Codex 的历史会话列表变空或缺少会话时。",
905
+ "needs": "先退出 Codex(运行时会拒绝修改)",
905
906
  "alt": {
906
- "undo": "改完不满意,想改回去"
907
+ "undo": "修改后想改回去"
907
908
  }
908
909
  },
909
910
  "sessions": {
910
911
  "summary": "查看本机的编码会话",
911
- "description": "列出 Claude Code、Codex 和 Claude 桌面版(Cowork / Code)存在本机的会话,按最后更新时间排序。\n可以看会话内容、打印或直接运行续聊命令、导出成 Markdown。只读,不改任何会话文件。",
912
+ "description": "列出 Claude Code、Codex 和 Claude Desktop(Cowork、Code)保存在本机的会话,按最后更新时间排序。\n可以查看会话内容、打印或直接运行继续对话的命令、导出为 Markdown。只读,不修改任何会话文件。",
912
913
  "opt": {
913
- "tool": "只看这个工具的会话(claude-code / codex / claude-desktop)",
914
- "dir": "只看在这个目录或它下面开始的会话",
915
- "here": "只看在当前目录或它下面开始的会话",
916
- "limit": "最多列多少个(默认 20)",
914
+ "tool": "只查看这个工具的会话(claude-code、codex、claude-desktop)",
915
+ "dir": "只查看在这个目录或其子目录中开始的会话",
916
+ "here": "只查看在当前目录或其子目录中开始的会话",
917
+ "limit": "最多列出多少个(默认 20)",
917
918
  "all": "全部列出",
918
919
  "messages": "显示前几条消息(默认 6)",
919
- "run": "直接运行续聊命令(默认只打印)",
920
- "output": "导出到这个目录(不存在会新建,不覆盖已有文件)",
921
- "tools": "附上工具调用的参数和输出(各截到 2000 字)"
920
+ "run": "直接运行继续对话的命令(默认只打印)",
921
+ "output": "导出到这个目录(不存在时会新建,不覆盖已有文件)",
922
+ "tools": "附上工具调用的参数和输出(各截取前 2000 字)"
922
923
  },
923
924
  "list": "列出会话(默认)",
924
925
  "show": "显示一个会话的信息和前几条消息",
925
- "resume": "打印或运行续聊命令",
926
- "export": "把会话导出成 Markdown",
926
+ "resume": "打印或运行继续对话的命令",
927
+ "export": "把会话导出为 Markdown",
927
928
  "ex": {
928
929
  "list": "列出最近 20 个会话",
929
- "codex": "只看 Codex 的会话",
930
- "here": "只看当前目录的会话",
931
- "show": "看一个会话(ID 写前几位即可)",
932
- "resume": "在会话原来的目录里继续聊",
930
+ "codex": "只查看 Codex 的会话",
931
+ "here": "只查看当前目录的会话",
932
+ "show": "查看一个会话(ID 写前几位即可)",
933
+ "resume": "在会话原来的目录里继续对话",
933
934
  "export": "把两个会话导出到 ./sessions",
934
- "json": "输出 JSON,给脚本读",
935
+ "json": "输出 JSON,供脚本读取",
935
936
  "show_more": "显示前 20 条消息",
936
- "resume_print": "只打印续聊命令,自己复制运行",
937
+ "resume_print": "只打印继续对话的命令,自行复制运行",
937
938
  "export_tools": "导出时附上工具调用的参数和输出"
938
939
  },
939
- "when": "想找回以前的对话、接着聊,或把对话存下来时。",
940
+ "when": "想找回以前的对话、继续对话,或保存对话时。",
940
941
  "alt": {
941
942
  "codex_sessions": "Codex 列表里看不到旧会话时,把它们改到当前服务商"
942
943
  }
943
944
  },
944
945
  "lang": {
945
946
  "summary": "切换界面语言",
946
- "description": "查看或设置 {{product}} 的界面语言(zh_CN / en_US)。",
947
+ "description": "查看或设置 {{product}} 的界面语言(zh_CN、en_US)。",
947
948
  "show": "显示当前语言",
948
949
  "set": "设置语言:zh_CN 或 en_US",
949
950
  "ex": {
950
951
  "show": "显示当前语言",
951
- "set_en": "改成英文",
952
- "set_zh": "改成中文",
953
- "show_json": "输出 JSON,含可选语言"
952
+ "set_en": "切换为英文",
953
+ "set_zh": "切换为中文",
954
+ "show_json": "输出 JSON,包括可选的语言"
954
955
  },
955
956
  "when": "界面语言不对时。",
956
957
  "alt": {
@@ -959,16 +960,16 @@
959
960
  },
960
961
  "completion": {
961
962
  "summary": "输出命令补全脚本",
962
- "description": "输出 bash / zsh / fish 的补全脚本。保存到文件后在 shell 配置里 source 它(fish 放进补全目录即可)。",
963
+ "description": "输出 bash、zsh、fish 的补全脚本。保存到文件后,在 shell 配置里 source 它(fish 放进补全目录即可)。",
963
964
  "arg": {
964
- "shell": "bash / zsh / fish"
965
+ "shell": "bash、zsh 或 fish"
965
966
  },
966
967
  "ex": {
967
968
  "bash": "生成 bash 补全",
968
969
  "zsh": "生成 zsh 补全",
969
970
  "fish": "生成 fish 补全"
970
971
  },
971
- "when": "想按 Tab 键补全 {{product}} 的命令时。",
972
+ "when": "想用 Tab 键补全 {{product}} 的命令时。",
972
973
  "needs": "使用 bash、zsh 或 fish"
973
974
  },
974
975
  "enter": {
@@ -977,31 +978,31 @@
977
978
  "arg": {
978
979
  "option": "要打开的菜单(见下表)"
979
980
  },
980
- "options_title": "菜单:",
981
+ "options_title": "菜单:",
981
982
  "option": {
982
983
  "none_term": "(不填)",
983
984
  "none": "主菜单",
984
985
  "lang": "语言设置",
985
- "apikey": "API Key 设置",
986
+ "apikey": "令牌设置",
986
987
  "models": "模型设置",
987
- "tool": "该工具的配置菜单(同 {{cli}} config <tool>)"
988
+ "tool": "该工具的配置菜单(与 {{cli}} config <tool> 相同)"
988
989
  },
989
990
  "ex": {
990
991
  "menu": "打开主菜单",
991
992
  "models": "打开模型设置",
992
993
  "tool": "打开 Codex 的配置菜单"
993
994
  },
994
- "when": "知道要改哪一项,想跳过主菜单时。",
995
+ "when": "知道要修改哪一项,想跳过主菜单时。",
995
996
  "alt": {
996
- "menu": "从主菜单开始选",
997
+ "menu": "从主菜单开始选择",
997
998
  "config": "直接用命令配置某个工具"
998
999
  }
999
1000
  },
1000
1001
  "doc": {
1001
- "generated_note": "由 pnpm gen:docs 生成,请勿手改。改命令或说明请改 src/lib/program.ts 和 src/locales/*.json",
1002
+ "generated_note": "由 pnpm gen:docs 生成,请勿手动修改。要修改命令或说明,请改 src/lib/program.ts 和 src/locales/*.json",
1002
1003
  "title": "{{product}} 命令参考",
1003
1004
  "docs_link": "在线版:{{url}}",
1004
- "global_note": "全局选项可以和任何命令一起用。",
1005
+ "global_note": "全局选项可以与任何命令一起使用。",
1005
1006
  "option": "选项",
1006
1007
  "description": "说明",
1007
1008
  "argument": "参数",
@@ -1015,19 +1016,19 @@
1015
1016
  },
1016
1017
  "errors": {
1017
1018
  "next_step": "下一步:{{command}}",
1018
- "hint_logs": "下一步:运行 {{cli}} logs tail 查看详细日志",
1019
- "cancelled": "已取消操作",
1020
- "cancel_hint": "下一步:运行 {{cli}} 重新开始",
1021
- "key_placeholder": "<你的 Key>"
1019
+ "hint_logs": "下一步:运行 {{cli}} logs tail 查看详细日志。",
1020
+ "cancelled": "已取消",
1021
+ "cancel_hint": "下一步:运行 {{cli}} 重新开始。",
1022
+ "key_placeholder": "<你的令牌>"
1022
1023
  },
1023
1024
  "help_topics": {
1024
1025
  "exit_codes": {
1025
1026
  "title": "退出码与错误输出",
1026
- "body": "退出码:\n 0 成功\n 1 操作失败\n 2 用法或输入错误\n 3 认证失败(Key 无效或被拒绝)\n 4 网络问题(DNS、证书、超时或网关不可达)\n 5 内部错误\n 130 用户取消\n\n使用 --json 时,成功输出保持原格式;失败只在 stderr 输出一个 JSON 对象:\n{\"ok\":false,\"error\":{\"type\":\"usage\",\"message\":\"…\",\"hint\":\"…\",\"subtype\":\"…\"}}"
1027
+ "body": "退出码:\n 0 成功\n 1 操作未完成\n 2 用法或输入有误\n 3 认证未通过(令牌无效或被拒绝)\n 4 网络问题(DNS、证书、超时或无法连接网关)\n 5 内部错误\n 130 已取消\n\n使用 --json 时,成功输出保持原格式;出错时只在 stderr 输出一个 JSON 对象:\n{\"ok\":false,\"error\":{\"type\":\"usage\",\"message\":\"…\",\"hint\":\"…\",\"subtype\":\"…\"}}"
1027
1028
  },
1028
1029
  "environment": {
1029
1030
  "title": "环境变量",
1030
- "body": "{{product}} 会读取这些环境变量:\n {{envPrefix}}_DISABLE_AUTO_UPDATE=1 禁用启动时自动更新检查\n {{envPrefix}}_DISABLE_MODEL_REFRESH=1 禁用启动时模型菜单刷新\n {{envPrefix}}_CONFIG_DIR=<目录> 指定 {{product}} 配置目录\n {{envPrefix}}_SKIP_AUTO_UPDATE=1 跳过本次自动更新检查\n NO_COLOR=1 禁用颜色\n FORCE_COLOR=0 禁用颜色(FORCE_COLOR=false 同样有效)"
1031
+ "body": "{{product}} 会读取这些环境变量:\n {{envPrefix}}_DISABLE_AUTO_UPDATE=1 关闭启动时的自动更新检查\n {{envPrefix}}_DISABLE_MODEL_REFRESH=1 关闭启动时的模型菜单刷新\n {{envPrefix}}_CONFIG_DIR=<目录> 指定 {{product}} 配置目录\n {{envPrefix}}_SKIP_AUTO_UPDATE=1 跳过本次自动更新检查\n NO_COLOR=1 关闭颜色\n FORCE_COLOR=0 关闭颜色(FORCE_COLOR=false 同样有效)"
1031
1032
  }
1032
1033
  },
1033
1034
  "refresh": {
@@ -1038,8 +1039,13 @@
1038
1039
  "cloud": "网关",
1039
1040
  "cache": "本地缓存",
1040
1041
  "bundled": "随包快照",
1041
- "none": "无(用内置清单)"
1042
+ "none": "无(使用内置清单)"
1042
1043
  },
1043
- "nothing_checked": "没有要同步的模型菜单:没有保存 Key、工具不是 {{product}} 配置的,或连不上网关"
1044
+ "nothing_checked": "没有需要同步的模型菜单:没有保存令牌、工具不是用 {{product}} 配置的,或无法连接网关"
1045
+ },
1046
+ "validator": {
1047
+ "rejected": "网关拒绝了这个令牌,它可能已被删除、停用或已过期",
1048
+ "timeout": "请求超时",
1049
+ "network": "无法连接网关"
1044
1050
  }
1045
1051
  }