可能大家在使用struts框架的时候,偶尔会看到这个词: i18n。也就是 Internationalization i 开头,n 结尾, 总共18个字母,今天的主要内容就是围绕这 四个字母。
struts2国际化是建立在 java 国际化的基础上的,通过提供不同国家、语言环境的消息资源,然后通过 ResourceBundle 加载指定Locale 对应的资源文件,取得文件中指定的 key 对应的信息。
Locale
对象表示了特定的地理、政治和文化地区。需要 Locale
来执行其任务的操作称为语言环境敏感的 操作,它使用 Locale
为用户量身定制信息。例如,显示一个数值就是语言环境敏感的操作,应该根据用户的国家、地区或文化的风俗/传统来格式化该数值。
ResourceBundle : public abstract class ResourceBundle extends Object
资源包包含特定于语言环境的对象。当程序需要一个特定于语言环境的资源时(如 String),程序可以从适合当前用户语言环境的资源包中加载它。使用这种方式,可以编写很大程度上独立于用户语言环境的程序代码,它将资源包中大部分(即便不是全部)特定于语言环境的信息隔离开来。
可能大家对于 ResourceBundle 不太熟悉,但是它的子类,我们可是用的不能再熟悉的。
public class PropertyResourceBundle extends ResourceBundle
读取 xxx.properties 的内容 类加载器 以流的形式读取资源文件
PropertyResourceBundle.class.getClassLoad