'xamarin.forms german resx (language) ignored on android, working on ios
I am making an app with support for english, german and arabic. The user can change the app language at runtime on click.
switch (v)
{
case "german":
mainPage.FlowDirection = FlowDirection.LeftToRight;
LocalizationResourceManager.Instance.SetCulture(CultureInfo.GetCultureInfo("DE"));
CachedUser.localCode = "de";
break;
case "arabic":
mainPage.FlowDirection = FlowDirection.RightToLeft;
LocalizationResourceManager.Instance.SetCulture(CultureInfo.GetCultureInfo("ar"));
CachedUser.localCode = "ar";
break;
case "english":
LocalizationResourceManager.Instance.SetCulture(CultureInfo.GetCultureInfo("en"));
mainPage.FlowDirection = FlowDirection.LeftToRight;
CachedUser.localCode = "en";
break;
}
There a three resx files
All are identicaly, only the strings content ofc changes depending on the language.
This is the german resx file:
<?xml version="1.0" encoding="utf-8"?>
<root>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="YouAreHere" xml:space="preserve">
<value>Du befindest dich hier: </value>
</data>
<data name="Next" xml:space="preserve">
<value>weiter</value>
</data>
<data name="German" xml:space="preserve">
<value>Deutsch</value>
</data>
<data name="Arabic" xml:space="preserve">
<value>Arabisch</value>
</data>
<data name="English" xml:space="preserve">
<value>Englisch</value>
</data>
<data name="PickLanguage" xml:space="preserve">
<value>Wähle deine Sprache</value>
</data>
</root>
This, for instance, is the working arabic one:
<?xml version="1.0" encoding="utf-8"?>
<root>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="YouAreHere" xml:space="preserve">
<value>أنت هنا: </value>
</data>
<data name="Next" xml:space="preserve">
<value>التالي</value>
</data>
<data name="German" xml:space="preserve">
<value>ألمانية</value>
</data>
<data name="Arabic" xml:space="preserve">
<value>عربي</value>
</data>
<data name="English" xml:space="preserve">
<value>إنجليزي</value>
</data>
<data name="PickLanguage" xml:space="preserve">
<value>اختر لغتك</value>
</data>
</root>
You can see, they all are identical. The code works perfecly on iOS. But on Android, the german language is ignored. Between Arabic and english I can switch perfectly.
What could be of issue here?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|

