语言包

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')

语言中可以传递不同位置的变量,请参考官方文档: