六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

JAVA的國際化機制

[摘要]一 介紹   國際化(Internationalization)是設計一個適用于多種語言和地區的應用程序的過程。適用于多種語言和地區的含義是當使用不同語言及處于不同的地區的用戶在使用這個應用程序時,應用程序必須使用他們能看懂的語言和符合他們文化習慣來顯示信息。國際化有時候被簡稱為i18n,因為有1...
 一 介紹
  國際化(Internationalization)是設計一個適用于多種語言和地區的應用程序的過程。適用于多種語言和地區的含義是當使用不同語言及處于不同的地區的用戶在使用這個應用程序時,應用程序必須使用他們能看懂的語言和符合他們文化習慣來顯示信息。國際化有時候被簡稱為i18n,因為有18個字母在國際化的英文單詞的字母i和n之間。

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

  有一個附加的本地化數據(localized data)及擁有在全世界各個地區執行的能力。
  文本的元素,比如狀態信息或GUI截面的lables,不是直接寫(hardcoded)在程序中,而是被存儲在本地化的數據中,并且能被程序正確的動態的使用。
  支持新的語言時,不需要修改程序,不需要重新編譯。
  文化差異的數據,比如日期和貨幣,必須根據擁護的語言和習慣顯示不同的格式。
  可以被迅速的本地化。
  本地化(Localization)是指通過增加本地描述的構件(locale-specific components )和文字翻譯工作來使應用程序適應于不同的語言和地區的過程。本地化有時候被簡稱為l10n,應為有10個字母在本地化的英文單詞的字母l和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在代碼中!
  如果想運行上面的代碼,請下載下面的文件:
  1、I18NSample.java
  2、MessageBundle.properties
  3、MessageBundle_de_DE.properties
  4、MessageBundle_en_US.properties
  5、MessageBundle_fr_FR.properties
  下面看看這個程序的運行結果:
  顯示法語信息:
  java I18NSample fr FR
  Bonjour.
  Comment allez-vous?
  Au revoir.
  顯示英語信息:
  java I18NSample en US
  Hello.
  How are you?
  Goodbye.

  從上面的代碼我們可以看出,在實現了國際化的代碼中,并沒有將需要顯示的信息直接hardcode在代碼中,而是存在一個文件中供程序使用。程序根據不同的語言和國家(Local)來取得文件中不同信息顯示。我們試著按一下的步驟一步一步分析這段代碼如何實現了國際化:



主站蜘蛛池模板: 亚洲成aⅴ人片在线观 | 一级做a爰性色毛片免费 | 七七七久久久久人综合 | 亚洲人成影网站~色 | 亚洲欧美精品一区二区 | 最新国产在线 | 欧美视频一区在线 | 日本不卡一区二区三区视频 | 欧美小视频在线 | 日本福利网址 | 日韩欧美激情 | 日韩 欧美 中文 | 四虎影院在线观看网站 | 欧美特黄一区二区三区 | 四虎新网址 | 一区二区三区在线视频播放 | 四虎成人免费大片在线 | 日本在线日本中文字幕日本在线视频播放 | 网络色综合久久 | 日产国产欧美韩国在线 | 日本不卡视频在线视频观看 | 日韩成人免费在线视频 | 亚洲大片 | 午夜视频导航 | 亚洲国产美女精品久久 | 全免费a级毛片免费看不卡 全黄一级片 | 中文天堂网 | 欧美亚洲国产精品久久久 | 亚洲欧美日本视频 | 一级做a爱片久久蜜桃 | 日本高清免费不卡在线 | 日韩视频在线精品视频免费观看 | 日本午夜激情 | 亚洲色视频在线播放网站 | 伊人久久五月 | 日韩免费高清一级毛片在线 | 午夜视频www | 天天躁狠狠躁 | 亚洲剧场午夜在线观看 | 五月激情婷婷综合 | 色爱区综合|