多语言
Dux Refine 使用了 i18nProvider 进行多语言的默认初始化配置。在框架中,已经内置了中文和英文的常用语言包,您只需在您的模块中添加语言即可全局使用。
配置方法
语言配置一般放置在 init
生命周期中,您可以将语言文件以 JSON 格式导入。
js
import { appContext, createApp } from '@duxweb/dux-refine'
import zhLang from './locales/zh/common.json'
import enLang from './locales/en/common.json'
const init = (context: appContext) => {
context.createApp('admin', createApp())
context.addI18n('zh', 'common', zhLang)
context.addI18n('en', 'common', enLang)
}
import { appContext, createApp } from '@duxweb/dux-refine'
import zhLang from './locales/zh/common.json'
import enLang from './locales/en/common.json'
const init = (context: appContext) => {
context.createApp('admin', createApp())
context.addI18n('zh', 'common', zhLang)
context.addI18n('en', 'common', enLang)
}
语言包示例如下,您可以根据模块的需要自定义语言文件:
json
// en
{
"home": "Home"
}
// en
{
"home": "Home"
}
json
// zh
{
"home": "主页"
}
// zh
{
"home": "主页"
}
方法使用
在 React 中,您可以使用以下 hook 方法来调用翻译功能:
jsx
import { useTranslate } from "@refinedev/core";
const translate = useTranslate();
return <button>{translate("home")}</button>;
import { useTranslate } from "@refinedev/core";
const translate = useTranslate();
return <button>{translate("home")}</button>;
如果您的配置中需要多语言,框架已全局初始化 i18n
,因此您可以使用以下原生方法:
js
import { i18n } from '@duxweb/dux-refine'
i18n.t('home')
import { i18n } from '@duxweb/dux-refine'
i18n.t('home')
有关更多使用方法,请参考文档中的 translate 部分。