获取CultureInfo中的当前语言

时间:2010-11-17 19:20:47

标签: c# globalization cultureinfo currentculture

如何使用CultureInfo识别操作系统的语言?例如。如果Windows中的语言设置为法语,我需要识别法语并加载fr资源文件数据。

6 个答案:

答案 0 :(得分:63)

我认为这样的事情会给你当前的CultureInfo:

CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;

这就是你要找的东西吗?

答案 1 :(得分:17)

这就是我用的:

var culture = System.Globalization.CultureInfo.CurrentCulture;

它正在工作:)

答案 2 :(得分:9)

使用以下方法检索当前系统语言:

  CultureInfo.InstalledUICulture

“获取表示随操作系统安装的文化的CultureInfo。”

InstalledUICulture

将其设置为线程使用的默认语言:

   System.Globalization.CultureInfo.DefaultThreadCurrentCulture=CultureInfo.InstalledUICulture;

答案 3 :(得分:4)

我试过{CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;}但它对我没用,因为我的UI文化与我的数字/货币文化不同。所以我建议你使用:

CultureInfo currentCulture = Thread.CurrentThread.CurrentUICulture;

这将为您提供UI的文化(窗口,消息框等文本)。

答案 4 :(得分:1)

要获得2个字符ISO 639-1语言标识符,请使用:

System.Threading.Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName;

答案 5 :(得分:0)

Windows.System.UserProfile.GlobalizationPreferences.Languages[0]

这是获取当前设置的系统语言的正确方法。系统语言设置与您都希望从中获取语言的文化设置完全不同。

例如:用户可以同时使用“ en-GB”语言和“ en-US”文化。使用CurrentCulture和其他文化,您将获得“ en-US”的希望,希望您有所不同(GB-US可能会注意到这一点,但其他语言可能会注意到吗?)