26 Resourcen und Unterstützung mehrerer Sprachen in Apps

Die Internationalisierung und Lokalisierung von Android-Apps ermöglicht es, eine breitere Benutzerbasis zu erreichen und eine verbesserte Benutzererfahrung für Menschen in verschiedenen Ländern oder mit unterschiedlichen Muttersprachen zu bieten.

26.1 Schlüsselkonzepte und Schritte

26.1.1 1. Ressourcen Externalisieren

Alle Texte und lokalisierten Ressourcen (Bilder, Sounds) sollten außerhalb des Codes in Ressourcendateien gespeichert werden.

26.1.2 2. Strings.xml

Texte werden in strings.xml-Dateien unter res/values gespeichert. Für jede Sprache können alternative strings.xml-Dateien in sprachspezifischen Ressourcenordnern erstellt werden, z.B. res/values-fr für Französisch.

26.1.3 3. Alternative Ressourcen

Erstellen Sie für jede unterstützte Sprache einen spezifischen Ressourcenordner (values-[Sprachcode]) mit einer angepassten strings.xml.

26.1.4 4. Verwendung von Ressourcen

Im Code werden Texte über ihre Namen mittels R.string.text_name referenziert. Android wählt basierend auf der Gerätesprache automatisch den passenden Text aus.

Für Sprachen, die von rechts nach links geschrieben werden (z.B. Arabisch, Hebräisch), unterstützt Android automatische Layoutumkehrungen.

26.1.6 6. Formatierung von Zahlen und Daten

Verwenden Sie Klassen wie NumberFormat und DateFormat, um Zahlen, Daten und Währungen korrekt zu formatieren und kulturellen Unterschieden gerecht zu werden.

26.2 Zugriff auf String-Ressourcen aus dem Code

26.2.1 Definition in strings.xml

<resources>
    <string name="welcome_message">Willkommen bei unserer App!</string>
</resources>

26.2.2 Zugriff im Code

val welcomeMessage = getString(R.string.welcome_message)

26.2.3 Anwendung in der UI

val textView: TextView = findViewById(R.id.my_text_view)
textView.text = welcomeMessage

Für den Zugriff auf Ressourcen ist der Kontext erforderlich. In einer Aktivität kann this oder applicationContext verwendet werden, in einem Fragment activity oder requireContext(). In anderen Komponenten, wie Services oder BroadcastReceivers, nutzen Sie den bereitgestellten Kontext.

Die Unterstützung mehrerer Sprachen erfordert sorgfältige Planung und Implementierung, insbesondere bei der Übersetzung und Anpassung an kulturelle Unterschiede. Es ist ein entscheidender Schritt, um Ihre App weltweit zugänglich und nützlich zu machen.