# Claude Desktop Localization

Finds untranslated Claude Desktop strings and adds Chinese translation mappings.

- Repository: https://github.com/javaht/claude-desktop-zh-cn (8126 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-31
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add javaht/claude-desktop-zh-cn --skill claude-desktop-zh-localize -g -a claude-code -y`
Codex: `npx skills add javaht/claude-desktop-zh-cn --skill claude-desktop-zh-localize -g -a codex -y`
Cursor: `npx skills add javaht/claude-desktop-zh-cn --skill claude-desktop-zh-localize -g -a cursor -y`
Gemini CLI: `npx skills add javaht/claude-desktop-zh-cn --skill claude-desktop-zh-localize -g -a gemini-cli -y`

## Description

为 claude-desktop-zh-cn 项目补全 Claude Desktop 未汉化界面。当用户发来 Claude Desktop 界面截图并指出未翻译的英文（如"这些没汉化"、"帮我汉化一下"），或要求为新版 UI 增加简体/繁体中文翻译时立即使用。覆盖 i18n 键值词表、硬编码词表与 DOM 动态正则三层，并自动验证映射命中率。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Claude Desktop 中文补丁 · 汉化工作流

本项目是 Claude Desktop 的本地中文补丁。界面文本通过三层机制汉化，新增翻译时必须按目标文本的性质选择正确的层，三层全部落位后统一验证。

## 三层汉化机制

| 层 | 文件 | 作用范围 |
| --- | --- | --- |
| 1. i18n 键值词表 | `resources/frontend-zh-{zh-CN,zh-TW,zh-HK}.json` | 走 react-intl 的标准组件。合并进应用的 `zh-*.json`，有 key 即原生显示中文 |
| 2. 硬编码词表 | `resources/frontend-hardcoded-zh-*.json`（`[源文, 译文]` 二元组列表） | 未走 i18n 的前端 bundle 文本（安装时静态替换 JS），同时并入在线 DOM 翻译映射 |
| 3. DOM 动态正则 | `scripts/patch_claude_zh_cn.py` 的 `build_online_dom_translation_script()` 中 `G=[...]` 数组；Windows 同款模板在 `scripts/install_windows.ps1` | 动态文本：计数、日期、时间区间、带变量的句子。**两个引擎必须同步修改** |

桌面壳层文本（极少）放 `resources/desktop-zh-*.json`。

## 工作流

### 第 1 步：定位 i18n key

在已安装应用的英文语言包中按值精确匹配（项目词表只保留当前版本存在的 key）：

```python
import json
en = json.load(open("/Applications/Claude.app/Contents/Resources/ion-dist/i18n/en-US.json"))
for text in ["Theme", "Chat font"]:
    print(text, {k for k, v in en.items() if v == text})
```

- 精确匹配不到时用小写子串模糊搜索，并去前端 bundle（`/Applications/Claude.app/Contents/Resources/ion-dist/assets/v1/*.js`；新版 Claude 可能改名或换层级，安装脚本会自动探测，找不到时在 `ion-dist` 下递归搜含 `index-*.js` 的目录）里确认组件写法。
- 截图里的文本往往是多个 DOM 节点拼出来的（链接前后各一个 text node），要分别找。

### 第 2 步：确定三地译文

zh-CN / zh-TW / zh-HK 各写一份，遵守下方术语表。同一个英文值若有多个 key，全部都要写。

### 第 3 步：写入词表

**关键机制（实测踩坑后确认）**：配置窗口（配置第三方推理）和主窗口首页走 **react-intl + 语言包 key**，DOM 注入层对它们无效！因此每条翻译必须**同时**写入：

1. `frontend-zh-*.json`（**必须有 key**, , 在 `en-US.json` 里按值反查；只写硬编码对在该窗口不生效）；
2. `frontend-hardcoded-zh-*.json`（覆盖在线 DOM 层与本地 bundle 静态替换）。

用脚本一次性更新三个 `frontend-zh-*.json`（dict，`key: 译文`）和三个 `frontend-hardcoded-zh-*.json`（list of `[source, target]`）。硬编码词表注意：

The rest: https://github.com/javaht/claude-desktop-zh-cn/blob/HEAD/skills/claude-desktop-zh-localize/SKILL.md
