4

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

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

其中一种方法是创建 QLocale::Language 和 QString 的映射。但是有没有更快更简单的方法呢?

4

3 回答 3

6

QLocale::name()

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

于 2012-06-30T08:20:07.143 回答
2

除了 Paul 的回答之外,还有QLocale::uiLanguages()QLocale::bcp47Name()应该给出变化。

于 2012-06-30T08:24:06.057 回答
0

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

于 2015-02-15T12:51:40.773 回答