65

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

4

6 回答 6

87

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

CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;

那是你要找的吗?

于 2010-11-17T19:23:12.463 回答
29

这是我用的:

var culture = System.Globalization.CultureInfo.CurrentCulture;

它正在工作:)

于 2014-10-07T08:12:19.333 回答
9

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

  CultureInfo.InstalledUICulture

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

安装UICulture

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

   System.Globalization.CultureInfo.DefaultThreadCurrentCulture=CultureInfo.InstalledUICulture;
于 2014-02-26T09:19:48.137 回答
5

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

CultureInfo currentCulture = Thread.CurrentThread.CurrentUICulture;

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

于 2016-02-15T18:23:14.047 回答
5

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

System.Threading.Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName;
于 2017-11-10T16:49:13.350 回答
2
Windows.System.UserProfile.GlobalizationPreferences.Languages[0]

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

例如:用户可以同时使用“en-GB”语言和“en-US”文化。使用 CurrentCulture 和其他文化,您将获得“en-US”,希望您能有所作为(这对于 GB-US 可能是微不足道的,但对于其他语言?)

于 2019-12-24T12:09:28.757 回答