/**
 * 前端国际化处理方案,需要按照以下步骤进行<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>
 *                          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fI18nData = {}<br>
 *                       }<br>
 *                   如:<br>
 *                       if(typeof fI18nData == "undefined"){<br>
 *                           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fI18nData = {}//所有资源必须以此对象扩展<br>
 *                       }<br>
 *                       fI18nData[msg_hello.hello]="你好";<br>
 *                       fI18nData["collaboration.action.alert.comment_null"]="{0}内容不能为空!";<br>
 *         </li>
 *         <li>第二步:静态页面国际化的资源和组件文件和初始化需要写在js标签的最前面,如:<br>
 *                  &lt;script  src="../../data/widget/Collaboration_zh_CN.js"&gt;&lt;/script&gt;&lt;!--中文资源作为首资源进行导入--&gt;<br>
 *                  &lt;script  src="../../sources/js/cmp-i18n.js"&gt;&lt;/script&gt;&lt;!--导入国际组件--&gt;<br>
 *                  &lt;!--在script标签里面进行国际化的初始化--&gt;<br>
 *                  &lt;script&gt;<br>
 *                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;    cmp.i18n.init("../../data/widget/","Collaboration")<br>
 *                  &lt;/script&gt;
 *          </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 {*}
 */
    
Top