可能性のある複製:
Androidでプログラム的に言語を変更
私はAndroidが初めてです。私のアプリケーションでは、ユーザーは3つの言語から言語を選択できます。ユーザーが選択した言語に基づいて、アプリケーションの言語全体を変更する必要があります。これどうやってするの?
これを使用して、プログラムで言語を変更します。
Locale locale = new Locale("en_US");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
context.getApplicationContext().getResources().updateConfiguration(config, null);
"en_US"
の代わりに、希望する言語の言語の国コードを記述します。たとえば、日本語の場合、ja_JP
;アラビア語の場合、ar
。リストについては、 this link を確認してください。
そして、日本語の場合はres/values-ja
、アラビア語の場合はres/values-ar
にフォルダーを作成します。
そして、string.xml
ファイルを作成し、レイアウトに必要な言語を配置します。それは、valuesフォルダーからデフォルト言語をフェッチします。そうでない場合は、手動でそれを望む場合、外部フォルダーvalues-ar
などからフェッチします。
アラビア語のres/values-ar
の例:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="label">حسب</string>
<string name="name">بحث</string>
<string name="search">بحث :</string>
</resource>
ロケールを設定できます。
Resources res = context.getResources();
// Change locale settings in the app.
DisplayMetrics dm = res.getDisplayMetrics();
Android.content.res.Configuration conf = res.getConfiguration();
conf.locale = new Locale(language_code.toLowerCase());
res.updateConfiguration(conf, dm);
言語固有のコンテンツがある場合-設定に基づいてそのベースを変更できます。詳細については、 Locale および this also を参照してください。