Konzepte und Jetpack Compose-Implementierung
Android ist auf vielen Geräten in zahlreichen Regionen installiert. Wenn Sie möglichst viele Nutzer mit Ihrer App erreichen möchten, sollten Sie die darin verwendeten Text‑ und Audiodateien, Zahlen, grafischen Elemente sowie die Währung auf den jeweiligen Zielmarkt abstimmen.
Auf dieser Seite werden einige Best Practices für die Lokalisierung von Android-Apps beschrieben.
Sie benötigen grundlegende Kenntnisse in Kotlin oder Java und sollten mit Android-Ressourcen, der Deklaration von Benutzeroberflächenelementen in XML, Entwicklungsaspekten wie dem Aktivitätslebenszyklus sowie den allgemeinen Grundsätzen der Internationalisierung und Lokalisierung vertraut sein.
Es empfiehlt sich, das Android-Ressourcenframework zu verwenden, um die lokalisierten Aspekte Ihrer App so weit wie möglich von den Kernfunktionen der App zu trennen.
- Speichern Sie die meisten oder alle Inhalte der Benutzeroberfläche Ihrer App in Ressourcendateien, wie auf dieser Seite und in der Übersicht über App-Ressourcen beschrieben.
- Das Verhalten der Benutzeroberfläche wird hingegen durch Ihren Kotlin- oder Java-basierten Code bestimmt. Wenn Nutzer beispielsweise Daten eingeben, die je nach Gebietsschema unterschiedlich formatiert oder sortiert werden müssen, verwenden Sie Kotlin oder die Programmiersprache Java, um die Daten programmatisch zu verarbeiten. Auf dieser Seite wird nicht beschrieben, wie Sie Ihren Kotlin- oder Java-basierten Code lokalisieren.
Eine kurze Anleitung zum Lokalisieren von Strings in Ihrer App finden Sie unter Verschiedene Sprachen und Kulturen unterstützen.
Ressourcen für die Lokalisierung verwenden
In diesem Abschnitt wird beschrieben, wie Sie Standardressourcen und alternative Ressourcen erstellen. Außerdem wird erläutert, wie Ressourcen Priorität zugewiesen wird und wie Sie in Ihrem Code auf Ihre Ressourcen verweisen.
Standardressourcen erstellen
Fügen Sie den Standardtext der App in res/values/strings.xml ein. Verwenden Sie für diese Strings die Standardsprache, also die Sprache, die die meisten Nutzer Ihrer App sprechen.
Der Standardressourcensatz enthält auch alle Standard-Drawables und ‑Layouts und kann andere Ressourcentypen wie Animationen enthalten. Diese Ressourcen gehören in die folgenden Verzeichnisse:
res/drawable/: Das erforderliche Verzeichnis, das mindestens eine Grafikdatei für das App-Symbol bei Google Play enthält.res/layout/: Erforderliches Verzeichnis mit einer XML-Datei, die das Standardlayout definiertres/anim/: erforderlich, wenn Sieres/anim-<qualifiers>-Ordner habenres/xml/: erforderlich, wenn Sieres/xml-<qualifiers>-Ordner habenres/raw/: erforderlich, wenn Sieres/raw-<qualifiers>-Ordner haben
Tipp:Prüfen Sie in Ihrem Code jeden Verweis auf eine Android-Ressource. Achten Sie darauf, dass für jede eine Standardressource definiert ist. Achten Sie außerdem darauf, dass die Standarddatei für Strings vollständig ist: Eine lokalisierte Datei für Strings kann eine Teilmenge der Strings enthalten, die Standarddatei für Strings muss jedoch alle Strings enthalten.
Lokalisierungstipps
Beachten Sie diese Tipps bei der Lokalisierung Ihrer App.
Flexibles Layout entwerfen
Wenn Sie das Layout an eine bestimmte Sprache anpassen müssen, können Sie ein alternatives Layout für diese Sprache erstellen, z. B. res/layout-de/main.xml für ein deutschsprachiges Layout. Dadurch kann die Wartung Ihrer App jedoch erschwert werden. Es ist besser, ein einzelnes, flexibleres Layout zu erstellen.
Eine weitere typische Situation ist eine Sprache, die ein anderes Layout erfordert. Beispiel: Ein Kontaktformular enthält möglicherweise zwei Namensfelder, wenn die App auf Japanisch ausgeführt wird, aber drei Namensfelder, wenn die App in einer anderen Sprache ausgeführt wird. Dafür haben Sie zwei Möglichkeiten:
- Erstellen Sie ein Layout mit einem Feld, das Sie je nach Sprache programmatisch aktivieren oder deaktivieren können.
- Das Hauptlayout muss ein weiteres Layout enthalten, das das änderbare Feld enthält. Das zweite Layout kann für verschiedene Sprachen unterschiedliche Konfigurationen haben.
Android-Kontextobjekt für die manuelle Suche nach dem Gebietsschema verwenden
Sie können das Gebietsschema mit dem von Android bereitgestellten Objekt Context abrufen, wie im folgenden Beispiel gezeigt:
Kotlin
val primaryLocale: Locale = context.resources.configuration.locales[0] val locale: String = primaryLocale.displayName
Java
Locale primaryLocale = context.getResources().getConfiguration().getLocales().get(0); String locale = primaryLocale.getDisplayName();