Spring MVC 国际化和本地化

难点: 掌握 国际化/本地化的配置及使用

》国际化/本地化

        ·国际化是设计软件应用时,应用能适用于不同语言和地区

        ·本地化是添加地区特定的组件和翻译文本,使得国际化软件适合特定地区或语言

        ·国际化和本地化的目的是使软件适应不同的语言和地区

        ·简单来说:  国际化是指赋予软件可以被翻译的能力

                             本地化是指将软件进行软件翻译的过程

        ·除了语言翻译功能,国际化也可以应用在错误信息的展示

》国际化/本地化原理

    ·国际化

            Spring 通过实现MessageSource 接口,来支持国际化。如果启用了国际化配置了,SpringMVC通过前端控制器处理模型对象时会调用国际化getMessage()方法

    ·本地化

            Spring 提供了一个本地化解析器接口LocaleResolver,并且提供了很多实现类。DispatcherServlet允许使用客户端本地化信息自动解析信息。这个工作有实现LocaleResolver的对象来完成。

 

国际化/本地化的使用

  ·创建两个资源文件

  1. 中文 messages_zh_CN.properties
  2. 英文 messages_en_US.properties

  ·编码实现国际化效果(理解原理)

 

  ·配置文件添加

         1、资源文件  

	<!-- 支持国际化 -->
	<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
		<!-- 指定资源文件位置及前缀名的属性 -->
		<property name="basename" value="classpath:resource/messages"></property>
	</bean>

         2、区域改变拦截器

	<!-- 区域改变拦截器 -->
	<mvc:interceptors>
		<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"></bean>
	</mvc:interceptors>

         3、自定义本地化解析器

	<!-- 自定义本地化解析器 -->
 	<bean id="localeResolver" class="com.kgc.resolver.MylocaleResolver"></bean> 

 com.kgc.resolver.MylocaleResolver

/**
 * 自定义本地化解析器
 * @author Administrator
 *
 */
public class MylocaleResolver extends AcceptHeaderLocaleResolver {
	private Locale myLocale;
//	解析本地化信息 返回值为本地化信息类型
	public Locale resolveLocale(HttpServletRequest request) {
		return myLocale;
	}

//	将请求中的本地化信息作为值设置进来
	public void setLocale(HttpServletRequest request,
			HttpServletResponse response, Locale locale) {
		myLocale = locale;
	}
	
}

   ·提供jsp页面

         ·通过请求参数:locale 来改变语言

   ·使用框架提供的本地化解析器

              1、定义消息资源

                   org.springframework.context.support.ReloadableResourceBundleMessageSource  

              2、提供一个拦截器检测地区变化

                   org.springframework.web.servlet.i18n.LocaleChangeInterceptor

              3、提供能够本地化解析器

                   1) 基于cookie:    org.springframework.web.servlet.i18n.CookieLocaleResolver

                   2) 基于session:  org.springframework.web.servlet.i18n.SessionLocaleResolver

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值