JAvaのLocale

3140 ワード

Javaの国際化
Java.lang.Localeを使用してJava国際化のシナリオを構築します.
JAva.lang.Localeは特定の地理、政治、文化を代表しています.タスクを実行するためにLocaleが必要な操作を言語環境に敏感な操作と呼びます.
システムのデフォルトのLocaleを作成
Locale defaultLocale = Locale.getDefault(); このJava仮想マシンの現在のスレッドのデフォルトの言語環境値を取得
現在のJava仮想マシンスレッドのデフォルトの国と言語情報String country=defaultLocale.getCountry();//国コードString language=defaultLocale.getLanguage();国に戻る言語String displayCountry=defaultLocale.getDisplayCountry();//ユーザーに表示する国情報String displayLanaguage=defaultLocale.getDisplayLanaguage();//ユーザーに表示する言語情報String displayName=defaultLocale.getDisplayName();ユーザーに表示するのに適した言語環境名を返します.
現在のJava仮想マシンスレッドが置かれているオペレーティングシステムに加入する地域言語が「中国語(簡体字、中国)」に設定されている場合、上記の実行結果は、CN zh中国語中国語(中国)が国と言語に基づいてLocale(言語環境)を構築する
Locale currentLocale = new Locale(“zh”, ”CN”); 構造方法は、Locale(String language,String country);
ResourceBundleを使用して国際化されたリソースファイルを読み込む
ResourceBundleリソースパッケージには、特定の言語環境のオブジェクトが含まれています.言語環境リソースをロードして読み込むには、これを使用します.1.簡単にローカライズしたり、異なる言語に翻訳したりする2.複数の言語環境を一度に処理する3.後で簡単に修正し、より多くの言語環境を一度にサポートすることができます.
プログラムが言語環境固有のオブジェクトを必要とする場合、getBundle()メソッドを使用してResourceBundleクラスResourceBundle rb=ResourceBundle.getBundle(「res.MessageBundle」,currentLocale)をロードします.ここで、res.MessageBundleは、srcの下にresフォルダを作成し、resフォルダの下にMessageBundle.properteisというリソースファイルを表します.ここでは、複数の国際化リソースファイルを作成できます.MessageBundle_zh_CN.properties;MessageBundle_en_US.properteis;ここでMessageBundleはResourceBundleを構築する際に使用する文字列で、この名前は合法的で、特定の制約は必要ありません.後の名前は必ずルールに従ってください.resourceName_language_country.properteis; rb.getString(key)を使用します.リソースファイルのキーに対応するvalueを取得できます.
≪インスタンス|Instance|emdw≫
import java.util.*;
public class LocaleT{
    public static void main(String[] args){
        //              
        System.out.println("    、    ");
        Locale[] locales = Locale.getAvailableLocales();
        for(Locale locale: locales){
            System.out.println(locale.getDisplayLanguage()
                +"---->"+locale.getLanguage());
            System.out.println(locale.getDisplayCountry()
                +"---->"+locale.getCountry());
        }
        //          hi_en_US.properties,hi_zh_CN.properties
        //       
        //Locale locale = Locale.getDefault(Locale.Category.FORMAT); 
        //  Locale US
        //  hi  ,
        ResourceBundle bundle = ResourceBundle.getBundle("hi",Locale.US);
        System.out.println(bundle.getString("hi"));
    }
}