Java i18n - Java中的国际化

 

Java i18n - Java中的国际化

Java或Java i18n的国际化是一个非常重要的特性。Java通过资源包提供国际化(i18n)支持。

 

Java的国际化

为了使您的应用程序支持不同的语言环境,我们需要创建特定于语言环境的属性文件。例如,文件名遵循包名称的模式,包括语言代码和国家/地区代码ApplicationMessages_en_US.properties

一旦特定语言环境的属性文件准备就绪,您需要做的就是使用正确的Locale初始化资源包。Java提供了两个类java.util.ResourceBundlejava.util.Locale被用于此目的。ResourceBundle读取特定于语言环境的属性文件,您可以获取任何键的特定于语言环境的值。

这对于使您的Web应用程序文本特定于区域设置非常有用,您可以从HTTP请求获取区域设置信息并生成包含该区域设置资源包文件的动态页面。您还可以为用户提供选项以选择区域设置并动态更新标签。

 

Java i18n示例

对于java i18n示例,我创建了一个项目,其结构如下图所示。

java i18n例子,Java中的国际化

 

这是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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值