2016-03-31 14:17:09 +08:00
|
|
|
|
---
|
|
|
|
|
category: Components
|
2016-09-21 11:28:38 +08:00
|
|
|
|
subtitle: 国际化
|
2016-03-31 14:17:09 +08:00
|
|
|
|
cols: 1
|
2018-11-04 16:20:35 +08:00
|
|
|
|
type: 其他
|
2016-09-21 11:28:38 +08:00
|
|
|
|
title: LocaleProvider
|
2016-03-31 14:17:09 +08:00
|
|
|
|
---
|
2016-03-03 16:28:02 +08:00
|
|
|
|
|
2016-03-03 21:00:38 +08:00
|
|
|
|
为组件内建文案提供统一的国际化支持。
|
2016-03-03 16:28:02 +08:00
|
|
|
|
|
2016-03-07 15:18:39 +08:00
|
|
|
|
## 使用
|
|
|
|
|
|
|
|
|
|
LocaleProvider 使用 React 的 [context](https://facebook.github.io/react/docs/context.html) 特性,只需在应用外围包裹一次即可全局生效。
|
2016-03-03 16:28:02 +08:00
|
|
|
|
|
|
|
|
|
```jsx
|
2017-12-28 17:17:24 +08:00
|
|
|
|
import { LocaleProvider } from 'antd';
|
|
|
|
|
import zh_CN from 'antd/lib/locale-provider/zh_CN';
|
2018-12-07 18:16:23 +08:00
|
|
|
|
import moment from 'moment';
|
2018-07-11 13:12:12 +08:00
|
|
|
|
import 'moment/locale/zh-cn';
|
2018-12-07 18:16:23 +08:00
|
|
|
|
|
|
|
|
|
moment.locale('zh-cn');
|
2016-03-07 15:18:39 +08:00
|
|
|
|
...
|
|
|
|
|
|
2017-12-28 17:17:24 +08:00
|
|
|
|
return <LocaleProvider locale={zh_CN}><App /></LocaleProvider>;
|
2016-03-03 16:28:02 +08:00
|
|
|
|
```
|
|
|
|
|
|
2017-01-31 15:08:07 +08:00
|
|
|
|
我们提供了英语,中文,俄语,法语,德语等多种语言支持,所有语言包可以在 [这里](https://github.com/ant-design/ant-design/blob/master/components/locale-provider/) 找到。
|
2016-03-07 15:18:39 +08:00
|
|
|
|
|
2017-12-28 17:17:24 +08:00
|
|
|
|
注意:如果你需要使用 UMD 版的 dist 文件,应该引入 `antd/dist/antd-with-locales.js`,同时引入 moment 对应的 locale,然后按以下方式使用:
|
2017-03-13 10:51:37 +08:00
|
|
|
|
|
|
|
|
|
```jsx
|
|
|
|
|
const { LocaleProvider, locales } = window.antd;
|
|
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
return <LocaleProvider locale={locales.en_US}><App /></LocaleProvider>;
|
|
|
|
|
```
|
|
|
|
|
|
2017-01-27 17:54:57 +08:00
|
|
|
|
### 增加语言包
|
|
|
|
|
|
|
|
|
|
如果你找不到你需要的语言包,欢迎你在 [英文语言包](https://github.com/ant-design/ant-design/blob/master/components/locale-provider/en_US.tsx) 的基础上创建一个新的语言包,并给我们 Pull Request。
|
2016-03-07 15:18:39 +08:00
|
|
|
|
|
|
|
|
|
### 其他国际化需求
|
|
|
|
|
|
|
|
|
|
本模块仅用于组件的内建文案,若有业务文案的国际化需求,建议使用 [react-intl](https://github.com/yahoo/react-intl),可参考示例:[Intl demo 1](http://github.com/ant-design/intl-example) 和 [Intl demo 2](http://yiminghe.me/learning-react/examples/react-intl.html?locale=en-US)。
|
|
|
|
|
|
|
|
|
|
## API
|
|
|
|
|
|
2019-07-11 14:14:33 +08:00
|
|
|
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
|
|
|
| --- | --- | --- | --- | --- |
|
|
|
|
|
| locale | 语言包配置,语言包可到 [antd/lib/locale-provider](http://unpkg.com/antd/lib/locale-provider/) 目录下寻找 | object | - | |
|
2019-07-06 23:40:03 +08:00
|
|
|
|
|
|
|
|
|
## FAQ
|
|
|
|
|
|
|
|
|
|
#### 为什么我使用了 LocaleProvider 还有问题?
|
|
|
|
|
|
|
|
|
|
请检查是否设置了 `moment.locale('zh-cn')`,或者是否有两个版本的 moment 共存。
|