gpt4 book ai didi

xamarin - .NET CultureInfo 与 Android 的 Locale.Default 的关系

转载 作者:行者123 更新时间:2023-12-05 06:38:52 24 4
gpt4 key购买 nike

我对 Xamarin 的 .NET 语言环境和 Android 语言环境有些困惑。

第一个问题我看到 CultureInfo.CurrentCulture 获取系统区域设置的值 (Locale.Default)。

但是,CultureInfo.DefaultThreadCurrentCultureCultureInfo.DefaultThreadCurrentUICulture 为空。这是否意味着我需要自己设置它们?

第二个问题 在我的应用程序中,用户可以更改语言。我应该只设置 .NET 文化还是同时设置 .NET 文化和 Android Locale.Default

.NET 和 Locale.Default 之间有什么关系?

第三个问题调用 CultureInfo.CurrentCulture 似乎没有任何作用。即使我创建了新的 XF Page,UI 也没有本地化(我使用的是 resx 文件,如此处 https://developer.xamarin.com/guides/xamarin-forms/advanced/localization/ 所述)。但是设置 CultureInfo.DefaultThreadCurrentCultureCultureInfo.DefaultThreadCurrentUICulture 就可以了。为什么?

最佳答案

  1. 1st question I see that CultureInfo.CurrentCulture gets the value of the system's locale (Locale.Default). However, CultureInfo.DefaultThreadCurrentCulture and CultureInfo.DefaultThreadCurrentUICulture are null. Does this mean I need to set them myself?

    如果您想更改您的应用程序域的文化,那么是的,您需要自己设置它们。

    引用CultureInfo Documentation :

    the DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture properties are static members, they define the default culture and default UI culture only for the application domain that is current at the time these property values are set. For more information, see the next section, Culture and application domains.

  2. 2nd question in my app, the user is able to change the language. Should I only set .NET culture or both the .NET culture and Android Locale.Default?

    What's the relationship between the .NET and Locale.Default?

    java.util.Locale以下列格式定义文化信息:

    <language code>[_<country code>[_<variant code>]]

    详见java.util.locale ,请引用Understanding Locale in the Java Platform .

    System.Globalization.CultureInfo基于 RFC 4646 以下列格式定义:

    languagecode2>-country/regioncode2

    所以区别在于它们使用不同的分隔符:-_ .

  3. 3rd question Calling CultureInfo.CurrentCulture doesn't seem to do anything. Even if I create new XF Page, the UI is not localized (I'm using resx files as described here https://developer.xamarin.com/guides/xamarin-forms/advanced/localization/). But setting CultureInfo.DefaultThreadCurrentCulture and CultureInfo.DefaultThreadCurrentUICulture does it. Why?

    CultureInfo.CurrentCulture是只读的。调用CultureInfo.CurrentCulture不会改变当前应用程序域中的文化。但是设置 CultureInfo.DefaultThreadCurrentCultureCultureInfo.DefaultThreadCurrentUICulture会。

关于xamarin - .NET CultureInfo 与 Android 的 Locale.Default 的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45459257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com