溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JAVA的國際化機(jī)制是什么

發(fā)布時間:2021-08-27 15:56:57 來源:億速云 閱讀:135 作者:chen 欄目:編程語言

本篇內(nèi)容介紹了“JAVA的國際化機(jī)制是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!


  一個國際化的程序通常具有以下特征:

  有一個附加的本地化數(shù)據(jù)(localized data)及擁有在全世界各個地區(qū)執(zhí)行的能力。
  文本的元素,比如狀態(tài)信息或GUI截面的lables,不是直接寫(hardcoded)在程序中,而是被存儲在本地化的數(shù)據(jù)中,并且能被程序正確的動態(tài)的使用。
  支持新的語言時,不需要修改程序,不需要重新編譯。
  文化差異的數(shù)據(jù),比如日期和貨幣,必須根據(jù)擁護(hù)的語言和習(xí)慣顯示不同的格式。
  可以被迅速的本地化。
  本地化(Localization)是指通過增加本地描述的構(gòu)件(locale-specific components )和文字翻譯工作來使應(yīng)用程序適應(yīng)于不同的語言和地區(qū)的過程。本地化有時候被簡稱為l10n,應(yīng)為有10個字母在本地化的英文單詞的字母l和n之間。通常本地化最耗時的工作應(yīng)該是文字翻譯。本地化工作者們要根據(jù)地區(qū)的具體需求來為日期、數(shù)字和通貨等數(shù)據(jù)建立新的格式。其他類型的數(shù)據(jù),象聲音,圖象等,也需要根據(jù)具體需要來決定是否本地化。

  下面通過一個簡單的例子來說明如何給一個程序提供國際化的特性。這個例子在不同的語言環(huán)境下顯示不同的文本信息。

  一個簡單的例子
  先看下面的一段代碼:
  public class NotI18N {
  static public void main(String[] args) {
  System.out.println("Hello.");
  System.out.println("How are you?");
  System.out.println("Goodbye.");
  }
  }
  如果你決定在上面的程序中給德國和法國的不同用戶顯示同樣的信息。但是你的程序員卻不是個語言專家,他不懂德語和法語。所以你需要翻譯人員把它翻譯成德語和法語,但是你的翻譯人員不懂程序,所以你可以把這些信息存到一個文本或其他格式的文件中供翻譯人員使用。那么,程序必須能顯示不同語言的信息,并且你并不知道你希望為這個程序提供的下一個語言支持是什么,或許是日語或許是別的什么語言。
  下面的代碼是一個國際化的代碼的例子:
  import java.util.*;

  public class I18NSample {
  static public void main(String[] args) {
  String language;
  String country;

  if (args.length != 2) {
  language = new String("en");
  country = new String("US");
  } else {
  language = new String(args[0]);
  country = new String(args[1]);
  }

  Locale currentLocale;
  ResourceBundle messages;

  currentLocale = new Locale(language, country);
  messages = ResourceBundle.getBundle("MessagesBundle",
  currentLocale);
  System.out.println(messages.getString("greetings"));
  System.out.println(messages.getString("inquiry"));
  System.out.println(messages.getString("farewell"));
  }
  }
  請注意:在上面的代碼中,信息并沒有被hardcoded在代碼中!
  如果想運(yùn)行上面的代碼,請下載下面的文件:
  1、I18NSample.java
  2、MessageBundle.properties
  3、MessageBundle_de_DE.properties
  4、MessageBundle_en_US.properties
  5、MessageBundle_fr_FR.properties
  下面看看這個程序的運(yùn)行結(jié)果:
  顯示法語信息:
  java I18NSample fr FR
  Bonjour.
  Comment allez-vous?
  Au revoir.
  顯示英語信息:
  java I18NSample en US
  Hello.
  How are you?
  Goodbye.

“JAVA的國際化機(jī)制是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI