LocaleProvider 国际化
为组件内建文案提供统一的国际化支持。
使用
LocaleProvider 使用 React 的 context 特性,只需在应用外围包裹一次即可全局生效。
import enUS from 'antd-mobile/lib/locale-provider/en_US';
...
return <LocaleProvider locale={enUS}><App /></LocaleProvider>;
我们暂时只提供英语,中文两种语言支持(默认语言是中文
),所有语言包可以在 这里 找到。
增加语言包
如果你找不到你需要的语言包,欢迎你在 英文语言包 的基础上创建一个新的语言包,并给我们 Pull Request。
其他国际化需求
本模块仅用于组件的内建文案,若有业务文案的国际化需求,建议使用 react-intl,可参考示例:Intl demo 1 和 Intl demo 2。
代码演示
国际化
Wrap your app with LocaleProvider
, and apply the corresponding language package.
import {
Pagination, LocaleProvider, List, DatePicker, WhiteSpace, WingBlank, InputItem,
Picker, SearchBar,
} from 'antd-mobile';
import enUS from 'antd-mobile/lib/locale-provider/en_US';
import ruRU from 'antd-mobile/lib/locale-provider/ru_RU';
const maxDate = new Date(2018, 11, 3, 22, 0);
const minDate = new Date(2015, 7, 6, 8, 30);
const seasons = [
[
{
label: '2013',
value: '2013',
},
{
label: '2014',
value: '2014',
},
],
[
{
label: '春',
value: '春',
},
{
label: '夏',
value: '夏',
},
],
];
const Page = () => (
<div>
<Pagination total={5} current={1} />
<WhiteSpace />
<List
className="date-picker-list"
style={{ backgroundColor: 'white' }}
>
<DatePicker
mode="date"
title="Select date"
minDate={minDate}
maxDate={maxDate}
>
<List.Item arrow="horizontal">datePicker</List.Item>
</DatePicker>
<Picker
data={seasons}
cascade={false}
>
<List.Item arrow="horizontal">picker</List.Item>
</Picker>
</List>
<WhiteSpace />
<SearchBar placeholder="Search" showCancelButton />
<WhiteSpace />
<InputItem type="money" placeholder="money input" />
</div>
);
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
locale: 'English',
};
}
onChange = (value) => {
this.setState({
locale: value[0],
});
}
render() {
const { locale } = this.state;
const languages = [
{
value: '中国',
label: '中国',
language: undefined,
},
{
value: 'English',
label: 'English',
language: enUS,
},
{
value: 'Русский',
label: 'Русский',
language: ruRU,
},
];
const currentLocale = languages.find(item => item.value === locale).language;
return (
<WingBlank>
<Picker
data={languages}
onChange={this.onChange}
cols={1}
value={[locale]}
>
<List.Item arrow="horizontal">Choose language</List.Item>
</Picker>
<WhiteSpace size="xl" />
<WhiteSpace size="xl" />
<LocaleProvider locale={currentLocale}>
<Page />
</LocaleProvider>
</WingBlank>
);
}
}
ReactDOM.render(<App />, mountNode);
API
参数 | 说明 | 类型 | 默认值 |
---|
locale | 语言包配置,语言包可到 antd-mobile/lib/locale-provider/ 目录下寻找 | object | - |