LocaleProvider 国际化

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

使用

LocaleProvider 使用 React 的 context 特性,只需在应用外围包裹一次即可全局生效。
  1. import enUS from 'antd-mobile/lib/locale-provider/en_US';
  2. ...
  3. return <LocaleProvider locale={enUS}><App /></LocaleProvider>;
我们暂时只提供英语,中文两种语言支持(默认语言是中文),所有语言包可以在 这里 找到。

增加语言包

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

其他国际化需求

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

代码演示

国际化

Wrap your app with LocaleProvider, and apply the corresponding language package.

  1. import { Pagination, LocaleProvider, List, DatePicker, WhiteSpace, Button, InputItem, WingBlank } from 'antd-mobile';
  2. import enUS from 'antd-mobile/lib/locale-provider/en_US';
  3. import moment from 'moment';
  4. const maxDate = moment('2018-12-03 +0800', 'YYYY-MM-DD Z').utcOffset(8);
  5. const minDate = moment('2015-08-06 +0800', 'YYYY-MM-DD Z').utcOffset(8);
  6. const Page = () => (
  7. <div>
  8. <Pagination total={5} current={1} />
  9. <WhiteSpace />
  10. <List
  11. className="date-picker-list"
  12. style={{ backgroundColor: 'white' }}
  13. >
  14. <DatePicker
  15. mode="date"
  16. title="Select date"
  17. extra="Click to see i18n text"
  18. minDate={minDate}
  19. maxDate={maxDate}
  20. >
  21. <List.Item arrow="horizontal">date</List.Item>
  22. </DatePicker>
  23. </List>
  24. <WhiteSpace />
  25. <InputItem type="money" placeholder="money input" />
  26. </div>
  27. );
  28. class App extends React.Component {
  29. constructor(props) {
  30. super(props);
  31. this.state = {
  32. isEnglish: true,
  33. };
  34. }
  35. handleClick = (e) => {
  36. e.preventDefault();
  37. this.setState({
  38. isEnglish: !this.state.isEnglish,
  39. });
  40. }
  41. render() {
  42. const locale = this.state.isEnglish ? enUS : undefined;
  43. return (
  44. <WingBlank>
  45. <Button type="primary" onClick={this.handleClick}>{this.state.isEnglish ? 'change to chinese' : '切换到英文'}</Button>
  46. <WhiteSpace />
  47. <LocaleProvider locale={locale}>
  48. <Page />
  49. </LocaleProvider>
  50. </WingBlank>
  51. );
  52. }
  53. }
  54. ReactDOM.render(<App />, mountNode);

LocaleProvider国际化 - 图1

API

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