13

私のアプリケーションは 4 つの言語をサポートしています。ユーザーは言語を選択します。しかし、これはロシア語では機能しません。

if (dil.equals("eng")){
        Configuration c = new Configuration(context.getResources().getConfiguration());
        c.locale = Locale.ENGLISH;
        context.getResources().updateConfiguration(c,context.getResources().getDisplayMetrics());
        
    }
    else if (dil.equals("ger")){
        Configuration c = new Configuration(context.getResources().getConfiguration());
        c.locale = Locale.GERMAN;
        context.getResources().updateConfiguration(c,context.getResources().getDisplayMetrics());
        
    }
    else if (dil.equals("rus")){
        Configuration c = new Configuration(context.getResources().getConfiguration());
        c.locale = Locale.????????;
        context.getResources().updateConfiguration(c,context.getResources().getDisplayMetrics());
        
    }
    else
    {
        Configuration c = new Configuration(context.getResources().getConfiguration());
        c.locale = Locale.getDefault();
        context.getResources().updateConfiguration(c,context.getResources().getDisplayMetrics());
        
    }

私はロシア人のために何をすべきかわかりません。

c.locale = Locale.????????;
4

2 に答える 2

37

このコンストラクターを使用すると、次のようにロケールをロシア語に設定できます。

Locale myLocale = new Locale("ru","RU");

これは、 Javaでサポートされているロケールのリストです。「ru」はサポートされていますが、テストされていないことがわかります。

ドキュメントには、ベースのローカリゼーションと国際化を提供する方が良い場合もあると書かれているので、

Locale myLocale =  new Locale("ru") 

Locale myLocale = new Locale("ru","RU")
于 2012-06-07T12:12:12.880 に答える
0

Locale の Android ドキュメントによると

このクラスのコンストラクターはエラー チェックを行いません。存在しない言語と国のロケールを作成し、存在しない組み合わせのインスタンスを作成できます (「米国で話されているドイツ語」の「de_US」など)。

Java が常に使用できることを保証する唯一のロケールである en_US を除いて、このクラスで定数として事前定義されたロケールのいずれかで、ロケール データが必ずしも使用できるとは限らないことに注意してください。

また、すべてのデバイスが同じロケールを使用できると仮定するのも誤りです。米国で販売されるデバイスはほぼ確実に en_US と es_US をサポートしますが、言語が同じでも国が異なるロケール (en_GB や es_ES など) や、他の言語のロケール (de_DE など) をサポートするとは限りません。ヨーロッパで販売されているデバイスの場合は、その逆になる可能性があります。

さらに、ドキュメントにはロシア語のロケールがリストされていないため、作成する必要があるようです。上記の引用の 3 番目の段落にも注意してください。そのため、おそらく独自のものを提供する方が良いでしょう。

この SO 投稿も確認してください。ロケールに関する役立つヒントがいくつかあります

于 2012-06-07T12:02:28.923 に答える