国际化与格式化(0):Java国际化的思路及支持的国家和语言

国际化是指应用程序运行时,可根据客户端请求来自的国家/地区、语言的不同而显示不同的界面。例如,如果请求来自于中文操作系统的客户端,则应用程序中的各种提示信息错误和帮助等都使用中文文字;如果客户端使用英文操作系统,则应用程序能自动识别,并作出英文的响应。

引入国际化的目的是为了提供自适应、更友好的用户界面,并不需要改变程序的逻辑功能。国际化简称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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值