SpringMVC的国际化
1 .Spring MVC国际化概述
- 国际化(internationalization:i18n):国际化是指程序在不做任何修改的情况下,就可以在不同的国家或地区和不同的语言环境下,按照当地的语言和格式习惯的显示字符。例如:对于中国大陆的用户,会自动显示中文简体的提示信息,错误信息等;而对于美国的用户,会自动显示英文的提示信息,错误信息。
- 本地化(Localization):国际化的程序运行在本地机器上时,能够根据本地机器的语言和地区设置相应的字符,这个过程叫做本地化。
- 中国建设银行网站默认为中文,可选”繁体/ENGLISH”
- Spring MVC国际化是建立在Java国际化的基础之上的
- Spring MVC的国际化的结构:DispatcherServlet会解析一个LocaleResolver接口对象,通过它来决定用户区域,读出对应用户系统设定的语言或者用户选择的语言,确定其国际化。对于DispatcherServlet而言,只能够注册一个LocaleResolver接口对象,LocaleResolver接口的实现类都在org.springframework.web.servlet.i18n包下
- Spring MVC也支持国际化的操作,可使用Spring MVC提供的语言区域解析器接口LocaleResolver
在Spring MVC中,不直接使用java.util.ResourceBundle的抽象类,而是使用ResourceBundleMessageSource类作为messageResource的bean,告知Spring MVC国际化的属性
<!-- 国际化资源文件名 -->
<bean class="org.springframework.context.support.ResourceBundleMessageSource" id="messageSource">
<property name="basename" value="i18n"></property>
</bean>
2. 国际化_页面中获取国际化资源信息
① 使用 JSTL 的 fmt 标签
② 在 bean 中注入 ResourceBundleMessageSource 的实例, 使用其对应的
getMessage 方法即可
③ 配置 LocalResolver 和 LocaleChangeInterceptor
3.实例
3.1定义国际化资源文件
i18n_en_US.properties
i18n.welcome:Welcome to the international metropolis
i18n.page:Chinese page
i18n.english:English
i18n.chinese:Chinese
i18n_zh_CN.properties
i18n.welcome:欢迎来到国际化大都市
i18n.page:中文页面
i18n.english:英语
i18n.chinese:汉语