Ich habe ein Projekt in Xamarin, die Android, iOS und Windows Phone zielt. Ich benutzte Kern (PCL-Bibliothek), um gemeinsamen Code zwischen verschiedenen Plattformen zu teilen. Ich fügte hinzu, Ressource-Dateien (.net Ressource) .resx in meinem Kern-Bibliothek und die Kultur bestimmte Zeichenfolge i in einem meiner Ansichtsmodell folgende Code-Schnipsel verwendet zu lesen:Lokalisierung für mobile Cross-Plattform mit Xamarin und Problem mit nur iOS
public string GetString()
{
// CommonResources is the name of my resource file
ResourceManager resManager = new ResourceManager(typeof(CommonResources));
return resManager.GetString("LoginLabel",CultureInfo.CurrentCulture);
}
„LoginLabel“ ist mein Ressourcenschlüssel und dessen Wert ist "Anmelden" (in Englisch) und "inloggen" auf Niederländisch.
Ich habe zwei Ressourcen-Dateien CommonResources für Englisch und Niederländisch in meinem PCL-Projekt erstellt. CommonResources.resx
CommonResources.nl-NL.resx
in Android, iOS und Windows Phone, habe ich Kultur wie folgt:
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("nl-NL");
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("nl-NL");
Dies funktioniert für Android und Windows Phone in Ordnung.
Aber für iOS funktioniert es nicht. Es gibt immer einen Ressourcenstring aus einer englischen Datei zurück. Die Kultur ist richtig eingestellt und wird im Debug-Modus angezeigt. aber irgendwie ist es nicht in der Lage, den Ressourcenstring von der niederländischen Ressource zu laden.
Also die Frage ist, ist es möglich, Zeichenfolge (. Net-Weg) mit PCL für alle Plattformen zu lokalisieren? hat jemand eine Idee? Vielen Dank im Voraus.
Ist Niederländisch die einzige andere Sprache? Wenn nicht, funktionieren die anderen Sprachen wie erwartet? Wenn ja, können Sie eine andere Sprache als Test hinzufügen? – chad
Nein, Hindi ist eine andere Sprache außer Niederländisch. Es funktioniert nicht für eine der unterstützten Sprachen außer für Englisch. – SoftSan