2017-08-17 14 views
0

私はこのansに従って設定から変更言語を実装しましたが、私のアプリケーションを殺した後、アプリケーションの画面の一部が英語になってしまいました。アラビア語への言語変更が機能していませんか?

私は コードスプラッシュスクリーン用

String deviceLanguage = Locale.getDefault().getLanguage(); 

if (!"en".equalsIgnoreCase(deviceLanguage) && !"ar".equalsIgnoreCase(deviceLanguage)){ 
      deviceLanguage="en"; 
     } 
((AppController)getApplication()).appLang= Utilities.getSaveData(this, getString(R.string.key_language),deviceLanguage); 

コードディテール活動のための

@Override 
protected void attachBaseContext(Context newBase) { 
    super.attachBaseContext(MyContextWrapper.wrap(newBase, ((AppController)newBase.getApplicationContext()).appLang)); 
} 

注意以下のようなコード実装しました:5.1アンドロイドで私は1つに、この問題を得たプラス3Tデバイスとgenymotionエミュレータバージョン

+0

下に述べたように、実際の問題は、彼らが複数の言語と同じ時間を選択することができますし、それはこのような問題 – Krutik

答えて

0
final Resources res = appContext.getResources(); 
final Configuration conf = res.getConfiguration(); 
conf.locale = new Locale("ar", "AE");  
res.updateConfiguration(conf, null); 

設定を更新した後、Rest芸術活動

finish(); 
final Intent intent = getIntent(); 
startActivity(intent); 
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); 
+0

何かを作成しますが、私はむしろ 'に設定ロケールを置くことで、いくつかのカスタマイズOSにOSをカスタマイズしています現在のアクティビティだけでなく、変更後もアプリケーションを再起動します。私は詳細を思い出すことはできません(私は最後に同様のことをしてから3〜4年前です)が、IIRCは一部の古いバージョンのAndroidや一部のデバイスでは、アクティビティのみを再起動するといくつかのビット元のロケールで初期化されています。 – Ped7g

関連する問題