国家和语言代码检测

时间:2012-06-30 08:14:53

标签: c++ qt localization freedesktop.org

我需要在Qt中检测用户的语言和国家/地区代码。该代码必须符合http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s04.html的标准。

我尝试过QLocale,但它在countryToString和languageToString中返回了完整的国家/地区和语言名称。 (我需要短代码,例如“en”而不是“English”。)

其中一种方法是创建QLocale :: Language和QString的地图。但有更快更简单的方法吗?

3 个答案:

答案 0 :(得分:6)

请参阅QLocale::name()

  

以字符串形式返回此语言环境的语言和国家/地区   形成“language_country”,其中语言为小写,双字母ISO 639   语言代码,国家是大写,两个或三个字母   ISO 3166国家/地区代码。

答案 1 :(得分:2)

除了保罗的答案之外,QLocale::uiLanguages()QLocale::bcp47Name()应该有所不同。

答案 2 :(得分:0)

当我们谈论正确检测用户首选项中实际设置的国家/地区(Windows上的控制面板/位置,OS X上的首选项/区域)时,您应该使用https://github.com/crystalidea/qt-detect-user-country