欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

将页面表国际化

程序员文章站 2022-05-16 10:30:56
...

var language;
$(function(){
if("chinese"==language){
$("select[name='language']").val("chinese");
}
language=getCookie("language");
if("chinese"==language){
chineseLabel();
}
var i18nsectionList=$(".ion18section");
for(var i=0;i<i18nsectionList.length;i+=1){
var section_content=$(i18nsectionList[i]).html();
var section_result=lang_section.getChineseInform(section_content,language);
$(i18nsectionList[i]).html(section_result);
}

});

function chineseLabel(){
var ino18List=$(".ion18");
var ishaveValue=true;
for(var i=0;i<ino18List.length;i+=1){
var content=$(ino18List[i]).val();
if(ino18List[i].localName=="option"){
content="";
}
if(!content){
content=$(ino18List[i]).html();
ishaveValue=false;
}
var result= lang.getChineseInform(content);
if(!ishaveValue){
$(ino18List[i]).html(result);
}else{
$(ino18List[i]).val(result);
}
ishaveValue=true;
}
}

function getLabelNameForI18n(labelName){
if("chinese"==language){
return lang.getChineseInform(labelName);
}else{
return labelName;
}
}
function getSectionMessegeForI18n(labelName){
return lang_section.getChineseInform(labelName,language);
}


/***针对页面中标题等英文需要翻译时的国际化的实现方式,messege保存的信息 Key:对照前面是 英文语句的去掉空格,将一些非法字符
* 转义,变小写等处理后的字符串,value:对应的中文名
*/
var lang={
messege:{
home:"主页",
manager:"后台管理",
help:"帮助",
},
getChineseInform:function (name){
var content= replaceAllSpace(name);
var first_char=content.charAt(0);
if(!isNaN(first_char)){
content="_"+content;
}
lowerName=content.toLowerCase();
return this.messege[lowerName];
}
}
/*
* 去掉字符串所有空格
*/
function replaceAllSpace(content){
while(content.indexOf("-")!=-1){
content=content.replace("-","_");
}
return content.replace(/\s/g,'');
}
/**针对页面中,大段英文需要翻译时的国际化的实现方式,用上述方式,key太长,不易比较
* messege 的key 命名规则:分为2种
* 一种为 页面名称+"_"+位置代号 如:fixingproducedure_node1 表示在fixingproducedure.html页面类的 node处
* 一种为 功能名称+messege 如:downloadmessege 表示在下载数据时的消息提示信息
* Please make sure a constant main power
is always on to the gateway box.
*/
var lang_section={
messege:{fixingproducedure_a:{
en_messege:". If the system is not working, please check on the following things:",
zh_messege:". 如果系统不能正常工作,请检查下列事项:"
},

},
getChineseInform:function (name,language){
var result=name;
var content= replaceAllSpace(name);
lowerName=content.toLowerCase();
if(language=="chinese"&&this.messege[lowerName]){
result= this.messege[lowerName].zh_messege;
}else{
result= this.messege[lowerName].en_messege;
}

return result;
}
}
相关标签: 国际化