• Java程序设计——国际化


    目录

    一、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对象
    1. import java.util.Locale;
    2. public class MainClass_Locale_1 {
    3. public static void main(String[] args){
    4. Locale locale1 = new Locale("en","US");
    5. System.out.println("语言编码:"+locale1.getLanguage());
    6. System.out.println("语言名称:"+locale1.getDisplayLanguage());
    7. System.out.println("国家编码:"+locale1.getCountry());
    8. System.out.println("国家名称:"+locale1.getDisplayCountry());
    9. Locale locale2 = Locale.getDefault();
    10. System.out.println("语言编码:"+locale2.getLanguage());
    11. System.out.println("语言名称:"+locale2.getDisplayLanguage());
    12. System.out.println("国家编码:"+locale2.getCountry());
    13. System.out.println("国家名称:"+locale2.getDisplayCountry());
    14. }
    15. }

    二、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个资源文件

     

    • 写入相关内容

    1. import java.util.Locale;
    2. import java.util.ResourceBundle;
    3. public class TestResourceBundle {
    4. public static void main(String[] args) {
    5. // 1.读取默认资源文件,跟Locale默认值有关
    6. ResourceBundle resourceBundle1 = ResourceBundle.getBundle("myProperties",
    7. Locale.getDefault());
    8. System.out.println(resourceBundle1.getBaseBundleName());
    9. System.out.println(resourceBundle1.getString("name"));
    10. System.out.println("-------------------------------------");
    11. // 2.英语资源文件
    12. Locale locale2 = new Locale("en","US");
    13. ResourceBundle resourceBundle2 = ResourceBundle.getBundle("myProperties_en_US", locale2);
    14. System.out.println(resourceBundle2.getBaseBundleName());
    15. System.out.println(resourceBundle2.getString("name"));
    16. System.out.println("-------------------------------------");
    17. // 3.中文资源文件
    18. Locale locale3 = new Locale("zh","CN");
    19. ResourceBundle resourceBundle3 = ResourceBundle.getBundle("myProperties_zh_CN", locale3);
    20. System.out.println(resourceBundle3.getBaseBundleName());
    21. System.out.println(resourceBundle3.getString("name"));
    22. System.out.println("-------------------------------------");
    23. }
    24. }

  • 相关阅读:
    【状态估计】将变压器和LSTM与卡尔曼滤波器结合到EM算法中进行状态估计(Python代码实现)
    MySQL —— 排序,分页
    985、211毕业生涌入小县城求职,是“抢饭碗”,还是“摆烂”?
    CDH大数据平台 28Cloudera Manager Console之superset相关包安装(markdown新版二)
    OpenGL ES之深入解析PBO、UBO与TBO的功能和使用
    判断一个数是否偶数(深度思考)
    自动驾驶行业观察之2023上海车展-----车企发展趋势(3)
    c++ 服务器编程tcp
    Java和Vue项目打包并进行服务器部署
    私人云盘系统对比
  • 原文地址:https://blog.csdn.net/Mr_Morgans/article/details/125497652