Das ist möglich. Sie können das Gebietsschema einstellen. Ich würde das aber nicht empfehlen. Wir haben es in frühen Stadien ausprobiert, es ist im Grunde ein Kampf gegen das System.
Wir haben die gleiche Anforderung, die Sprache zu ändern, haben uns aber dafür entschieden, dass die Benutzeroberfläche mit der des Telefons übereinstimmen sollte. Es funktionierte über die Einstellung des Gebietsschemas, war aber zu fehleranfällig. Außerdem muss man es meiner Erfahrung nach jedes Mal einstellen, wenn man eine Aktivität aufruft (jede Aktivität).
Resources res = context.getResources();
// Change locale settings in the app.
DisplayMetrics dm = res.getDisplayMetrics();
android.content.res.Configuration conf = res.getConfiguration();
conf.setLocale(new Locale(language_code.toLowerCase())); // API 17+ only.
// Use conf.locale = new Locale(...) if targeting lower versions
res.updateConfiguration(conf, dm);
Wenn Sie sprachspezifische Inhalte haben, können Sie diese anhand der Einstellungen ändern.
Aktualisierung am 26. März 2020
public static void setLocale(Activity activity, String languageCode) {
Locale locale = new Locale(languageCode);
Locale.setDefault(locale);
Resources resources = activity.getResources();
Configuration config = resources.getConfiguration();
config.setLocale(locale);
resources.updateConfiguration(config, resources.getDisplayMetrics());
}
- HINWEISE: Der Sprachcode darf kein '-' enthalten und darf nur aus 2 Kleinbuchstaben bestehen.