c++ - Getting country code for QLocale::Country -


i trying find country code given qlocale::country value. in manual have found function, similar: qlocale::name.

qstring qlocale::name () const

returns language , country of locale string of form "language_country", language lowercase, two-letter iso 639 language code, , country uppercase, two- or three-letter iso 3166 country code.

the second part of return value need, have constructed following function:

qstring getcountrycode(qlocale::country c) {     return qlocale(qlocale::anylanguage, c).name().split('_').at(1).tolower(); } 

strangely enough, if call function following way:

qdebug() << getcountrycode(qlocale::canada); 

it produce output:

"us" 

i have expected "ca"! on other hand, if call like:

qdebug() << getcountrycode(qlocale::hungary); 

then produce correct answer:

"hu" 

what missing here? (i using qt 5.2)

in general, given feature want isn't directly available, please submit feature request on bugtracker.

apart that, you can't build qlocale object anylanguage. makes absolutely no sense -- qlocale object identifies specific locale. 1 should pick canada, fr_ca or en_ca?

solution: use

qlist<qlocale> locales = qlocale::matchinglocales(qlocale::anylanguage,                                                   qlocale::anyscript,                                                   qlocale::canada); 

then take first of list (if exists) , extract country name doing.


Comments

Popular posts from this blog

database - VFP Grid + SQL server 2008 - grid not showing correctly -

jquery - Set jPicker field to empty value -

.htaccess - htaccess convert request to clean url and add slash at the end of the url -