Java的国际化和本地化

本文概述

  • 开始国际化之前了解文化相关数据
  • 语言环境类在国际化中的重要性
  • 区域设置类的字段
  • 语言环境类的构造函数
  • Locale类的常用方法
国际化也缩写为I18N, 因为第一个字母“ I”和最后一个字母“ N”之间总共有18个字符。
国际化是一种创建可以适应不同语言和地区的应用程序的机制。
如果你要开发应用程序并希望根据特定地区或语言显示消息, 货币, 日期, 时间等, 则国际化是Java的强大概念之一。
本地化也缩写为I10N, 因为第一个字母“ L”和最后一个字母“ N”之间总共有10个字符。本地化是一种通过添加特定于语言环境的文本和组件来创建可适应特定语言和地区的应用程序的机制。
你知道吗 ?
开始国际化之前了解文化相关数据开始国际化之前, 让我们首先了解一个地区与另一个地区之间有哪些不同的信息。这里有文化相关数据的列表:
  • 留言内容
  • 日期
  • 时报
  • 号码
  • 货币
  • 测量
  • 电话号码
  • 邮政地址
  • GUI组件上的标签等。
语言环境类在国际化中的重要性Locale类的对象表示地理或文化区域。此对象可用于获取特定于语言环境的信息, 例如国家/地区名称, 语言, 变体等。
区域设置类的字段有Locale类的字段:
  1. 公共静态最终语言环境
  2. 公共静态最终语言环境(法语)
  3. 公共静态最终语言环境GERMAN
  4. 公共静态最终语言环境ITALIAN
  5. 公共静态最终语言环境JAPANESE
  6. 公共静态最终语言环境KOREAN
  7. 公共静态最终语言环境中文
  8. 公共静态最终语言环境SIMPLIFIED_CHINESE
  9. 公共静态最终语言环境TRADITIONAL_CHINESE
  10. 公共静态最终语言环境法国
  11. 公共静态最终语言环境德国
  12. 公共静态最终语言环境意大利
  13. 公共静态最终语言环境JAPAN
  14. 公共静态最终语言环境KOREA
  15. 公共静态最终语言环境CHINA
  16. 公共静态最终语言环境
  17. 公共静态最终语言环境台湾
  18. 公共静态最终语言环境英国
  19. 公共静态最终语言环境US
  20. 公共静态最终语言环境加拿大
  21. 公共静态最终语言环境CANADA_FRENCH
  22. 公共静态最终语言环境ROOT
语言环境类的构造函数【Java的国际化和本地化】Locale类的三个构造函数如下:
  1. 语言环境(字符串语言)
  2. 语言环境(字符串语言, 字符串国家/地区)
  3. 语言环境(字符串语言, 字符串国家/地区, 字符串变体)
语言环境类的常用方法提供了Locale类的常用方法。
  1. public static Locale getDefault()返回当前Locale的实例
  2. public static Locale [] getAvailableLocales()返回一个可用语言环境的数组。
  3. public String getDisplayCountry()返回此语言环境对象的国家/地区名称。
  4. public String getDisplayLanguage()返回此语言环境对象的语言名称。
  5. public String getDisplayVariant()返回此语言环境对象的变体代码。
  6. public String getISO3Country()返回当前语言环境所在国家/地区的三个字母的缩写。
  7. public String getISO3Language()返回当前语言环境的语言的三个字母的缩写。
显示默认语言环境信息的Local类示例
在此示例中, 我们将显示默认语言环境的信息。如果要获取有关任何特定语言环境的信息, 请在main方法中注释第一行语句, 并取消注释第二行语句。
import java.util.*; public class LocaleExample { public static void main(String[] args) { Locale locale=Locale.getDefault(); //Locale locale=new Locale("fr", "fr"); //for the specific localeSystem.out.println(locale.getDisplayCountry()); System.out.println(locale.getDisplayLanguage()); System.out.println(locale.getDisplayName()); System.out.println(locale.getISO3Country()); System.out.println(locale.getISO3Language()); System.out.println(locale.getLanguage()); System.out.println(locale.getCountry()); } }

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

以不同语言打印英文的Local类示例
在此示例中, 我们以其他语言显示英语。让我们看看英语是怎么用法语和西班牙语写的。
import java.util.*; public class LocaleExample2 { public static void main(String[] args) { Locale enLocale = new Locale("en", "US"); Locale frLocale = new Locale("fr", "FR"); Locale esLocale = new Locale("es", "ES"); System.out.println("English language name (default): " + enLocale.getDisplayLanguage()); System.out.println("English language name in French: " + enLocale.getDisplayLanguage(frLocale)); System.out.println("English language name in spanish: " + enLocale.getDisplayLanguage(esLocale)); }}

< strong> Output:< /strong> English language name (default): English English language name in French: anglais English language name in spanish: ingl?s

打印许多语言环境的显示语言的Local类示例
在此示例中, 我们将显示许多语言环境的显示区域。
import java.util.*; public class LocaleEx { public static void main(String[] args) { Locale[] locales = { new Locale("en", "US"), new Locale("es", "ES"), new Locale("it", "IT") }; for (int i=0; i< locales.length; i++) { String displayLanguage = locales[i].getDisplayLanguage(locales[i]); System.out.println(locales[i].toString() + ": " + displayLanguage); } }}

Output:en_US: English es_ES: espa?ol it_IT: italiano

我们将从国际化教程中学到什么?

    推荐阅读