2016-09-27 11 views
5

多言語(英語、ロシア語、ウズベク語)のアプリを作成しました。私はdocsとして4つのフォルダ(値、値-en、値-rr、値-uz)に4つの文字列resouresesを入れました。以下のようなアプリケーションコントローラのメソッドを呼び出すことによって、そのアプリケーションの再起動後多言語アンドロイドアプリケーションを作成

Settings.LANGUAGE = prefs.getString(User.LANG, Settings.RUSSIAN); 
Locale locale = new Locale(Settings.LANGUAGE); 
Locale.setDefault(locale); 
Configuration configuration = new Configuration(); 
configuration.locale = locale; 
getBaseContext().getResources().updateConfiguration(configuration, 
    getBaseContext().getResources().getDisplayMetrics()); 

::私は以下のようなアプリケーションのコントローラでのアプリの言語の更新resoursesの設定を変更すると、それらの後

public void reStart() { 
    Intent i = getBaseContext().getPackageManager() 
      .getLaunchIntentForPackage(getBaseContext().getPackageName()); 
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(i); 
} 

これはよく、ほとんどすべての工夫を動作します。しかし、サムスンギャラクシーS6(SM - G920F)では、それは狂ったように動作します。いくつかの単語は英語であり、他の単語はウズベキスタン語である。 このエラーを解決するにはどうすればよいですか?すべての工夫によって(別の言語に)適用される "異なる言語をサポートする"という概念ではないか?私の観察から

enter image description here

+0

サムスンが....そこに自分のことを行うのが好き:[私は、デバイスの言語を変更する代わりに、プログラムのようなとき、彼らは常に(いくつかのための)基準 –

+0

に従わないことをあなたが同じ問題を取得してください見つけましたそれ? – DeeV

+0

私はそれから何をしなければなりませんか? @NeilLocketz –

答えて

2

、奇妙な行動が唯一のアクティビティのタイトルに影響を与えた、と私は私がしたことが判明:私は(添付画像のように)全てresoursesが言語を対応して与えられていることを確認しているところで マニフェストファイル内のアクティビティタイトルの翻訳を設定する。これらの翻訳だけが不正行為であった。他のすべての動的に設定された翻訳はうまくいきました。解決

getSupportActionBar().setTitle(R.string.title_activity_followers); 

問題: だから、問題を解決するために、私は、以下のようにのonCreateメソッドに活動のタイトルを設定し、マニフェストファイルからのすべてのアクティビティのラベルを削除しました。