4

Qtでユーザーの言語と国コードを検出する必要があります。そのコードは、http: //standards.freedesktop.org/desktop-entry-spec/latest/ar01s04.htmlの標準と一致している必要があります。

QLocaleを試しましたが、countryToStringとlanguageToStringで完全な国名と言語名が返されました。(「英語」ではなく「en」のような短いコードが必要です。)

方法の1つは、QLocale::LanguageとQStringのマップを作成することです。しかし、もっと速くて簡単な方法はありますか?

4

3 に答える 3

6

QLocale :: name()を参照してください

このロケールの言語と国を「language_country」形式の文字列として返します。ここで、languageは小文字の2文字のISO 639 言語コードであり、countryは大文字の2文字または3文字の ISO3166国コードです。

于 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 に答える