@@ -21,7 +21,6 @@
2121
2222#include "LocalePlugin.h"
2323
24−
2524class LocalePrivate {
2625public:
2726 LocalePrivate() {
@@ -274,14 +273,253 @@ public:
274273 {QLocale::Tonga, gettext("Tonga")},
275274 {QLocale::Kosovo, gettext("Kosovo")},
276275 {QLocale::WallisAndFutunaIslands, gettext("Wallis And Futuna Islands")} });
276+
277+ m_mccCodes = QHash<int, QString>
278+ ({{202,"gr"},
279+ {204,"nl"},
280+ {206,"be"},
281+ {208,"fr"},
282+ {212,"mc"},
283+ {213,"ad"},
284+ {214,"es"},
285+ {216,"hu"},
286+ {218,"ba"},
287+ {219,"hr"},
288+ {220,"rs"},
289+ {222,"it"},
290+ {226,"ro"},
291+ {228,"ch"},
292+ {230,"cz"},
293+ {231,"sk"},
294+ {232,"at"},
295+ {234,"gb"},
296+ {235,"gb"},
297+ {238,"dk"},
298+ {240,"se"},
299+ {242,"no"},
300+ {244,"fi"},
301+ {246,"lt"},
302+ {247,"lv"},
303+ {248,"ee"},
304+ {250,"ru"},
305+ {255,"ua"},
306+ {257,"by"},
307+ {259,"md"},
308+ {260,"pl"},
309+ {262,"de"},
310+ {266,"gi"},
311+ {268,"pt"},
312+ {270,"lu"},
313+ {272,"ie"},
314+ {274,"is"},
315+ {276,"al"},
316+ {278,"mt"},
317+ {280,"cy"},
318+ {282,"ge"},
319+ {283,"am"},
320+ {284,"bg"},
321+ {286,"tr"},
322+ {288,"fo"},
323+ {289,"ge"},
324+ {290,"gl"},
325+ {292,"sm"},
326+ {293,"si"},
327+ {294,"mk"},
328+ {295,"li"},
329+ {297,"me"},
330+ {302,"ca"},
331+ {308,"pm"},
332+ {310,"gu"},
333+ {310,"us"},
334+ {311,"gu"},
335+ {311,"us"},
336+ {312,"us"},
337+ {316,"us"},
338+ {330,"pr"},
339+ {334,"mx"},
340+ {338,"jm"},
341+ {340,"fg"},
342+ {340,"gp"},
343+ {340,"mq"},
344+ {342,"bb"},
345+ {344,"ag"},
346+ {346,"ky"},
347+ {348,"vg"},
348+ {350,"bm"},
349+ {352,"gd"},
350+ {354,"ms"},
351+ {356,"kn"},
352+ {358,"lc"},
353+ {360,"vc"},
354+ {362,"an"},
355+ {362,"cw"},
356+ {363,"aw"},
357+ {364,"bs"},
358+ {365,"ai"},
359+ {366,"dm"},
360+ {368,"cu"},
361+ {370,"do"},
362+ {372,"ht"},
363+ {374,"tt"},
364+ {376,"tc"},
365+ {376,"vi"},
366+ {400,"az"},
367+ {401,"kz"},
368+ {402,"bt"},
369+ {404,"in"},
370+ {405,"in"},
371+ {410,"pk"},
372+ {412,"af"},
373+ {413,"lk"},
374+ {414,"mm"},
375+ {415,"lb"},
376+ {416,"jo"},
377+ {417,"sy"},
378+ {418,"iq"},
379+ {419,"kw"},
380+ {420,"sa"},
381+ {421,"ye"},
382+ {422,"om"},
383+ {424,"ae"},
384+ {425,"il"},
385+ {425,"ps"},
386+ {426,"bh"},
387+ {427,"qa"},
388+ {428,"mn"},
389+ {429,"np"},
390+ {430,"ae"},
391+ {431,"ae"},
392+ {432,"ir"},
393+ {434,"uz"},
394+ {436,"tk"},
395+ {437,"kg"},
396+ {438,"tm"},
397+ {440,"jp"},
398+ {441,"jp"},
399+ {450,"kr"},
400+ {452,"vn"},
401+ {454,"hk"},
402+ {455,"mo"},
403+ {456,"kh"},
404+ {457,"la"},
405+ {460,"cn"},
406+ {466,"tw"},
407+ {467,"kp"},
408+ {470,"bd"},
409+ {472,"mv"},
410+ {502,"my"},
411+ {505,"au"},
412+ {510,"id"},
413+ {514,"tp"},
414+ {515,"ph"},
415+ {520,"th"},
416+ {525,"sg"},
417+ {528,"bn"},
418+ {530,"nz"},
419+ {537,"pg"},
420+ {539,"to"},
421+ {540,"sb"},
422+ {541,"vu"},
423+ {542,"fj"},
424+ {544,"as"},
425+ {545,"ki"},
426+ {546,"nc"},
427+ {547,"pf"},
428+ {548,"ck"},
429+ {549,"ws"},
430+ {550,"fm"},
431+ {552,"pw"},
432+ {553,"tv"},
433+ {555,"nu"},
434+ {602,"eg"},
435+ {603,"dz"},
436+ {604,"ma"},
437+ {605,"tn"},
438+ {606,"ly"},
439+ {607,"gm"},
440+ {608,"sn"},
441+ {609,"mr"},
442+ {610,"ml"},
443+ {611,"gn"},
444+ {612,"ci"},
445+ {613,"bf"},
446+ {614,"ne"},
447+ {615,"tg"},
448+ {616,"bj"},
449+ {617,"mu"},
450+ {618,"lr"},
451+ {619,"sl"},
452+ {620,"gh"},
453+ {621,"ng"},
454+ {622,"td"},
455+ {623,"cf"},
456+ {624,"cm"},
457+ {625,"cv"},
458+ {626,"st"},
459+ {627,"gq"},
460+ {628,"ga"},
461+ {629,"cg"},
462+ {630,"cd"},
463+ {631,"ao"},
464+ {632,"gw"},
465+ {633,"sc"},
466+ {634,"sd"},
467+ {635,"rw"},
468+ {636,"et"},
469+ {637,"so"},
470+ {638,"dj"},
471+ {639,"ke"},
472+ {640,"tz"},
473+ {641,"ug"},
474+ {642,"bi"},
475+ {643,"mz"},
476+ {645,"zm"},
477+ {646,"mg"},
478+ {647,"re"},
479+ {648,"zw"},
480+ {649,"na"},
481+ {650,"mw"},
482+ {651,"ls"},
483+ {652,"bw"},
484+ {653,"sz"},
485+ {654,"km"},
486+ {655,"za"},
487+ {657,"er"},
488+ {659,"ss"},
489+ {702,"bz"},
490+ {704,"gt"},
491+ {706,"sv"},
492+ {708,"hn"},
493+ {710,"ni"},
494+ {712,"cr"},
495+ {714,"pa"},
496+ {716,"pe"},
497+ {722,"ar"},
498+ {724,"br"},
499+ {730,"cl"},
500+ {732,"co"},
501+ {734,"ve"},
502+ {736,"bo"},
503+ {738,"gy"},
504+ {740,"ec"},
505+ {744,"py"},
506+ {746,"sr"},
507+ {748,"uy"},
508+ {750,"fk"}}
509+ );
277510 }
278511
279− QString countryToString(QLocale::Country c) {
512+ QString countryToString(QLocale::Country c) const {
280513 return m_countryNames.value(c);
281514 }
282515
516+ QString mccToCountryCode(int mcc) const {
517+ return m_mccCodes.value(mcc, "us").toUpper();
518+ }
519+
283520private:
284521 QHash<QLocale::Country, QString> m_countryNames;
522+ QHash<int,QString> m_mccCodes;
285523};
286524
287525Q_GLOBAL_STATIC(LocalePrivate, d)
@@ -348,6 +586,10 @@ QString LocaleAttached::qlocToCountryCode(QLocale::Country c)
348586 return QString();
349587}
350588
589+QString LocaleAttached::mccToCountryCode(int mcc) const
590+{
591+ return d->mccToCountryCode(mcc);
592+}
351593
352594LocalePlugin::LocalePlugin(QObject* parent)
353595 : QObject(parent)