0

アプリの言語をプログラムで設定しようとしていますが、一部の文字列しか変更されません。英語のデフォルト文字列がある値フォルダーがあります。次に、values-frを作成し、すべての文字列を自分でフランス語に翻訳したので、英語のstrings.xmlがある(英語の)デフォルト値フォルダーと、フランス語のstrings.xmlがあるvalues-frフォルダーがあります。

onCreate と onResume の言語を変更するために使用するコードは次のとおりです。

String languageToLoad  = "fr"; // your language
Locale locale = new Locale(languageToLoad); 
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, 
getBaseContext().getResources().getDisplayMetrics());

ただし、一部の文字列のみが変更されます。たとえば、好みのすべての文字列が変更されますが、メインアクティビティの文字列は同じままです。何が原因でしょうか?

4

2 に答える 2

0

これを試して:

Resources standardResources = getApplicationContext();
DisplayMetrics metrics = standardResources.getDisplayMetrics();
Configuration config = new Configuration(standardResources.getConfiguration());
config.locale = new Locale("fr") // change
standardResources.updateConfiguration(config, metrics);
于 2012-11-06T23:53:27.027 に答える