软件的本地化与国际化

软件的本地化与国际化
1:有一件事,大家都知道:不同的区域却有不同的语言、风俗和文化。

2:软件的国际化就是使软件能够根据不同的区域实现不同的本地化。

3:

4:Java是从一开始就支持软件本地化的第一种编程语言。
与Java本地化相关的类有:

(1)Locale类
java.util.Locale

一个Locale对象代表一种特定的语言和地区。它本身并不会执行本地化相关的格式化和解析工作,而是被其他能够使用Locale对象的方法作为参数使用。Locale对象为这些方法提供本地化信息。
比如:DateForlmat类依据Local对象来确定日期的格式,然后对日期进行语法分析和格式化。
简单测试:
package one;

import java.util.Locale;

public class LocaleOne {

public static void main(String[] args) {

Locale myLocale = Locale.getDefault();
System.out.println(myLocale.getCountry());
System.out.println(myLocale.getLanguage());
System.out.println(myLocale.getDisplayCountry());
System.out.println(myLocale.getDisplayLanguage());
}
}

输出如下:
CN
zh
中国
中文

(2)ResourceBundle类
java.util.ResourceBundle
我们把程序中的消息字符串、按钮标签、图片等统称称为资源。
把消息字符串、按钮标签、图片的URL等统一定义到一个外部位置,可以方便得进行查找修改和翻译,从而减轻了国际化任务的工作量。
ResourceBundle类则提供了这个“外部位置”。而且对于管理国际化的资源有与生俱来的优势。

简单例程如下:
import java.util.Enumeration;
import java.util.ResourceBundle;

public class TestResource extends ResourceBundle {

public Enumeration getKeys() {

return null;

}

protected Object handleGetObject(String key) {

if (key.equals(“ok”)) {
return “OK”;
} else if (key.equals(“cancel”)) {
return “CANCEL”;
}

return null;
}

}

import java.util.Enumeration;
import java.util.ResourceBundle;

public class TestResource_zh_CN extends ResourceBundle {

public Enumeration getKeys() {

return null;

}

protected Object handleGetObject(String key) {

if (key.equals(“ok”)) {

return “提交”;

} else if (key.equals(“cancel”)) {

return “取消”;

}

return null;
}

}

import java.util.ResourceBundle;

public class RBTest {

public static void main(String[] args){

ResourceBundle resource = ResourceBundle.getBundle(“TestResource”) ;

System.out.println(resource.getString(“ok”));

System.out.println(resource.getString(“cancel”));

}
}

输出如下:
提交
取消

参考:
http://publib.boulder.ibm.com/infocenter/ad11help/index.jsp?topic=/com.sun.api.doc/java/util/ResourceBundle.html

MessageFormat类

5:

该日志未加标签
此条目发表在java/j2ee分类目录。将固定链接加入收藏夹。

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据