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));
JS 实现中英文翻译的更多相关文章
- js截取中英文字符串、标点符号无乱码示例解读
<script> function subString(str, len, hasDot) { var newLength = 0; var newStr = ""; ...
- Socket的错误码和描述(中英文翻译)
Socket的错误码和描述(中英文翻译) //下面是Socket Error的错误码和描述: Socket error 0 - Directly send error Socket error 10 ...
- dict-命令行下中英文翻译工具
命令行下中英文翻译工具(Chinese and English translation tools in the command line) 安装(Install) ubuntu 安装 pip sud ...
- JS实现中英文混合文字溢出友好截取功能
在显示字符串的时候,避免字符串过长往往会对字符串进行截取操作,通常会用到js的 substr 或者 substring方法, 以及 字符串的length属性 substr() 方法可在字符串中抽取从 ...
- js实现网页中英文翻译
1,html 2,metrics.js 3,需要 http://www.microsoftTranslator.com/ajax/v3/WidgetV3.ashx?siteData=ueOIGRSKk ...
- 网页3D引擎“Babylon.JS”入门教程翻译总结
使用三个月的业余时间把官方教程的入门部分译为中文并上传到github,在下一步编程前做一个总结. 历程: 最早接触游戏编程是在大三下学期,用汇编语言和实验室里的单片机.触摸屏.电机(提供声效)编的打地 ...
- 前端使用vue-i18n做中英文翻译
vue-i18n 仓库地址:https://github.com/kazupon/vue-i18n 兼容性: 支持 Vue.js 2.x 以上版本 安装方法:(此处只演示 npm) npm insta ...
- You Don't Know JS: Scope & Closures(翻译)
Chapter 1: What is Scope? 第一章:什么是作用域 One of the most fundamental paradigms of nearly all programming ...
- js验证中英文
// 验证中英文 function check_en_ch(_value){ var reg_en_num = /^[0-9A-Za-z\'\"\,\.\!\?\:\s|“|”|‘|’|!| ...
随机推荐
- C# 64位系统中类型所占空间大小
Boolean 8Byte DateTime 8Byte Decimal 16Byte String 引用地址空间8Bypte Int 4Bypte 类所占空间大小 (byte):各个filed ...
- Nodejs路由之间的数据传递
实例是模拟登录页面提交表单,然后根据信息判断是否登录成功 login.js var express =require('express'); var router =express.Router(); ...
- 图解SSL/TLS协议
本周,CloudFlare宣布,开始提供Keyless服务,即你把网站放到它们的CDN上,不用提供自己的私钥,也能使用SSL加密链接. 我看了CloudFlare的说明(这里和这里),突然意识到这是绝 ...
- Excel 的一些用法--行号赋给一列
1.鼠标选定要赋值的列 2.在 输入 =Row() 3. Ctrl+Enter
- eclipse for hello world makefile
1. 工程文件分析 使用eclipse新建一个Hello World工程,假设工程名称是hello,此时eclipse在工程目录下新建了一个名为hello的文件夹: hello/ .cproject ...
- http://localhost/certsrv 错误找不到页面解决方法
http://localhost/certsrv 错误找不到页面解决方法 最近公司需要后台启动安全证书,可安装了“Active Directory证书服务” 后,http://localhost/ce ...
- Tuning SQL via case when statement
原SQL如下:SQL的主要问题是红色部分居然通过标量查询,反复的查找与SQL相同的基表,很显然这个可以用case when来简化. select a.TRAN_ID,a.AMOUNT,a.BALANC ...
- CentOS 6.8内核版本升级(升级至3.10)(转)
1.查看当前版本 [root@www.linuxidc.com docker]# cat /etc/issue CentOS release 6.8 (Final) Kernel \r on an \ ...
- 正确统计SQLServer的慢日志
RDS的一个富有吸引力的服务是为用户提供慢日志的运行状况报告.报告从不同的维度(总执行时间,总执行次数,总逻辑读,总物理读)为用户提供TOP20的SQL.RDS希望在为用户提供稳定,快速服务的同时,用 ...
- RabbitMQ学习总结 第六篇:Topic类型的exchange
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...