Java 中的国际化和本地化

17 Mar 2025 | 4 分钟阅读

国际化 (Internationalization) 也简写为 I18N,因为第一个字母 'I' 和最后一个字母 'N' 之间总共有 18 个字符。

国际化是一种创建可适应不同语言和地区的应用的机制。

如果您正在开发一个应用程序,并希望根据特定区域或语言显示消息、货币、日期、时间等,那么国际化是 Java 中一项强大的概念。

本地化 (Localization) 也简写为 L10N,因为第一个字母 'L' 和最后一个字母 'N' 之间总共有 10 个字符。本地化是通过添加特定于区域设置的文本和组件,创建可适应特定语言和区域的应用的机制。

 
你知道吗?
  • Locale 类有什么用?
  • 我们如何全局化消息 (或) ResourceBundle 类有什么用?
  • 我们如何国际化日期、时间、数字、货币和度量单位?

在开始国际化之前理解依赖于文化的数据

在开始国际化之前,让我们首先了解不同地区之间有哪些信息是不同的。以下是依赖于文化的数据列表

  • 消息
  • 日期
  • 时间
  • 数字
  • 货币
  • 测量
  • 电话号码
  • 邮政地址
  • GUI 组件上的标签等

Locale 类在国际化中的重要性

Locale 类的一个对象代表一个地理或文化区域。此对象可用于获取特定于区域设置的信息,例如国家名称、语言、变体等。

Locale 类的字段

Locale 类有以下字段

  1. public static final Locale ENGLISH
  2. public static final Locale FRENCH
  3. public static final Locale GERMAN
  4. public static final Locale ITALIAN
  5. public static final Locale JAPANESE
  6. public static final Locale KOREAN
  7. public static final Locale CHINESE
  8. public static final Locale SIMPLIFIED_CHINESE
  9. public static final Locale TRADITIONAL_CHINESE
  10. public static final Locale FRANCE
  11. public static final Locale GERMANY
  12. public static final Locale ITALY
  13. public static final Locale JAPAN
  14. public static final Locale KOREA
  15. public static final Locale CHINA
  16. public static final Locale PRC
  17. public static final Locale TAIWAN
  18. public static final Locale UK
  19. public static final Locale US
  20. public static final Locale CANADA
  21. public static final Locale CANADA_FRENCH
  22. public static final Locale ROOT

Locale 类的构造函数

Locale 类有三个构造函数。它们如下:

  1. Locale(String language)
  2. Locale(String language, String country)
  3. Locale(String language, String country, String variant)

Locale 类的常用方法

以下是 Locale 类的常用方法。

  1. public static Locale getDefault() 返回当前 Locale 的实例
  2. public static Locale[] getAvailableLocales() 返回可用区域设置的数组。
  3. public String getDisplayCountry() 返回此 Locale 对象的国家/地区名称。
  4. public String getDisplayLanguage() 返回此 Locale 对象的语言名称。
  5. public String getDisplayVariant() 返回此 Locale 对象的变体代码。
  6. public String getISO3Country() 返回当前 Locale 国家/地区的三字母缩写。
  7. public String getISO3Language() 返回当前 Locale 语言的三字母缩写。

Locale 类的示例,打印默认区域设置的信息

在此示例中,我们正在显示默认区域设置的信息。如果您想获取任何特定区域设置的信息,请注释掉 main 方法中的第一行语句,并取消注释第二行语句。

Output:United States
       English
       English (United States)
       USA
       eng
       en
       US

Locale 类的示例,以不同语言打印英语

在此示例中,我们以不同的语言显示英语。让我们看看英语在法语和西班牙语中是如何写的。


Locale 类的示例,打印多种区域设置的显示语言

在此示例中,我们正在显示许多区域设置的显示语言。
Output:en_US: English
       es_ES: espa?ol
       it_IT: italiano


我们将在国际化教程中学到什么?
下一主题ResourceBundle 类