Setup Codex Zh
在 Windows 上为 Codex Desktop(Microsoft Store 版)启用完整中文界面,并安装可持续使用的"中文启动器",让界面与菜单在每次启动后保持中文。如果原来用Codex++等启动Deepseek模型,则在PowerShell 运行 irm https://cdn.deepseek.com/api-docs/codex-deepseek-setup-en.ps1 | iex 后设置选1,设置Deepseek模型API后,直接用中文启动器启动,即可实现完整中文。
工作流程
1. 运行安装脚本
执行:
powershell -NoProfile -ExecutionPolicy Bypass -File <技能目录>/scripts/install-zh.ps1
脚本自动完成:
- 检测 Store 版 Codex(包名
OpenAI.Codex)与 AUMID; - 检查 Node.js,缺失时用 winget 安装 Node.js LTS;
- 复制启动器(
launch-zh.mjs+bootstrap.mjs)到%USERPROFILE%\.codex\codex-zh-launcher\; - 在桌面创建
启动中文版 Codex.ps1; - 确保
%USERPROFILE%\.codex\config.toml的[desktop]下有localeOverride = "zh-CN"(保留所有其他配置)。
脚本会输出"安装完成"和后续使用步骤。失败时按错误信息处理(常见原因见 references/technical-notes.md)。
2. 指导用户首次启动
- 先完全退出 Codex(含托盘图标),否则启动器会拒绝运行(单实例应用会忽略启动参数);
- 右击桌面
启动中文版 Codex.ps1,选择使用 Powershell 运行; - 等待黑色窗口显示
汉化完成:中文界面已生效。,窗口随后自动关闭; - 启动过程中窗口会刷新一次(注入补丁后重新渲染),属正常现象,不影响会话内容;
- 如没有运行,打开 Powershell 设置
set-ExecutionPolicy RemoteSigned -Scope CurrentUser,再右键运行; - 之后每次都用该
启动中文版 Codex.ps1启动 Codex。
3. 验证结果
- 界面菜单栏应显示
文件 / 编辑 / 视图 / 帮助(英文为 File / Edit / View / Help); - 启动器日志出现
汉化完成:中文界面已生效。,且验证详情中含layerI18n: true、zhMenuCount: 4、enMenuCount: 0; - 侧栏应为
新聊天 / 定时任务 / 插件 / 探索 / 项目 / 最近等中文文案。
原理与注入通道(v2)
界面翻译由 Statsig 层 72216192 的 enable_i18n 开关控制,默认 false;只设置 localeOverride 或 --lang=zh-CN 不够。
Store 版构建不开放主进程 inspector(--inspect 被忽略,端口始终不监听),因此启动器改为通过渲染进程调试端口注入:
- 通过 AUMID 激活 Codex,附加
--remote-debugging-address=127.0.0.1 --remote-debugging-port=<p> --lang=zh-CN; - 连接
app://-/index.html页面目标,用Page.addScriptToEvaluateOnNewDocument注册 document-start 补丁,把72216192层的enable_i18n强制为true; - 刷新窗口,让应用在补丁生效后重新渲染中文界面;
- 校验菜单栏文本,并通过页面桥
vscode://codex/set-setting写回localeOverride = "zh-CN"。
补丁是页面内存中的猴子补丁,本次窗口运行期间持续有效。
命令行参数
node "$env:USERPROFILE\.codex\codex-zh-launcher\launch-zh.mjs" # 正常启动并汉化
node "$env:USERPROFILE\.codex\codex-zh-launcher\launch-zh.mjs" --attach 52677 # 对已运行且带调试端口的实例注入(排查用)
node "$env:USERPROFILE\.codex\codex-zh-launcher\launch-zh.mjs" --watch # 汉化后常驻,窗口重载后自动重新注入
node "$env:USERPROFILE\.codex\codex-zh-launcher\launch-zh.mjs" --no-reload # 不刷新窗口
硬性约束
- 不修改 WindowsApps 安装目录,不修改
app.asar,不需要管理员权限; - 不读取或改写账号、令牌、项目文件;只追加语言配置;
- 若 Codex 正在运行,绝不强行注入,提示用户先退出;
--attach仅用于排查,需用户明确知情。
故障排查
| 现象 | 处理 |
|---|---|
日志停在"连接主进程并注册汉化补丁"或报 主进程注入失败(等待超时) |
v1 的旧缺陷,换成 v2 启动器(走渲染进程注入) |
日志报 调试端口 <p> 未就绪 |
Codex 没退干净或又拉起第二个实例,彻底退出后重试 |
| 界面仍是英文 | 用 --attach 注入后查看 验证详情,细节见 references/technical-notes.md |
| 换新版本 Codex 后失效 | 在 app.asar 中搜索 enable_i18n / getLayer 复核层 ID,更新 bootstrap.mjs 的 CONFIG_ID |
资源
scripts/install-zh.ps1:一键安装脚本(在目标电脑上运行)。assets/launcher/launch-zh.mjs:启动器 v2,渲染进程 CDP 注入。assets/launcher/bootstrap.mjs:document-start 注入补丁(拦截 StatsiggetLayer)。assets/launcher/启动中文版 Codex.ps1:桌面启动入口模板,由安装脚本复制到桌面。references/technical-notes.md:内部机制、验证方法与完整故障排查(只在需要排查时读取)。