国际化
通过稳定消息 key、本地化 metadata 和支持替换表达式的运行时文本建立双语或多语 FormPlatform 界面。
国际化(i18n)
FormPlatform 客户端的系统文字使用稳定 key,而不是把某种语言直接写在 Vue 模板或系统表单定义中。客户端加载当前 locale 的消息字典,`t(key)` 返回翻译;找不到翻译时保留可诊断的 key 或约定的 fallback,而不是静默替换成错误语言。
新增系统文字
1. 选择领域化 key,例如 `cms.media.upload`、`survey.dashboard.status.completed`,不要使用含糊的 `save2`。
2. 在 `ClientApp/src/i18n.js` 的英文和中文消息中同时添加值。
3. Vue/SFC 使用 `t('key')`;表单 schema 的 Label、Header、Menu Title 等使用 `@key`。
4. 服务端返回 `messageKey`、可选 parameters 和英文 fallback;客户端统一翻译,不应由服务端根据浏览器语言拼接业务句子。
5. 为扩展模块调用 `api.registerMessages(namespace, { en: {...}, 'zh-CN': {...} })`,并让所有模块消息处于自己的 namespace。
动态内容
CMS 的中英文页面不是同一个字符串的机器翻译:它们是独立内容记录,以相同 Translation key 关联。因此 slug、SEO、正文、导航和图片替代文字均可按语言优化。普通用户数据不应被自动翻译;其显示语言由业务数据模型和表单设计决定。
验证
切换语言后应检查菜单、系统表单名称/描述、toast、DataGrid、组件属性、服务端错误、客户端扩展消息及公开 CMS 页面。新增公共 API 错误时,确保返回 `PlatformErrorResponse` 和稳定 `messageKey`。
English edition: INTERNATIONALIZATION.md.