# 多语言文件说明 ## 全局翻译(所有页面共用) - `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` ### 单文件结构 ```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` 命名空间;切换语言会清空缓存,下次进入或刷新后加载新语言文件。