一、思路

前段时间做了一个双语网站,记录一下自己实现国际化的方式。

实现国际化有两种方法。

1、第一种调用必应、百度、微软等翻译接口实时翻译。

  • 优点:对于开发者来说非常省时省力,在前端直接调用接口翻译,使用js保存cookie进行语言切换,翻译效果也还可以。
  • 缺点:每次切换页面最先显示的是中文,然后在翻译成其他语言,而且翻译插件都会自带一些弹出层,不好看,用户体验不好。

2、第二种是使用i18n配置结合英文数据库。静态内容走配置,动态内容存放在数据库中。

  • 优点:能够根据需求写入翻译过的内容,比第一种实时翻译更准确。
  • 缺点:每种语言都要写一个配置文件,后期维护麻烦,工作量巨大。

二、举例

1、谷歌翻译

<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head><meta charset="utf-8" /><title>TranslateTool</title>
</head>
<body><div>Just do it.</div><!--谷歌翻译--><div id="google_translate_element"></div><script>function googleTranslateElementInit() {new google.translate.TranslateElement({layout: google.translate.TranslateElement.InlineLayout.HORIZONTAL}, 'google_translate_element');}</script><script src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
</body>
</html>

效果:

2、必应翻译

<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head><meta charset="utf-8" /><title></title>
</head>
<body><div>Just do it.</div><div>Just do it.</div><div>Just do it.</div><div>Just do it.</div><div>Just do it.</div><!--必应翻译--><div id='MicrosoftTranslatorWidget' class='Dark' style='color:white;background-color:#555555'></div><script type='text/javascript'>setTimeout(function () { { var s = document.createElement('script'); s.type = 'text/javascript'; s.charset = 'UTF-8'; s.src = ((location && location.href && location.href.indexOf('https') == 0) ? 'https://ssl.microsofttranslator.com' : 'http://www.microsofttranslator.com') + '/ajax/v3/WidgetV3.ashx?siteData=ueOIGRSKkd965FeEGM5JtQ**&ctf=True&ui=true&settings=Manual&from='; var p = document.getElementsByTagName('head')[0] || document.documentElement; p.insertBefore(s, p.firstChild); } }, 0);</script>
</body>
</html>

效果:

3、微软翻译

<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head><meta charset="utf-8" /><title></title>
</head>
<body><div>Just do it.</div><!--微软翻译--><div id="MicrosoftTranslatorWidget" style="width: 100%; min-height: 57px; border-color: #170D07;background-color: #362F2A;"><noscript><a href="http://www.microsofttranslator.com/bv.aspx?a=http%3a%2f%2flocalhost%2f">Translatethis page</a><br />Powered by <a href="http://www.microsofttranslator.com">Microsoft® Translator</a></noscript></div><script type="text/javascript">/* <![CDATA[ */setTimeout(function () {var s = document.createElement("script");s.type = "text/javascript";s.charset = "UTF-8";s.src = "http://www.microsofttranslator.com/Ajax/V2/Widget.aspx"+ "?mode=auto"+ "&from=en"+ "&layout=ts"+ "&appId=<%= InteractiveSDK.Properties.Settings.Default.WidgetAppId %>";var p = document.getElementsByTagName('head')[0] || document.documentElement; p.insertBefore(s, p.firstChild);}, 0);/* ]]> */</script>
</body>
</html>

效果:

微软翻译我觉得太笨重,选择了比较轻量的必应翻译。使用了必应进行翻译觉得鼠标悬停在文字上背景图会变成淡黄色,这个弹出层也不好看

就把引用的js保存到本地,修改混淆后的css样式。折腾了大半天,终于去掉了难看的样式,本以为这样就完事了。回家打开网站一看翻译失效了,刚开始以为是下午调试太多,把免费翻译的量用完的原因,换了一个appid改上去就能用了。第二天到公司一看翻译又失效了,查了很多资料保存到本地后那个appid是会过期的。于是我就去官网尝试申请个appid,但是现在必应官网改了以后申请appid非常麻烦,还必须要外国的银行卡。。这我哪会有,太麻烦了果断放弃。

4、i18n配置+英文数据库

首先在src目录下新建两个名为xx_en_US.properties和xx_zh_CN.properties的配置文件。注意:两个文件的第一个下划线前的名字必须相同,后面的也不能出错,不然会导致找不到资源无法翻译。

我就拿注册页面来举例吧。

英文页面配置信息:

中文页面配置信息:

然后在jsp页面导入fmt标签

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%String code=request.getParameter("code");if(code!=null){if("en".equals(code)){session.setAttribute("locale", Locale.US);session.setAttribute("code", "en");}else if("zh".equals(code)){session.setAttribute("locale", Locale.CHINA);session.setAttribute("code", "zh");}}%><c:if test="${sessionScope.locale!=null }"><fmt:setLocale value="${sessionScope.locale }"/></c:if><fmt:setBundle basename="register"/><title><fmt:message key="title"/></title>

上面代码就把标题title变成了双语。

注册页面的国际化就实现了。

