デバイスのための言語の変更設定(ロケール)

? raychenon @ | Original: StackOverFlow

私はそれがRES /文字列を通る単一のアプリケーションでとロケールに応じて、複数の言語を持つことが可能であることを知っている。 ここではケースがある  http://stackoverflow.com/questions/2078289/android-controling-the-user-language

今どのように私は電話で言語を変更できますか? 私はによってやるだろうと同様に [メニュー]> [設定] >言語&#038 ;キーボード>地域を選択>言語

これらの設定にアクセスするためのいくつかの実際のコードはありますか? または私は言語設定へのショートカットのための意図を作成する必要があります。 いくつかのコードを投稿してください

編集: ロケールクラスに developer.android.com/intl/fr/reference/java/util/Locale.html

コンストラクタは、少なくともロケール(文字列言語)である 入力が言語です。 どのようにして、デバイス上で使用される現在の言語を取得することができますか?

Top 5 答え

1Jim Blackler @

アプリから直接それを設定することができますが、それ自体を変更することがあり、ユーザーを送信する場合、これを試してわからない。

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName("com.android.settings", "com.android.settings.LanguageSettings");            
startActivity(intent);
2raychenon @

私は自分の質問に別の答えを見つけました。 オープンソースコードのプロジェクトがありますhttp://code.google.com/p/languagepickerwidget なお、表示や言語を選択するListActivityを再作成だ。

ジムは、あなたのソリューションは、はるかに簡単で、まさに私が必要です。これは、設定にshorcutだ。あなたが公開した直後に、私は市場に「 raygional 」と呼ばれるアプリをアップロードしました。私は(私は唯一の6点を持っている)ことができれば、私はあなたの答えは有用なものにするだろう。

プロセスや意図を参照するには別の方法があります。エミュレータのメニュー>開発ツール>開発設定]に移動>と表示実行中のプロセスをクリックしてください

3caller9 @

あなたが意図にを変更した場合に、ジムの答えに展開するには:

intent.setClassName("com.android.settings", "com.android.settings.LocalePicker"); 

それは、言語選択リストでオフに直接ユーザーを削除し、言語が選択されると、それはあなたのアプリケーションに戻ります。

これは、ユーザーがあなたのアプリに選択することが3 (言語、辞書、およびキーボード)のオプションのどちらと返品についてすぐに選択した後に考えることはありません、クリックを削除します。

4Edu Zamora @

私の知る限りでは、唯一の方法は、インテントが(他のソリューションが提案する何) (これが意味することのリスクに)反射を介して内部のクラスにアクセスしている使用することなく、デバイスのロケールを変更する。

あなたがここにこのユースケースのための正確な例を見つけることができます。  http://www.tutorialforandroid.com/2010/07/access-internal-classes-in-android.html

5Sergey @

言語を変更するには、システム設定を開くには、別の方法があります:

Intent i = new Intent( android.provider.Settings.ACTION_LOCALE_SETTINGS );
startActivity( i );

それは言語のリストだけが表示され、あなたがいずれかを選択するとき - それは、デバイス上で言語を変更します。