2011-06-24 12 views
30

可能性の重複を変更することができます。
Change language programatically in Androidは、どのように私は自分のアプリケーションの言語

私は、Androidに新しいです。私のアプリケーションでは、3つの言語から言語を選択できます。ユーザーが選択した言語に基づいて、アプリケーション全体の言語を変更する必要があります。これどうやってするの?

+0

使用これを変更します言語をプログラムで指定します。 'code ' ロケールロケール=新しいロケール(" en_US "); Locale.setDefault(locale); コンフィギュレーションconfig = new Configuration(); config.locale = locale;context.getApplicationContext()。getResources()。updateConfiguration(config、null); setContentView(R.layout.activity_main); 'code ' –

答えて

6

ロケールを設定できます。

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

49

使用を見ることができます:

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-arためres/values-jaにフォルダを作る。..

そしてstring.xmlファイルを作成し、あなたのレイアウトにあなたが好きな言語置きます。それはあなたがそれを手動で、それは

アラビア語res/values-arの例など外部フォルダvalues-ar、から取ってくるしたいそうでない場合は値のフォルダからデフォルト言語を取得します:

<?xml version="1.0" encoding="UTF-8"?> 
    <resources> 
    <string name="label">حسب</string> 
    <string name="name">بحث</string> 
    <string name="search">بحث :</string> 
</resource> 
+0

あなたのコードをどこで呼び出すのですか? – MBH

+0

必要な場所に呼び出します。 – Hulk

+1

はアプリ全体にそれを適用するのに十分な時間であると呼びますか?またはそれぞれのすべての活動ですか? – MBH

関連する問題