将页面表国际化
程序员文章站
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;
}
}