Skip to content

多语言支持 ​

源码: src/i18n/


支持的语言 ​

语言代码语言名称本地名称书写方向
zh-CN简体中文简体中文LTR
zh-TW繁體中文繁體中文LTR
enEnglishEnglishLTR
ja日本語日本語LTR
ko한국어한국어LTR
arالعربيةالعربيةRTL

语言检测规范 ​

检测顺序 ​

  1. 本地存储 - 用户上次选择的语言
  2. 浏览器语言 - navigator.language
  3. 系统语言 - 操作系统语言设置
  4. 默认语言 - 英语 (en)

语言匹配规则 ​

约束级别要求
MUST精确匹配优先 (zh-CN → zh-CN)
SHOULD支持语言族匹配 (zh-HK → zh-TW)
MUST无匹配时使用默认语言

语言族映射 ​

请求语言匹配结果
zh-CNzh-CN
zh-TWzh-TW
zh-HKzh-TW
zhzh-CN
en-USen
en-GBen

翻译资源规范 ​

命名空间划分 ​

命名空间用途
common通用词汇 (确认、取消、返回等)
wallet钱包相关
transfer转账相关
settings设置相关
error错误消息
auth认证相关

翻译键命名规范 ​

约束级别要求
MUST使用小驼峰命名
MUST语义化命名
SHOULD按功能模块组织
SHOULD避免超过 3 层嵌套
示例:
✓ createWallet
✓ balance.available
✓ error.networkTimeout
✗ btn_create_wallet
✗ a.b.c.d.e.f

翻译文本规范 ​

约束级别要求
MUST避免拼接翻译 (使用插值)
MUST考虑不同语言的语序差异
SHOULD为变量提供语义化的占位符名
SHOULD添加翻译备注说明上下文
✓ "available": "可用: {{amount}} {{symbol}}"
✗ "available": "可用: " + amount + " " + symbol

插值规范 ​

基本插值 ​

typescript
// 翻译文本
{ "balance": "余额: {{amount}}" }

// 调用方式
t('balance', { amount: '100' })

// 结果
"余额: 100"

复数处理 ​

typescript
// 翻译文本
{
  "items_zero": "无项目",
  "items_one": "1 个项目",
  "items_other": "{{count}} 个项目"
}

// 调用方式
t('items', { count: 5 })

// 结果
"5 个项目"

RTL 布局规范 ​

CSS 逻辑属性 ​

物理属性逻辑属性
padding-leftpadding-inline-start
padding-rightpadding-inline-end
margin-leftmargin-inline-start
margin-rightmargin-inline-end
leftinset-inline-start
rightinset-inline-end
text-align: lefttext-align: start
text-align: righttext-align: end

RTL 规范要求 ​

约束级别要求
MUST使用 CSS 逻辑属性
MUST设置 dir 属性 (html 或容器)
MUST设置 lang 属性
SHOULD翻转方向性图标 (箭头等)
MUST NOT翻转非方向性图标 (品牌 logo)

需要翻转的元素 ​

元素翻转说明
返回箭头是方向性
前进箭头是方向性
列表顺序是起始位置变化
进度条方向是从右到左
品牌 Logo否固定资产
电话号码否数字方向不变

语言切换规范 ​

切换流程 ​

用户进入语言设置
    │
    ▼
显示语言列表 (当前语言高亮)
    │
    ▼
用户选择新语言
    │
    ▼
保存到本地存储
    │
    ▼
更新应用语言
    │
    ▼
刷新界面文本
    │
    ▼
更新 HTML dir 和 lang 属性

切换要求 ​

约束级别要求
MUST立即生效 (无需重启)
MUST持久化到本地存储
MUST更新所有可见文本
SHOULD显示本地语言名称 (非翻译名)

开发规范 ​

添加新翻译 ​

  1. 在所有语言文件中添加新键
  2. 确保键名一致
  3. 添加必要的复数形式
  4. 测试所有语言显示

翻译缺失处理 ​

约束级别要求
MUST有回退语言机制
SHOULD开发环境显示缺失键警告
SHOULD生产环境显示回退语言文本
MAY上报缺失翻译

测试规范 ​

约束级别要求
MUST测试所有支持语言的界面
MUST测试 RTL 布局正确性
SHOULD测试长文本不溢出
SHOULD测试占位符替换正确

相关文档 ​

Released under the MIT License.