0.1.7 • Published 5 years ago
@beisen-cmps/i18n-resource-wrapper v0.1.7
使用方法
1.引入多语言 wrapper
import I18NWrapper from '@beisen-cmps/i18n-resource-wrapper';
2.配置多语言相关属性
let i18nProps = {
lng: 'zh_TW', // 当前语言
debug: true, // debug 模式时,每次都会走远程接口
i18nSite: 'i18n.italent-inc.cn', // 多语言站点,用以区分不同环境
// application: 'BeisenCloudDemo', // 选填,获取指定应用下的数据
namespaces: ['Italent$Page$PageDynamic', 'Italent$CommonModule'], // 获取指定 namespace 下的数据
platform: 'isSysRes', // 选填,仅当使用系统级组件时才用到
ajaxMethod: function (){}, // 选填,仅当宿主环境无法调用常规 ajax 时使用,例如移动端外壳中
transList: ['autoTree.thisLevel', 'nothing.text'], // 所需翻译的列表
callback: function (){
console.info('success!');
}
};
return (
<I18NWrapper {...i18nProps}>
<你的组件 />
</I18NWrapper>
);
3.在组件中使用相关属性
props 中会有两个属性和多语言相关
- translation
内容是 props 中传递的所有 key 的翻译对象 - I18NSDK
内容是当前组件使用的多语言翻译对象,可以正常使用 I18NTools 中的所有 api,具体可见该组件的文档。
http://gitlab.beisencorp.com/ux-cnpm/i18n-tools
4.注意事项
- I18NTools 的初始化已经在 wrapper 中完成,不需要再次调用 init 方法。
- 目前没有做接口请求时的 loading 处理,组件展示时会有 props 变化造成的变更,即一开始是中文,然后等接口返回变成了英文,这样的情况是可能存在的。
- 明确一下,这个 wrapper 只是做了一层简单封装,也就是仅有子组件顶层可以拿到方法和对象的引用。这并不是 provider,也不提供全局的下发功能。你可以在自己的组件中自由决定如何处理多语言问题,而不应该受到本工具的限制。