JAVA SSM实现国际化 中英双语网站相关推荐

  1. 服装面料加工中英双语网站搭建模板

    服装面料定制加工公司中英双语网站搭建模板,首页界面干净高端,服装设计和品牌服饰通用模板,排版整齐干净,使用最新织梦程序制作使用简单方便,本套织梦模板采用织梦最新内核开发的模板,这款模板使用范围广,不仅 ...

  2. php网站设计思路,[PHP] 中英双语网站的设计思路

    1. 前几天开发一个  , 实现思路大部分情况下 , 我们可以想到是使用一个语言包数组文件 . key和value的形式 , 我们在展示界面时 , 输出数组对应的key而不是固定写死这个值 大概的设计 ...

  3. php宠物网站源代码,PHP响应式中英双语宠物医院网站整站源码(自适应手机移动端) dedecms内核...

    [温馨提示]源码包解压密码:www.youhutong.com 资源描述 PHP响应式中英双语宠物医院网站整站源码(自适应手机移动端) dedecms内核 源码介绍: 织梦最新内核开发的模板,该模板属 ...

  4. 中英双语多语言外贸企业网站源码系统 - HanCMS - 安装部署教程

    随着跨境独立站的流行,中英双语的公司官网越来越受到重视. 此项目是基于开源CMS开发出的中英文双语外贸企业网站内容管理系统,命名HanCMS HanCMS 汉CMS中英双语多语种外贸网站系统,是一个轻 ...

  5. PBOOTCMS中英双语企业网站模板

    PBOOTCMS中英双语企业网站模板,兼容手机.平板.电脑设备. 中英文双语自由切换功能,后台数据分开模板分开调用. 适用于:灯具.灯饰.五金.电子.机械设备.家纺.饰品等类! 自定义标题/关键词描述 ...

  6. [ dede织梦模板] [免费分享] 中英双语版自适应通用企业网站源码 家具家居产品企业网站模板+手机版

    标题 中英双语版自适应通用企业网站dede织梦模板下载源码 源码类型:响应式 是否带手机版:带手机版 下载链接 http://www.bytepan.com/wQn5WUpshg9 图片

  7. 【中英双语】Java Persistence Hibernate 和 JPA 基础教程

    [中英双语]Java Persistence Hibernate 和 JPA 基础教程 关于 Java Persistence API (JPA) 与 Hibernate 的简单易学和易于理解的课程 ...

  8. Python Tutorial中英双语对照文档5

    Python Tutorial中英双语对照文档4 CHAPTER THIRTEEN WHAT NOW? 现在咧? Reading this tutorial has probably reinforc ...

  9. 搜狗上线海外权威健康搜索 支持中英双语一键切换

    2018年4月25日,搜狗搜索交出利好财报成绩单的同时,升级全球权威健康信息搜索,再度发力"人工智能+健康"赛道.在"全球权威健康信息问搜狗--搜狗搜索权威健康信息发布会 ...

最新文章

  1. SAP到SAP的升级 --- SAP行业新的金矿
  2. WINDOWS下安装MYSQL—图文详解
  3. Stanford UFLDL教程 实现主成分分析和白化
  4. iometer测试工具
  5. 用最简单的方式训练史上最强ResNet-50,性能超过魔改结构的ResNeSt
  6. 用HttpListener做web服务器,简单解析post方式过来的参数、上传的文件
  7. 事故现场之依赖了不该依赖的 host ip
  8. 带有Java DSL的Spring Integration MongoDB适配器
  9. [置顶] 再谈学习方法
  10. XCode 4.2.1 项目的几个模版说明
  11. 32怎么将mcu内的代码擦除_凭借这款MCU产品,瑞萨电子竟然超越了ARM?
  12. Spring Boot学习总结(24)——Spring Boot 2.5 新特性一览
  13. 开源软件许可协议简介
  14. 图:中国航天六院演讲比赛使用的用户自定义的PPT界面_[评委计分系统-双屏专业版]提供支持
  15. External Libraries中没有Maven的jar包的原因(已解决)
  16. asp.net高校宿舍后勤管理系统案例
  17. android 汉字 转 拼音首字母,Android开发之拼音转换工具类PinyinUtils示例
  18. mysql es 父子关系 下级数据查询效率对比
  19. 三极管工作原理_3分钟分析稳压三极管工作原理
  20. 应用程序无响应的原因

热门文章

  1. 华硕B460m plus+Intel 10400+AMD 5500xt黑苹果EFI引导
  2. springcloud日志收集框架_从零开始入门K8S| 从Spring Cloud到Kubernetes的微服务迁移实践...
  3. 粒子效果 Particles
  4. 搜狗输入法mac 制裁问题
  5. 高效办公小工具:AutoHotkey(进阶版)——自定义组合键打开指定应用与网页,手机号邮箱等自动补全
  6. 老杳:小米最终竞争对手是电商不是手机公司
  7. NetSuite:企业中最常见的云ERP运维问题(下)
  8. 微信小程序基础学习(WXSS+组件)
  9. 无线移动通信中的多普勒效应及其消除方法
  10. matlab一致性检验