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

    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. USB2.0协议笔记

    1.概述     USB(Universal Serial Bus)具有传输速率快,可热插拔等显著特点,应用已经十分广泛,目前的相当多的设备已经支持最新的USB3.0协议.理论上USB1.1的传输速度 ...

  2. NSURLSession

    参考文章1, apple文档 一.NSURLSessionConfiguration 介绍:分别配置每一个 session 对象.(NSURLConnection 很难做到) 分类: 1) defau ...

  3. JMX初体验

    这些天在看<How Tomcat Works>这本书.里面讲到了JMX的内容.对我来说是个新知识点. JMX--Java Management Extensions,即Java管理扩展,是 ...

  4. C# 判断字符串是否为日期格式

    判断字符串内容是否为日期格式,并返回一个日期变量 string str; DateTime dtTime; if (DateTime.TryParse(str, out dtTime)) { //st ...

  5. php--rbac权限

  6. 【android学习3】解决Android界面布局添加EditView之后无法预览问题

    在设计登陆界面时,拖入一个EditView之后发现界面无法预览 问题分析: 进入xml源文件里发现一个警告,提示添加inputType或者hint元素,添加后界面仍然无法预览... 仔细查看了当前使用 ...

  7. css背景图片定位练习(二): background-position的百分比

    background-position:x y; 百分比定位并不能直观的看出来,需要通过计算. background-position百分比计算公式: (容器宽度—背景图片的宽度)*x%=xpx(容器 ...

  8. Maven实战(三)Eclipse构建Maven项目

    1. 安装m2eclipse插件    要用Eclipse构建Maven项目,我们需要先安装meeclipse插件    点击eclipse菜单栏Help->Eclipse Marketplac ...

  9. jquery.autocomplete.js 两种实现方法

    <script type="text/javascript"> var v = 1; var stockInfoJson = [ { "name": ...

  10. [LeetCode]题解(python):039-Combination Sum

    题目来源 https://leetcode.com/problems/combination-sum/ Given a set of candidate numbers (C) and a targe ...