i18n Strategy 专题¶
重要性:⭐⭐⭐(国际化策略——推断项目 i18n 现状 + 改进) 真实位置:推测无完整 i18n 框架;基础设施级(UTF-8 + RTL) 角色:项目本身的国际化策略(用户面向的 UI 文本) 关联:topics/yoga-layout.md(RTL)、topics/terminal-compatibility.md
1. i18n 现状推断¶
项目 i18n = 基础设施级(仅 UTF-8 + RTL) 用户 UI 文本 = 推测仅英文
2. 4 大 i18n 维度¶
| 维度 | 状态 | 备注 |
|---|---|---|
| Locale 推断 | ⚠️ 弱 | OS 平台 + 推测 LANG/LC_ALL |
| 字符编码 | ✅ 强 | bashParser 字节偏移(UTF-8 安全) |
| 文本方向 | ✅ 强 | Yoga Edge 抽象支持 RTL |
| 多语言 prompt | ❌ 无 | 推测无完整 i18n 框架 |
3 强 1 弱。
3. 字符编码:UTF-8¶
3.1 bashParser 字节偏移¶
type Lexer = {
byteLen: number
charIdx: number // 字符索引
byteIdx: number // 字节偏移
byteAt(L, charIdx) // 字符 → 字节
}
双索引 —— charIdx + byteIdx。
3.2 3449 黄金语料库¶
大规模验证 —— UTF-8 安全。
3.3 CJK / emoji¶
宽度计算 —— CJK 2 倍。
4. RTL 支持¶
4.1 Yoga Edge 抽象¶
const EDGE_LEFT = 0
const EDGE_TOP = 1
const EDGE_RIGHT = 2
const EDGE_BOTTOM = 3
function resolveEdge(...): Value { ... }
逻辑边 → 物理边 —— 支持 RTL。
4.2 BiDi¶
双向文本 —— 阿拉伯 / 希伯来。
4.3 flexDirection¶
自动 reverse —— 适配 RTL。
5. UI 文本(推测英文)¶
5.1 命令 help¶
英文 help。
5.2 错误信息¶
英文错误。
5.3 权限对话框¶
英文 UI。
5.4 文档¶
英文文档。
整体 —— 推测英文为主。
6. 推测的 i18n 框架缺失¶
6.1 t() 函数¶
未发现完整 t() 函数。
6.2 翻译文件¶
未发现 locales/ 目录。
6.3 用户选择语言¶
未发现。
7. prompt i18n(系统 prompt 英文)¶
7.1 系统 prompt¶
英文 —— Claude 是英文。
7.2 推测¶
- 不需要翻译 system prompt(LLM 内部语言)
- 用户输入可以是任意语言
- 输出跟随用户语言
8. 改进方向¶
8.1 引入 i18n 框架¶
import i18next from 'i18next'
import en from './locales/en.json'
import zh from './locales/zh.json'
i18next.init({ resources: { en, zh } })
i18next —— 成熟方案。
8.2 命令 help 多语言¶
help 翻译。
8.3 错误信息翻译¶
错误码 + 翻译。
8.4 文档多语言¶
多语言文档。
8.5 用户配置¶
用户设置。
9. 终端 / Shell i18n¶
9.1 终端 locale¶
终端 locale —— 影响程序行为。
9.2 Claude Code 推断¶
推断。
10. 文件系统 i18n¶
10.1 文件路径 UTF-8¶
UTF-8 路径 —— 文件系统支持。
10.2 目录名¶
UTF-8 目录 —— 支持。
11. 终端 i18n¶
11.1 CJK 字符宽度¶
CJK 2 倍 —— 终端支持。
11.2 emoji¶
emoji 兼容。
11.3 Unicode 标准化¶
标准化 —— 推测。
12. 关键洞察¶
12.1 仅基础设施级 i18n¶
UTF-8 + RTL —— 完整。
12.2 UI 文本推测英文¶
未本地化。
12.3 bashParser 字节偏移¶
UTF-8 全局安全。
12.4 Yoga Edge 抽象¶
RTL 完整。
12.5 3449 黄金语料库¶
UTF-8 大规模验证。
12.6 改进空间大¶
引入 i18next 可大幅提升。
12.7 prompt 仍英文¶
LLM 不需要翻译。
12.8 用户输入任意¶
接受任意语言。
12.9 文件系统 UTF-8¶
路径安全。
12.10 终端 CJK 2 倍¶
显示兼容。
13. 推测 vs 实际¶
⚠️ 本文档多为推测 —— 项目本身可能有 i18n 框架但未被发现。
建议:
- 实际开发时 grep i18n / t( / locale 全文
- 查 locales/ 目录(如果有)
- 查 settings 的 language 字段(如果有)
14. 阅读建议¶
- grep
i18n/t(/locale全文 —— 找框架 - 查
utils/stringUtils.ts—— 字符宽度 - 查
native-ts/yoga-layout/index.ts—— RTL - 看 system prompt —— 是否英文
15. 与其他专题的关系¶
| 文件 | 关系 |
|---|---|
yoga-layout.md |
RTL 实现 |
terminal-compatibility.md |
终端 i18n |
deep-dive-bash-parser.md |
UTF-8 字节 |