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

C# random value from dictionary and tuple -

cgi - How do I interpret URLs without extension as files rather than missing directories in nginx? -

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