zoukankan      html  css  js  c++  java
  • JS 实现中英文翻译

         缺点就是还是会闪出中文,但是效果还行。

        

        var langPackage = {
    "主题":"Title",
        "下一页":"NextPage",
        "末页":"LastPage",
        "首页":" FirstPage ",
        "上一页":" PreviousPage ",
        "待办工作":"MyTasks",
        "中":"Middle",
        "每页":" EachPage ",
        "条":" Record ",
        "共":" Total ",
        "页":" Page ",
        "第":" Current ",
        "工作主题":" ProcTitle"
        };

    执行遍历 DOM 的逻辑

        /* 
            主调函数
            在 Jquery的 .read方法里调用 ReplaceChildChs($(document));
            或者页面的最后调用
            ReplaceChildChs($(document));
        */
        function ReplaceChildChs(nodeObj){
            // if($("#hdfUseLang").val()=="CN")return;
            if (nodeObj.children().length > 0){
                nodeObj.children().each(function(){
                   ReplaceChildChs($(this));
        //            if ($(this)[0].nodeName.toUpperCase() == "TD"){
                    FindChsAndReplaceIt($(this));
        //            }
                });
            } else {
                FindChsAndReplaceIt(nodeObj);
            }
        }
    
        // 直接替换html 的一种设想,但总是报错
        function JustReplaceChsDom(nodeObj){
            var pat = new RegExp("[u4e00-u9fa5]+","g"); // 匹配中文的正则表达式
            var str = $(nodeObj).html();
            while((arr = pat.exec(str)) != null){
                if (langPackage[arr[0]]){
                    str = str.replace(arr[0], langPackage[arr[0]]);
                }
            }
            $(nodeObj).html(str);
        }
    
        function FindChsAndReplaceIt(nodeObj){
            var pat = new RegExp("[u4e00-u9fa5]+","g");
            if ((nodeObj.text() || nodeObj.val() || nodeObj.attr("title")) 
                && (pat.exec(nodeObj.text()) || pat.exec(nodeObj.val()) || pat.exec(nodeObj.attr("title")) )){
                var str = ""
                if (nodeObj.text()){
                    str = nodeObj.text();
                    ReplaceValue(str, nodeObj, "text");
                }
                if (nodeObj.val()){
                    str = nodeObj.val();
                    ReplaceValue(str, nodeObj, "val");
                }
                if (nodeObj.attr("title")){
                    str = nodeObj.attr("title");
                    ReplaceValue(str, nodeObj, "title");
                }
            }
        } 
    
        function ReplaceValue(str, nodeObj, attrType){
          var arr;
          var pat = new RegExp("[u4e00-u9fa5]+","g");
          while((arr = pat.exec(str)) != null){
            if (langPackage[arr[0]]){
                str = str.replace(arr[0], langPackage[arr[0]]);
                
                if (attrType == "text"){
                    nodeObj.text(str);
                }
                else if (attrType == "val"){
                    nodeObj.val(str);
                }
                else if (attrType == "title"){
                    nodeObj.attr("title", str);
                }
            }
          }
        }

    ReplaceChildChs($(document));

  • 相关阅读:
    ubuntu系统上常用的开发工具
    wamp环境下安装pear
    PHP中preg_match_all函数用法使用详解
    晚睡对策
    iphone相关
    090213 阴
    月曜日の予定(10:30までREVIEW  10:00まで完成予定)
    一个通知
    我还没走
    星期5
  • 原文地址:https://www.cnblogs.com/zlfucku/p/3425626.html
Copyright © 2011-2022 走看看