Skip to content

国际化 ​

这篇解决什么 ​

按钮文案放哪份 JSON、$t 从哪引、菜单为什么还是中文。读完只翻译壳子和操作句,不要指望侧栏跟语言包走。

默认 locale 是 zh-CN。顶栏 widget.languageToggle 为 false,客户包默认不切英文。请求头 Accept-Language 见 请求封装。

示意图:页面操作句走语言包。菜单标题走权限接口。

从哪改 ​

名称说明仓库路径
应用包zh-CN / en-US 的 page.json、utils.jsonruoyi-office-vben/apps/web-antd/src/locales/langs/
装配setupI18n、同步 antd / dayjssrc/locales/index.ts
默认语言zh-CNpackages/@core/preferences/src/config.ts
表单必填句ui.formRules.requiredsrc/adapter/form.ts
列表操作句ui.actionTitle.create如 views/system/dept/index.vue

业务页:import { $t } from '#/locales'。框架包内部用 @vben/locales。两套不要在同一文件混着抄。

应用包按目录扫描 ./langs/**/*.json。新增一句:zh-CN 和 en-US 各加同一 key。缺 key 时开发环境 missingWarn 会警告,生产不喊。

侧栏、页签标题来自 get-permission-info 的 menus.name,目前库里是中文。切 en-US 不会自动翻译菜单。要英文菜单得改 system_menu.name 或另做映射,本仓库没有现成开关。

日期、分页那套 Ant Design / dayjs 语言在 loadThirdPartyMessage。只改 page.json 不会让日期控件变英文。

字段 ​

名称说明仓库路径
page.action.*新增 / 保存等langs/zh-CN/page.json
preferences.app.locale当前语言偏好
Accept-Language跟 locale 走apps/web-antd/src/api/request.ts,后端在 ruoyi-office/yudao-framework/

不要翻译业务字典

system_dict_data.label 是运营配置。状态「启用」放字典,不要再写进 page.json 一份。

占位用框架现成句

$t('ui.actionTitle.create', ['组织'])、$t('ui.actionMessage.deleteSuccess', [name])。新模块先复用,少造平行 key。

ts
await coreSetup(app, {
  defaultLocale: preferences.app.locale,
  loadMessages,
  missingWarn: !import.meta.env.PROD,
});

摘自 apps/web-antd/src/locales/index.ts。

相关篇 ​

联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版