Java国际化 – Java中的国际化
Java国际化或Java i18n是一个非常重要的特性。Java通过资源包提供国际化(i18n)支持。
Java中的国际化
为了使您的应用程序支持不同的语言环境,我们需要创建特定于语言环境的属性文件。文件名遵循bundle名称加上语言代码和国家代码的模式,例如ApplicationMessages_en_US.properties。一旦特定语言环境的属性文件准备好了,您只需用正确的Locale初始化资源束。Java提供了两个类java.util.ResourceBundle和java.util.Locale来实现此目的。ResourceBundle读取特定语言环境的属性文件,并且您可以根据任何键获取特定语言环境的值。这对于使您的Web应用程序的文本具有特定的语言环境非常有帮助,您可以从HTTP请求中获取语言环境的信息,并生成具有该语言环境资源束文件的动态页面。您还可以为用户提供选择语言环境并动态更新标签的选项。
Java国际化示例
关于Java国际化示例,我创建了项目,其结构如下图所示。这是JavaInternationalizationExample类的Java代码。
package com.Olivia.i18n;
import java.util.Locale;
import java.util.ResourceBundle;
public class JavaInternationalizationExample {
public static void main(String[] args) {
//default locale
ResourceBundle bundle = ResourceBundle.getBundle("ApplicationMessages");
//Get ResourceBundle with Locale that are already defined
ResourceBundle bundleFR = ResourceBundle.getBundle("ApplicationMessages", Locale.FRANCE);
//Get resource bundle when Locale needs to be created
ResourceBundle bundleSWE = ResourceBundle.getBundle("ApplicationMessages", new Locale("sv", "SE"));
//lets print some messages
printMessages(bundle);
printMessages(bundleFR);
printMessages(bundleSWE);
}
private static void printMessages(ResourceBundle bundle) {
System.out.println(bundle.getString("CountryName"));
System.out.println(bundle.getString("CurrencyCode"));
}
}
这里的包名是ApplicationMessages,我有两个特定于语言环境的资源包和一个默认的资源包。ApplicationMessages.properties。
CountryName=USA
CurrencyCode=USD
ApplicationMessages_fr_FR.properties的中文释义
CountryName=France
CurrencyCode=Euro
ApplicationMessages_sv_SE.properties文件
CountryName=Sweden
CurrencyCode=Kr
注意使用Locale类,已经定义了一些区域设置,但我们始终可以通过将语言代码和国家代码传递给其构造函数来创建新的区域设置。当我运行上述程序时,输出如下。
USA
USD
France
Euro
Sweden
Kr
这就是快速Java国际化示例的全部内容。在Java中进行国际化非常有用,可以在网络应用程序中以特定区域的语言提供页面服务。