2012-06-30 3 views
4

Мне нужно определить язык пользователя и код страны в Qt. Эти коды должны соответствовать стандартам на http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s04.html.Определение кода страны и языка

Я пробовал QLocale, но он возвратил полное название страны и языка в countryToString и languageToString. (Мне нужен короткий код, например, «en» вместо «English».)

Одним из способов создания карты QLocale :: Language и QString. Но есть ли более быстрый и простой способ?

ответ

6

См QLocale::name()

Возвращает язык и страну этой местности в виде строки из формы «язык_СТРАНА», где язык является строчной, две буквы ISO 639 код языка, и страна является прописной , двух- или трехбуквенный ISO 3166 код страны.

+0

Привет, как в Qt, если пользователь решает изменить локаль с помощью опции в приложении, он может инициировать событие изменения языка в приложении, которое можно прослушать и сделать для обновления интерфейса, соответственно, есть ли какое-либо событие, которое Qt может захватить, если пользователь изменит языковой стандарт в ОС? – SexyBeast

0

Когда мы говорим о правильно обнаружение страны фактически установлена ​​в настройках пользователя (Control Panel/Расположение на Windows, Preferences/область на OS X), вы должны использовать https://github.com/crystalidea/qt-detect-user-country