springMVC 国际化(多语言) 配置

系统有时需要考虑多国人员使用(比如中国人、美国人、日本人、韩国人),面向不同国家的使用者应该能方便地在不同语言之间进行切换,比如中文、英文、日文、韩文。

常用的有两种方式:(1)根据浏览器默认语言设置系统语言;   (2)根据页面连接手动选择系统语言(放入cookie);

还有session方式,没有细究。

一、两种方式设置的大概模样:

(1)浏览器设置

(2)页面连接设置

二、添加多语言支持

1、添加多语言文件*.properties

label文件:languages_zh.properties、languages_en.properties、languages_ja.properties;

message文件:messages_zh.properties、messages_en.properties、messages_jp.properties;

文件内容以键值对表示,如:user=User、user=\u7528\u6237\u540D、user=\u30E6\u30FC\u30B6\u30FC;

在properties文件中中文日文等英文以外的语言显示unicode编码。

unicode编码看起来确实有些不爽,现在也有好的解决方式,比如如下连接中的博文介绍:点击打开链接

2、springMVC配置文件:我的文件名是spring-mvc.xml

    <!-- 配置国际化资源文件 --><bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"><property name="basenames"><list><value>messages</value><value>languages</value></list></property></bean><bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">  <property name="cookieMaxAge" value="604800"/><property name="defaultLocale" value="zh_CN"/><property name="cookieName" value="Language"></property></bean>

3、页面文件中添加jstl标签支持:

    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

4、页面使用多语言标签:

     <label><fmt:message key="user"></fmt:message>:</label>

5、根据浏览器选择语言的场合,以上处理就OK了。在页面手动选择语言的场合,继续后面的操作:

(1)controller文件中添加RequestMapping

    /*** 国际化设定* @date 2017/09* @param request* @param response* @throws Exception*/@RequestMapping(value="/setLocal")public void setLocal(HttpServletRequest request,HttpServletResponse response) throws Exception{String localType = request.getParameter("localType");if(localType.equals("zh")){resolver.setLocale(request, response, Locale.CHINA);}else if(localType.equals("en")){resolver.setLocale(request, response, Locale.ENGLISH);}else {resolver.setLocale(request, response, Locale.JAPAN);}}

(2)登录添加链接,并使链接请求上面controller中的处理:

        <div><a href="javascript:void(0)" οnclick="setLocal('zh')"><fmt:message key="l.Chinese"></fmt:message></a><a href="javascript:void(0)" οnclick="setLocal('en')"><fmt:message key="l.English"></fmt:message></a><a href="javascript:void(0)" οnclick="setLocal('ja')"><fmt:message key="l.Japanese"></fmt:message></a></div>
       <script type="text/javascript">function setLocal(local){$.post(ctx+"/setLocal",{localType:local},function(result){location.reload();});}</script>

以上!

springMVC 国际化 多语言相关推荐

  1. 关于SpringMVC国际化的问题--中文状态下运行正常,英文状态不正常

    注意:这是我自己的分析,如有什么不对的地方请评论区指正. 问题描述: 昨天学习了关于SpringMVC国际化的知识,在所有代码完成的情况下,我在配置文件中配置i18n文件之后,浏览器出现在中文环境下好 ...

  2. Android架构篇-2 国际化多语言

    Android架构篇-2 国际化多语言 实现功能: 1.默认采用系统语言 2.语言切换后实时生效 3.支持中英文 4.我的->设置->切换语言 思路:app首次初始设置为系统语言,用户在a ...

  3. ios架构篇-2 国际化多语言

    关键字:ios,国际化,多语言 实现功能: 1.默认采用系统语言 2.语言切换后实时生效 3.支持中英文,包含页面.app名称.系统默认权限弹框(如相机相册权限) 思路:app首次初始设置为系统语言, ...

  4. java poi 导出 国际化_更好用的excel国际化多语言导出

    不知道大家在开发中有没有遇到过『excel导出』的需求,反正我最近写了不少这种功能,刚开始利用poi,一行行的手动塞数据,生成excel,而且还有国际化需求,比如:标题栏有一列,用户切换成" ...

  5. android 指定语言的资源,Android国际化多语言切换

    最近工作中突然要求要项目进行国际化,之前没遇到过.但是也很简单呀,只需要把添加一个相应语言的的strings.xml的资源文件就好了,不是吗?这样只要切换系统语言就能切换app的文字语言了. 但是由此 ...

  6. iOS 国际化多语言设置 xcode7

    iOS 国际化多语言设置 方式一: 1. 在storyboard中创建好UI,然后在 project 里面  Localizables 栏目里面,添加你需要的语言:默认是Englist; 比如这里我添 ...

  7. Android8.0 学习 (17)Android国际化(多语言)实现,支持8.0

    Android国际化(多语言)实现,支持8.0 前言 最近因为项目中使用了国际化,所以正好研究了下实现方法: 首先说下项目需求: 可以随着系统切换语言而切换语言,不支持的语言显示默认 用户可以选择语言 ...

  8. springBoot国际化多语言开发配置,中文OR英文支持一键切换

    springBoot有许多的自动化配置,其中就包括多语言的autoConfiguration,打开org.springframework.boot.autoconfigure.context.Mess ...

  9. java国际化转换_java 实现国际化 中英文语言切换

    [实例简介] java实现国际化中英文语言切换 java语言切换JSP国际化 [实例截图] [核心代码] JAVA国际化实现 └── struts01 ├── src │   ├── com │   ...

最新文章

  1. Apple苹果公司组织架构
  2. 你必须会的 JDK 动态代理和 CGLIB 动态代理
  3. FSWD_1_BasicHtmlCss
  4. java 反序列化漏洞简介
  5. 在Linux下快速搭建LAMP开发平台.doc
  6. bzoj4600 [Sdoi2016]硬币游戏 sg函数+结论
  7. 意见反馈接口php,用PHP制作的意见反馈表源码
  8. 1.Linux性能诊断 --- 入门命令100条
  9. 阿里云 Code Pipeline 体验
  10. Atitit 账号实名制验证等制度和手段 1. 实名制 - 身份证明的一种制度 免费编辑 修改义项名 1 1.1. 匿名制优缺点 2 1.2. 而实名制的弊端缺点是可影响信息安全,造成信息或隐私泄露。
  11. 设计模式(一) 六大原则
  12. php计算运费价格,PHP: UPS API, UPS 运费计算, UPS接口
  13. 建无根树+无根树转有根树
  14. 中学计算机课小课题,中学信息技术课题题目
  15. matlab读取数据流,【OpenBCI】(1):Matlab实时读取数据流(labstreaminglayer)
  16. 手把手教你用键盘开机
  17. 计算机二级考试vb内容,计算机二级VB考试内容大纲
  18. AD2428W手册解读之操作与配置
  19. csharp c++
  20. Keil环境添加STC系列单片机

热门文章

  1. 什么是数据标注?为什么需要数据标注?
  2. 娱乐机器人行业:兴于教育,困于教育
  3. Contextual Tab开发相关
  4. 人工智能——搜索技术
  5. 华为eNSP超级实用快捷键
  6. DAC解码芯片ES9023特性评测简介
  7. ICLR盲审阶段就被评审赞不绝口的论文:会是Transformer架构的一大创新吗?
  8. 去厂里贴片也不靠谱...
  9. 计算机闹铃音乐是什么歌,计算器金亿利闹铃都是什么歌
  10. 转载:程序员的十层楼