目录
一、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("-------------------------------------");
}
}

本文介绍了Java中处理多语言环境的Locale类和ResourceBundle类。Locale类用于设定和获取特定语言和地区的信息,如语言代码、国家代码等,并能输出相应语言的日期和数字格式。ResourceBundle类则用于加载不同语言和地区的资源包,通过baseName和locale参数获取对应的属性文件内容,实现国际化资源的加载和使用。
&spm=1001.2101.3001.5002&articleId=125497652&d=1&t=3&u=70aa1b17b44b4dd6bb9531a58d24d7b9)
1342

被折叠的 条评论
为什么被折叠?



