Struts2国际化原理
国际化(internationalization,i18n)和本地化(localization,l10n)指让产品(出版物,软件,硬件等)能够适应非本地环境,特别是其他的语言和文化。程序在不修改内部代码的情况下,能根据不同语言及地区显示相应的界面。
Struts2国际化原理(1)
国际化资源文件:用不同国家的语言描述相同的信息,并放在各自对应的.properties属性文件中,程序根据运行时环境决定加载哪个文件。
国际化主要通过以下类完成:
java.util.Locale:对应一个特定的国家/区域、语言环境。
java.util.ResourceBundle:用于加载一个资源包。
I18nInterceptor:struts2所提供的国际化拦截器,负责处理Locale相关信息。
国际化常用类
Java.util.Locale类的常用构造方法如下:
publicLocale(String language)
publicLocale(String language,String country)
语法:filename_ language_country.properties
其中language表示语言,它的取值是由ISO-639定义的小写的、两个字母组成的语言代码。
其中country表示国家或地区,它的取值由ISO-639定义的大写的、两个字母组成的代码
左表列出了的ISO-639语言代码。右表列出了常用的ISO-3166国家和地区常用代码
Struts2国际化原理(2)
国际化流程:
1、 程序得到当前运行环境的国家/区域、语言环境并存放于Locale
2、ResourceBundle根据Locale中信息自动搜索对应的国际化资源文件并加载。
3、当某个Action被执行前,I18nInterceptor负责检测Locale相关信息来寻找对应的国际化资源。
接下来实现国际化
1. 在程序的SRC目录下创建I18N所需要的国际化资源文件:
2.在struts.xml中配置节点:
value值是资源文件的文件名前缀
3.在web-root中创建i18n.jsp页面,并引入Struts标签库:
显示英文需要对浏览器以下操作:
IE -->工具-->Internet选项-->语言 -->英语(美国)上移到第一位 --> 确定