2017-08-02 108 views
1

我對Xamarin的.NET語言環境和Android語言環境有點困惑。.NET CultureInfo和Android的語言環境之間的關係。默認

1日問題 我看到CultureInfo.CurrentCulture得到系統的語言環境(Locale.Default)的值。

但是,CultureInfo.DefaultThreadCurrentCultureCultureInfo.DefaultThreadCurrentUICulture爲空。 這是否意味着我需要自己設置它們?

第2個問題 在我的應用程序中,用戶可以更改語言。 我應該只設置.NET文化還是.NET文化和Android Locale.Default

.NET和Locale.Default之間的關係是什麼?

第3個問題 調用CultureInfo.CurrentCulture似乎沒有做任何事情。即使我創建新的XF Page,UI也不會本地化(我正在使用resx文件,如https://developer.xamarin.com/guides/xamarin-forms/advanced/localization/所述)。 但設置CultureInfo.DefaultThreadCurrentCultureCultureInfo.DefaultThreadCurrentUICulture這樣做。爲什麼?

回答

0
  1. 1日問題我看到CultureInfo.CurrentCulture得到系統的locale (Locale.Default)的價值。 但是,CultureInfo.DefaultThreadCurrentCultureCultureInfo.DefaultThreadCurrentUICulture爲空。這是否意味着我需要自己設置它們?

    如果你想改變你的應用程序域的文化,那麼是的,你需要自己設置它們。

    參照CultureInfo Documentation

    DefaultThreadCurrentCultureDefaultThreadCurrentUICulture屬性是靜態成員,它們定義默認培養和默認UI培養只爲是當前在這些屬性值被設置時的應用程序域。欲瞭解更多信息,請參閱下一節Culture and application domains

  2. 在我的應用程序第二個問題,用戶可以更改語言。我應該只設置.NET文化還是.NET文化和Android Locale.Default?

    .NET和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. 3問題調用CultureInfo.CurrentCulture似乎並沒有做任何事情。即使我創建新的XF頁面,UI也沒有本地化(我正在使用resx文件,如https://developer.xamarin.com/guides/xamarin-forms/advanced/localization/所述)。但設置CultureInfo.DefaultThreadCurrentCultureCultureInfo.DefaultThreadCurrentUICulture這樣做。爲什麼?

    CultureInfo.CurrentCulture是隻讀的。調用CultureInfo.CurrentCulture不會改變當前應用程序域的文化。但設置CultureInfo.DefaultThreadCurrentCultureCultureInfo.DefaultThreadCurrentUICulture呢。

+0

@Don Box,Any Updates? –

+0

謝謝,抱歉延誤 –

相關問題