引言 :
最近,在接触的项目中用到了 国际化 的开发模式,因为是首次接触,这里写博客记录下,也方便以后查阅。自己对于它的理解是,用多种语言实现的多个版本的 web 页面。比较一般比较官方的网站或者文档,都会提供中文和英文版,可以让读者自己选择阅读模式。这种用不同语言实现相同页面的 web 开发方式,就可以理解为国际化的开发。
使用 SpringMVC4.2.4 版本,在 JSP 页面中使用 <spring:message> 标签只能显示默认语言,无法动态切换,而在JAVA后台则可以动态切换。项目中用的是
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
的<spring:message code='XXX'/>
标签实现的国际化 。
具体操作步骤 :
- 相关结构文件目录 :
- web.xml 中增加 :
//这样jsp中就能识别spring:message标签了 <jsp-config> <taglib> <taglib-uri>/spring</taglib-uri> <taglib-location>/WEB-INF/resources/spring-form.tld</taglib-location> </taglib> </jsp-config>
- spring-mvc.xml 配置文件中 Bean 定义:
<!-- 获取数据 --> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <!-- 表示多语言配置文件在根路径下,以language开头的文件 --> <property name="basename" value="classpath:language" /> <property name="useCodeAsDefaultMessage" value="true" /> </bean> <!-- 获取本地化信息 --> <mvc:interceptors> <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> <property name="paramName" value="lang" /> </bean> </mvc:interceptors> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" />
- 在src根目录下面新建下面文件 :
在 poperties 目录下创建 en_US 和 zh_CN 目录 和 messages.properties 文件:
zh_US 目录下 message.properties 文件 :
// 这里简单示例 : login.btn=登陆~ login.password=密码~ login.remember=记住我~ login.tip=请登录~ login.username=用户名~
en_CN 目录下 message.properties 文件 :
// 这里简单示例 login.btn=Sign In login.password=PassWord login.remember=Remember Me login.tip=Please sign in login.username=UserName
- 在页面中可以直接使用 :
<%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%-- 在 页面中添加如下内容,(添加标签),uri的内容在org.springframework.web.servlet-3.1.1.RELEASE.jar包下面的META-INF/spring.tld文件。 --%> <%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Message Tag Demo</title> </head> <body> <h1> <!-- code后值是.properties 文件中的key, arguments是用来给资源文件添加参数的,argumentSeparator是用来分割多个参数的标记 --> <spring:message code="welcome" arguments="Justin,Lin"/> </h1> </body> </html>
- <spring:message> 标签 :
可以使用<spring:message>标签结合 ResourceBundleMessageSource 的功能,在网页上显示 messages.properties 中的文字讯息。注意: messages.properties 档案必须在 Classpath 可以存取到的路径下。
了解更多 :
https://www.cnblogs.com/yiyongyao/p/4699936.html
https://segmentfault.com/a/1190000010809172
http://www.zuidaima.com/share/1634244049275904.htm