Russian Qt Forum

Программирование => Общий => Тема начата: ecspertiza от Октябрь 18, 2011, 15:36



Название: Qt Список стран
Отправлено: ecspertiza от Октябрь 18, 2011, 15:36
Не могу найти оптимальный способ получения списка стран в qt. Желательно что бы страну можно было найти по 2-ух буквенному обозначению. При этом список должен быть локализован на текущий язык пользователя. Пробовал юзать QLocale след. образом

Код:
QLocale locale;
    QList<QLocale::Country> listCountry = locale.countriesForLanguage(QLocale::Russian);

    for (int i = 0; i < listCountry.count(); ++i) {
        qDebug() << (int)listCountry.at(i) << locale.countryToString(listCountry.at(i));
    }

Выводятся всего три страны, Россия, Украина, Молдова.

Код:
QLocale locale;
    QList<QLocale::Country> listCountry = locale.countriesForLanguage(QLocale::С);

    for (int i = 0; i < listCountry.count(); ++i) {
        qDebug() << (int)listCountry.at(i) << locale.countryToString(listCountry.at(i));
    }

Выводятся Default.

Есть еще два варианта, есть список стран в xml файле но он тоже на английском, то бишь в интерфейсе опять же не переведешь.
И последний который мне больше всего нравится. написать ф-цию типа

Код:
void loadCountry() {
    QHash<QString, QString> listCountry;
    listCountry.insert("ru",tr(Russia));
    listCountry.insert("uk",tr("United kingdom"));
..........
}

Вопрос, что скажете ? какой вариант лучше ? или может есть оптимальнее ?