【问题标题】:Country and language code detecting国家和语言代码检测
【发布时间】:2012-06-30 08:14:52
【问题描述】:

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

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

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

【问题讨论】:

    标签: c++ qt localization freedesktop.org


    【解决方案1】:

    QLocale::name()

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

    【讨论】:

    • 嗨,就像在 Qt 中一样,如果用户决定从应用程序中的选项更改语言环境,它可以触发应用程序中的语言更改事件,该事件可以被监听并刷新因此,如果用户更改操作系统中的语言环境,Qt 是否可以捕获任何事件?
    【解决方案2】:

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

    【讨论】:

    • 它们仅适用于 Qt4.8 及更高版本
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 2014-06-17
      • 1970-01-01
      相关资源
      最近更新 更多