Innerhalb meiner App lasse ich Benutzer die Sprache ändern, wenn sie die App installieren. Sagen wir, sie wählen "Englisch" während der Installation der App. Aber wenn sie danach die Sprache des Telefons auf "Französisch" ändern, wie sollte meine App sie empfangen und ihre Sprache ändern?Wie sollte meine Android-App ihre Sprache ändern, wenn der Benutzer die Sprache des Mobiltelefons ändert?
Antwort
Die App lädt automatisch ihre entsprechenden Sprachzeichenfolgendateien aus dem Verzeichnis res/values
, nachdem die Anwendung neu gestartet wurde. Sie könnten fortfahren und Locale.getDefault().getLanguage()
vergleichen, um zu überprüfen, ob sich die Sprache seit dem letzten Neustart geändert hat.
Angenommen, Sie strings.xml verwenden Ihre String-Ressourcen zu verwalten, unterstützt Android nativ Lokalisierung: https://developer.android.com/preview/features/multilingual-support.html
Die Idee ist, dass man verschiedene Strings und Werte für jede Sprache, die Sie verwalten möchten, dann, wenn der Benutzer Änderungen die Sprache in den Einstellungen wird die App automatisch die richtige Datei auswählen (oder auf die Standardzeichenfolge strings.xml zurückgreifen, wenn Sie keine Ressourcen für die gewählte Sprache definiert haben).
Es wird versuchen, Informationen über Französisch in Werte (Wert-fr) zu erhalten, wenn Sie die Übersetzungen nicht hinzugefügt haben, wird es weiterhin Englisch zeigen