java国际化
java国际化 本文来自:http://www.javaarch.net/jiagoushi/477.htm
国际化是为了让应用程序能够兼容多种语言而不需要修改源代码,有时我们使用i18n代表国际化internationalization 的意思,那是因为internationalization 单词第一个字母i和最后一个字母n之间有18个字母。
国际化程序能够带来的好处:
1.本地时间,支持国际化程序,时间相关问题在多种语言地区之间就不会存在。
-
GUI程序的文本信息
-
能够支持新语言而不需要重新编译
-
时间和汇率跟本地化相关
-
能够快速本地化
未进行国际化处理的程序:
public class NotI18N {
static public void main(String[] args) {
System.out.println("Hello.");
System.out.println("How are you?");
System.out.println("Goodbye.");
}
}
输出:
% java I18NSample fr FR Bonjour. Comment allez-vous? Au revoir.
经过国际化处理的程序:
import java.util.*;
public class I18NSample {
static public void main(String[] args) {
String language;
String country;
if (args.length != 2) {
language = new String("en");
country = new String("US");
} else {
language = new String(args[0]);
country = new String(args[1]);
}
Locale currentLocale;
ResourceBundle messages;
currentLocale = new Locale(language, country);
messages = ResourceBundle.getBundle("MessagesBundle", currentLocale);
System.out.println(messages.getString("greetings"));
System.out.println(messages.getString("inquiry"));
System.out.println(messages.getString("farewell"));
}
}
输出:
% java I18NSample en US Hello. How are you? Goodbye.
在java中怎么让程序支持国际化
1.创建properties文件 包含跟环境相关的文本信息
比如:默认版本的MessagesBundle.properties
greetings = Hello farewell = Goodbye inquiry = How are you?
支持Franch的MessagesBundlefrFR.properties
greetings = Bonjour.
farewell = Au revoir.
inquiry = Comment allez-vous?
2.设置Locale Local是跟语言和地区相关的设置
比如设置语言为English,地区为US aLocale = new Locale("en","US"); 设置Canada和Franch的版本
caLocale = new Locale("fr","CA");
frLocale = new Locale("fr","FR");
然后通过传入参数设置:
String language = new String(args[0]);
String country = new String(args[1]);
currentLocale = new Locale(language, country);
3.创建ResourceBundle
messages = ResourceBundle.getBundle("MessagesBundle", currentLocale);
locale第一个参数对应到语言,第二个是地区,跟下面下划线的参数对应
MessagesBundle_en_US.properties
MessagesBundle_fr_FR.properties
MessagesBundle_de_DE.properties
4.通过ResourceBundle的方法获取对应的文本信息
String msg1 = messages.getString("greetings");
这样的话新增一个语言或者地区的不同文本就很简单了。
然后在实际应用中,下面的各个部分都需要作为checklist检查是否需要国际化
Messages Labels on GUI components Online help Sounds Colors Graphics Icons Dates Times Numbers Currencies Measurements Phone numbers Honorifics and personal titles Postal addresses Page layouts
浙公网安备 33010602011771号