JavaSE-国际化
国际化与格式化
国际化是指应用程序运行时,可根据客户护短请求来自的国家/地区、语言的不同而显示不同的界面。引入国际化的目的是为了提供自适应、更友好的用户界面,并不需要改变程序的逻辑功能。国际化的英文单词是 Internationalization,因为这个单词太长了,有时也简称为 I18N,其中I是这个单词的第一个字母,18表示中间省略的字母个数,N代表这个单词的最后一个字母。一个国际化支持很好的应用,在不同的区域使用时,会呈现处本地语言的提示。这个过程也被称为 Localization,即本地化,简称为 L10N
Java程序国际化思路是将程序中的标签、提示等信息放在资源文件中,程序需要支持哪些国家、语言环境,就对应提供相应的资源文件。资源文件是key-value对,每个资源文件中的key是不变的,是程序使用的部分;但value则随不同的国家、语言而改变,是程序界面的显示字符串
Java程序国际化主要通过如下三个类完成
| 相关使用类 | 说明 |
|---|---|
| java.util.ResourceBundle | 用于加载国家、语言资源包 |
| java.util.Locale | 用于封装特定的国家/区域、语言环境 |
| java.util.MessageFormat | 用于格式化带占位符的字符串 |
资源文件的命名可以有如下几种形式,其中baseName是资源文件的基本名,用户可以随意制定,而language和country都不可随意变化,必须是Java所支持的语言和国家
- baseName_language_country.properties
- baseName_language.properties
- baseName.properties
……待续