Files
crossdesk/localization/README.md
T

40 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CrossDesk 界面本地化
桌面端和 Android、iOS、HarmonyOS 移动端共用 `catalog.json` 中的界面文案,支持以下 10 种语言版本:
| 语言 | 标识 |
| --- | --- |
| 简体中文 | `zh-Hans` |
| English | `en` |
| Русский | `ru` |
| 繁體中文 | `zh-Hant` |
| 日本語 | `ja` |
| 한국어 | `ko` |
| Deutsch | `de` |
| Français | `fr` |
| Español | `es` |
| Português (Brasil) | `pt-BR` |
## 语言选择
- 新安装的桌面端默认“跟随系统”,也可以在设置中手动指定语言。已有配置中的中文、英文、俄文选择继续保留。
- 移动端使用系统语言;Android 和 iOS 同时支持操作系统提供的应用语言设置。
- 地区变体匹配相应语言;中文优先识别 `Hans` / `Hant`,台湾、香港、澳门使用繁体。葡萄牙语地区变体共用巴西葡萄牙语文案。
- 支持系统首选语言列表的平台使用其中可用的语言,没有匹配项时回退到英文。修改系统语言后重新打开应用可确保所有页面与状态文案更新。
- 只翻译应用界面。远端设备名称、文件名、用户输入、服务器公告和协议内容不作翻译。隐私政策正文使用项目已发布的中文或英文版本,第三方许可证保留原文。
## 维护资源
`catalog.json` 是唯一编辑入口,生成结果提交到各平台目录,应用运行时不依赖翻译服务。
```sh
python3 localization/generate.py
python3 localization/generate.py --check
```
生成器使用 Python 标准库,输出桌面 C++ 文案表、Android 原生资源及语言声明、iOS `.lproj` 资源,以及 HarmonyOS 文案表。`--check` 检查语言覆盖、格式占位符和生成文件是否同步。
新增文案时,在 `strings` 中提供所有语言的译文,并加入 `platforms` 中对应的平台列表。桌面命名键同时加入 `desktop`;Slint 使用的键追加到 `slint` 列表末尾,已有索引不能重排。桌面语言顺序中的前 3 项与历史配置兼容,修改顺序需要配置迁移。
占位符须完整保留:Android/HarmonyOS 使用 `{0}` 等位置占位符;iOS 使用 `%1$@` 等位置格式;已有桌面文案使用其原有格式。不同语言可以调整占位符位置,但不能更改数量或类型。新语言的初始译文包含机器辅助翻译,发布前应由对应语言使用者复核术语、语气及长文本。