Java程序设计——国际化(Java高级应用)

本文介绍了Java中处理多语言环境的Locale类和ResourceBundle类。Locale类用于设定和获取特定语言和地区的信息,如语言代码、国家代码等,并能输出相应语言的日期和数字格式。ResourceBundle类则用于加载不同语言和地区的资源包,通过baseName和locale参数获取对应的属性文件内容,实现国际化资源的加载和使用。
摘要由CSDN通过智能技术生成

目录

一、Locale类

二、ResourceBundle类


一、Locale类

通过设定Locale可以为特定的国家或地区提供符合当地文化习惯的字体、符号和图标等

一个Locale实例代表一种特定的语言和地区

通过Locale对象输出对应语言和地区的时间、数字等格式

构造方法功能
new Locale(String language)构造指定语言的Locale对象
new Locale(String language,String country)构造指定语言、国家的Locale对象


常用方法功能
String getCountry()返回国家(地区)代码
String getDisplayCountry返回国家(地区)名称
String getLanguage()返回语言代码
String getDisplayLanguage()返回语言名称
Static Locale getDefault()返回当前系统的Locale对象
Static void setDefault(Locale locale)重新设置默认的Locale对象
import java.util.Locale;

public class MainClass_Locale_1 {
    public static void main(String[] args){
        Locale locale1 = new Locale("en","US");
        System.out.println("语言编码:"+locale1.getLanguage());
        System.out.println("语言名称:"+locale1.getDisplayLanguage());
        System.out.println("国家编码:"+locale1.getCountry());
        System.out.println("国家名称:"+locale1.getDisplayCountry());

        Locale locale2 = Locale.getDefault();
        System.out.println("语言编码:"+locale2.getLanguage());
        System.out.println("语言名称:"+locale2.getDisplayLanguage());
        System.out.println("国家编码:"+locale2.getCountry());
        System.out.println("国家名称:"+locale2.getDisplayCountry());
    }
}

二、ResourceBundle类

ResourceBundle类用于加载国家和语言的资源包

资源文件命名方式:

  • baseName_language_country.properties
  • baseName_language.properties
  • baseName.properties
  • baseName:资源文件的名称
  • language/country :java支持的语言/国家
方法功能
public static final ResourceBundle getBundle(String baseName)使用指定基本名称、默认的语言环境和调用者的类加载器获取资源包
public static final ResourceBundle getBundle(String baseName,ResourceBundle.Control control)使用指定基本名称、默认的语言环境和指定控件返回一个资源包

public abstract Enumeration<String> getKeys()

返回键的枚举
public Locale getLocale()返回此资源包的语言环境
public final Object getObejct(String key)从此资源包或某个父包中获取给定键的对象
public final String getString(String key)从此资源包或某个父包中获取给定键的字符串
public final String[ ]  getStringArray(String key)从此资源包或某个父包中获取给定键的字符串数组
public boolean containsKey(String key)判断key是否包含在此ResourceBundble及其父包中
public Set<String> keySet()返回此ResourceBundle及其父包中包含的所有键的Set
  • 新建3个资源文件

 

  • 写入相关内容

import java.util.Locale;
import java.util.ResourceBundle;

public class TestResourceBundle {
    public static void main(String[] args) {
        //  1.读取默认资源文件,跟Locale默认值有关
        ResourceBundle resourceBundle1 = ResourceBundle.getBundle("myProperties",
                Locale.getDefault());
        System.out.println(resourceBundle1.getBaseBundleName());
        System.out.println(resourceBundle1.getString("name"));
        System.out.println("-------------------------------------");

        //  2.英语资源文件
        Locale locale2 = new Locale("en","US");
        ResourceBundle resourceBundle2 = ResourceBundle.getBundle("myProperties_en_US", locale2);
        System.out.println(resourceBundle2.getBaseBundleName());
        System.out.println(resourceBundle2.getString("name"));
        System.out.println("-------------------------------------");

        //  3.中文资源文件
        Locale locale3 = new Locale("zh","CN");
        ResourceBundle resourceBundle3 = ResourceBundle.getBundle("myProperties_zh_CN", locale3);
        System.out.println(resourceBundle3.getBaseBundleName());
        System.out.println(resourceBundle3.getString("name"));
        System.out.println("-------------------------------------");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来得晚一些也行

观众老爷,请赏~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值