网页中文转英文(国际化)

article/2025/9/18 3:46:02

背景:
我的项目是已经完成的项目,因为要拓展海外市场,需要支持英文。

采用的方式是添加配置文件,见下文详细步骤。

本文基本转自:http://blog.csdn.net/wuhawang/article/details/52228589
在他的基础上给大家一点提示补充:

1.将需要的js文件与其他公共js一起加载;
2.js中部分中文需要改写代码根据按钮取值来显示;
3.注意全局方法中的中文名不要忘记替换;
4.log日志不要改后台,直接再写一个js去匹配中文即可

5.个别插件会自动根据浏览器语言来展示按钮名称,设置浏览器默认的语言即可
下面为转载内容:

1.相关jar包下载

下载jquery.locale.js,下载地址为  https://github.com/coderifous/jquery-localize   将下载后的包加入到工程中即可使用.

然后web-xml中要加上

[html] view plain copy
print ?
  1. <servlet-mapping>  
  2.     <servlet-name>default</servlet-name>  
  3.     <url-pattern>*.json</url-pattern>  
  4. </servlet-mapping>  
<servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.json</url-pattern>
</servlet-mapping>

用来拦截json格式的数据,因为配置文件是以json文件的格式进行存储的.

2.中英文切换方案

a)  json文件

配置好相关的jar包和web-xml,我们在工程里对应的目录为相应的语言创建json文件,其中英文定义如下图所示,这里注意中文对应的要使用utf-8的格式进行存储(可以百度转义),否则页面会显示乱码.这里存储为text-zh.jsontext-en.json两个文件

英文文件

中文文件

其中如果需要引用某个字段的中英文,则为nav.index此类样式

b)  jsp页面

header.jsp页面上(这里demo中假设对header进行中英文切换),添加select控件,如下所示,select值改变后,触发方法chgLang.

[html] view plain copy
print ?
  1. <select id="ddlSomoveLanguage" onchange="chgLang();">  
  2.                <option value="zh">中文</option>  
  3.                <option value="en">ENGLISH</option>  
  4. </select>  
<select id="ddlSomoveLanguage" οnchange="chgLang();"><option value="zh">中文</option><option value="en">ENGLISH</option>
</select>

这里,假设修改中英文后,改变导航栏header.jsp的的中英文,所以还需要在nav.jsp里修改显示的值,如下所示.通过我们对每个需要显示的a标签,data-localize属性设置为对应的json文件里字段的名字,比如定义对象,就为data-localize=”nav.defineObj”.

[html] view plain copy
print ?
  1. <ul class="dropdown-menu">  
  2.                 <li><a id="action-1" data-localize="nav.defineObj" href="IdeJsp/defineObjSelect.jsp"></a></li>  
  3.                 <li><a data-localize="nav.defineTable" href="IdeJsp/defineTab.jsp"></a></li>  
  4.                 <li><a data-localize="nav.operateSql"  href="IdeJsp/ideSql.jsp"></a></li>  
  5. </ul>  
<ul class="dropdown-menu"><li><a id="action-1" data-localize="nav.defineObj" href="IdeJsp/defineObjSelect.jsp"></a></li><li><a data-localize="nav.defineTable" href="IdeJsp/defineTab.jsp"></a></li><li><a data-localize="nav.operateSql"  href="IdeJsp/ideSql.jsp"></a></li>
</ul>

c)  js文件

js文件负责控制页面切换以及coockies记录点击语言历史的功能.其代码如下所示,文件名为language-coockies.js,其中

$("[data-localize]").localize("text", {pathPrefix:"lang", language:"en"});pathPrefix表示json文件路径的前缀,texten对应文件名text-en.json

[javascript] view plain copy
print ?
  1. var name = "somoveLanguage";       
  2.       function  chgLang() {  
  3.          var value = $("#ddlSomoveLanguage").children('option:selected').val();   
  4.         SetCookie(name,value);  
  5.         location.reload();    
  6.            }       
  7.       function  SetCookie(name,value){   
  8.       var Days = 30; //此 cookie 将被保存 30 天  
  9.           var exp = new Date();    //new Date("December 31, 9998");  
  10.           exp.setTime(exp.getTime() + Days*24*60*60*1000);  
  11.           document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();  
  12.        }  
  13.     function getCookie(name)//取cookies函数     
  14.     {  
  15.     var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));  
  16.      if(arr != nullreturn unescape(arr[2]); return null;  
  17.     }  
  18.     $(function() {  
  19.         var uulanguage = (navigator.language || navigator.browserLanguage).toLowerCase();  
  20.                 if (uulanguage.indexOf("en") > -1) {  
  21.                     $("[data-localize]").localize("text", {pathPrefix: "lang", language: "en"});  
  22.                }else if (uulanguage.indexOf("zh") > -1) {  
  23.                  $("[data-localize]").localize("text", {pathPrefix: "lang", language: "zh"});  
  24.               }else{  
  25.               $("[data-localize]").localize("text", {pathPrefix: "lang", language: "en"});  
  26.               };          
  27.          if (getCookie(name) != "") {  
  28.              if (getCookie(name) == "zh") {  
  29.                  $("[data-localize]").localize("text", {pathPrefix: "lang", language: "zh"});   
  30.             }  
  31.              if (getCookie(name) == "en") {  
  32.                  $("[data-localize]").localize("text", {pathPrefix: "lang", language: "en"});       
  33.             }  
  34.         }  
  35.     });  
