获取CultureInfo中的当前语言

Sha*_*500 46 c# globalization cultureinfo currentculture

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

Bro*_*sto 67

我认为像这样的东西会给你当前的CultureInfo:

CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
Run Code Online (Sandbox Code Playgroud)

这就是你要找的东西吗?

  • 我会使用CultureInfo.CurrentCulture来做同样的事情,但写的时间更短.不幸的是,CurrentCulture和CurrentUICulture都没有返回操作系统语言.首先返回当前格式设置,第二个返回用户首选的用户界面语言. (3认同)

smu*_*uka 19

这是我用过的:

var culture = System.Globalization.CultureInfo.CurrentCulture;
Run Code Online (Sandbox Code Playgroud)

它正在工作:)


Dom*_*tus 9

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

  CultureInfo.InstalledUICulture
Run Code Online (Sandbox Code Playgroud)

"获取表示随操作系统安装的文化的CultureInfo."

InstalledUICulture

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

   System.Globalization.CultureInfo.DefaultThreadCurrentCulture=CultureInfo.InstalledUICulture;
Run Code Online (Sandbox Code Playgroud)


Leo*_*ado 5

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

CultureInfo currentCulture = Thread.CurrentThread.CurrentUICulture;
Run Code Online (Sandbox Code Playgroud)

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


pri*_*ter 5

To get the 2 chars ISO 639-1 language identifier use:

System.Threading.Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName;
Run Code Online (Sandbox Code Playgroud)