/**
* 前端国际化处理方案,需要按照以下步骤进行<br>
* <ul>
* <li>第一步:在指定的工程文件夹路径,配置三个国际化资源文件(必须以.js,目前只支持中文、繁体、英文三种),如:<br>
* test_zh_CN.js,test_zh_TW.js,test_en.js;资源文件中的内容格式如:<br>
* fI18nData[msg_hello.hello]="你好"<br>
* fI18nData[good_morning]="早上好{0}"<br>
* 注:等号前面是资源key,等号后面是key的值,如果是需要传参数的,需要定义{0}、{1}、{2}...作为参数的占位符
* 注:由于前段优化原因,所有js资源在页面中都要以Map的形式存在,所以在资源文件的头部必须写上<br>
* if(typeof fI18nData == "undefined"){<br>
* fI18nData = {}<br>
* }<br>
* 如:<br>
* if(typeof fI18nData == "undefined"){<br>
* fI18nData = {}//所有资源必须以此对象扩展<br>
* }<br>
* fI18nData[msg_hello.hello]="你好";<br>
* fI18nData["collaboration.action.alert.comment_null"]="{0}内容不能为空!";<br>
* </li>
* <li>第二步:静态页面国际化的资源和组件文件和初始化需要写在js标签的最前面,如:<br>
* <script src="../../data/widget/Collaboration_zh_CN.js"></script><!--中文资源作为首资源进行导入--><br>
* <script src="../../sources/js/cmp-i18n.js"></script><!--导入国际组件--><br>
* <!--在script标签里面进行国际化的初始化--><br>
* <script><br>
* cmp.i18n.init("../../data/widget/","Collaboration")<br>
* </script>
* </li>
* <li>第三步:如果是在静态页面中需要国际化,国际化的地方需要添加<i18n key="msg_hello">标签,其中i18n标签的key属性值,即为国际化资源对应的key值</li>
* <li>第四步:该组件还提供异步加载策略方法,如动态加入的html页面也需要国际等</li>
* </ul>
*
* @module I18N
* @subtitle 国际化模块
*/
/**
* @class i18n
*/
/**
* 国际化组件初始化函数(国际化组件入口),如果组件检测出语言环境不是中文状态,会自动加载英文资源
* @namespace cmp
* @method init
* @param {String} path 国际化资源文件路径(文件夹路径)
* @param {String} name 资源文件名称
* @param {Function} [callback] 资源文件加载完成回调函数,该参数是可选参数
* @example
* ```
* 文件导入路径:
* M3App端
* <script src="http://newModule.v5.cmp/i18n/newModule_zh_CN.js"></script>
* <script src="http://cmp/v/js/cmp-i18n.js"></script><!--注意导入顺序-->
* <script src="http://cmp/v1.0.0/js/cordova/__CMPSHELL_PLATFORM__/cordova.js"></script>
* <script src="http://cmp/v1.0.0/js/cordova/cordova-plugins.js"></script>
* <script src="http://cmp/v/js/cmp.js"></script>
* ===========================================================================================
* 微协同端:
* <script src="/seeyon/m3/v5/newModule/i18n/newModule_zh_CN.js"></script>
* <script src="/seeyon/m3/cmp/js/cmp-i18n.js"></script><!--注意导入顺序-->
* <script src="/seeyon/m3/cmp/js/cmp.js"></script>
* =========================================================================================
* 调用组件
* <script>
* cmp.i18n.init("../../i18n/","test",function(){
* //do something
* })
* </script>
* ```
* @returns {*} 该初始化方法会实现两个效果,1,加载国际化资源,2,进行i18n标签替换
*/
/**
* @class i18n
*/
/**
* 根据key值取出国际化资源或进行参数传递
* @namespace cmp
* @method i18n
* @param {String} key 国际化资源对应的key值
* @param {Array} [param] 根据该key对应的资源进行数组索引顺序替换参数
* @example
* ```
* 文件导入路径:
* M3App端
* <script src="http://newModule.v5.cmp/i18n/newModule_zh_CN.js"></script>
* <script src="http://cmp/v/js/cmp-i18n.js"></script><!--注意导入顺序-->
* <script src="http://cmp/v1.0.0/js/cordova/__CMPSHELL_PLATFORM__/cordova.js"></script>
* <script src="http://cmp/v1.0.0/js/cordova/cordova-plugins.js"></script>
* <script src="http://cmp/v/js/cmp.js"></script>
* ===========================================================================================
* 微协同端:
* <script src="/seeyon/m3/v5/newModule/i18n/newModule_zh_CN.js"></script>
* <script src="/seeyon/m3/cmp/js/cmp-i18n.js"></script><!--注意导入顺序-->
* <script src="/seeyon/m3/cmp/js/cmp.js"></script>
* =========================================================================================
* 调用组件
* <script>
* var str = cmp.i18n("msg_hello") //str=你好
* var str2 = cmp.i18n("good_morning",["帅哥"]) //str2=早上好帅哥
* </script>
* ```
*/
/**
* 检测页面中的国际化标签,并进行国际化替换,常用于,动态创建进页面的html的国际化
* @namespace cmp
* @method detect
* @example
* ```
* 文件导入路径:
* M3App端
* <script src="http://newModule.v5.cmp/i18n/newModule_zh_CN.js"></script>
* <script src="http://cmp/v/js/cmp-i18n.js"></script><!--注意导入顺序-->
* <script src="http://cmp/v1.0.0/js/cordova/__CMPSHELL_PLATFORM__/cordova.js"></script>
* <script src="http://cmp/v1.0.0/js/cordova/cordova-plugins.js"></script>
* <script src="http://cmp/v/js/cmp.js"></script>
* ===========================================================================================
* 微协同端:
* <script src="/seeyon/m3/v5/newModule/i18n/newModule_zh_CN.js"></script>
* <script src="/seeyon/m3/cmp/js/cmp-i18n.js"></script><!--注意导入顺序-->
* <script src="/seeyon/m3/cmp/js/cmp.js"></script>
* =========================================================================================
* 调用组件
* <script>
* cmp.i18n.detect();
* </script>
* ```
* @returns {*} 该方法对动态创建的html实现i18n标签替换
*/
/**
* 当一个页面需要导入优先级不是最高的国际化资源,调用此方法导入
* @namespace cmp
* @method load
* @example
* ```
* 文件导入路径:
* M3App端
* <script src="http://newModule.v5.cmp/i18n/newModule_zh_CN.js"></script>
* <script src="http://cmp/v/js/cmp-i18n.js"></script><!--注意导入顺序-->
* <script src="http://cmp/v1.0.0/js/cordova/__CMPSHELL_PLATFORM__/cordova.js"></script>
* <script src="http://cmp/v1.0.0/js/cordova/cordova-plugins.js"></script>
* <script src="http://cmp/v/js/cmp.js"></script>
* ===========================================================================================
* 微协同端:
* <script src="/seeyon/m3/v5/newModule/i18n/newModule_zh_CN.js"></script>
* <script src="/seeyon/m3/cmp/js/cmp-i18n.js"></script><!--注意导入顺序-->
* <script src="/seeyon/m3/cmp/js/cmp.js"></script>
* =========================================================================================
* 调用组件
* <script>
* cmp.i18n.load("../../i18n/","test2",function(){
* //dosomething
* });
* </script>
* ```
* @returns {*}
*/