国际化
Internationalization
集中式多语言翻译系统,支持8种语言和Crowdin协作翻译
子问题
1.翻译键管理
2.语言切换
3.翻译协作流程
4.本地化格式
5.浏览器 locale 变体到内部 locale 标识的规范化映射
6.协议层消息的本地化类型设计(Localizable 联合类型)
7.AI 角色 prompt 模板的多语言维护
各项目的解法1 solutions
Signals
横向对比
| 维度 | AIRI |
|---|---|
| 翻译源格式 | YAML 文件,unplugin-yaml 构建时转换,支持多行字符串和注释 |
| 翻译键组织 | 按功能域分层(base/settings/stage/docs/tamagotchi),每语言 5 模块聚合 |
| 语言切换 | localStorage 持久化 + languageRemap 规范化浏览器 locale 变体 |
| 协作翻译 | Crowdin 双向同步:每日 cron 拉取 + 手动 dispatch 推送,自动创建 PR |
| 协议层本地化 | Localizable 联合类型(string | {key,fallback,params}),模块间通信消息可本地化 |
| 框架集成 | vue-i18n Composition API(legacy:false),各应用独立初始化共享翻译源 |
| 语言覆盖 | 9 种语言(en/ja/ko/zh-Hans/zh-Hant/es/fr/ru/vi),monorepo 独立包统一管理 |
最佳实践
1.集中管理翻译文件在独立包中避免分散
2.YAML 作为翻译源格式优于 JSON,支持多行字符串和注释
3.Crowdin 双向同步用两个独立 workflow 分离拉取和推送避免冲突
4.languageRemap 映射表统一处理浏览器 BCP 47 locale 变体