canary_intl/README.md
2022-12-27 15:57:42 +08:00

69 lines
1.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🐤 @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