读书人

javascript实现多语言碰到的有关问题

发布时间: 2013-10-30 12:56:22 作者: rapoo

javascript实现多语言碰到的问题
本帖最后由 shayeyekai 于 2013-10-12 11:28:47 编辑 JavaScript实现中、英双语时碰到如下问题:

目前做法:JavaScript中的“提示信息” 是读取服务器目录中的zh_Cn.xml(中文)和en_Us.xml,

问 题:有时会出现延迟,并读取zh_Cn.xml失败。

解决办法:把原来的语言文件写在代码里面,这样就不会去服务器中读取这些文件了,思路如下:


/**
*index 要获取的语言内容
*type 要获取的语言类型
*@return 返回语言
*/
function get_Language(index,type){
//临时字符串
var bufferStr="";
switch (index){
case 0:
//把语言直接赋值给临时的变量
bufferStr="中文,English";
break;
case 1:
....
break;
}
//拆分为数组
bufferStr=bufferStr.split(",");
return bufferStr[type];
}


请教一下问题:
1、按照上面的写法,如果在一台没有安装中文的电脑上操作,会读取出来的中文信息是乱码吗?
2、上面写法是否实际解决了第一个的问题。这样写的坏处有那些。
3、通常JavaScript实现双语都是用那些方法
javascript 多语言 jsp js xml
[解决办法]
引用:
Quote: 引用:

最近刚写了一个js的双语言,网站内容不多,我用的是json来保存要用到的提示信息,使用哪种语言我直接保存在cookie中,js初始化时读取cookie,多语言提示全部用变量来表示

var lang = getCookie("cookieName"); // lang=en-US
lang = lang.substring(5);
var Mes = new JsMes(lang);


function getCookie(name) // 获取cookie
{
var arr,reg=new RegExp("(^
[解决办法]
)"+name+"=([^;]*)(;
[解决办法]
$)");

if(arr=document.cookie.match(reg))

return unescape(arr[2]);
else
return null;
}



function JsMes(lang)
{
this.lang = lang;
this.mesList = [{
"id": 0,
"cn": "部门/人员选择",
"tw": "部/人",
"en": "Department/Personnel selection"
},
{
"id": 1,
"cn": "条件",
"tw": "件",
"en": "criteria"
}];
}

JsMes.prototype.getMes = function (typeNum) {
var mes = "";
switch (lang) {
case "zh-cn":
mes = this.mesList[typeNum].cn;
break;
case "en-US":
mes = this.mesList[typeNum].en;
break;
case "zh-TW":
mes = this.mesList[typeNum].tw;
break;
default:
mes = this.mesList[typeNum].cn;
}
return mes;
}

//使用: alert(Mes.getMes(0));

恩 谢谢
如果当前使用的是纯英文版的电脑,那么读取出来的汉字会不会出现乱码?

这个我没试过,也没办法给你答案

读书人网 >JavaScript

热点推荐