dux-refine 使用了 i18nProvider 进行多语言的默认初始化配置。在框架中,已经内置了简中、繁中、英语、俄语、日语、韩语这几种常用语言包,您只需在您的模块中添加语言包即可全局使用。
语言包位于各自应用中的 locales
目录,并且内容为 json 对象格式,语言包名需要以各自代表的语言作为文件名
,如下:
.
├── locales # 页面文件
│ ├── en-US.json
│ ├── ja-JP.json
│ ├── ko-KR.json
│ ├── ru-RU.json
│ ├── zh-CN.json
│ └── zh-TW.json
语言包内容为 json 对象,调用时可使用.
来访问下级变量:
{
"example": {
"name": "示例"
}
}
语言配置一般放置在 init 生命周期中,您可以将语言文件以 JSON 格式批量导入。
import { appContext, createApp } from '@duxweb/dux-refine'
const init = (context: appContext) => {
// 加载 locales 目录中的所有语言包
const data = import.meta.glob('./locales/*.json', { eager: true })
}
在 React 中,您可以使用以下 hook 方法来调用翻译功能:
import { useTranslate } from "@refinedev/core";
const translate = useTranslate();
return <button>{translate('example.name')}</button>;
如果您的配置中需要多语言,框架已全局初始化 i18n,因此您可以使用以下原生方法:
import { i18n } from '@duxweb/dux-refine'
i18n.t('example.name')
语言中可以传递不同位置的变量,请参考官方文档:
Read more in Translation Docs