LocaleProvider 国际化

为组件内建文案提供统一的国际化支持。

使用

LocaleProvider 使用 React 的 context 特性,只需在应用外围包裹一次即可全局生效。

  1. import { LocaleProvider } from 'choerodon-ui';
  2. import zh_CN from 'choerodon-ui/lib/locale-provider/zh_CN';
  3. import 'moment/locale/zh-cn';
  4. ...
  5. return <LocaleProvider locale={zh_CN}><App /></LocaleProvider>;

我们提供了英语,中文,俄语,法语,德语等多种语言支持,所有语言包可以在 这里 找到。

注意:如果你需要使用 UMD 版的 dist 文件,应该引入 choerodon-ui/dist/choerodon-ui-with-locales.js,同时引入 moment 对应的 locale,然后按以下方式使用:

  1. const { LocaleProvider, locales } = window['choerodon-ui'];
  2. ...
  3. return <LocaleProvider locale={locales.en_US}><App /></LocaleProvider>;

增加语言包

如果你找不到你需要的语言包,欢迎你在 英文语言包 的基础上创建一个新的语言包,并给我们 Pull Request。

其他国际化需求

本模块仅用于组件的内建文案,若有业务文案的国际化需求,建议使用 react-intl,可参考示例:Intl demo 1Intl demo 2

代码演示

国际化

LocaleProvider 包裹你的应用,并引用对应的语言包。

LocaleProvider国际化 - 图1

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import { Pagination, LocaleProvider } from 'choerodon-ui';
  4. import enUS from 'choerodon-ui/lib/locale-provider/en_US';
  5. const App = () => (
  6. <div>
  7. <Pagination defaultCurrent={1} total={50} showSizeChanger />
  8. </div>
  9. );
  10. ReactDOM.render(
  11. <LocaleProvider locale={enUS}>
  12. <App />
  13. </LocaleProvider>,
  14. document.getElementById('container'));

所有组件

此处列出 Choerodon UI 中需要国际化支持的组件,你可以在演示里切换语言。

LocaleProvider国际化 - 图2

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import {
  4. LocaleProvider,
  5. Pagination,
  6. DatePicker,
  7. TimePicker,
  8. Calendar,
  9. Popconfirm,
  10. Table,
  11. Modal,
  12. Button,
  13. Select,
  14. Transfer,
  15. Radio,
  16. } from 'choerodon-ui';
  17. import zhCN from 'choerodon-ui/lib/locale-provider/zh_CN';
  18. import moment from 'moment';
  19. import 'moment/locale/zh-cn';
  20. moment.locale('en');
  21. const { Option } = Select;
  22. const { RangePicker } = DatePicker;
  23. const columns = [
  24. {
  25. title: 'Name',
  26. dataIndex: 'name',
  27. filters: [
  28. {
  29. text: 'filter1',
  30. value: 'filter1',
  31. },
  32. ],
  33. },
  34. {
  35. title: 'Age',
  36. dataIndex: 'age',
  37. },
  38. ];
  39. class Page extends React.Component {
  40. state = {
  41. visible: false,
  42. };
  43. showModal = () => {
  44. this.setState({ visible: true });
  45. };
  46. hideModal = () => {
  47. this.setState({ visible: false });
  48. };
  49. render() {
  50. const info = () => {
  51. Modal.info({
  52. title: 'some info',
  53. content: 'some info',
  54. });
  55. };
  56. const confirm = () => {
  57. Modal.confirm({
  58. title: 'some info',
  59. content: 'some info',
  60. });

API

参数说明类型默认值
locale语言包配置,语言包可到 choerodon-ui/lib/locale-provider/ 目录下寻找object-