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

    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. BLE-NRF51822教程18-overview

    转自:http://blog.csdn.NET/xgbing 蓝牙协议栈 nrf51822开发中,蓝牙协议栈和应用开发是分开的. (1)兼容蓝牙4.0低功耗协议栈基带层,L2CAP\AAT\SM\GA ...

  2. UI auto test

    java.home/lib/security/java.policy (Solaris/Linux) http://www.cnblogs.com/richaaaard/p/5091059.html ...

  3. Qt 自定义 滚动条 样式(模仿QQ)

    今天是时候把软件中的进度条给美化美化了,最初的想法就是仿照QQ. 先前的进度条是这样,默认的总是很难受欢迎的:美化之后的是这样,怎么样?稍微好看一点点了吧,最后告诉你实现这个简单的效果在Qt只需要加几 ...

  4. Qt之窗体拖拽、自适应分辨率、自适应大小 good

    Qt之自定义界面(实现无边框.可移动) Qt之自定义界面(窗体缩放-跨平台终极版) Qt之自定义界面(窗体缩放) http://blog.csdn.net/liang19890820/article/ ...

  5. EntityFramework更新数据

    1.TryUpdateModel 使用很方便,但实际更新数据的过程还是先select,再update.另外发现一个问题,对于input的type类型file的字段,无法使用TryUpdateModel ...

  6. (letcode)String to Integer (atoi)

    Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. ...

  7. [iOS]如何把App打包成ipa文件,然后App上架流程[利用Application Loader]

    摘自:http://www.cnblogs.com/wangqi1221/p/5240281.html 在上一篇博客已经讲过上传项目了,但是有的时候,需要我们进行打包成ipa包到别的手机上跑(但是前提 ...

  8. 12 Tips for Accurate Project Estimating

    Projects typically involve many dynamic aspects, yet they're often constrained by finite conditions. ...

  9. Spring MVC框架下在java代码中访问applicationContext.xml文件中配置的文件(可以用于读取配置文件内容)

    <bean id="propertyConfigurer" class="com.****.framework.core.SpringPropertiesUtil& ...

  10. XiaoShi657的留言板

    大家好,很荣幸能够借助此平台和大家分享.讨论编程技术! 有什么想对我说的请在这里留言吧