I18n 国际化
在 NocoBase 插件中,支持前后端多语言国际化 (i18n),通过统一的机制可以在插件中轻松实现多语言内容。
多语言文件管理
插件的多语言文件统一存放在 src/locale 目录下,建议按语言文件命名,例如:
|- /plugin-hello
|- /src
|- /locale
|- en-US.json # 英文语言
|- zh-CN.json # 中文语言
每个语言文件导出一个 JSON 对象,包含该语言的所有翻译词条,例如:
// zh-CN.json
{
"Hello": "你好",
"World": "世界",
"Enter your name": "请输入你的名字",
"Your name is {{name}}": "你的名字是 {{name}}"
}
// en-US.json
{
"Hello": "Hello",
"World": "World",
"Enter your name": "Enter your name",
"Your name is {{name}}": "Your name is {{name}}"
}
初次添加语言文件,需要重启应用才能生效。可以通过接口校验翻译词条是否生效:
http://localhost:13000/api/app:getLang?locale=zh-CN
i18n 相关 API
ctx.i18n
ctx.t(text, options)
plugin.t()
useT()
tExpr(text)
useTranslation(ns)
withTranslation(ns)