Xamarin在Android上的Forms Language问题

在一个邪恶的问题上,我要疯了几个小时!!!

我已经在Mac上的Visual Studio(最新版本和最新更新)上创建了一个新的Xamain Forms prj。

我有三个对应语言的AppResources文件: -AppResources.resx(默认) -AppResources.it.resx(意大利语) -AppResources.es.resx(西班牙语)

在IOS模拟器上,一切正常。在Android设备上,我总是看到默认字符串。

这是我在AppResources文件上的简单数据:

AppResources.resx:
    <data name="test" xml:space="preserve">
        <value>Default</value>
    </data>

AppResources.es.resx:
        <data name="test" xml:space="preserve">
                <value>Espanol</value>
        </data>

AppResources.it.resx:
    <data name="test" xml:space="preserve">
            <value>Italiano</value>
    </data>

为什么在IOS上能完美运行,而在Android上却只能看到“默认”?!

iCMS 回答:Xamarin在Android上的Forms Language问题

在最近一次Visual Studio(MAC)更新(版本8.6(内部版本4520))之后,问题就开始出现了。

看这个:

https://github.com/xamarin/xamarin-android/issues/4664#issuecomment-632986668

此解决方法解决了我的问题。

,

作为对以上评论的回应,您可以使用LocalizationService,在其中您可以设置和更新当前的区域性(CultureInfo对象)。您还可以使用静态CultureInfo.InstalledUICulture来获取设备区域性。

    public CultureInfo CurrentCulture
    {
        get => cultureInfo;
        set
        {
            if(cultureInfo?.Equals(value) ?? false)
            {
                return;
            }
            cultureInfo = value;
            Thread.CurrentThread.CurrentCulture = value;
            Thread.CurrentThread.CurrentUICulture = value;
        }
    }
本文链接:https://www.f2er.com/2295808.html

大家都在问