四步完成Spring国际化动态配置

编程入门 行业动态 更新时间:2024-10-28 12:24:05

四步完成Spring国际化<a href=https://www.elefans.com/category/jswz/34/1771299.html style=动态配置"/>

四步完成Spring国际化动态配置

i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称。在资讯领域,国际化(i18n)指让产品(出版物,软件,硬件等)无需做大的改变就能够适应不同的语言和地区的需要。对程序来说,在不修改内部代码的情况下,能根据不同语言及地区显示相应的界面。 在全球化的时代,国际化尤为重要,因为产品的潜在用户可能来自世界的各个角落。通常与i18n相关的还有L10n(“本地化”的简称)。<摘自百度百科.htm?fr=aladdin >

代码下载

Maven依赖

< properties >          < springframework >4.0.5.RELEASE</ springframework >      </ properties >      < dependencies >          <!-- Spring web mvc -->          < dependency >              < groupId >org.springframework</ groupId >              < artifactId >spring-webmvc</ artifactId >              < version >${springframework}</ version >          </ dependency >      </ dependencies >

项目截图

在Spring应用中,国际化的配置比较简单,下面四步完成国际化的快速配置

第一步,配置messageSource和localeResolver

<!-- 配置国际化资源文件路径 -->      < bean  id = "messageSource"  class = "org.springframework.context.support.ResourceBundleMessageSource" >          < property  name = "basename" >              <!-- 定义消息资源文件的相对路径 -->              < value >messages/message</ value >          </ property >      </ bean >      <!-- 基于Cookie的本地化解析器 -->       < 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 >      <!-- 基于Session的本地化解析器 -->      <!--<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />-->

第二步,编写message_*.properties

message_en.properties

hi=hello something=The People's Republic of China Chinese=Chinese English=English index=Index welcome=Welcome OtherPage=Other Page

message_zh_CN.properties(汉字已转成unicode码)

hi=\u4F60\u597D something=\u4E2D\u534E\u4EBA\u6C11\u5171\u548C\u56FD Chinese=\u4E2D\u6587 English=\u82F1\u6587 OtherPage=\u5176\u4ED6\u9875\u9762 index=\u9996\u9875 welcome=\u6B22\u8FCE

第三步,页面引入spring标签库

引入

<%@ taglib prefix="spring" uri="" %>

使用

< spring:message  code = "welcome" ></ spring:message >

第四步,切换语言

@Autowired  CookieLocaleResolver resolver;            //@Autowired SessionLocaleResolver resolver;            /**       * 语言切换       */      @RequestMapping ( "language" )      public  ModelAndView language(HttpServletRequest request,HttpServletResponse response,String language){                    language=language.toLowerCase();          if (language== null ||language.equals( "" )){              return  new  ModelAndView( "redirect:/" );          } else {              if (language.equals( "zh_cn" )){                  resolver.setLocale(request, response, Locale.CHINA );              } else  if (language.equals( "en" )){                  resolver.setLocale(request, response, Locale.ENGLISH );              } else {                  resolver.setLocale(request, response, Locale.CHINA );              }          }                    return  new  ModelAndView( "redirect:/" );      }

已完成国际化的配置,其中请注意SessionLocaleResolver和CookieLocaleResolver的区别,很显然,通过Session只能对当前的会话有效,Cookie则对Cookie有效期内的会话都有效。在使用Cookie的时候,需要设置Cookie的过期时间,否则关闭浏览器之后,Cookie即失效了,没有达到目的。当然,也可以保存用户的语言设置信息到数据库,用户登录之后即可将语言改变成用户设置的语言。

运行效果截图:



<转载请注明来源:/  >

更多推荐

四步完成Spring国际化动态配置

本文发布于:2024-02-04 17:20:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1673231.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:动态   Spring

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!