國際化與格式化(0):Java國際化的思路及支援的國家和語言

來源:互聯網
上載者:User

國際化是指應用程式運行時,可根據用戶端請求來自的省/地區、語言的不同而顯示不同的介面。例如,如果請求來自於中文作業系統的用戶端,則應用程式中的各種提示資訊錯誤和協助等都使用中文文字;如果用戶端使用英文作業系統,則應用程式能自動識別,並作出英文的響應。

引入國際化的目的是為了提供自適應、更友好的使用者介面,並不需要改變程式的邏輯功能。國際化簡稱I18N

一個國際化支援很好的應用,在不同的地區使用時,會呈現出本地語言的提示。這個過程也被稱為本地化,簡稱L10N

Java國際化的思路:

Java程式的國際化思路是將程式中的標籤、提示等資訊放在資源檔中,程式需要支援哪些國家、語言環境,就提供對應的資源檔。資源檔是key-value對,每個資源檔中的key是不變的,但value則隨不同的國家、語言而改變。

Java程式的國際化主要通過如下三個類完成:

① java.util.ResourceBundle : 用於載入國家、語言資源套件。

② java.util.Locale : 用於封裝特定的國家/地區、語言環境。

③ java.text.MessageFormat : 用于格式化帶預留位置的字串。

為了實現程式的國際化,必須先提供者所需要的資源檔。資源檔的內容是很多key-value對,其中key是程式使用的部分,而value則是程式介面的顯示字串。

資源檔的命名可以有如下三種形式:

① baseName_language_country.properties

② baseName_language.properties

③ baseName.properties

其中baseName是資源檔的基本名,使用者可以隨意指定。而language和country都不可隨意變化,必須是Java所支援的語言和國家。

Java支援的國家和語言:

事實上,Java不可能支援所有的國家和語言,如果需要擷取Java所支援的國家和語言,則可調用Locale類的getAvailableLocales( )方法,該方法返回一個Locale數組,該數組裡包含了Java所支援的國家和語言。

LocaleDemo.java :

public class LocaleDemo {public static void main(String[] args) {Locale[] locales=Locale.getAvailableLocales();for(int i=0;i<locales.length;i++){System.out.println(locales[i].getDisplayCountry()+"="+locales[i].getCountry()+"  "+locales[i].getDisplayLanguage()+"="+locales[i].getLanguage());}}}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.