0.1.7 • Published 5 years ago

@beisen-cmps/i18n-resource-wrapper v0.1.7

Weekly downloads
7
License
ISC
Repository
gitlab
Last release
5 years ago

使用方法

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,也不提供全局的下发功能。你可以在自己的组件中自由决定如何处理多语言问题,而不应该受到本工具的限制。