69 lines
1.5 KiB
Markdown
69 lines
1.5 KiB
Markdown
# 🐤 @mi/canary-intl
|
||
|
||
通用的国际化框架,不绑定任何框架。
|
||
|
||
## 如何使用
|
||
|
||
> yarn add @mi/canary-intl
|
||
|
||
## 使用 API
|
||
|
||
初始化国际化框架
|
||
|
||
```javascript
|
||
import canaryIntl from '@mi/canary-intl';
|
||
|
||
const canaryIntl = canaryIntl.init('en-UK', {
|
||
'en-UK': {
|
||
test: 'testvalue',
|
||
testTemplate: 'you have {value} unread message',
|
||
photo:
|
||
'You have {num, plural, =0 {no photos.} =1 {one photo.} other {# photos.}}'
|
||
},
|
||
'zh-CN': {
|
||
lang: '语言'
|
||
}
|
||
});
|
||
```
|
||
|
||
在组件中直接使用,支持模板, 单复数。同时支持 `canaryIntl.test`,直接取对应 Key 值。
|
||
|
||
```javascript
|
||
|
||
canaryIntl.test; // testvalue;
|
||
|
||
canaryIntl.get('test'); // testvalue;
|
||
|
||
canaryIntl.get('testTemplate', {
|
||
value: three
|
||
}); // 值是 'you have three unread message'
|
||
|
||
canaryIntl.template(canaryIntl.testTemplate, {
|
||
value: three
|
||
}); // 值是 'you have three unread message'
|
||
|
||
canaryIntl.get('photo', {
|
||
num: 0
|
||
}); // 值是 'You have no photos.'
|
||
```
|
||
|
||
切换语言
|
||
|
||
```javascript
|
||
canaryIntl.setLang('zh-CN'); // 切换到中文语言
|
||
```
|
||
## 语言编码
|
||
【强制】区别不同语言的 language tag 遵循 [BCP47](https://en.wikipedia.org/wiki/IETF_language_tag) 规范。
|
||
|
||
根据目前的国际业务情况,不同地区的同种语言在同一地区不会同使用两种写法。比如新加坡只使用是简体中文,台湾和香港只使用繁体中文,所以我们约定在 BCP 47规范中,仅使用 language-region 的组合方式。
|
||
|
||
正例:zh-CN
|
||
|
||
反例:~~zh、zh_hans、zh-cn~~
|
||
|
||
|
||
|
||
## License
|
||
|
||
MIT
|