如何使用CultureInfo
识别操作系统的语言?例如。如果Windows中的语言设置为法语,我需要识别法语并加载fr
资源文件数据。
答案 0 :(得分:63)
我认为这样的事情会给你当前的CultureInfo:
CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
这就是你要找的东西吗?
答案 1 :(得分:17)
这就是我用的:
var culture = System.Globalization.CultureInfo.CurrentCulture;
它正在工作:)
答案 2 :(得分:9)
使用以下方法检索当前系统语言:
CultureInfo.InstalledUICulture
“获取表示随操作系统安装的文化的CultureInfo。”
将其设置为线程使用的默认语言:
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可能会注意到这一点,但其他语言可能会注意到吗?)