Skip to content

国际化 ​

界面文字通过稳定翻译键显示。业务名称、品牌、协议及用户输入原样保存,不随界面语言改写。

页面翻译接入 ​

位置修改内容
src/locales/langs/zh-cn.ts中文页面资源
src/locales/langs/en-us.ts对应英文资源,键与结构一致
src/typings/app.d.ts扩展 App.I18n.Schema 的相关分支
Vue 模板 / 脚本通过 $t 使用文案;脚本从 @/locales 导入

业务资源较多时可抽成独立文件再合并到已有资源对象;仅创建文件不会自动加载。页面、表单校验、空状态、错误与菜单一起翻译。完整的资源与类型接线见便签教程。

依赖当前语言的表格列、选项等使用 computed 或项目现有响应式模式,避免只在初始化时调用 $t,导致切换语言后仍显示旧文字。

内置名称与用户内容 ​

菜单使用 i18nKey,角色和 AI 助手等内置数据使用 i18nKeys 元数据。API 同时提供原始内容与翻译键。Web 可通过 localizedText(rawText, key) 展示;编辑与提交仍使用原始值,不把展示译文写回数据库。

用户修改内置名称或说明后,相应字段的翻译绑定会解除,重复种子不会覆盖明确自定义的内容。无需为每种语言复制角色、菜单或业务主键。

增加一种语言 ​

  1. 新增完整语言资源,覆盖普通页面以及 builtin-*、settings-*、account-* 对应内容。
  2. 更新 App.I18n.LangType 与 src/locales/locale.ts 注册表。
  3. 在 src/store/modules/app/index.ts 的 localeOptions 加入语言选项,并补齐日期与组件库所需语言映射。
  4. 在后端设置目录的 default_locale 选项注册相同语言代码;需要时调整部署 DEFAULT_LOCALE。
  5. 更新资源完整性测试,验证切换、持久化、默认语言与缺失键回退。

新增语言需要客户端和后端选项配套,不是只在切换菜单增加一项。桌面与 App 有各自资源和注册入口,按目标客户端分别接入。

回退与验证 ​

保留用户已选择的语言;没有选择时使用租户默认值,并由部署默认提供基础配置。缺失翻译按客户端回退规则使用英文或原文。错误使用稳定 errorCode 匹配文案,不把任意后端 msg 当翻译键。

验证中英文切换、表格内置名称、自定义名称保持不变、刷新后语言保持以及缺失键表现。多语言业务内容属于单独需求,需要明确字段与编辑流程。