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

    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));

JS 实现中英文翻译的更多相关文章

  1. js截取中英文字符串、标点符号无乱码示例解读

    <script> function subString(str, len, hasDot) { var newLength = 0; var newStr = ""; ...

  2. Socket的错误码和描述(中英文翻译)

    Socket的错误码和描述(中英文翻译) //下面是Socket Error的错误码和描述: Socket error 0 - Directly send error  Socket error 10 ...

  3. dict-命令行下中英文翻译工具

    命令行下中英文翻译工具(Chinese and English translation tools in the command line) 安装(Install) ubuntu 安装 pip sud ...

  4. JS实现中英文混合文字溢出友好截取功能

    在显示字符串的时候,避免字符串过长往往会对字符串进行截取操作,通常会用到js的 substr 或者 substring方法, 以及 字符串的length属性 substr() 方法可在字符串中抽取从 ...

  5. js实现网页中英文翻译

    1,html 2,metrics.js 3,需要 http://www.microsoftTranslator.com/ajax/v3/WidgetV3.ashx?siteData=ueOIGRSKk ...

  6. 网页3D引擎“Babylon.JS”入门教程翻译总结

    使用三个月的业余时间把官方教程的入门部分译为中文并上传到github,在下一步编程前做一个总结. 历程: 最早接触游戏编程是在大三下学期,用汇编语言和实验室里的单片机.触摸屏.电机(提供声效)编的打地 ...

  7. 前端使用vue-i18n做中英文翻译

    vue-i18n 仓库地址:https://github.com/kazupon/vue-i18n 兼容性: 支持 Vue.js 2.x 以上版本 安装方法:(此处只演示 npm) npm insta ...

  8. You Don't Know JS: Scope & Closures(翻译)

    Chapter 1: What is Scope? 第一章:什么是作用域 One of the most fundamental paradigms of nearly all programming ...

  9. js验证中英文

    // 验证中英文 function check_en_ch(_value){ var reg_en_num = /^[0-9A-Za-z\'\"\,\.\!\?\:\s|“|”|‘|’|!| ...

随机推荐

  1. Erlang ERTS的Trap机制的设计及其用途

    出处:http://mryufeng.iteye.com/blog/334744 erlang的trap机制在实现中用的很多,在费时的BIF操作中基本上都可以看到.它的实现需要erl vm的配合.它的 ...

  2. Qt调用dll中的功能函数

    声明: 事先我已经自己动手写了一个简单的dll文件(myDLL.dll),C版接口的.并且用我前两篇有关DLL文章里面的方法,从dll中导出了导入库(.lib)文件,dll中有两个函数,原型如下:   ...

  3. Tornado-简介

    定义 Tornado全称为Tornado Web Server,是一个用Python写的Web服务器和应用框架,最终由FriendFeed公司使用,后来FriendFeed被Facebook收购之后, ...

  4. undefined和void

    1.undefined undefined在js中并不是关键字/保留字,因此在IE5.5~8中可以对undefined赋值,但是在IE9以上,对其赋值是无效的 <script> var a ...

  5. JavaScript实现进入某一页面时自动将鼠标光标放在某一textbox上

    <script language="javascript" type="text/javascript"> var txtText0 = " ...

  6. iOS:BitCode的介绍

    一.什么是BitCode?作用是什么? Bitcode is an intermediate representation of a compiled program. Apps you upload ...

  7. JQuery:JQuery添加元素

    JQuery:添加元素通过 jQuery,可以很容易地添加新元素/内容.添加新的HTML内容.我们将学习用于添加新内容的四个jQuery方法: append() - 在被选元素的结尾插入内容 prep ...

  8. nginx源码分析—内存池结构ngx_pool_t及内存管理

    Content 0. 序 1. 内存池结构 1.1 ngx_pool_t结构 1.2 其他相关结构 1.3 ngx_pool_t的逻辑结构 2. 内存池操作 2.1 创建内存池 2.2 销毁内存池 2 ...

  9. Android实现app长时间未操作时自动退出app

    这里要考虑3个问题,第一个是锁屏问题,第二个是app被切换至后台的问题,第三个是屏幕锁定和解除时app在后台时的问题 一,监听屏幕解锁,锁定 ? 1 2 3 4 5 6 7 8 9 10 11 12 ...

  10. C# --System.Timers.Timer 定时方法

    注意Start() 注意要等Interval 时间间隔 static void Main(string[] args) { System.Timers.Timer t = new System.Tim ...