多语言文件说明
全局翻译(所有页面共用)
zh.json、en.json:放在langs/根目录,包含菜单、公共表格操作(删除/添加/选择/操作/刷新等)、公共搜索栏(查询/重置/展开/收起、请输入/请选择、全部/启用/禁用等)、以及非页面级的文案(httpMsg、topBar、common、setting、login 等)。
页面级翻译(按路由加载)
路径规则:langs/{语言}/{目录名}/{菜单名}.json
示例:路由 /dice/lottery_pool_config/index 对应:
- 中文:
langs/zh/dice/lottery_pool_config.json - 英文:
langs/en/dice/lottery_pool_config.json
单文件结构
{
"name": "名称",
"search": {
"字段或占位 key": "中文文案"
},
"table": {
"列 key": "表头中文文案"
}
}
- 顶层字段(如
name):该页面用到的通用字段标签,在搜索或表格中通过$t('page.name')使用。 search:搜索栏专用,如$t('page.search.poolType')、$t('page.search.placeholderName')。table:表格列头专用,如$t('page.table.poolType');列配置里label: 'page.table.xxx'会由表格组件自动翻译。
使用方式
- 搜索栏:
$t('page.name')、$t('page.search.xxx')。 - 表格列:
label: 'page.table.xxx'(art-table 会自动对page.开头的 label 做$t)。 - 公共操作(删除、新增、操作等):继续使用
$t('table.actions.xxx'),来自全局zh.json/en.json。
加载逻辑
- 进入某路由时,
pageLocaleLoader根据 path 解析出目录名/菜单名,动态加载对应语言的 json 并合并到 i18n 的page命名空间;切换语言会清空缓存,下次进入或刷新后加载新语言文件。