.net 如何在C语言中区分简体中文和繁体中文?

.net 如何在C语言中区分简体中文和繁体中文?,.net,localization,internationalization,cjk,iso,.net,Localization,Internationalization,Cjk,Iso,我的应用程序已经翻译成多种语言,包括法语、繁体中文和简体中文。现在,当应用程序第一次启动时,我想根据用户区域设置自动选择正确的翻译 对于法语来说,评估InstalledUlture的TwoLettersIsoLanguageName属性效果很好,但对于汉语来说,ISO代码是不够的。我曾想过使用Name属性,它将zh-Hans和zh-Hant分开,但这打破了法语,因为它在某些系统上给出了fr,在其他系统上给出了fr-CA 如果不是中文,有没有一种简单的方法来获取当前文化的两个字母的语言代码,或者获

我的应用程序已经翻译成多种语言,包括法语、繁体中文和简体中文。现在,当应用程序第一次启动时,我想根据用户区域设置自动选择正确的翻译

对于法语来说,评估InstalledUlture的TwoLettersIsoLanguageName属性效果很好,但对于汉语来说,ISO代码是不够的。我曾想过使用Name属性,它将zh-Hans和zh-Hant分开,但这打破了法语,因为它在某些系统上给出了fr,在其他系统上给出了fr-CA

如果不是中文,有没有一种简单的方法来获取当前文化的两个字母的语言代码,或者获取zh-Hans/zh-Hant

我在寻找一个优雅的解决方案;我当然考虑过解析文化的Name属性,并为中文做一个特例,但这并不是很好:/

简而言之,我想我正在寻找一种从当前文化中检索中性文化的方法:从fr-fr-get-fr,从zh-TW-get-zh-Hant,从zh-CN-get-zh-Hans。想法

谢谢

看来类的属性就是您要寻找的。 似乎从一开始就得到了支持


顺便说一句,在翻译的情况下,您应该使用而不是后者用于格式化或InstalledUlture,这是操作系统语言版本,不是必需的用户首选项。

为什么不使用附属程序集?因为我正在修复一个相当旧的代码库:/t别忘了挪威语和葡萄牙语,也有多种方言。如果你的公司决定创建一个特别的加拿大法语翻译,会发生什么呢?@RaymondChen:没错。在这种情况下,我将加载特定的翻译。那么问题不是我真的想要一个函数,如果亚文化是中国的话,返回亚文化,而是返回中性文化。这是我想要一个函数,如果我有一个亚文化的翻译,则返回该亚文化,否则返回中性文化。当然没有内置的操作系统功能,因为操作系统不知道你被翻译成了什么语言。太好了,谢谢!对于将来找到这种解决方案的人来说,需要注意的是:首先使用IsNeutral属性可以确保你不是一个已经中立的文化的家长。同样值得一提的是:InvariantCulture.Parent==InvariantCulture