function echo(stringA,stringB){var hello="你好";alert("hello world")}(function($){$.i18n={};$.i18n.map={};var debug=function(message){window.console&&console.log("i18n::"+message)};$.i18n.properties=function(settings){var defaults={name:"Messages",language:"",path:"",namespace:null,mode:"vars",cache:false,debug:false,encoding:"UTF-8",async:false,callback:null};settings=$.extend(defaults,settings);if(settings.namespace&&typeof settings.namespace=="string"){if(settings.namespace.match(/^[a-z]*$/)){$.i18n.map[settings.namespace]={}}else{debug("Namespaces can only be lower case letters, a - z");settings.namespace=null}}if(!settings.path.match(/\/$/)){settings.path+="/"}settings.language=this.normaliseLanguageCode(settings);var files=(settings.name&&settings.name.constructor===Array)?settings.name:[settings.name];settings.totalFiles=(files.length*2)+((settings.language.length>=5)?files.length:0);if(settings.debug){debug("totalFiles: "+settings.totalFiles)}settings.filesLoaded=0;files.forEach(function(file){var defaultFileName,shortFileName,longFileName,fileNames;defaultFileName=settings.path+file+".properties";var shortCode=settings.language.substring(0,2);shortFileName=settings.path+file+"_"+shortCode+".properties";if(settings.language.length>=5){var longCode=settings.language.substring(0,5);longFileName=settings.path+file+"_"+longCode+".properties";fileNames=[defaultFileName,shortFileName,longFileName]}else{fileNames=[defaultFileName,shortFileName]}loadAndParseFiles(fileNames,settings)});if(settings.callback&&!settings.async){settings.callback()}};$.i18n.prop=function(key){var args=[].slice.call(arguments);var phvList,namespace;if(args.length==2){if($.isArray(args[1])){phvList=args[1]}else{if(typeof args[1]==="object"){namespace=args[1].namespace;var replacements=args[1].replacements;args.splice(-1,1);if(replacements){Array.prototype.push.apply(args,replacements)}}}}var value=(namespace)?$.i18n.map[namespace][key]:$.i18n.map[key];if(value===null){return"["+((namespace)?namespace+"#"+key:key)+"]"}var i;if(typeof(value)=="string"){i=0;while((i=value.indexOf("\\",i))!=-1){if(value.charAt(i+1)=="t"){value=value.substring(0,i)+"\t"+value.substring((i++)+2)}else{if(value.charAt(i+1)=="r"){value=value.substring(0,i)+"\r"+value.substring((i++)+2)}else{if(value.charAt(i+1)=="n"){value=value.substring(0,i)+"\n"+value.substring((i++)+2)}else{if(value.charAt(i+1)=="f"){value=value.substring(0,i)+"\f"+value.substring((i++)+2)}else{if(value.charAt(i+1)=="\\"){value=value.substring(0,i)+"\\"+value.substring((i++)+2)}else{value=value.substring(0,i)+value.substring(i+1)}}}}}}var arr=[],j,index;i=0;while(i=0){var s=value.substring(0,i);if(s!==""){arr.push(s)}arr.push(index);i=0;value=value.substring(j+1)}else{i=j+1}}}else{i++}}}if(value!==""){arr.push(value)}value=arr;if(namespace){$.i18n.map[settings.namespace][key]=arr}else{$.i18n.map[key]=arr}}if(value.length===0){return""}if(value.length==1&&typeof(value[0])=="string"){return value[0]}var str="";for(i=0,j=value.length;i0){loadAndParseFile(fileNames[0],settings,function(){fileNames.shift();loadAndParseFiles(fileNames,settings)})}else{callbackIfComplete(settings)}}function loadAndParseFile(filename,settings,nextFile){if(settings.debug){debug("loadAndParseFile('"+filename+"')");debug("totalFiles: "+settings.totalFiles);debug("filesLoaded: "+settings.filesLoaded)}if(filename!==null&&typeof filename!=="undefined"){$.ajax({url:filename,async:settings.async,cache:settings.cache,dataType:"text",success:function(data,status){if(settings.debug){debug("Succeeded in downloading "+filename+".");debug(data)}parseData(data,settings);nextFile()},error:function(jqXHR,textStatus,errorThrown){if(settings.debug){debug("Failed to download or parse "+filename+". errorThrown: "+errorThrown) }if(jqXHR.status===404){settings.totalFiles-=1}nextFile()}})}}function parseData(data,settings){var parsed="";var lines=data.split(/\n/);var regPlaceHolder=/(\{\d+})/g;var regRepPlaceHolder=/\{(\d+)}/g;var unicodeRE=/(\\u.{4})/ig;for(var i=0,j=lines.length;i0&&line.match("^#")!="#"){var pair=line.split("=");if(pair.length>0){var name=decodeURI(pair[0]).trim();var value=pair.length==1?"":pair[1];while(value.search(/\\$/)!=-1){value=value.substring(0,value.length-1);value+=lines[++i].trimRight()}for(var s=2;s0){fullname+="."}fullname+=name;if(eval("typeof "+fullname+' == "undefined"')){eval(fullname+"={};")}}}}$.i18n.normaliseLanguageCode=function(settings){var lang=settings.language;if(!lang||lang.length<2){if(settings.debug){debug("No language supplied. Pulling it from the browser ...")}lang=(navigator.languages&&navigator.languages.length>0)?navigator.languages[0]:(navigator.language||navigator.userLanguage||"en");if(settings.debug){debug("Language from browser: "+lang)}}lang=lang.toLowerCase();lang=lang.replace(/-/,"_");if(lang.length>3){lang=lang.substring(0,3)+lang.substring(3).toUpperCase()}return lang};function unescapeUnicode(str){var codes=[];var code=parseInt(str.substr(2),16);if(code>=0&&code