var name = "somoveLanguage";	 function  chgLang() {var value = $("#ddlSomoveLanguage").children('option:selected').val();	SetCookie(name,value);location.reload();  }	 function  SetCookie(name,value){ var Days = 30; //此 cookie 将被保存 30 天var exp = new Date();    //new Date("December 31, 9998");exp.setTime(exp.getTime() + Days*24*60*60*1000);document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();}function getCookie(name)//取cookies函数   {var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));if(arr != null) return unescape(arr[2]); return null;}$(function() {var uulanguage = (navigator.language || navigator.browserLanguage).toLowerCase();if (uulanguage.indexOf("en") > -1) {$("[data-localize]").localize("text", {pathPrefix: "lang", language: "en"});}else if (uulanguage.indexOf("zh") > -1) {$("[data-localize]").localize("text", {pathPrefix: "lang", language: "zh"});}else{$("[data-localize]").localize("text", {pathPrefix: "lang", language: "en"});};        if (getCookie(name) != "") {if (getCookie(name) == "zh") {$("[data-localize]").localize("text", {pathPrefix: "lang", language: "zh"}); }if (getCookie(name) == "en") {$("[data-localize]").localize("text", {pathPrefix: "lang", language: "en"});     }}});

设置好后再登录就会出现下面的中英文切换的效果

http://chatgpt.dhexx.cn/article/ckgnt6vE.shtml

相关文章

英语数字转换器

英语数字转换器 STL中map&#xff0c;stack和string的运用 描述&#xff1a; 在这个问题中&#xff0c;将用英语给你一个或多个整数。你的任务是将这些数字转换成整型表示。数字范围从-999,999,999到999,999,999.下面是你的程序必须考虑的详尽的英语单词表&#xff1a; neg…

Unity 中英文转换

在Resources下创建文件夹LanguageTxt&#xff0c;再其创建“Chinese.txt”及“English.txt”&#xff08;记得保存文本时选择UTF-8&#xff09; Chinese.txt Btn:这是一个按钮 English.txt Btn:This is a button 在Scripts下创建“LanguageManager.cs”及“UIText.cs” L…

SAP中英文转换--中文转英文

中文转英文-函数&#xff1a;CONVERSION_EXIT_CUNIT_INPUT CALL FUNCTION ‘CONVERSION_EXIT_CUNIT_INPUT’ EXPORTING input “输入的中文单位 IMPORTING output “输出的英文单位 效果图&#xff1a;

SAP 中英文转换-英转中

英文转中文-函数&#xff1a;CONVERSION_EXIT_CUNIT_OUTPUT CALL FUNCTION ‘CONVERSION_EXIT_CUNIT_OUTPUT’ EXPORTING input “输入的英文单位 IMPORTING output “输出的中文单位

将数字转换为中文

功能需求 做公司项目遇到一个有关交易金额&#xff08;合同签订书&#xff09;的内容&#xff0c;需要将查询出来的交易金额转化为中文数字&#xff0c;例如&#xff1a;壹拾捌万伍仟元整&#xff08;185000.00&#xff09; 需求分析 因为合同书中的数据都是动态的&#xff0c…

Java 16进制报文转换中英文报文(通过字节转换)

最近在搞这个16进制报文,网上找了很多地方&#xff0c;解出来的结果不是乱码就是报错&#xff0c;干脆自己写了。 大概是这样的&#xff0c;16进制的报文大家都知道是什么样子 例如: 3C E4 BA A4 E6 98 93 E6 88 90 E5 8A 9F EF BC 81 3E 20 3C 42 61 6B 31 2F 3E 因为其中包…

通过C#进行中英文转换

通过C#进行中英文转换 编写相应语言的XML文件&#xff0c;添加xml文件 ChineseSimplified.xml文件内容 <?xml version"1.0" encoding"GB2312" ?> <Softimite Language"12"><Form><Name>LoginForm</Name><…

【Adobe After Effects中英文转换2019——2023版】

** Adobe After Effects中英文转换2019——2023版 ** 如果是默认安装的软件&#xff0c;在桌面右击AE图标&#xff0c;点击打开文件所在位置&#xff0c;来到软件安装目录 C:\Program Files\Adobe\Adobe After Effects 2023\Support Files 找到AMT文件夹 点击进入&#xf…

在线中英文符号转换工具

在线中英文符号转换工具 在线中英文符号转换工具 将中文符号转换成英文符号或将英文符号转换成中文符号&#xff0c; 将单引号‘’都转换成’&#xff0c; 将双引号“”都转换成" 将中括号【】转换成[]&#xff0c; 将大括号&#xff5b;&#xff5d;转换成{} 将逗号&…

英文表格如何快速转换为中文?

今天跟大家分享一下英文表格如何快速转换为中文&#xff1f; 1.首先打开Excel文件&#xff0c;选中要翻译的单元格&#xff0c;点击【DIY工具箱】 ​ 2.点击【翻译】 3.选择【有道翻译】 4.将翻译语言设置为中文&#xff0c;然后点击【确定】 5.鼠标点击一个合适的单元格作为翻…

英文转换-在线英文批量转换器免费

英文转换&#xff0c;怎么找到好的英文转换器&#xff1f;今天给大家分享一款免费批量的英文转换器汇集了世界最好的几个翻译平台&#xff08;百度/谷歌/有道&#xff09;&#xff0c;为什么这么多人使用它&#xff1f;首先第一点翻译质量高&#xff0c;选择性多。第二点可以批…

php 英文转中文,中文转换成英文

[php]代码库/** * 中文转换成英文 */ function pinyin($_String, $_Codegb2312){ $_DataKey "a|ai|an|ang|ao|ba|bai|ban|bang|bao|bei|ben|beng|bi|bian|biao|bie|bin|bing|bo|bu|ca|cai|can|cang|cao|ce|ceng|cha". "|chai|chan|chang|chao|che|chen|cheng|c…

C#小知识之中英文转换、去空格

一、中英文转换 1、安装NPinYin 2、编写代码 string str "这里是测试的中文字符串"; string str1 Pinyin.GetChineseText(str); string str2 Pinyin.GetInitials(str); string str3 Pinyin.GetPinyin(str);Console.WriteLine("取和拼音相同的汉字列表&…

Qt 语言家实现中英文切换(解决纯代码添加部件的中英文转换问题)

Qt 语言家实现中英文切换&#xff08;解决纯代码添加部件的中英文转换问题&#xff09; 关于.ts和.qm文件的生成&#xff0c;更新翻译、发布翻译等步骤就不多说了&#xff0c;其他博主有大量的描述。 现在我要解决的是中英文未完全转换的问题如下图&#xff1a; 如上图所示&a…

系统的学习网络编程,这篇就够了!(来收藏夹里吃灰)

主机字节序和网络字节序&#xff1a; 在32位机器上&#xff0c;累加器一次能装载4个字节&#xff0c;这四个字节在内存中排列顺序将影响它被累加器装载成的整数的值 大端字节序&#xff08;网络字节序&#xff09;&#xff1a;一个整数的高位字节存储在内存的低地址处 小端字节…

玩转RT-Thread之荔枝派Nano(全志F1C100S) 新手上路

玩转RT-Thread之荔枝派Nano(全志F1C100S) 一、新手上路 --作者&#xff1a;燕十三(flyingcys) blog:http://blog.csdn.net/flyingcys --荔枝派nano/RTT非官方群&#xff1a;711174828 在此感谢 RT-Thread官方成员uestczyh222提供的荔枝派Nano内核移植、rttbootloader文件、…

技术杂谈-再谈软硬SDN(2)

以下文章来源于微信公众号&#xff1a;网络里卖艺的小青年 &#xff0c;作者我就是那个KK 不好意思&#xff0c;本文有点长&#xff0c;需要阅读10-15分钟。 上一篇文章得到了很多朋友的反馈&#xff0c;软硬SDN各自有各自的优势和特点&#xff0c;对于之前的文字&#xff0c;…

技术杂谈-再谈软硬SDN(1)

以下文章来源于微信公众号&#xff1a;网络里卖艺的小青年 &#xff0c;作者KkBLuE 我曾在SDNLAB和TF中文社区联合举办的直播活动上做了一次分享&#xff0c;讨论到软件SDN和硬件SDN的话题&#xff0c;巧合的是&#xff0c;看到国内大牛厂家也在讨论软硬之路&#xff0c;于是就…

展示一下香蕉派路由Android系统

没什么好说的&#xff0c;第一版的系统&#xff0c;Android部分还可以&#xff0c;路由设置确实有闪退现象。等稳定版发布&#xff0c;可以把机顶盒和路由二合一&#xff0c;再接个SSD&#xff0c;还是很不错的。 硬件 开机 桌面 安卓程序 安卓设置 可以打开USB调试&#xff0…

网络收集的逻辑思维题

一个有意思的逻辑训练题目 题目如下&#xff1a; 有两个大于1小于100的自然数x,y&#xff0c;老师告诉小明两个数的和&#xff0c;告诉小强两个数的积。已知小明和小强足够聪明。 下面是两个人的对话&#xff1a; 小强&#xff1a;我不知道这两个数是多少。&#xff08;<沉默…