Java i18n,
Java i18n,
Java i18n - Java中的国际化
Java或Java i18n的国际化是一个非常重要的特性。Java通过资源包提供国际化(i18n)支持。
Java的国际化
为了使您的应用程序支持不同的语言环境,我们需要创建特定于语言环境的属性文件。例如,文件名遵循包名称的模式,包括语言代码和国家/地区代码ApplicationMessages_en_US.properties
。
一旦特定语言环境的属性文件准备就绪,您需要做的就是使用正确的Locale初始化资源包。Java提供了两个类java.util.ResourceBundle
和java.util.Locale
被用于此目的。ResourceBundle读取特定于语言环境的属性文件,您可以获取任何键的特定于语言环境的值。
这对于使您的Web应用程序文本特定于区域设置非常有用,您可以从HTTP请求获取区域设置信息并生成包含该区域设置资源包文件的动态页面。您还可以为用户提供选项以选择区域设置并动态更新标签。
Java i18n示例
对于java i18n示例,我创建了一个项目,其结构如下图所示。
这是JavaInternationalizationExample类的java代码。
package com.journaldev.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
,我有2个特定于语言环境的资源包和一个默认资源包。
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 i18n示例。java中的国际化在Web应用程序中非常有用,可以以语言环境特定语言提供页面。
原创翻译 原文:https://www.journaldev.com/1370/java-i18n-internationalization-in-java
相关文章
- 暂无相关文章
用户点评