i18n 国际化
NocoBase 插件支持前后端多语言国际化(i18n),你可以通过统一的机制在插件中实现多语言内容。
多语言文件管理
插件的多语言文件统一存放在 src/locale 目录下,按语言命名,比如:
每个语言文件导出一 个 JSON 对象,包含该语言的所有翻译词条,比如:
提示
初次添加语言文件,需要重启应用才能生效。你可以通过接口校验翻译词条是否生效: http://localhost:13000/api/app:getLang?locale=zh-CN
全局 i18n 实例
app.i18n 是全局 i18n 实例,适用于 CLI 或插件全局场景。你可以结合 inquirer 实现命令行交互:
app.i18n.t(text, options)用于翻译文本,并支持模板变量。
请求上下文 i18n
每个请求的 ctx.i18n 是全局 i18n 的克隆实例,根据客户端语言独立响应多语言信息。
设置客户端语言
- Query String:
- Request Header(推荐):
在中间件中使用
访问 http://localhost:13000/api/test-i18n?locale=zh-CN 会返回 你好。
插件内部 i18n
插件内部可以直接用 plugin.t(key, options) 来获取翻译:
plugin.t(text)等价于ctx.t(text, { ns })
相关链接
- 客户端 i18n 国际化 — 客户端翻译文件写法、useT、tExpr 用法
- 语言列表 — NocoBase 支持的语言代码完整列表

