'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

enter image description here

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