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)