我的应用已被翻译成多种语言,包括法语,繁体中文和简体中文。现在,当应用程序首次启动时,我想根据用户区域设置自动选择正确的翻译。
对于法语,评估TwoLettersIsoLanguageName
的{{1}}属性运行良好,但对于中文ISO代码是不够的。我想到了InstalledUiCulture
属性,该属性将Name
和zh-Hans
分开,但是会破坏法语,因为它在某些系统上提供zh-Hant
,fr-FR
例如,在其他人身上。
是否有一种简单的方法可以获取当前文化的双字母语言代码(如果它不是中文),否则获得fr-CA
/ zh-Hans
?
我正在寻找一个优雅的解决方案;我当然想过解析文化的zh-Hant
属性并为中文做一个特例,但那不是很漂亮:/
简而言之,我认为我正在寻找一种从当前文化中检索“中性”文化的方法:从Name
获取fr-Fr
,从fr
获取zh-TW
,zh-Hant
获取zh-CN
。想法吗
谢谢!
答案 0 :(得分:2)
似乎Parent类的CultureInfo属性正是您所寻找的 它似乎从一开始就得到了支持。
顺便说一句。如果是翻译,您应该使用CurrentUICulture而不是CurrentCulture(后者用于格式化)或InstalledUiCulture,这是操作系统语言版本而不是必要的用户偏好。