Skip to content

Commit

Permalink
docs(*): mod i18n doc
Browse files Browse the repository at this point in the history
  • Loading branch information
tao1991123 committed Nov 1, 2018
1 parent 3ddf76b commit 2517347
Showing 1 changed file with 18 additions and 3 deletions.
21 changes: 18 additions & 3 deletions site/zh-cn/i18n.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,19 @@
# 国际化

`@alifd/next` 目前的默认文案是中文,如果需要使用其他语言,可以参考下面的方案:
## 组件国际化
组件内置文案国际化能力由 ConfigProvider提供,目前支持以下语言:

## ConfigProvider
| 语言名称 | 文件名 |
| -------- | -------- |
| 简体中文 | zh-cn |
| 繁体中文 | zh-tw |
| 美式英语 | en-us |
| 日文 | ja-jp |

目前支持中英繁日四种语言:
欢迎大家提交PR,增加语种。

ConfigProvider 可以给组件提供文案,用法如下.
``` js
import { ConfigProvider, DatePicker } from '@alifd/next';
import enUS from '@alifd/next/lib/locale/en-us';
Expand All @@ -30,7 +38,7 @@ class App extends React.Component {
}
```

## moment
## 日期国际化

`@alifd/next` 在处理日期时间相关组件逻辑时,使用了 [moment](https://github.com/moment/moment) 库,自带国际化相关能力,我们将其作为 peerDependencies,所以用户需要自己在应用中引入 moment 的 cdn 文件 moment-with-locales.js 或者本地安装 moment 打包进自己的应用。对于后者,由于 moment 在引入 locale 文件时存在这样的代码:`require('./locale/' + name)`,如果用 webpack 构建,会打包进所有的 locale 文件,增加构建后文件的体积,目前社区比较主流的解决方案有以下两种:

Expand All @@ -47,3 +55,10 @@ module.exports = {
]
};
```

## 内容国际化
除了组件本身和日期,还有货币,文案等内容需要国际化。这部分内容的国际化内容比较麻烦,React生态圈做的好一点的方案有Yahoo的[react-intl](https://github.com/yahoo/react-intl)[react-i18next](https://github.com/i18next/react-i18next)。使用起来都不容易。以下推荐以下几篇文章:

[5分钟前端国际化 - 蚂蚁金服·数据体验技术团队](https://juejin.im/post/59eed7df518825469c747c14)
[前端国际化](https://github.com/sundway/blog/issues/9)
[react-intl 实现 React 国际化多语言](https://juejin.im/post/59f96d7ef265da430f316997)

0 comments on commit 2517347

Please sign in to comment.