国际化
语言国际化通过 react-intl 库实现。React 客户端开箱支持几种语言。
下列翻译由核心开发团队维护。也就是说,每次一个新版本发布,这些翻译也能及时更新。
-
英语
-
俄语
下列翻译由社区提供。即,这些翻译可能需要一些时间才能更新。通过 提PR 的方式帮助我们更新。
-
中文
-
法语
添加新的本地化内容
-
添加本地化消息至
src/i18n/<locale>.json
文件 -
使用标准的
react-intl
组件或 API 在您的代码中使用国际化翻译,参阅 react-intl 文档。
重写已有消息
直接在 src/i18n/<locale>.json
文件内修改即可。通过这种方式可以覆盖客户端 App、CUBA React UI 组件甚至一些 Ant Design 组件内的消息。
添加对新本地化的支持
-
添加对应的
<locale>.json
消息包。注意需要包含 CUBA React UI 组件(以cuba-react
开头的键值)以及 Ant DesignForm
验证的消息(以antd.form.validation
开头的键值) -
修改
src/i18n/i18nMappings.ts
内的messagesMapping
创建一个 locale 和消息包的映射。 -
修改
src/i18n/i18nMappings.ts
内的antdLocaleMapping
创建一个 locale 和antd/es/locale-provider/Locale
的映射。因为 Antd 组件的文本翻译都是通过告诉 Antd 使用一个预定义的 locale 设置而实现的。Antd 支持的 locales 可以在 这里 找到。 -
在
index.tsx
中添加对应的 moment locale 引入。比如import 'moment/locale/ru';
。因为部分 Antd 组件使用了moment
中的本地消息。 -
添加切换至新 locale 的文本,比如,使用默认的
LanguageSwitcher
时,为其添加一个新的选项。