前端国际化处理方案,需要按照以下步骤进行

  • 第一步:在指定的工程文件夹路径,配置三个国际化资源文件(必须以.js,目前只支持中文、繁体、英文三种),如:
    test_zh_CN.js,test_zh_TW.js,test_en.js;资源文件中的内容格式如:
    fI18nData[msg_hello.hello]="你好"
    fI18nData[good_morning]="早上好{0}"
    注:等号前面是资源key,等号后面是key的值,如果是需要传参数的,需要定义{0}、{1}、{2}...作为参数的占位符 注:由于前段优化原因,所有js资源在页面中都要以Map的形式存在,所以在资源文件的头部必须写上
    if(typeof fI18nData == "undefined"){
          fI18nData = {}
    }
    如:
    if(typeof fI18nData == "undefined"){
          fI18nData = {}//所有资源必须以此对象扩展
    }
    fI18nData[msg_hello.hello]="你好";
    fI18nData["collaboration.action.alert.comment_null"]="{0}内容不能为空!";
  • 第二步:静态页面国际化的资源和组件文件和初始化需要写在js标签的最前面,如:
    <script src="../../data/widget/Collaboration_zh_CN.js"></script><!--中文资源作为首资源进行导入-->
    <script src="../../sources/js/cmp-i18n.js"></script><!--导入国际组件-->
    <!--在script标签里面进行国际化的初始化-->
    <script>
           cmp.i18n.init("../../data/widget/","Collaboration")
    </script>
  • 第三步:如果是在静态页面中需要国际化,国际化的地方需要添加标签,其中i18n标签的key属性值,即为国际化资源对应的key值
  • 第四步:该组件还提供异步加载策略方法,如动态加入的html页面也需要国际等

模块已实现的所有子类:

Top