Lokalisierung

Unsere App-Vorlage bietet bereits eine integrierte Lokalisierung, sprich dem Nutzer wird automatisch die Sprache angezeigt, welche auf seinem Gerät eingestellt ist (sofern es dafür eine Sprachdatei gibt). Sollte die Sprache unbekannt sein, dann wird automatisch das englische Sprachpaket geladen. Lokalisierte Inhalte verwenden Um auf lokalisierte Inhalte in der App zuzugreifen, könnt Ihr wie folgt vorgehen….

Image Description

Unsere App-Vorlage bietet bereits eine integrierte Lokalisierung, sprich dem Nutzer wird automatisch die Sprache angezeigt, welche auf seinem Gerät eingestellt ist (sofern es dafür eine Sprachdatei gibt). Sollte die Sprache unbekannt sein, dann wird automatisch das englische Sprachpaket geladen.

Lokalisierte Inhalte verwenden

Um auf lokalisierte Inhalte in der App zuzugreifen, könnt Ihr wie folgt vorgehen.

Namespace

Um Zugriff auf die Lokalisierung zu erhalten, müsst Ihr folgenden Namespace einbinden.

using AppBasement.Resources.Localization;
xmlns:localization="clr-namespace:AppBasement.Resources.Localization"

C#

In Klassen könnt Ihr über das “Strings”-Objekt auf die Übersetzung zugreifen.

await Shell.Current.DisplayAlert(
    Strings.DialogActionNotAvailableInDemoModeHeadline,
    Strings.DialogActionNotAvailableInDemoModeContent,
    Strings.Close
    );

XAML

In XAML Dateien könnt Ihr wie folgt auf die Übersetzungen zugreifen.

Text="{x:Static localization:Strings.ButtonClose}"

Neue Sprache hinzufügen

Um eine neue Sprache hinzuzufügen, sind folgende Schritte zu beachten.

Neue Sprachdatei anlegen (Ressourcen-Datei)

Projektmappen-Explorer

Im Projektmappen-Explorer wählt Ihr den Ordner “Localization” mit der rechten Maustaste an und fügt anschließend über den Menüpunkt “Hinzufügen => Neues Element” ein neues Ressourcendatei (resx) hinzu.

Die Dateivorlage findet Ihr am schnellsten, wenn Ihr “res” in der Suchleiste oben rechts angebt.

Benennt die Datei “Strings.xx-XX.resx”, wobei “xx-XX” für die gewünschte Sprache steht, im Beispiel hier “de-DE” für Deutsch. Eine Übersicht aller Ländercodes findet Ihr, unter anderem, hier.

Sprachdatei auf öffentlich stellen

Nach dem Hinzufügen der Sprachdatei wird diese in der Regel automatisch geöffnet. Falls nicht, die neue Datei im “Localization“-Ordner doppelklicken. Bei Zugriffsmodifier den Wert auf “public” setzen. Andernfalls ist der Inhalt nicht zugreifbar.

Übersetzung einfügen

Nun kopiert den Inhalt aus der originalen “Strings.resx”-Datei und übersetzt die Spalte “Wert” in die gewünschte Sprache.

Achtung! Die Spalte Name darf nicht geändert werden! Dieser Wert dient als Schlüssel.

Flagge einfügen

In den Spracheinstellungen werden zu den jeweiligen Sprachen auch die Flaggen angezeigt. Diese werden im “Resourcen“-Ordner “Images/Flags” verwaltet.

Die gängigsten Flaggen sind hier bereits verfügbar. Sollte hier Ihre Sprache fehlen, dann können Sie hier einfach die fehlende Flagge mit hinzufügen oder uns kontaktieren und wir aktualisieren das Template dementsprechend.

Achtung!

Sollten Sie hier ein neues Bild bzw. Flagge hinzufügen, beachten Sie bitte die nötigen Build-Einstellungen der anderen Dateien.

Sprache registrieren

Abschließend muss die Sprache im LocalizationManager hinzugefügt werden. Dies muss in der “App.xaml.cs” Datei erledigt werden. Im Constructor findet Ihr folgenden Abschnitt.

// Available languages
LocalizationManager.Instance.SetLanguages(new List<LocalizationInfo>()
{
    //https://www.fincher.org/Utilities/CountryLanguageList.shtml
    new LocalizationInfo("English", "English", LocalizationManager.Instance.GetImageUri("en-US"), "Andreas", "en-US", 100, true),
    new LocalizationInfo("German", "Deutsch",   LocalizationManager.Instance.GetImageUri("de-DE"), "Andreas", "de-DE", 100, true),
});

Kopiert hier einfach einen der Einträge und passt diesen für die gewünschte Sprache an.

Sprache einstellen und überprüfen

Nun sollte alles soweit angepasst werden und Ihr könnt die Funktion bzw. die neue Sprache überprüfen. Erstellt und startet dazu die App und besucht die Spracheinstellungen.

Zum Wechseln der Sprache einfach auf die gewünschte Sprache in der Liste Klicken und die App neu starten. Anschließend sollte die App in der gewünschten Sprache erscheinen.

War dieser Artikel hilfreich für Sie?

Ja Nein

Verwandte Artikel