当前位置:去回答>生活百科>JS实现多语言方式 -电脑资料

JS实现多语言方式 -电脑资料

2024-09-24 06:13:42 编辑:join 浏览量:591

JS实现多语言方式 -电脑资料

通过主动发消息的方式,在页面完成初始化前,获取当前语言选项,并且根据该语言选项,调用对应的JS文件(每种语言对应一个JS文件)解析页面。

$(document).on("pageinit",function(){ /*Kaiwii 向本地代码发请求获取当前语言种类*/ }); 本地语言框架触发回调函数(JS方法):根据语言选项,动态将对应语言的JS文件嵌入HTML并且触发其执行;

/*Kaiwii 本地语言框架回调本方法*/function GetLanguageCodeCallBack(Jstring,ERROR){ var i18File = $("script[name='i18']"); if(i18File.length==0){//没有成功加载js文件 var i18FileLink = ""; switch (Jstring){ case "EN": i18FileLink = ""; break; case "CN": i18FileLink = ""; break; } $("head").append(i18FileLink); }else{//成功加载js文件 switch (Jstring){ case "EN": $(i18File).attr("src","../../js/i18.js"); break; case "CN": $(i18File).attr("src","../../js/i18_CN.js"); break; } /*主动触发更新HTML*/ updatei18Spans(); }} 不同语言对应的JS文件(如i18.js):1、使用JSON对象存储KEY-VALUE[不同语言版本的JS文件仅仅是VALUE不同(VALUE为对应语言版本中的值)];2、HTML中的静态部分需要调用JS方法修改DOM对象的属性方式完成多语言动态化(通过调用updatei18spans()触发);动态部分直接调用即可;

/*用于国际化*//*对应关系表(key为元素的ID,value为国际化下的显示内容*//*span 部分*/var spans = {"DemandDepositAccountTitle":"CCB Current Account"};//本地代码交互的部分var locale_vars = {"enquiryTitle":"Account Info Inquiry"};var i18placeholder = {"请输入单位名称或账号":"Organization‘s Name/Account"," 开始日期":"Start Date"," 截止日期":"End Date"};function updatei18Spans(){ for(index in spans){ $("span[i18Id=‘"+index+"‘]").html(spans[index]); } for(index in i18placeholder){ $("input[placeholder=‘"+index+"‘]").attr("placeholder",i18placeholder[index]); }}$(function(){//加载显示内容方法 updatei18Spans(); }); 调用多语言动态框架修改:1、静态部分:HTML上:

2、动态部分:JS代码中:liElement += ""+locale_vars.enquiryTitle+"";

标签:JS,电脑,语言

版权声明:文章由 去回答 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.quhuida.com/life/271658.html
热门文章