日期:2014-05-16  浏览次数:20364 次

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": "条件",<