如何区分C#中的简体中文和繁体中文?

时间:2011-12-05 16:14:17

标签: .net localization internationalization cjk iso

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

对于法语,评估TwoLettersIsoLanguageName的{​​{1}}属性运行良好,但对于中文ISO代码是不够的。我想到了InstalledUiCulture属性,该属性将Namezh-Hans分开,但是会破坏法语,因为它在某些系统上提供zh-Hantfr-FR例如,在其他人身上。

是否有一种简单的方法可以获取当前文化的双字母语言代码(如果它不是中文),否则获得fr-CA / zh-Hans

我正在寻找一个优雅的解决方案;我当然想过解析文化的zh-Hant属性并为中文做一个特例,但那不是很漂亮:/

简而言之,我认为我正在寻找一种从当前文化中检索“中性”文化的方法:从Name获取fr-Fr,从fr获取zh-TWzh-Hant获取zh-CN。想法吗

谢谢!

1 个答案:

答案 0 :(得分:2)

似乎Parent类的CultureInfo属性正是​​您所寻找的 它似乎从一开始就得到了支持。

顺便说一句。如果是翻译,您应该使用CurrentUICulture而不是CurrentCulture(后者用于格式化)或InstalledUiCulture,这是操作系统语言版本而不是必要的用户偏好。