国际化与格式化(0):Java国际化的思路及支持的国家和语言
来源:互联网 发布:linux安装 编辑:程序博客网 时间:2024/09/21 08:57
国际化是指应用程序运行时,可根据客户端请求来自的国家/地区、语言的不同而显示不同的界面。例如,如果请求来自于中文操作系统的客户端,则应用程序中的各种提示信息错误和帮助等都使用中文文字;如果客户端使用英文操作系统,则应用程序能自动识别,并作出英文的响应。
引入国际化的目的是为了提供自适应、更友好的用户界面,并不需要改变程序的逻辑功能。国际化简称I18N。
一个国际化支持很好的应用,在不同的区域使用时,会呈现出本地语言的提示。这个过程也被称为本地化,简称L10N。
Java国际化的思路:
Java程序的国际化思路是将程序中的标签、提示等信息放在资源文件中,程序需要支持哪些国家、语言环境,就提供对应的资源文件。资源文件是key-value对,每个资源文件中的key是不变的,但value则随不同的国家、语言而改变。
Java程序的国际化主要通过如下三个类完成:
① java.util.ResourceBundle : 用于加载国家、语言资源包。
② java.util.Locale : 用于封装特定的国家/区域、语言环境。
③ java.text.MessageFormat : 用于格式化带占位符的字符串。
为了实现程序的国际化,必须先提供程序所需要的资源文件。资源文件的内容是很多key-value对,其中key是程序使用的部分,而value则是程序界面的显示字符串。
资源文件的命名可以有如下三种形式:
① baseName_language_country.properties
② baseName_language.properties
③ baseName.properties
其中baseName是资源文件的基本名,用户可以随意指定。而language和country都不可随意变化,必须是Java所支持的语言和国家。
Java支持的国家和语言:
事实上,Java不可能支持所有的国家和语言,如果需要获取Java所支持的国家和语言,则可调用Locale类的getAvailableLocales( )方法,该方法返回一个Locale数组,该数组里包含了Java所支持的国家和语言。
LocaleDemo.java :
public class LocaleDemo {public static void main(String[] args) {Locale[] locales=Locale.getAvailableLocales();for(int i=0;i<locales.length;i++){System.out.println(locales[i].getDisplayCountry()+"="+locales[i].getCountry()+" "+locales[i].getDisplayLanguage()+"="+locales[i].getLanguage());}}}
- 国际化与格式化(0):Java国际化的思路及支持的国家和语言
- Java国际化的思路及支持的国家和语言
- Java国际化,获取java支持的语言和国家列表
- java支持的语言和国家(国际化)
- JAVA语言对国际化支持的原理
- 国际化与格式化(1):完成程序的国际化
- 获取JAVA支持的国家和语言
- Java支持的国家和语言
- iOS 对国际化语言的支持.
- QT 国际化,多语言平台的支持
- android客户端的语言国际化支持
- iOS 对国际化语言的支持.
- 国际化与Struts2的国际化
- Android国际化中用到的国家/地区 语言缩写代码
- Android国际化中用到的国家/地区 语言缩写代码
- gSOAP的国际化支持
- Struts2的国际化支持
- Struts2的国际化支持
- 生活有载(一)
- ubuntu在命令行下同步时间
- Redis常用命令
- U盘量产的作用
- StoredProcedure “存储过程名” 的TextHeader 中存在语法错误
- 国际化与格式化(0):Java国际化的思路及支持的国家和语言
- discuz x2.5后台总是掉线,提示输密码的处理
- XML STAX样例
- 利用PreTranslateMessage函数屏蔽按键 回车 ESC等
- 代码腐化之路
- 用Session防止表单重复提交
- 【Android Training UI】创建自定义Views(Lesson 0 - 章节概览)
- ThinkPHP验证码不能显示如何解决
- 黑马程序员——垃圾回收机制、弱引用