Mehrere Sprachen in einer Xamarin-Forms App?

1 Antwort

Dafür kannst du dir Ressourcendateien anlegen. Eine für jede Sprache.

  • Language.resx (default)
  • Language.en.resx
  • Language.es.resx
  • usw. ...

In diesen Dateien werden die Texte nach Key-Value-Muster eingetragen. Der Key muss über alle Dateien hinweg immer gleich sein, der Value entspricht der jeweiligen Übersetzung.

In den XAML-Dateien kannst du dann auf diese Keys zugreifen.

<ContentPage ... xmlns:resource="clr-namespace:YourProjectName.Resources">
  <Label Text="{x:Static resource:Language.SomeKey}" />
</ContentPage>  

Die Sprache musst du bei App-Start einmal ermitteln und setzen.

var deviceLanguage = CultureInfo.InstalledUICulture; // or CultureInfo.CurrentUICulture
Thread.CurrentThread.CurrentUICulture = deviceLanguage;  
AppResources.Culture = deviceLanguage;

Hier oder hier findest du dazu noch einmal Step-for-Step-Tutorials.