summaryrefslogtreecommitdiffstats
path: root/kgeography
diff options
context:
space:
mode:
Diffstat (limited to 'kgeography')
-rw-r--r--kgeography/AUTHORS1
-rw-r--r--kgeography/Changelog174
-rw-r--r--kgeography/Makefile.am1
-rw-r--r--kgeography/README1
-rw-r--r--kgeography/TODO28
-rw-r--r--kgeography/data/Makefile.am10
-rw-r--r--kgeography/data/africa.kgm692
-rw-r--r--kgeography/data/africa.pngbin0 -> 11688 bytes
-rw-r--r--kgeography/data/asia.kgm572
-rw-r--r--kgeography/data/asia.pngbin0 -> 5988 bytes
-rw-r--r--kgeography/data/austria.kgm103
-rw-r--r--kgeography/data/austria.pngbin0 -> 4406 bytes
-rw-r--r--kgeography/data/brazil.kgm293
-rw-r--r--kgeography/data/brazil.pngbin0 -> 6481 bytes
-rw-r--r--kgeography/data/canada.kgm152
-rw-r--r--kgeography/data/canada.pngbin0 -> 10626 bytes
-rw-r--r--kgeography/data/china.kgm499
-rw-r--r--kgeography/data/china.pngbin0 -> 14505 bytes
-rw-r--r--kgeography/data/europe.kgm467
-rw-r--r--kgeography/data/europe.pngbin0 -> 18971 bytes
-rw-r--r--kgeography/data/flags/Makefile.am54
-rw-r--r--kgeography/data/flags/Monaco.pngbin0 -> 308 bytes
-rw-r--r--kgeography/data/flags/NewZealand.pngbin0 -> 2251 bytes
-rw-r--r--kgeography/data/flags/README7
-rw-r--r--kgeography/data/flags/SriLanka.pngbin0 -> 6951 bytes
-rw-r--r--kgeography/data/flags/Vatican.pngbin0 -> 4718 bytes
-rw-r--r--kgeography/data/flags/afghanistan.pngbin0 -> 4754 bytes
-rw-r--r--kgeography/data/flags/albania.pngbin0 -> 4130 bytes
-rw-r--r--kgeography/data/flags/alberta.pngbin0 -> 3926 bytes
-rw-r--r--kgeography/data/flags/algeria.pngbin0 -> 2634 bytes
-rw-r--r--kgeography/data/flags/andorra.pngbin0 -> 6234 bytes
-rw-r--r--kgeography/data/flags/angola.pngbin0 -> 3247 bytes
-rw-r--r--kgeography/data/flags/antigua.pngbin0 -> 4270 bytes
-rw-r--r--kgeography/data/flags/argentina.pngbin0 -> 3291 bytes
-rw-r--r--kgeography/data/flags/armenia.pngbin0 -> 338 bytes
-rw-r--r--kgeography/data/flags/australia.pngbin0 -> 4842 bytes
-rw-r--r--kgeography/data/flags/austria.pngbin0 -> 171 bytes
-rw-r--r--kgeography/data/flags/azerbaijan.pngbin0 -> 2198 bytes
-rw-r--r--kgeography/data/flags/baden_wurttemberg.pngbin0 -> 218 bytes
-rw-r--r--kgeography/data/flags/bahamas.pngbin0 -> 1883 bytes
-rw-r--r--kgeography/data/flags/bahrain.pngbin0 -> 2595 bytes
-rw-r--r--kgeography/data/flags/bangladesh.pngbin0 -> 2757 bytes
-rw-r--r--kgeography/data/flags/barbados.pngbin0 -> 2455 bytes
-rw-r--r--kgeography/data/flags/bavaria.pngbin0 -> 9717 bytes
-rw-r--r--kgeography/data/flags/bc.pngbin0 -> 10333 bytes
-rw-r--r--kgeography/data/flags/belarus.pngbin0 -> 2321 bytes
-rw-r--r--kgeography/data/flags/belgium.pngbin0 -> 214 bytes
-rw-r--r--kgeography/data/flags/belize.pngbin0 -> 10701 bytes
-rw-r--r--kgeography/data/flags/benin.pngbin0 -> 216 bytes
-rw-r--r--kgeography/data/flags/berlin.pngbin0 -> 2182 bytes
-rw-r--r--kgeography/data/flags/bhutan.pngbin0 -> 12487 bytes
-rw-r--r--kgeography/data/flags/bolivia.pngbin0 -> 263 bytes
-rw-r--r--kgeography/data/flags/bosnia_herzegovina.pngbin0 -> 2672 bytes
-rw-r--r--kgeography/data/flags/botswana.pngbin0 -> 259 bytes
-rw-r--r--kgeography/data/flags/br_AC.pngbin0 -> 1408 bytes
-rw-r--r--kgeography/data/flags/br_AL.pngbin0 -> 8261 bytes
-rw-r--r--kgeography/data/flags/br_AM.pngbin0 -> 1453 bytes
-rw-r--r--kgeography/data/flags/br_AP.pngbin0 -> 1882 bytes
-rw-r--r--kgeography/data/flags/br_BA.pngbin0 -> 389 bytes
-rw-r--r--kgeography/data/flags/br_CE.pngbin0 -> 4272 bytes
-rw-r--r--kgeography/data/flags/br_DF.pngbin0 -> 1244 bytes
-rw-r--r--kgeography/data/flags/br_ES.pngbin0 -> 3080 bytes
-rw-r--r--kgeography/data/flags/br_GO.pngbin0 -> 1195 bytes
-rw-r--r--kgeography/data/flags/br_MA.pngbin0 -> 1148 bytes
-rw-r--r--kgeography/data/flags/br_MG.pngbin0 -> 3948 bytes
-rw-r--r--kgeography/data/flags/br_MS.pngbin0 -> 1488 bytes
-rw-r--r--kgeography/data/flags/br_MT.pngbin0 -> 1964 bytes
-rw-r--r--kgeography/data/flags/br_PA.pngbin0 -> 1626 bytes
-rw-r--r--kgeography/data/flags/br_PE.pngbin0 -> 10932 bytes
-rw-r--r--kgeography/data/flags/br_PI.pngbin0 -> 1231 bytes
-rw-r--r--kgeography/data/flags/br_PN.pngbin0 -> 11499 bytes
-rw-r--r--kgeography/data/flags/br_PR.pngbin0 -> 1081 bytes
-rw-r--r--kgeography/data/flags/br_RJ.pngbin0 -> 9646 bytes
-rw-r--r--kgeography/data/flags/br_RN.pngbin0 -> 1096 bytes
-rw-r--r--kgeography/data/flags/br_RO.pngbin0 -> 1520 bytes
-rw-r--r--kgeography/data/flags/br_RR.pngbin0 -> 1783 bytes
-rw-r--r--kgeography/data/flags/br_RS.pngbin0 -> 4256 bytes
-rw-r--r--kgeography/data/flags/br_SC.pngbin0 -> 4084 bytes
-rw-r--r--kgeography/data/flags/br_SE.pngbin0 -> 1360 bytes
-rw-r--r--kgeography/data/flags/br_SP.pngbin0 -> 1506 bytes
-rw-r--r--kgeography/data/flags/br_TO.pngbin0 -> 1788 bytes
-rw-r--r--kgeography/data/flags/brandenburg.pngbin0 -> 7523 bytes
-rw-r--r--kgeography/data/flags/brazil.pngbin0 -> 4818 bytes
-rw-r--r--kgeography/data/flags/bremen.pngbin0 -> 1280 bytes
-rw-r--r--kgeography/data/flags/brunei.pngbin0 -> 6314 bytes
-rw-r--r--kgeography/data/flags/bulgaria.pngbin0 -> 204 bytes
-rw-r--r--kgeography/data/flags/burkina.pngbin0 -> 2097 bytes
-rw-r--r--kgeography/data/flags/burundi.pngbin0 -> 5735 bytes
-rw-r--r--kgeography/data/flags/cambodia.pngbin0 -> 4480 bytes
-rw-r--r--kgeography/data/flags/cameroon.pngbin0 -> 1349 bytes
-rw-r--r--kgeography/data/flags/canada.pngbin0 -> 2883 bytes
-rw-r--r--kgeography/data/flags/central_african_republic.pngbin0 -> 1476 bytes
-rw-r--r--kgeography/data/flags/chad.pngbin0 -> 291 bytes
-rw-r--r--kgeography/data/flags/chile.pngbin0 -> 1293 bytes
-rw-r--r--kgeography/data/flags/china.pngbin0 -> 2800 bytes
-rw-r--r--kgeography/data/flags/colombia.pngbin0 -> 208 bytes
-rw-r--r--kgeography/data/flags/congo_brazzaville.pngbin0 -> 905 bytes
-rw-r--r--kgeography/data/flags/congo_kinshasa.pngbin0 -> 2608 bytes
-rw-r--r--kgeography/data/flags/costa_rica.pngbin0 -> 294 bytes
-rw-r--r--kgeography/data/flags/cote_divoire.pngbin0 -> 291 bytes
-rw-r--r--kgeography/data/flags/croatia.pngbin0 -> 3621 bytes
-rw-r--r--kgeography/data/flags/cuba_3x2.pngbin0 -> 2721 bytes
-rw-r--r--kgeography/data/flags/cyprus_4x3.pngbin0 -> 1516 bytes
-rw-r--r--kgeography/data/flags/czech.pngbin0 -> 2330 bytes
-rw-r--r--kgeography/data/flags/denmark.pngbin0 -> 387 bytes
-rw-r--r--kgeography/data/flags/djibouti.pngbin0 -> 2015 bytes
-rw-r--r--kgeography/data/flags/dominica.pngbin0 -> 8327 bytes
-rw-r--r--kgeography/data/flags/dominicanrepublic.pngbin0 -> 2659 bytes
-rw-r--r--kgeography/data/flags/easttimor.pngbin0 -> 2665 bytes
-rw-r--r--kgeography/data/flags/ecuador.pngbin0 -> 3348 bytes
-rw-r--r--kgeography/data/flags/egypt.pngbin0 -> 2715 bytes
-rw-r--r--kgeography/data/flags/el_salvador.pngbin0 -> 4122 bytes
-rw-r--r--kgeography/data/flags/equatorial_guinea.pngbin0 -> 3070 bytes
-rw-r--r--kgeography/data/flags/eritrea.pngbin0 -> 3196 bytes
-rw-r--r--kgeography/data/flags/estonia.pngbin0 -> 304 bytes
-rw-r--r--kgeography/data/flags/ethiopia.pngbin0 -> 3014 bytes
-rw-r--r--kgeography/data/flags/fiji.pngbin0 -> 5632 bytes
-rw-r--r--kgeography/data/flags/finland.pngbin0 -> 366 bytes
-rw-r--r--kgeography/data/flags/france.pngbin0 -> 214 bytes
-rw-r--r--kgeography/data/flags/gabon.pngbin0 -> 304 bytes
-rw-r--r--kgeography/data/flags/gambia.pngbin0 -> 337 bytes
-rw-r--r--kgeography/data/flags/georgia.pngbin0 -> 4274 bytes
-rw-r--r--kgeography/data/flags/germany.pngbin0 -> 204 bytes
-rw-r--r--kgeography/data/flags/ghana.pngbin0 -> 1818 bytes
-rw-r--r--kgeography/data/flags/greece.pngbin0 -> 640 bytes
-rw-r--r--kgeography/data/flags/greenland.pngbin0 -> 2558 bytes
-rw-r--r--kgeography/data/flags/guatemala.pngbin0 -> 2848 bytes
-rw-r--r--kgeography/data/flags/guinea.pngbin0 -> 214 bytes
-rw-r--r--kgeography/data/flags/guineabissau.pngbin0 -> 1473 bytes
-rw-r--r--kgeography/data/flags/guyana.pngbin0 -> 3811 bytes
-rw-r--r--kgeography/data/flags/haiti.pngbin0 -> 202 bytes
-rw-r--r--kgeography/data/flags/hamburg.pngbin0 -> 5404 bytes
-rw-r--r--kgeography/data/flags/hesse.pngbin0 -> 389 bytes
-rw-r--r--kgeography/data/flags/honduras.pngbin0 -> 1384 bytes
-rw-r--r--kgeography/data/flags/hungary.pngbin0 -> 350 bytes
-rw-r--r--kgeography/data/flags/iceland.pngbin0 -> 243 bytes
-rw-r--r--kgeography/data/flags/india.pngbin0 -> 4010 bytes
-rw-r--r--kgeography/data/flags/indonesia.pngbin0 -> 259 bytes
-rw-r--r--kgeography/data/flags/iran.pngbin0 -> 5551 bytes
-rw-r--r--kgeography/data/flags/iraq.pngbin0 -> 3606 bytes
-rw-r--r--kgeography/data/flags/ireland.pngbin0 -> 214 bytes
-rw-r--r--kgeography/data/flags/israel.pngbin0 -> 2152 bytes
-rw-r--r--kgeography/data/flags/italy.pngbin0 -> 214 bytes
-rw-r--r--kgeography/data/flags/italy/Makefile.am4
-rw-r--r--kgeography/data/flags/italy/it-abr200.pngbin0 -> 1704 bytes
-rw-r--r--kgeography/data/flags/italy/it-aos200.pngbin0 -> 1675 bytes
-rw-r--r--kgeography/data/flags/italy/it-bas200.pngbin0 -> 1110 bytes
-rw-r--r--kgeography/data/flags/italy/it-cal200.pngbin0 -> 19515 bytes
-rw-r--r--kgeography/data/flags/italy/it-cam200.pngbin0 -> 2472 bytes
-rw-r--r--kgeography/data/flags/italy/it-emi200.pngbin0 -> 2309 bytes
-rw-r--r--kgeography/data/flags/italy/it-fri200.pngbin0 -> 7633 bytes
-rw-r--r--kgeography/data/flags/italy/it-lat200.pngbin0 -> 33282 bytes
-rw-r--r--kgeography/data/flags/italy/it-lig200.pngbin0 -> 2954 bytes
-rw-r--r--kgeography/data/flags/italy/it-lom200.pngbin0 -> 2753 bytes
-rw-r--r--kgeography/data/flags/italy/it-mar200.pngbin0 -> 4643 bytes
-rw-r--r--kgeography/data/flags/italy/it-mol200.pngbin0 -> 3348 bytes
-rw-r--r--kgeography/data/flags/italy/it-pie200.pngbin0 -> 1489 bytes
-rw-r--r--kgeography/data/flags/italy/it-pug200.pngbin0 -> 4454 bytes
-rw-r--r--kgeography/data/flags/italy/it-sar200.pngbin0 -> 6034 bytes
-rw-r--r--kgeography/data/flags/italy/it-sic200.pngbin0 -> 4952 bytes
-rw-r--r--kgeography/data/flags/italy/it-tre200.pngbin0 -> 7173 bytes
-rw-r--r--kgeography/data/flags/italy/it-tus200.pngbin0 -> 2692 bytes
-rw-r--r--kgeography/data/flags/italy/it-umb200.pngbin0 -> 5642 bytes
-rw-r--r--kgeography/data/flags/italy/it-ven200.pngbin0 -> 89596 bytes
-rw-r--r--kgeography/data/flags/jamaica.pngbin0 -> 1054 bytes
-rw-r--r--kgeography/data/flags/japan.pngbin0 -> 2615 bytes
-rw-r--r--kgeography/data/flags/jordan.pngbin0 -> 1272 bytes
-rw-r--r--kgeography/data/flags/kazakhstan.pngbin0 -> 8170 bytes
-rw-r--r--kgeography/data/flags/kenya.pngbin0 -> 4737 bytes
-rw-r--r--kgeography/data/flags/kuwait.pngbin0 -> 1758 bytes
-rw-r--r--kgeography/data/flags/kyrgyzstan.pngbin0 -> 6260 bytes
-rw-r--r--kgeography/data/flags/laos.pngbin0 -> 1993 bytes
-rw-r--r--kgeography/data/flags/latvia.pngbin0 -> 170 bytes
-rw-r--r--kgeography/data/flags/lebanon.pngbin0 -> 3590 bytes
-rw-r--r--kgeography/data/flags/lesotho.pngbin0 -> 4835 bytes
-rw-r--r--kgeography/data/flags/liberia.pngbin0 -> 2145 bytes
-rw-r--r--kgeography/data/flags/libya.pngbin0 -> 155 bytes
-rw-r--r--kgeography/data/flags/liechtenstein.pngbin0 -> 3116 bytes
-rw-r--r--kgeography/data/flags/lithuania.pngbin0 -> 304 bytes
-rw-r--r--kgeography/data/flags/lower_saxony.pngbin0 -> 6043 bytes
-rw-r--r--kgeography/data/flags/luxembourg.pngbin0 -> 210 bytes
-rw-r--r--kgeography/data/flags/macedonia.pngbin0 -> 5715 bytes
-rw-r--r--kgeography/data/flags/madagascar.pngbin0 -> 216 bytes
-rw-r--r--kgeography/data/flags/malawi.pngbin0 -> 3333 bytes
-rw-r--r--kgeography/data/flags/malaysia.pngbin0 -> 3682 bytes
-rw-r--r--kgeography/data/flags/mali.pngbin0 -> 291 bytes
-rw-r--r--kgeography/data/flags/manitoba.pngbin0 -> 7688 bytes
-rw-r--r--kgeography/data/flags/mauritania.pngbin0 -> 2286 bytes
-rw-r--r--kgeography/data/flags/mecklenburg_western_pomerania.pngbin0 -> 433 bytes
-rw-r--r--kgeography/data/flags/mexico.pngbin0 -> 4575 bytes
-rw-r--r--kgeography/data/flags/moldova.pngbin0 -> 4879 bytes
-rw-r--r--kgeography/data/flags/mongolia.pngbin0 -> 2531 bytes
-rw-r--r--kgeography/data/flags/montenegro.pngbin0 -> 3731 bytes
-rw-r--r--kgeography/data/flags/morocco.pngbin0 -> 2245 bytes
-rw-r--r--kgeography/data/flags/mozambique.pngbin0 -> 3667 bytes
-rw-r--r--kgeography/data/flags/myanmar.pngbin0 -> 3539 bytes
-rw-r--r--kgeography/data/flags/namibia.pngbin0 -> 6205 bytes
-rw-r--r--kgeography/data/flags/nepal.pngbin0 -> 5365 bytes
-rw-r--r--kgeography/data/flags/netherlands.pngbin0 -> 304 bytes
-rw-r--r--kgeography/data/flags/newbrunswick.pngbin0 -> 15127 bytes
-rw-r--r--kgeography/data/flags/newfoundland.pngbin0 -> 3870 bytes
-rw-r--r--kgeography/data/flags/nicaragua.pngbin0 -> 2814 bytes
-rw-r--r--kgeography/data/flags/niger.pngbin0 -> 1011 bytes
-rw-r--r--kgeography/data/flags/nigeria.pngbin0 -> 182 bytes
-rw-r--r--kgeography/data/flags/nkorea.pngbin0 -> 2530 bytes
-rw-r--r--kgeography/data/flags/north_rhine_westphalia.pngbin0 -> 466 bytes
-rw-r--r--kgeography/data/flags/norway.pngbin0 -> 784 bytes
-rw-r--r--kgeography/data/flags/novascotia.pngbin0 -> 9269 bytes
-rw-r--r--kgeography/data/flags/nunavut.pngbin0 -> 7533 bytes
-rw-r--r--kgeography/data/flags/nwterritories.pngbin0 -> 4529 bytes
-rw-r--r--kgeography/data/flags/oman.pngbin0 -> 2045 bytes
-rw-r--r--kgeography/data/flags/ontario.pngbin0 -> 3941 bytes
-rw-r--r--kgeography/data/flags/pakistan.pngbin0 -> 3187 bytes
-rw-r--r--kgeography/data/flags/panama.pngbin0 -> 2135 bytes
-rw-r--r--kgeography/data/flags/papua_new_guinea.pngbin0 -> 5564 bytes
-rw-r--r--kgeography/data/flags/paraguay.pngbin0 -> 2259 bytes
-rw-r--r--kgeography/data/flags/pei.pngbin0 -> 13629 bytes
-rw-r--r--kgeography/data/flags/peru.pngbin0 -> 218 bytes
-rw-r--r--kgeography/data/flags/philippines.pngbin0 -> 3952 bytes
-rw-r--r--kgeography/data/flags/poland.pngbin0 -> 173 bytes
-rw-r--r--kgeography/data/flags/portugal.pngbin0 -> 6895 bytes
-rw-r--r--kgeography/data/flags/qatar.pngbin0 -> 1508 bytes
-rw-r--r--kgeography/data/flags/quebec.pngbin0 -> 3190 bytes
-rw-r--r--kgeography/data/flags/rhineland_palatinate.pngbin0 -> 5925 bytes
-rw-r--r--kgeography/data/flags/romania.pngbin0 -> 214 bytes
-rw-r--r--kgeography/data/flags/russia.pngbin0 -> 304 bytes
-rw-r--r--kgeography/data/flags/rwanda.pngbin0 -> 2839 bytes
-rw-r--r--kgeography/data/flags/saarland.pngbin0 -> 7042 bytes
-rw-r--r--kgeography/data/flags/san_marino.pngbin0 -> 7641 bytes
-rw-r--r--kgeography/data/flags/saskatchewan.pngbin0 -> 9372 bytes
-rw-r--r--kgeography/data/flags/saudiarabia.pngbin0 -> 5192 bytes
-rw-r--r--kgeography/data/flags/saxony.pngbin0 -> 500 bytes
-rw-r--r--kgeography/data/flags/saxony_anhalt.pngbin0 -> 548 bytes
-rw-r--r--kgeography/data/flags/schleswig_holstein.pngbin0 -> 572 bytes
-rw-r--r--kgeography/data/flags/senegal.pngbin0 -> 1184 bytes
-rw-r--r--kgeography/data/flags/serbia.pngbin0 -> 15612 bytes
-rw-r--r--kgeography/data/flags/sierra_leone.pngbin0 -> 304 bytes
-rw-r--r--kgeography/data/flags/singapore.pngbin0 -> 2839 bytes
-rw-r--r--kgeography/data/flags/skorea.pngbin0 -> 5382 bytes
-rw-r--r--kgeography/data/flags/slovakia.pngbin0 -> 2853 bytes
-rw-r--r--kgeography/data/flags/slovenia.pngbin0 -> 2646 bytes
-rw-r--r--kgeography/data/flags/somalia.pngbin0 -> 1773 bytes
-rw-r--r--kgeography/data/flags/southafrica.pngbin0 -> 3309 bytes
-rw-r--r--kgeography/data/flags/spain.pngbin0 -> 4460 bytes
-rw-r--r--kgeography/data/flags/sudan.pngbin0 -> 1905 bytes
-rw-r--r--kgeography/data/flags/suriname.pngbin0 -> 1750 bytes
-rw-r--r--kgeography/data/flags/svg/README3
-rw-r--r--kgeography/data/flags/svg/albania.svgzbin0 -> 3846 bytes
-rw-r--r--kgeography/data/flags/svg/algeria.svgzbin0 -> 860 bytes
-rw-r--r--kgeography/data/flags/svg/angola.svgzbin0 -> 2016 bytes
-rw-r--r--kgeography/data/flags/svg/antigua.svgzbin0 -> 954 bytes
-rw-r--r--kgeography/data/flags/svg/argentina.svgzbin0 -> 5171 bytes
-rw-r--r--kgeography/data/flags/svg/austria.svgzbin0 -> 558 bytes
-rw-r--r--kgeography/data/flags/svg/bahamas.svgzbin0 -> 620 bytes
-rw-r--r--kgeography/data/flags/svg/barbados.svgzbin0 -> 1540 bytes
-rw-r--r--kgeography/data/flags/svg/belarus.svgzbin0 -> 3957 bytes
-rw-r--r--kgeography/data/flags/svg/belgium.svgzbin0 -> 576 bytes
-rw-r--r--kgeography/data/flags/svg/belize.svgzbin0 -> 18288 bytes
-rw-r--r--kgeography/data/flags/svg/benin.svgzbin0 -> 551 bytes
-rw-r--r--kgeography/data/flags/svg/bolivia.svgzbin0 -> 1167 bytes
-rw-r--r--kgeography/data/flags/svg/bosnia_herzegovina.svgzbin0 -> 740 bytes
-rw-r--r--kgeography/data/flags/svg/botswana.svgzbin0 -> 1144 bytes
-rw-r--r--kgeography/data/flags/svg/brazil.svgzbin0 -> 7593 bytes
-rw-r--r--kgeography/data/flags/svg/bulgaria.svgzbin0 -> 495 bytes
-rw-r--r--kgeography/data/flags/svg/burkina.svgzbin0 -> 658 bytes
-rw-r--r--kgeography/data/flags/svg/burundi.svgzbin0 -> 1155 bytes
-rw-r--r--kgeography/data/flags/svg/cameroon.svgzbin0 -> 591 bytes
-rw-r--r--kgeography/data/flags/svg/canada.svgzbin0 -> 1154 bytes
-rw-r--r--kgeography/data/flags/svg/central_african_republic.svgzbin0 -> 870 bytes
-rw-r--r--kgeography/data/flags/svg/chad.svgzbin0 -> 1174 bytes
-rw-r--r--kgeography/data/flags/svg/chile.svgzbin0 -> 745 bytes
-rw-r--r--kgeography/data/flags/svg/colombia.svgzbin0 -> 483 bytes
-rw-r--r--kgeography/data/flags/svg/congo_brazzaville.svgzbin0 -> 611 bytes
-rw-r--r--kgeography/data/flags/svg/congo_kinshasa.svgzbin0 -> 920 bytes
-rw-r--r--kgeography/data/flags/svg/costa_rica.svgzbin0 -> 600 bytes
-rw-r--r--kgeography/data/flags/svg/cote_divoire.svgzbin0 -> 1138 bytes
-rw-r--r--kgeography/data/flags/svg/croatia.svgzbin0 -> 11630 bytes
-rw-r--r--kgeography/data/flags/svg/cuba_3x2.svgzbin0 -> 670 bytes
-rw-r--r--kgeography/data/flags/svg/cyprus_4x3.svgzbin0 -> 12831 bytes
-rw-r--r--kgeography/data/flags/svg/czech.svgzbin0 -> 529 bytes
-rw-r--r--kgeography/data/flags/svg/denmark.svgzbin0 -> 601 bytes
-rw-r--r--kgeography/data/flags/svg/djibouti.svgzbin0 -> 763 bytes
-rw-r--r--kgeography/data/flags/svg/dominica.svgzbin0 -> 5161 bytes
-rw-r--r--kgeography/data/flags/svg/dominicanrepublic.svgzbin0 -> 108717 bytes
-rw-r--r--kgeography/data/flags/svg/ecuador.svgzbin0 -> 15931 bytes
-rw-r--r--kgeography/data/flags/svg/egypt.svgzbin0 -> 3516 bytes
-rw-r--r--kgeography/data/flags/svg/el_salvador.svgzbin0 -> 20518 bytes
-rw-r--r--kgeography/data/flags/svg/equatorial_guinea.svgzbin0 -> 11530 bytes
-rw-r--r--kgeography/data/flags/svg/eritrea.svgzbin0 -> 3862 bytes
-rw-r--r--kgeography/data/flags/svg/estonia.svgzbin0 -> 514 bytes
-rw-r--r--kgeography/data/flags/svg/ethiopia.svgzbin0 -> 1348 bytes
-rw-r--r--kgeography/data/flags/svg/finland.svgzbin0 -> 640 bytes
-rw-r--r--kgeography/data/flags/svg/france.svgzbin0 -> 466 bytes
-rw-r--r--kgeography/data/flags/svg/gabon.svgzbin0 -> 507 bytes
-rw-r--r--kgeography/data/flags/svg/gambia.svgzbin0 -> 553 bytes
-rw-r--r--kgeography/data/flags/svg/germany.svgzbin0 -> 456 bytes
-rw-r--r--kgeography/data/flags/svg/ghana.svgzbin0 -> 653 bytes
-rw-r--r--kgeography/data/flags/svg/greece.svgzbin0 -> 667 bytes
-rw-r--r--kgeography/data/flags/svg/guatemala.svgzbin0 -> 20915 bytes
-rw-r--r--kgeography/data/flags/svg/guinea.svgzbin0 -> 554 bytes
-rw-r--r--kgeography/data/flags/svg/guineabissau.svgzbin0 -> 819 bytes
-rw-r--r--kgeography/data/flags/svg/guyana.svgzbin0 -> 1076 bytes
-rw-r--r--kgeography/data/flags/svg/haiti.svgzbin0 -> 729 bytes
-rw-r--r--kgeography/data/flags/svg/honduras.svgzbin0 -> 718 bytes
-rw-r--r--kgeography/data/flags/svg/hungary.svgzbin0 -> 673 bytes
-rw-r--r--kgeography/data/flags/svg/iceland.svgzbin0 -> 592 bytes
-rw-r--r--kgeography/data/flags/svg/iran.svgzbin0 -> 4626 bytes
-rw-r--r--kgeography/data/flags/svg/iraq.svgzbin0 -> 2551 bytes
-rw-r--r--kgeography/data/flags/svg/ireland.svgzbin0 -> 574 bytes
-rw-r--r--kgeography/data/flags/svg/israel.svgzbin0 -> 933 bytes
-rw-r--r--kgeography/data/flags/svg/italy.svgzbin0 -> 464 bytes
-rw-r--r--kgeography/data/flags/svg/jamaica.svgzbin0 -> 773 bytes
-rw-r--r--kgeography/data/flags/svg/jordan.svgzbin0 -> 676 bytes
-rw-r--r--kgeography/data/flags/svg/kenya.svgzbin0 -> 1363 bytes
-rw-r--r--kgeography/data/flags/svg/kuwait.svgzbin0 -> 649 bytes
-rw-r--r--kgeography/data/flags/svg/latvia.svgzbin0 -> 617 bytes
-rw-r--r--kgeography/data/flags/svg/lebanon.svgzbin0 -> 2973 bytes
-rw-r--r--kgeography/data/flags/svg/lesotho.svgzbin0 -> 2443 bytes
-rw-r--r--kgeography/data/flags/svg/liberia.svgzbin0 -> 917 bytes
-rw-r--r--kgeography/data/flags/svg/libya.svgzbin0 -> 515 bytes
-rw-r--r--kgeography/data/flags/svg/lithuania.svgzbin0 -> 667 bytes
-rw-r--r--kgeography/data/flags/svg/luxembourg.svgzbin0 -> 1136 bytes
-rw-r--r--kgeography/data/flags/svg/macedonia.svgzbin0 -> 1089 bytes
-rw-r--r--kgeography/data/flags/svg/madagascar.svgzbin0 -> 502 bytes
-rw-r--r--kgeography/data/flags/svg/malawi.svgzbin0 -> 1722 bytes
-rw-r--r--kgeography/data/flags/svg/mali.svgzbin0 -> 1129 bytes
-rw-r--r--kgeography/data/flags/svg/mauritania.svgzbin0 -> 843 bytes
-rw-r--r--kgeography/data/flags/svg/mexico.svgzbin0 -> 28260 bytes
-rw-r--r--kgeography/data/flags/svg/moldova.svgzbin0 -> 5363 bytes
-rw-r--r--kgeography/data/flags/svg/morocco.svgzbin0 -> 758 bytes
-rw-r--r--kgeography/data/flags/svg/mozambique.svgzbin0 -> 2639 bytes
-rw-r--r--kgeography/data/flags/svg/namibia.svgzbin0 -> 1443 bytes
-rw-r--r--kgeography/data/flags/svg/netherlands.svgzbin0 -> 494 bytes
-rw-r--r--kgeography/data/flags/svg/nicaragua.svgzbin0 -> 13248 bytes
-rw-r--r--kgeography/data/flags/svg/niger.svgzbin0 -> 628 bytes
-rw-r--r--kgeography/data/flags/svg/nigeria.svgzbin0 -> 611 bytes
-rw-r--r--kgeography/data/flags/svg/norway.svgzbin0 -> 839 bytes
-rw-r--r--kgeography/data/flags/svg/oman.svgzbin0 -> 10601 bytes
-rw-r--r--kgeography/data/flags/svg/panama.svgzbin0 -> 772 bytes
-rw-r--r--kgeography/data/flags/svg/paraguay.svgzbin0 -> 13824 bytes
-rw-r--r--kgeography/data/flags/svg/peru.svgzbin0 -> 1176 bytes
-rw-r--r--kgeography/data/flags/svg/poland.svgzbin0 -> 498 bytes
-rw-r--r--kgeography/data/flags/svg/portugal.svgzbin0 -> 5751 bytes
-rw-r--r--kgeography/data/flags/svg/qatar.svgzbin0 -> 679 bytes
-rw-r--r--kgeography/data/flags/svg/romania.svgzbin0 -> 571 bytes
-rw-r--r--kgeography/data/flags/svg/russia.svgzbin0 -> 474 bytes
-rw-r--r--kgeography/data/flags/svg/rwanda.svgzbin0 -> 1376 bytes
-rw-r--r--kgeography/data/flags/svg/san_marino.svgzbin0 -> 13267 bytes
-rw-r--r--kgeography/data/flags/svg/saudiarabia.svgzbin0 -> 11062 bytes
-rw-r--r--kgeography/data/flags/svg/senegal.svgzbin0 -> 698 bytes
-rw-r--r--kgeography/data/flags/svg/serbia.svgzbin0 -> 61999 bytes
-rw-r--r--kgeography/data/flags/svg/sierra_leone.svgzbin0 -> 1177 bytes
-rw-r--r--kgeography/data/flags/svg/slovakia.svgzbin0 -> 1157 bytes
-rw-r--r--kgeography/data/flags/svg/slovenia.svgzbin0 -> 1894 bytes
-rw-r--r--kgeography/data/flags/svg/somalia.svgzbin0 -> 660 bytes
-rw-r--r--kgeography/data/flags/svg/southafrica.svgzbin0 -> 768 bytes
-rw-r--r--kgeography/data/flags/svg/spain.svgzbin0 -> 50352 bytes
-rw-r--r--kgeography/data/flags/svg/sudan.svgzbin0 -> 617 bytes
-rw-r--r--kgeography/data/flags/svg/suriname.svgzbin0 -> 760 bytes
-rw-r--r--kgeography/data/flags/svg/swaziland.svgzbin0 -> 4270 bytes
-rw-r--r--kgeography/data/flags/svg/sweden.svgzbin0 -> 771 bytes
-rw-r--r--kgeography/data/flags/svg/switzerland.svgzbin0 -> 838 bytes
-rw-r--r--kgeography/data/flags/svg/syria.svgzbin0 -> 755 bytes
-rw-r--r--kgeography/data/flags/svg/tanzania.svgzbin0 -> 676 bytes
-rw-r--r--kgeography/data/flags/svg/togo.svgzbin0 -> 877 bytes
-rw-r--r--kgeography/data/flags/svg/trinidad_tobago.svgzbin0 -> 915 bytes
-rw-r--r--kgeography/data/flags/svg/tunisia.svgzbin0 -> 1102 bytes
-rw-r--r--kgeography/data/flags/svg/turkey.svgzbin0 -> 1144 bytes
-rw-r--r--kgeography/data/flags/svg/turkmenistan.svgzbin0 -> 11743 bytes
-rw-r--r--kgeography/data/flags/svg/uganda.svgzbin0 -> 3122 bytes
-rw-r--r--kgeography/data/flags/svg/uk.svgzbin0 -> 712 bytes
-rw-r--r--kgeography/data/flags/svg/ukraine.svgzbin0 -> 450 bytes
-rw-r--r--kgeography/data/flags/svg/uruguay.svgzbin0 -> 1995 bytes
-rw-r--r--kgeography/data/flags/svg/usa.svgzbin0 -> 1630 bytes
-rw-r--r--kgeography/data/flags/svg/venezuela.svgzbin0 -> 894 bytes
-rw-r--r--kgeography/data/flags/svg/western_sahara.svgzbin0 -> 1502 bytes
-rw-r--r--kgeography/data/flags/svg/yemen.svgzbin0 -> 533 bytes
-rw-r--r--kgeography/data/flags/svg/zambia.svgzbin0 -> 5482 bytes
-rw-r--r--kgeography/data/flags/svg/zimbabwe.svgzbin0 -> 2366 bytes
-rw-r--r--kgeography/data/flags/swaziland.pngbin0 -> 6834 bytes
-rw-r--r--kgeography/data/flags/sweden.pngbin0 -> 401 bytes
-rw-r--r--kgeography/data/flags/switzerland.pngbin0 -> 342 bytes
-rw-r--r--kgeography/data/flags/syria.pngbin0 -> 1530 bytes
-rw-r--r--kgeography/data/flags/taiwan.pngbin0 -> 3434 bytes
-rw-r--r--kgeography/data/flags/tajikistan.pngbin0 -> 3679 bytes
-rw-r--r--kgeography/data/flags/tanzania.pngbin0 -> 1460 bytes
-rw-r--r--kgeography/data/flags/thailand.pngbin0 -> 355 bytes
-rw-r--r--kgeography/data/flags/thuringia.pngbin0 -> 673 bytes
-rw-r--r--kgeography/data/flags/togo.pngbin0 -> 1714 bytes
-rw-r--r--kgeography/data/flags/tonga.pngbin0 -> 910 bytes
-rw-r--r--kgeography/data/flags/trinidad_tobago.pngbin0 -> 3105 bytes
-rw-r--r--kgeography/data/flags/tunisia.pngbin0 -> 4762 bytes
-rw-r--r--kgeography/data/flags/turkey.pngbin0 -> 1777 bytes
-rw-r--r--kgeography/data/flags/turkmenistan.pngbin0 -> 9334 bytes
-rw-r--r--kgeography/data/flags/uae.pngbin0 -> 418 bytes
-rw-r--r--kgeography/data/flags/uganda.pngbin0 -> 3333 bytes
-rw-r--r--kgeography/data/flags/uk.pngbin0 -> 1794 bytes
-rw-r--r--kgeography/data/flags/ukraine.pngbin0 -> 173 bytes
-rw-r--r--kgeography/data/flags/uruguay.pngbin0 -> 4183 bytes
-rw-r--r--kgeography/data/flags/usa.pngbin0 -> 1723 bytes
-rw-r--r--kgeography/data/flags/uzbekistan.pngbin0 -> 2850 bytes
-rw-r--r--kgeography/data/flags/venezuela.pngbin0 -> 1959 bytes
-rw-r--r--kgeography/data/flags/vietnam.pngbin0 -> 2552 bytes
-rw-r--r--kgeography/data/flags/western_sahara.pngbin0 -> 2769 bytes
-rw-r--r--kgeography/data/flags/yemen.pngbin0 -> 316 bytes
-rw-r--r--kgeography/data/flags/yukon.pngbin0 -> 5900 bytes
-rw-r--r--kgeography/data/flags/zambia.pngbin0 -> 3977 bytes
-rw-r--r--kgeography/data/flags/zimbabwe.pngbin0 -> 4081 bytes
-rw-r--r--kgeography/data/france.kgm886
-rw-r--r--kgeography/data/france.pngbin0 -> 12737 bytes
-rw-r--r--kgeography/data/germany.kgm182
-rw-r--r--kgeography/data/germany.pngbin0 -> 7045 bytes
-rw-r--r--kgeography/data/italy.kgm222
-rw-r--r--kgeography/data/italy.pngbin0 -> 3613 bytes
-rw-r--r--kgeography/data/italyprovince.kgm949
-rw-r--r--kgeography/data/italyprovince.pngbin0 -> 8973 bytes
-rw-r--r--kgeography/data/ncamerica.kgm257
-rw-r--r--kgeography/data/ncamerica.pngbin0 -> 8533 bytes
-rw-r--r--kgeography/data/netherlands.kgm139
-rw-r--r--kgeography/data/netherlands.pngbin0 -> 7144 bytes
-rw-r--r--kgeography/data/norway.kgm193
-rw-r--r--kgeography/data/norway.pngbin0 -> 5647 bytes
-rw-r--r--kgeography/data/poland.kgm166
-rw-r--r--kgeography/data/poland.pngbin0 -> 8042 bytes
-rw-r--r--kgeography/data/southamerica.kgm170
-rw-r--r--kgeography/data/southamerica.pngbin0 -> 5193 bytes
-rw-r--r--kgeography/data/spain.kgm175
-rw-r--r--kgeography/data/spain.pngbin0 -> 4792 bytes
-rw-r--r--kgeography/data/usa.kgm580
-rw-r--r--kgeography/data/usa.pngbin0 -> 11580 bytes
-rw-r--r--kgeography/data/world.kgm1792
-rw-r--r--kgeography/data/world.pngbin0 -> 20105 bytes
-rw-r--r--kgeography/icons/Makefile.am1
-rw-r--r--kgeography/icons/cr128-app-kgeography.pngbin0 -> 8227 bytes
-rw-r--r--kgeography/icons/cr16-app-kgeography.pngbin0 -> 612 bytes
-rw-r--r--kgeography/icons/cr22-app-kgeography.pngbin0 -> 874 bytes
-rw-r--r--kgeography/icons/cr32-app-kgeography.pngbin0 -> 1323 bytes
-rw-r--r--kgeography/icons/cr48-app-kgeography.pngbin0 -> 2212 bytes
-rw-r--r--kgeography/icons/cr64-app-kgeography.pngbin0 -> 3166 bytes
-rw-r--r--kgeography/icons/crsc-app-kgeography.svgzbin0 -> 3593 bytes
-rw-r--r--kgeography/icons/hi128-app-kgeography.pngbin0 -> 2410 bytes
-rw-r--r--kgeography/icons/hi16-app-kgeography.pngbin0 -> 327 bytes
-rw-r--r--kgeography/icons/hi22-app-kgeography.pngbin0 -> 535 bytes
-rw-r--r--kgeography/icons/hi32-app-kgeography.pngbin0 -> 1049 bytes
-rw-r--r--kgeography/icons/hi48-app-kgeography.pngbin0 -> 1131 bytes
-rw-r--r--kgeography/icons/hi64-app-kgeography.pngbin0 -> 1353 bytes
-rw-r--r--kgeography/src/Makefile.am43
-rw-r--r--kgeography/src/answer.cpp116
-rw-r--r--kgeography/src/answer.h38
-rw-r--r--kgeography/src/answersdialog.cpp95
-rw-r--r--kgeography/src/answersdialog.h39
-rw-r--r--kgeography/src/askwidget.cpp104
-rw-r--r--kgeography/src/askwidget.h72
-rw-r--r--kgeography/src/boxasker.cpp128
-rw-r--r--kgeography/src/boxasker.h57
-rw-r--r--kgeography/src/capitaldivisionasker.cpp74
-rw-r--r--kgeography/src/capitaldivisionasker.h32
-rw-r--r--kgeography/src/division.cpp82
-rw-r--r--kgeography/src/division.h40
-rw-r--r--kgeography/src/divisioncapitalasker.cpp75
-rw-r--r--kgeography/src/divisioncapitalasker.h30
-rw-r--r--kgeography/src/divisionflagasker.cpp57
-rw-r--r--kgeography/src/divisionflagasker.h27
-rw-r--r--kgeography/src/flagdivisionasker.cpp52
-rw-r--r--kgeography/src/flagdivisionasker.h30
-rw-r--r--kgeography/src/kgeography.cpp338
-rw-r--r--kgeography/src/kgeography.desktop116
-rw-r--r--kgeography/src/kgeography.h75
-rw-r--r--kgeography/src/kgeography.kcfg12
-rw-r--r--kgeography/src/kgeographyui.rc25
-rw-r--r--kgeography/src/main.cpp37
-rw-r--r--kgeography/src/map.cpp156
-rw-r--r--kgeography/src/map.h52
-rw-r--r--kgeography/src/mapasker.cpp209
-rw-r--r--kgeography/src/mapasker.h67
-rw-r--r--kgeography/src/mapchooser.cpp93
-rw-r--r--kgeography/src/mapchooser.h40
-rw-r--r--kgeography/src/mapparser.cpp279
-rw-r--r--kgeography/src/mapparser.h57
-rw-r--r--kgeography/src/mapsdatatranslation.cpp4422
-rw-r--r--kgeography/src/mapwidget.cpp332
-rw-r--r--kgeography/src/mapwidget.h69
-rw-r--r--kgeography/src/mypopup.cpp66
-rw-r--r--kgeography/src/mypopup.h31
-rw-r--r--kgeography/src/popupmanager.cpp67
-rw-r--r--kgeography/src/popupmanager.h45
-rw-r--r--kgeography/src/script.cpp86
-rw-r--r--kgeography/src/settings.kcfgc5
-rw-r--r--kgeography/tools/gen_map.pl244
489 files changed, 16887 insertions, 0 deletions
diff --git a/kgeography/AUTHORS b/kgeography/AUTHORS
new file mode 100644
index 00000000..ea57a549
--- /dev/null
+++ b/kgeography/AUTHORS
@@ -0,0 +1 @@
+Albert Astals Cid <tsdgeos AT terra DOT es>
diff --git a/kgeography/Changelog b/kgeography/Changelog
new file mode 100644
index 00000000..f54c280c
--- /dev/null
+++ b/kgeography/Changelog
@@ -0,0 +1,174 @@
+2005-04-05 Albert Astals Cid <tsdgeos@terra.es>
+ * Canada map by Ed Montgomery
+
+2005-30-04 Albert Astals Cid <tsdgeos@terra.es>
+ * Better world map
+
+2005-24-04 Albert Astals Cid <tsdgeos@terra.es>
+ * World and Asia map by Justin Morgan
+
+2005-03-04 Albert Astals Cid <tsdgeos@terra.es>
+ * Brazil map by Justin Morgan
+
+2005-03-04 Albert Astals Cid <tsdgeos@terra.es>
+ * Do not create another mapAsker in consult mode if we are already at
+ it
+
+2005-03-02 Albert Astals Cid <tsdgeos@terra.es>
+ * More scrollbars correction
+ * Split Zoom to Zoom and Zoom to original size. Based on a Pino
+ Toscano patch
+ * Answers dialog now has a ScrollView so it can show the answers when
+ there are many
+ * Once one has ended a set of questions the map is shown
+
+2005-02-28 Albert Astals Cid <tsdgeos@terra.es>
+ * Don't put the scrollbars on map widget if they are not necesary.
+ Thanks Pino for noticing
+
+2005-02-18 Albert Astals Cid <tsdgeos@terra.es>
+ * China map by Melody Fink
+
+2005-02-03 Albert Astals Cid <tsdgeos@terra.es>
+ * New way of showing flags as suggested by Pino Toscano
+
+2005-01-15 René Martín Rodríguez <agarfu@gulic.org>
+ * Better resizing of the window when loading a map
+
+2005-01-10 Albert Astals Cid <tsdgeos@terra.es>
+ * Stavenger -> Stavanger
+
+2005-01-04 René Martín Rodríguez <agarfu@gulic.org>
+ * Show flag on map view when clicking on a division that has map
+ * Initial work on resizing the window to a sane size when loading a
+ map
+
+2005-01-03 René Martín Rodríguez <agarfu@gulic.org>
+ * Fix map dragging when zoomed
+
+2004-12-28 Albert Astals Cid <tsdgeos@terra.es>
+ * Add Norway map
+
+2004-12-28 Albert Astals Cid <tsdgeos@terra.es>
+ * Add Poland and Austia map
+
+2004-12-25 Albert Astals Cid <tsdgeos@terra.es>
+ * Fix QImage::scale: Image is a null image problems
+ * Bump version to 0.3.1
+
+2004-12-01 Albert Astals Cid <tsdgeos@terra.es>
+ * Rename map class to KGmap so it does no collide with stl map
+ * Bump to version 0.3
+ * Give feedback after of which were the correct answers when all
+ question have been made
+
+2004-11-16 Albert Astals Cid <tsdgeos@terra.es>
+ * Add Italy map
+
+2004-09-11 Albert Astals Cid <tsdgeos@terra.es>
+ * QString -> const QString &
+ * QString = "" -> QString.isNull
+
+2004-09-11 Albert Astals Cid <tsdgeos@terra.es>
+ * Use all map widget space if available
+
+2004-09-10 Albert Astals Cid <tsdgeos@terra.es>
+ * Put a discalimer
+
+2004-09-09 Albert Astals Cid <tsdgeos@terra.es>
+ * Cararas -> Caracas
+
+2004-09-08 Albert Astals Cid <tsdgeos@terra.es>
+ * Add South America map
+
+2004-08-01 Albert Astals Cid <tsdgeos@terra.es>
+ * F.Y.R. Macedonia -> Macedonia
+
+2004-07-29 Albert Astals Cid <tsdgeos@terra.es>
+ * RightWidget is really LeftWidget ¬.¬
+ * There is no need to store p_rightWidget as a class member
+ * Bump version to 0.2.1
+ * Improve layouting of mapasker
+ * Make the scrollbar work also when clicking on the arrows
+(sliderMoved -> valueChanged)
+ * Fix resizing bug in mapWidget that showed a inexistant part of the
+map when making the widget bigger and the toolbars were at their maximum
+ * Remove ugly kapp->processEvents()
+ * Skip scaling and painting of the map when the function that draws
+the map gets called with the same values as it was called the last time
+
+2004-07-27 Albert Astals Cid <tsdgeos@terra.es>
+ * Release version 0.2
+
+2004-07-18 Albert Astals Cid <tsdgeos@terra.es>
+ * Add scrollbars to the map (if needed)
+
+2004-06-08 Albert Astals Cid <tsdgeos@terra.es>
+ * Layout change
+ * Unify some of the code in boxasker and mapasker to askwidget
+ * Zoom now is much more memory efficient (at cost of cpu efficiency)
+
+2004-06-05 Albert Astals Cid <tsdgeos@terra.es>
+ * Zoom and Move actions should be unchecked and disabled when going to main menu
+ * Don't enable scrolling mode for extreme zooms as it needed too much
+memory
+ * Add scrolling to zoom mode
+
+2004-05-25 Albert Astals Cid <tsdgeos@terra.es>
+ * Unify Bahamas and The Bahamas -> The Bahamas
+ * Add germany map (by Yann Verley)
+
+2004-05-23 Albert Astals Cid <tsdgeos@terra.es>
+ * Correct North and central America map
+
+2004-05-22 Albert Astals Cid <tsdgeos@terra.es>
+ * Add North and central America map (by Justin Morgan)
+
+2004-05-19 Albert Astals Cid <tsdgeos@terra.es>
+ * Make zoom mode not zoom inexistant map parts when the user places
+the mouse outside the widget when selecting
+
+2004-05-16 Albert Astals Cid <tsdgeos@terra.es>
+ * Add USA states map (by Yann Verley)
+
+2004-05-15 Albert Astals Cid <tsdgeos@terra.es>
+ * Sort map chooser list entries
+ * Mantain aspect ratio of map images in map chooser
+ * Use smoothScale instead of scale in map chooser images
+
+2004-05-14 Albert Astals Cid <tsdgeos@terra.es>
+ * Zoom available in map mode, possibly needs a BIG tooltip on how to
+use.
+
+2004-05-12 Albert Astals Cid <tsdgeos@terra.es>
+ * Add a perl script for helping in the map creation task (by Yann
+Verley)
+
+2004-05-11 Albert Astals Cid <tsdgeos@terra.es>
+ * In map browsing mode show DivisionName (CapitalDivisionName)
+ * Add France map (by Yann Verley)
+
+2004-05-09 Albert Astals Cid <tsdgeos@terra.es>
+ * Add Division -> flag asker
+
+2004-05-08 Albert Astals Cid <tsdgeos@terra.es>
+ * Add Division -> Capital asker
+ * Create boxasker abstract base class that has most of the code that
+previously was repeated at capitaldivisionasker.cpp divisioncapitalasker.cpp
+and flagdivisionasker.cpp
+
+2004-05-08 Albert Astals Cid <tsdgeos@terra.es>
+ * Add Capital -> Division asker
+ * Privatize a method
+
+2004-05-06 Albert Astals Cid <tsdgeos@terra.es>
+ * Fix gcc 3.4 compile error
+ * Add capitals for africa map
+ * Add capitals for spain autonomies map
+
+2004-05-05 Albert Astals Cid <tsdgeos@terra.es>
+ * Add KGeography's webpage url to about box
+ * Update TODO file
+ * Increase version number to 0.2
+ * Make parser give better errors with bad maps
+ * Add capitals for europe map
diff --git a/kgeography/Makefile.am b/kgeography/Makefile.am
new file mode 100644
index 00000000..64c97f5e
--- /dev/null
+++ b/kgeography/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = src data icons
diff --git a/kgeography/README b/kgeography/README
new file mode 100644
index 00000000..22f6ee04
--- /dev/null
+++ b/kgeography/README
@@ -0,0 +1 @@
+KGeography is a geography learning tool
diff --git a/kgeography/TODO b/kgeography/TODO
new file mode 100644
index 00000000..00589182
--- /dev/null
+++ b/kgeography/TODO
@@ -0,0 +1,28 @@
+**************
+* UI related *
+**************
+
+ - Add the click on map division given its flag
+ - Add the fit to window option in the map browsing mode
+
+******************
+* Parser related *
+******************
+
+ - Add <localname> tag to the map parser/files so the user can see the local name of a division
+ Example: In Spanish the user will see for Belgium -> Belgica (due to i18n) and Belgique (due to localname)
+ - Add a description saying if divisions are countrys or not as some languages have different words for Capital of a country and for Capital of a region
+
+***************
+* Map related *
+***************
+
+ - See data/TODO
+
+ - Add more maps ;-)
+
+ - The answers dialog of click on map is really bad
+
+ - Have non political maps, support for geographical (rivers, mountains, etc) is almost there if the map is carefully
+ crafted. Example: Have the map all of the same color, then for each river, mountain, etc create a box big enough
+ of the wanted color and then associate the color of the box with the name of the river, etc.
diff --git a/kgeography/data/Makefile.am b/kgeography/data/Makefile.am
new file mode 100644
index 00000000..f218743e
--- /dev/null
+++ b/kgeography/data/Makefile.am
@@ -0,0 +1,10 @@
+SUBDIRS = flags
+
+kgeographydir = $(kde_datadir)/kgeography/
+kgeography_DATA = africa.png europe.png france.png germany.png ncamerica.png \
+ southamerica.png spain.png usa.png africa.kgm europe.kgm france.kgm \
+ germany.kgm ncamerica.kgm southamerica.kgm spain.kgm usa.kgm \
+ italy.png italy.kgm poland.kgm poland.png austria.kgm austria.png \
+ norway.kgm norway.png china.png china.kgm brazil.png brazil.kgm \
+ italyprovince.kgm italyprovince.png asia.png asia.kgm \
+ world.png world.kgm canada.png canada.kgm netherlands.png netherlands.kgm
diff --git a/kgeography/data/africa.kgm b/kgeography/data/africa.kgm
new file mode 100644
index 00000000..a5654132
--- /dev/null
+++ b/kgeography/data/africa.kgm
@@ -0,0 +1,692 @@
+<map>
+ <mapFile>africa.png</mapFile>
+ <name>Africa</name>
+ <division>
+ <name>Water</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>65</red>
+ <green>95</green>
+ <blue>173</blue>
+ </color>
+ </division>
+ <division>
+ <name>Coast</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>121</green>
+ <blue>156</blue>
+ </color>
+ </division>
+ <division>
+ <name>Frontier</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Algeria</name>
+ <flag>algeria.png</flag>
+ <capital>Algiers</capital>
+ <color>
+ <red>65</red>
+ <green>189</green>
+ <blue>57</blue>
+ </color>
+ </division>
+ <division>
+ <name>Angola</name>
+ <flag>angola.png</flag>
+ <capital>Luanda</capital>
+ <color>
+ <red>217</red>
+ <green>43</green>
+ <blue>5</blue>
+ </color>
+ </division>
+ <division>
+ <name>Benin</name>
+ <flag>benin.png</flag>
+ <capital>Porto Novo</capital>
+ <color>
+ <red>123</red>
+ <green>161</green>
+ <blue>172</blue>
+ </color>
+ </division>
+ <division>
+ <name>Botswana</name>
+ <flag>botswana.png</flag>
+ <capital>Gaborone</capital>
+ <color>
+ <red>73</red>
+ <green>125</green>
+ <blue>140</blue>
+ </color>
+ </division>
+ <division>
+ <name>Burkina Faso</name>
+ <flag>burkina.png</flag>
+ <capital>Ouagadougou</capital>
+ <color>
+ <red>180</red>
+ <green>178</green>
+ <blue>57</blue>
+ </color>
+ </division>
+ <division>
+ <name>Burundi</name>
+ <flag>burundi.png</flag>
+ <capital>Bujumbura</capital>
+ <color>
+ <red>132</red>
+ <green>12</green>
+ <blue>95</blue>
+ </color>
+ </division>
+ <division>
+ <name>Cameroon</name>
+ <flag>cameroon.png</flag>
+ <capital>Yaoundé</capital>
+ <color>
+ <red>73</red>
+ <green>125</green>
+ <blue>57</blue>
+ </color>
+ </division>
+ <division>
+ <name>Central African Republic</name>
+ <flag>central_african_republic.png</flag>
+ <capital>Bangui</capital>
+ <color>
+ <red>28</red>
+ <green>136</green>
+ <blue>187</blue>
+ </color>
+ </division>
+ <division>
+ <name>Chad</name>
+ <flag>chad.png</flag>
+ <capital>N'Djamena</capital>
+ <color>
+ <red>165</red>
+ <green>173</green>
+ <blue>219</blue>
+ </color>
+ </division>
+ <division>
+ <name>Côte d'Ivoire</name>
+ <flag>cote_divoire.png</flag>
+ <capital>Yamoussoukro</capital>
+ <color>
+ <red>73</red>
+ <green>189</green>
+ <blue>57</blue>
+ </color>
+ </division>
+ <division>
+ <name>Cyprus</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>87</green>
+ <blue>131</blue>
+ </color>
+ </division>
+ <division>
+ <name>Democratic Republic of the Congo</name>
+ <flag>congo_kinshasa.png</flag>
+ <capital>Kinshasa</capital>
+ <color>
+ <red>75</red>
+ <green>94</green>
+ <blue>102</blue>
+ </color>
+ </division>
+ <division>
+ <name>Djibouti</name>
+ <flag>djibouti.png</flag>
+ <capital>Djibouti</capital>
+ <color>
+ <red>197</red>
+ <green>170</green>
+ <blue>205</blue>
+ </color>
+ </division>
+ <division>
+ <name>Egypt</name>
+ <flag>egypt.png</flag>
+ <capital>Cairo</capital>
+ <color>
+ <red>176</red>
+ <green>53</green>
+ <blue>140</blue>
+ </color>
+ </division>
+ <division>
+ <name>Equatorial Guinea</name>
+ <flag>equatorial_guinea.png</flag>
+ <capital>Malabo</capital>
+ <color>
+ <red>222</red>
+ <green>97</green>
+ <blue>98</blue>
+ </color>
+ </division>
+ <division>
+ <name>Eritrea</name>
+ <flag>eritrea.png</flag>
+ <capital>Asmara</capital>
+ <color>
+ <red>251</red>
+ <green>10</green>
+ <blue>91</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ethiopia</name>
+ <flag>ethiopia.png</flag>
+ <capital>Addis Ababa</capital>
+ <color>
+ <red>64</red>
+ <green>185</green>
+ <blue>136</blue>
+ </color>
+ </division>
+ <division>
+ <name>Gabon</name>
+ <flag>gabon.png</flag>
+ <capital>Libreville</capital>
+ <color>
+ <red>0</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ghana</name>
+ <flag>ghana.png</flag>
+ <capital>Accra</capital>
+ <color>
+ <red>22</red>
+ <green>219</green>
+ <blue>188</blue>
+ </color>
+ </division>
+ <division>
+ <name>Greece</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>172</red>
+ <green>133</green>
+ <blue>106</blue>
+ </color>
+ </division>
+ <division>
+ <name>Guinea</name>
+ <flag>guinea.png</flag>
+ <capital>Conakry</capital>
+ <color>
+ <red>149</red>
+ <green>83</green>
+ <blue>65</blue>
+ </color>
+ </division>
+ <division>
+ <name>Guinea-Bissau</name>
+ <flag>guineabissau.png</flag>
+ <capital>Bissau</capital>
+ <color>
+ <red>38</red>
+ <green>174</green>
+ <blue>125</blue>
+ </color>
+ </division>
+ <division>
+ <name>Iran</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>250</red>
+ <green>72</green>
+ <blue>119</blue>
+ </color>
+ </division>
+ <division>
+ <name>Iraq</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>115</red>
+ <green>39</green>
+ <blue>233</blue>
+ </color>
+ </division>
+ <division>
+ <name>Israel</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>137</red>
+ <green>28</green>
+ <blue>87</blue>
+ </color>
+ </division>
+ <division>
+ <name>Italy</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>136</red>
+ <green>244</green>
+ <blue>127</blue>
+ </color>
+ </division>
+ <division>
+ <name>Jordan</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>206</green>
+ <blue>49</blue>
+ </color>
+ </division>
+ <division>
+ <name>Kenya</name>
+ <flag>kenya.png</flag>
+ <capital>Nairobi</capital>
+ <color>
+ <red>65</red>
+ <green>189</green>
+ <blue>87</blue>
+ </color>
+ </division>
+ <division>
+ <name>Kuwait</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>123</red>
+ <green>198</green>
+ <blue>65</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lebanon</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>56</red>
+ <green>227</green>
+ <blue>23</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lesotho</name>
+ <flag>lesotho.png</flag>
+ <capital>Maseru</capital>
+ <color>
+ <red>27</red>
+ <green>179</green>
+ <blue>179</blue>
+ </color>
+ </division>
+ <division>
+ <name>Liberia</name>
+ <flag>liberia.png</flag>
+ <capital>Monrovia</capital>
+ <color>
+ <red>174</red>
+ <green>11</green>
+ <blue>239</blue>
+ </color>
+ </division>
+ <division>
+ <name>Libya</name>
+ <flag>libya.png</flag>
+ <capital>Tripoli</capital>
+ <color>
+ <red>192</red>
+ <green>184</green>
+ <blue>201</blue>
+ </color>
+ </division>
+ <division>
+ <name>Madagascar</name>
+ <flag>madagascar.png</flag>
+ <capital>Antananarivo</capital>
+ <color>
+ <red>65</red>
+ <green>28</green>
+ <blue>87</blue>
+ </color>
+ </division>
+ <division>
+ <name>Malawi</name>
+ <flag>malawi.png</flag>
+ <capital>Lilongwe</capital>
+ <color>
+ <red>27</red>
+ <green>125</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Mali</name>
+ <flag>mali.png</flag>
+ <capital>Bamako</capital>
+ <color>
+ <red>192</red>
+ <green>94</green>
+ <blue>102</blue>
+ </color>
+ </division>
+ <division>
+ <name>Mauritania</name>
+ <flag>mauritania.png</flag>
+ <capital>Nouakchott</capital>
+ <color>
+ <red>205</red>
+ <green>230</green>
+ <blue>57</blue>
+ </color>
+ </division>
+ <division>
+ <name>Morocco</name>
+ <flag>morocco.png</flag>
+ <capital>Rabat</capital>
+ <color>
+ <red>201</red>
+ <green>130</green>
+ <blue>87</blue>
+ </color>
+ </division>
+ <division>
+ <name>Mozambique</name>
+ <flag>mozambique.png</flag>
+ <capital>Maputo</capital>
+ <color>
+ <red>104</red>
+ <green>118</green>
+ <blue>6</blue>
+ </color>
+ </division>
+ <division>
+ <name>Namibia</name>
+ <flag>namibia.png</flag>
+ <capital>Windhoek</capital>
+ <color>
+ <red>75</red>
+ <green>215</green>
+ <blue>181</blue>
+ </color>
+ </division>
+ <division>
+ <name>Niger</name>
+ <flag>niger.png</flag>
+ <capital>Niamey</capital>
+ <color>
+ <red>105</red>
+ <green>109</green>
+ <blue>28</blue>
+ </color>
+ </division>
+ <division>
+ <name>Nigeria</name>
+ <flag>nigeria.png</flag>
+ <capital>Abuja</capital>
+ <color>
+ <red>243</red>
+ <green>83</green>
+ <blue>141</blue>
+ </color>
+ </division>
+ <division>
+ <name>Portugal</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>165</green>
+ <blue>131</blue>
+ </color>
+ </division>
+ <division>
+ <name>Qatar</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Republic of the Congo</name>
+ <flag>congo_brazzaville.png</flag>
+ <capital>Brazzaville</capital>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Rwanda</name>
+ <flag>rwanda.png</flag>
+ <capital>Kigali</capital>
+ <color>
+ <red>0</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Saudi Arabia</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>131</blue>
+ </color>
+ </division>
+ <division>
+ <name>Senegal</name>
+ <flag>senegal.png</flag>
+ <capital>Dakar</capital>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Sierra Leone</name>
+ <flag>sierra_leone.png</flag>
+ <capital>Freetown</capital>
+ <color>
+ <red>16</red>
+ <green>168</green>
+ <blue>92</blue>
+ </color>
+ </division>
+ <division>
+ <name>Somalia</name>
+ <flag>somalia.png</flag>
+ <capital>Mogadishu</capital>
+ <color>
+ <red>75</red>
+ <green>215</green>
+ <blue>102</blue>
+ </color>
+ </division>
+ <division>
+ <name>South Africa</name>
+ <flag>southafrica.png</flag>
+ <capital>Pretoria, Bloemfontein and Cape Town</capital>
+ <color>
+ <red>176</red>
+ <green>53</green>
+ <blue>141</blue>
+ </color>
+ </division>
+ <division>
+ <name>Spain</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>218</green>
+ <blue>164</blue>
+ </color>
+ </division>
+ <division>
+ <name>Sudan</name>
+ <flag>sudan.png</flag>
+ <capital>Khartoum</capital>
+ <color>
+ <red>181</red>
+ <green>121</green>
+ <blue>21</blue>
+ </color>
+ </division>
+ <division>
+ <name>Swaziland</name>
+ <flag>swaziland.png</flag>
+ <capital>Mbabane</capital>
+ <color>
+ <red>125</red>
+ <green>125</green>
+ <blue>125</blue>
+ </color>
+ </division>
+ <division>
+ <name>Syria</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>135</red>
+ <green>76</green>
+ <blue>31</blue>
+ </color>
+ </division>
+ <division>
+ <name>Tanzania</name>
+ <flag>tanzania.png</flag>
+ <capital>Dodoma</capital>
+ <color>
+ <red>243</red>
+ <green>53</green>
+ <blue>141</blue>
+ </color>
+ </division>
+ <division>
+ <name>The Gambia</name>
+ <flag>gambia.png</flag>
+ <capital>Banjul</capital>
+ <color>
+ <red>219</red>
+ <green>175</green>
+ <blue>44</blue>
+ </color>
+ </division>
+ <division>
+ <name>Togo</name>
+ <flag>togo.png</flag>
+ <capital>Lomé</capital>
+ <color>
+ <red>255</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Tunisia</name>
+ <flag>tunisia.png</flag>
+ <capital>Tunis</capital>
+ <color>
+ <red>243</red>
+ <green>83</green>
+ <blue>65</blue>
+ </color>
+ </division>
+ <division>
+ <name>Turkey</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>92</red>
+ <green>255</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Turkmenistan</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>87</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Uganda</name>
+ <flag>uganda.png</flag>
+ <capital>Kampala</capital>
+ <color>
+ <red>149</red>
+ <green>188</green>
+ <blue>170</blue>
+ </color>
+ </division>
+ <division>
+ <name>United Arab Emirates</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>176</red>
+ <green>125</green>
+ <blue>140</blue>
+ </color>
+ </division>
+ <division>
+ <name>West Bank</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>184</green>
+ <blue>201</blue>
+ </color>
+ </division>
+ <division>
+ <name>Western Sahara</name>
+ <flag>western_sahara.png</flag>
+ <capital>Laayoune</capital>
+ <color>
+ <red>74</red>
+ <green>178</green>
+ <blue>123</blue>
+ </color>
+ </division>
+ <division>
+ <name>Yemen</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>192</red>
+ <green>94</green>
+ <blue>201</blue>
+ </color>
+ </division>
+ <division>
+ <name>Zambia</name>
+ <flag>zambia.png</flag>
+ <capital>Lusaka</capital>
+ <color>
+ <red>156</red>
+ <green>214</green>
+ <blue>172</blue>
+ </color>
+ </division>
+ <division>
+ <name>Zimbabwe</name>
+ <flag>zimbabwe.png</flag>
+ <capital>Harare</capital>
+ <color>
+ <red>241</red>
+ <green>69</green>
+ <blue>7</blue>
+ </color>
+ </division>
+</map>
diff --git a/kgeography/data/africa.png b/kgeography/data/africa.png
new file mode 100644
index 00000000..821ebe70
--- /dev/null
+++ b/kgeography/data/africa.png
Binary files differ
diff --git a/kgeography/data/asia.kgm b/kgeography/data/asia.kgm
new file mode 100644
index 00000000..43c98684
--- /dev/null
+++ b/kgeography/data/asia.kgm
@@ -0,0 +1,572 @@
+<map>
+ <mapFile>asia.png</mapFile>
+ <name>Asia</name>
+ <division>
+ <name>Not a Nation</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Russia</name>
+ <flag>russia.png</flag>
+ <capital>Moscow</capital>
+ <color>
+ <red>175</red>
+ <green>238</green>
+ <blue>238</blue>
+ </color>
+ </division>
+ <division>
+ <name>Turkey</name>
+ <flag>turkey.png</flag>
+ <capital>Ankara</capital>
+ <color>
+ <red>0</red>
+ <green>136</green>
+ <blue>136</blue>
+ </color>
+ </division>
+ <division>
+ <name>Egypt</name>
+ <ignore>yes</ignore>
+ <capital>Cairo</capital>
+ <color>
+ <red>176</red>
+ <green>53</green>
+ <blue>140</blue>
+ </color>
+ </division>
+ <division>
+ <name>Djibouti</name>
+ <ignore>yes</ignore>
+ <capital>Djibouti</capital>
+ <color>
+ <red>197</red>
+ <green>170</green>
+ <blue>205</blue>
+ </color>
+ </division>
+ <division>
+ <name>Eritrea</name>
+ <ignore>yes</ignore>
+ <capital>Asmara</capital>
+ <color>
+ <red>251</red>
+ <green>10</green>
+ <blue>91</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ethiopia</name>
+ <ignore>yes</ignore>
+ <capital>Addis Ababa</capital>
+ <color>
+ <red>64</red>
+ <green>185</green>
+ <blue>136</blue>
+ </color>
+ </division>
+ <division>
+ <name>Iran</name>
+ <capital>Tehran</capital>
+ <flag>iran.png</flag>
+ <color>
+ <red>250</red>
+ <green>72</green>
+ <blue>119</blue>
+ </color>
+ </division>
+ <division>
+ <name>Iraq</name>
+ <capital>Baghdad</capital>
+ <flag>iraq.png</flag>
+ <color>
+ <red>115</red>
+ <green>39</green>
+ <blue>233</blue>
+ </color>
+ </division>
+ <division>
+ <name>Israel</name>
+ <capital>Jerusalem</capital>
+ <flag>israel.png</flag>
+ <color>
+ <red>137</red>
+ <green>28</green>
+ <blue>87</blue>
+ </color>
+ </division>
+ <division>
+ <name>Jordan</name>
+ <capital>Amman</capital>
+ <flag>jordan.png</flag>
+ <color>
+ <red>255</red>
+ <green>206</green>
+ <blue>49</blue>
+ </color>
+ </division>
+ <division>
+ <name>Kenya</name>
+ <ignore>yes</ignore>
+ <capital>Nairobi</capital>
+ <color>
+ <red>65</red>
+ <green>189</green>
+ <blue>87</blue>
+ </color>
+ </division>
+ <division>
+ <name>Kuwait</name>
+ <capital>Kuwait City</capital>
+ <flag>kuwait.png</flag>
+ <color>
+ <red>123</red>
+ <green>198</green>
+ <blue>65</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lebanon</name>
+ <capital>Beirut</capital>
+ <flag>lebanon.png</flag>
+ <color>
+ <red>56</red>
+ <green>227</green>
+ <blue>23</blue>
+ </color>
+ </division>
+ <division>
+ <name>Qatar</name>
+ <capital>Doha</capital>
+ <flag>qatar.png</flag>
+ <color>
+ <red>255</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Saudi Arabia</name>
+ <capital>Riyadh</capital>
+ <flag>saudiarabia.png</flag>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>131</blue>
+ </color>
+ </division>
+ <division>
+ <name>Somalia</name>
+ <ignore>yes</ignore>
+ <capital>Mogadishu</capital>
+ <color>
+ <red>75</red>
+ <green>215</green>
+ <blue>102</blue>
+ </color>
+ </division>
+ <division>
+ <name>Sudan</name>
+ <ignore>yes</ignore>
+ <capital>Khartoum</capital>
+ <color>
+ <red>181</red>
+ <green>121</green>
+ <blue>21</blue>
+ </color>
+ </division>
+ <division>
+ <name>Syria</name>
+ <capital>Damascus</capital>
+ <flag>syria.png</flag>
+ <color>
+ <red>135</red>
+ <green>76</green>
+ <blue>31</blue>
+ </color>
+ </division>
+ <division>
+ <name>Uganda</name>
+ <ignore>yes</ignore>
+ <capital>Kampala</capital>
+ <color>
+ <red>149</red>
+ <green>188</green>
+ <blue>170</blue>
+ </color>
+ </division>
+ <division>
+ <name>United Arab Emirates</name>
+ <flag>uae.png</flag>
+ <capital>Abu Dhabi City</capital>
+ <color>
+ <red>176</red>
+ <green>125</green>
+ <blue>140</blue>
+ </color>
+ </division>
+ <division>
+ <name>Oman</name>
+ <flag>oman.png</flag>
+ <capital>Muscat</capital>
+ <color>
+ <red>232</red>
+ <green>133</green>
+ <blue>36</blue>
+ </color>
+ </division>
+ <division>
+ <name>West Bank</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>184</green>
+ <blue>201</blue>
+ </color>
+ </division>
+ <division>
+ <name>Yemen</name>
+ <capital>Sana'a</capital>
+ <flag>yemen.png</flag>
+ <color>
+ <red>192</red>
+ <green>94</green>
+ <blue>201</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ukraine</name>
+ <ignore>yes</ignore>
+ <capital>Kiev</capital>
+ <color>
+ <red>136</red>
+ <green>5</green>
+ <blue>188</blue>
+ </color>
+ </division>
+ <division>
+ <name>China</name>
+ <capital>Beijing</capital>
+ <flag>china.png</flag>
+ <color>
+ <red>62</red>
+ <green>66</green>
+ <blue>145</blue>
+ </color>
+ </division>
+ <division>
+ <name>India</name>
+ <capital>New Delhi</capital>
+ <flag>india.png</flag>
+ <color>
+ <red>62</red>
+ <green>145</green>
+ <blue>68</blue>
+ </color>
+ </division>
+ <division>
+ <name>Sri Lanka</name>
+ <capital>Colombo and Sri Jayewardenepura</capital>
+ <flag>SriLanka.png</flag>
+ <color>
+ <red>145</red>
+ <green>62</green>
+ <blue>144</blue>
+ </color>
+ </division>
+ <division>
+ <name>Mongolia</name>
+ <flag>mongolia.png</flag>
+ <capital>Ulaanbaatar</capital>
+ <color>
+ <red>174</red>
+ <green>189</green>
+ <blue>2</blue>
+ </color>
+ </division>
+ <division>
+ <name>Kazakhstan</name>
+ <flag>kazakhstan.png</flag>
+ <capital>Astana</capital>
+ <color>
+ <red>189</red>
+ <green>130</green>
+ <blue>2</blue>
+ </color>
+ </division>
+ <division>
+ <name>Japan</name>
+ <flag>japan.png</flag>
+ <capital>Tokyo</capital>
+ <color>
+ <red>246</red>
+ <green>70</green>
+ <blue>22</blue>
+ </color>
+ </division>
+ <division>
+ <name>Myanmar</name>
+ <flag>myanmar.png</flag>
+ <capital>Naypyidaw</capital>
+ <color>
+ <red>62</red>
+ <green>170</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Nepal</name>
+ <flag>nepal.png</flag>
+ <capital>Kathmandu</capital>
+ <color>
+ <red>220</red>
+ <green>125</green>
+ <blue>62</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bhutan</name>
+ <flag>bhutan.png</flag>
+ <capital>Thimphu</capital>
+ <color>
+ <red>123</red>
+ <green>104</green>
+ <blue>166</blue>
+ </color>
+ </division>
+ <division>
+ <name>Indonesia</name>
+ <flag>indonesia.png</flag>
+ <capital>Jakarta</capital>
+ <color>
+ <red>5</red>
+ <green>97</green>
+ <blue>37</blue>
+ </color>
+ </division>
+ <division>
+ <name>Malaysia</name>
+ <flag>malaysia.png</flag>
+ <capital>Kuala Lumpur</capital>
+ <color>
+ <red>6</red>
+ <green>40</green>
+ <blue>126</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bangladesh</name>
+ <flag>bangladesh.png</flag>
+ <capital>Dhaka</capital>
+ <color>
+ <red>86</red>
+ <green>227</green>
+ <blue>79</blue>
+ </color>
+ </division>
+ <division>
+ <name>Afghanistan</name>
+ <flag>afghanistan.png</flag>
+ <capital>Kabul</capital>
+ <color>
+ <red>211</red>
+ <green>241</green>
+ <blue>12</blue>
+ </color>
+ </division>
+ <division>
+ <name>Azerbaijan</name>
+ <flag>azerbaijan.png</flag>
+ <capital>Baku</capital>
+ <color>
+ <red>70</red>
+ <green>65</green>
+ <blue>69</blue>
+ </color>
+ </division>
+ <division>
+ <name>Armenia</name>
+ <flag>armenia.png</flag>
+ <capital>Yerevan</capital>
+ <color>
+ <red>142</red>
+ <green>88</green>
+ <blue>136</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bahrain</name>
+ <flag>bahrain.png</flag>
+ <capital>Manama</capital>
+ <color>
+ <red>191</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Georgia</name>
+ <flag>georgia.png</flag>
+ <capital>Tbilisi</capital>
+ <color>
+ <red>217</red>
+ <green>26</green>
+ <blue>84</blue>
+ </color>
+ </division>
+ <division>
+ <name>Turkmenistan</name>
+ <flag>turkmenistan.png</flag>
+ <capital>Ashgabat</capital>
+ <color>
+ <red>142</red>
+ <green>171</green>
+ <blue>150</blue>
+ </color>
+ </division>
+ <division>
+ <name>Uzbekistan</name>
+ <flag>uzbekistan.png</flag>
+ <capital>Tashkent</capital>
+ <color>
+ <red>103</red>
+ <green>201</green>
+ <blue>205</blue>
+ </color>
+ </division>
+ <division>
+ <name>Kyrgyzstan</name>
+ <flag>kyrgyzstan.png</flag>
+ <capital>Bishkek</capital>
+ <color>
+ <red>249</red>
+ <green>173</green>
+ <blue>223</blue>
+ </color>
+ </division>
+ <division>
+ <name>Tajikistan</name>
+ <flag>tajikistan.png</flag>
+ <capital>Dushanbe</capital>
+ <color>
+ <red>103</red>
+ <green>205</green>
+ <blue>175</blue>
+ </color>
+ </division>
+ <division>
+ <name>Pakistan</name>
+ <flag>pakistan.png</flag>
+ <capital>Islamabad</capital>
+ <color>
+ <red>171</red>
+ <green>142</green>
+ <blue>168</blue>
+ </color>
+ </division>
+ <division>
+ <name>Laos</name>
+ <flag>laos.png</flag>
+ <capital>Vientiane</capital>
+ <color>
+ <red>174</red>
+ <green>42</green>
+ <blue>229</blue>
+ </color>
+ </division>
+ <division>
+ <name>Cambodia</name>
+ <flag>cambodia.png</flag>
+ <capital>Phnom Penh</capital>
+ <color>
+ <red>227</red>
+ <green>233</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Brunei</name>
+ <flag>brunei.png</flag>
+ <capital>Bandar Seri Begawan</capital>
+ <color>
+ <red>239</red>
+ <green>56</green>
+ <blue>56</blue>
+ </color>
+ </division>
+ <division>
+ <name>Philippines</name>
+ <flag>philippines.png</flag>
+ <capital>Manila</capital>
+ <color>
+ <red>239</red>
+ <green>224</green>
+ <blue>56</blue>
+ </color>
+ </division>
+ <division>
+ <name>Thailand</name>
+ <flag>thailand.png</flag>
+ <capital>Bangkok</capital>
+ <color>
+ <red>56</red>
+ <green>239</green>
+ <blue>185</blue>
+ </color>
+ </division>
+ <division>
+ <name>Vietnam</name>
+ <flag>vietnam.png</flag>
+ <capital>Hanoi</capital>
+ <color>
+ <red>56</red>
+ <green>233</green>
+ <blue>239</blue>
+ </color>
+ </division>
+ <division>
+ <name>Taiwan</name>
+ <flag>taiwan.png</flag>
+ <capital>Taipei</capital>
+ <color>
+ <red>99</red>
+ <green>239</green>
+ <blue>56</blue>
+ </color>
+ </division>
+ <division>
+ <name>Singapore</name>
+ <flag>singapore.png</flag>
+ <capital>Singapore</capital>
+ <color>
+ <red>229</red>
+ <green>140</green>
+ <blue>54</blue>
+ </color>
+ </division>
+ <division>
+ <name>North Korea</name>
+ <flag>nkorea.png</flag>
+ <capital>Pyeongyang</capital>
+ <color>
+ <red>179</red>
+ <green>90</green>
+ <blue>18</blue>
+ </color>
+ </division>
+ <division>
+ <name>South Korea</name>
+ <flag>skorea.png</flag>
+ <capital>Seoul</capital>
+ <color>
+ <red>69</red>
+ <green>118</green>
+ <blue>65</blue>
+ </color>
+ </division>
+</map>
diff --git a/kgeography/data/asia.png b/kgeography/data/asia.png
new file mode 100644
index 00000000..58529dfe
--- /dev/null
+++ b/kgeography/data/asia.png
Binary files differ
diff --git a/kgeography/data/austria.kgm b/kgeography/data/austria.kgm
new file mode 100644
index 00000000..a97176f3
--- /dev/null
+++ b/kgeography/data/austria.kgm
@@ -0,0 +1,103 @@
+<map>
+ <mapFile>austria.png</mapFile>
+ <name>Austria</name>
+ <division>
+ <name>Frontier</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Not Austria</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Vienna</name>
+ <capital>Vienna</capital>
+ <color>
+ <red>253</red>
+ <green>238</green>
+ <blue>6</blue>
+ </color>
+ </division>
+ <division>
+ <name>Burgenland</name>
+ <capital>Eisenstadt</capital>
+ <color>
+ <red>253</red>
+ <green>47</green>
+ <blue>6</blue>
+ </color>
+ </division>
+ <division>
+ <name>Styria</name>
+ <capital>Graz</capital>
+ <color>
+ <red>6</red>
+ <green>253</green>
+ <blue>18</blue>
+ </color>
+ </division>
+ <division>
+ <name>Carinthia</name>
+ <capital>Klagenfurt</capital>
+ <color>
+ <red>253</red>
+ <green>169</green>
+ <blue>6</blue>
+ </color>
+ </division>
+ <division>
+ <name>Tyrol</name>
+ <capital>Innsbruck</capital>
+ <color>
+ <red>161</red>
+ <green>215</green>
+ <blue>137</blue>
+ </color>
+ </division>
+ <division>
+ <name>Vorarlberg</name>
+ <capital>Bregenz</capital>
+ <color>
+ <red>148</red>
+ <green>176</green>
+ <blue>185</blue>
+ </color>
+ </division>
+ <division>
+ <name>Salzburg</name>
+ <capital>Salzburg</capital>
+ <color>
+ <red>248</red>
+ <green>137</green>
+ <blue>215</blue>
+ </color>
+ </division>
+ <division>
+ <name>Upper Austria</name>
+ <capital>Linz</capital>
+ <color>
+ <red>6</red>
+ <green>23</green>
+ <blue>253</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lower Austria</name>
+ <capital>St. Pölten</capital>
+ <color>
+ <red>6</red>
+ <green>253</green>
+ <blue>238</blue>
+ </color>
+ </division>
+</map>
diff --git a/kgeography/data/austria.png b/kgeography/data/austria.png
new file mode 100644
index 00000000..f6de999b
--- /dev/null
+++ b/kgeography/data/austria.png
Binary files differ
diff --git a/kgeography/data/brazil.kgm b/kgeography/data/brazil.kgm
new file mode 100644
index 00000000..c340e3c5
--- /dev/null
+++ b/kgeography/data/brazil.kgm
@@ -0,0 +1,293 @@
+<map>
+ <mapFile>brazil.png</mapFile>
+ <name>Brazil</name>
+ <division>
+ <name>Sergipe</name>
+ <flag>br_SE.png</flag>
+ <capital>Aracaju</capital>
+ <color>
+ <red>222</red>
+ <green>131</green>
+ <blue>193</blue>
+ </color>
+ </division>
+ <division>
+ <name>Para</name>
+ <flag>br_PA.png</flag>
+ <capital>Belem</capital>
+ <color>
+ <red>0</red>
+ <green>216</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Minas Gerais</name>
+ <flag>br_MG.png</flag>
+ <capital>Belo Horizonte</capital>
+ <color>
+ <red>0</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Roraima</name>
+ <flag>br_RR.png</flag>
+ <capital>Boa Vista</capital>
+ <color>
+ <red>160</red>
+ <green>192</green>
+ <blue>96</blue>
+ </color>
+ </division>
+ <division>
+ <name>Federal District</name>
+ <flag>br_DF.png</flag>
+ <capital>Brasilia</capital>
+ <color>
+ <red>218</red>
+ <green>224</green>
+ <blue>41</blue>
+ </color>
+ </division>
+ <division>
+ <name>Mato Grosso do Sul</name>
+ <flag>br_MS.png</flag>
+ <capital>Campo Grande</capital>
+ <color>
+ <red>255</red>
+ <green>168</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Mato Grosso</name>
+ <flag>br_MT.png</flag>
+ <capital>Cuiaba</capital>
+ <color>
+ <red>222</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Parana</name>
+ <flag>br_PN.png</flag>
+ <capital>Curitiba</capital>
+ <color>
+ <red>140</red>
+ <green>220</green>
+ <blue>195</blue>
+ </color>
+ </division>
+ <division>
+ <name>Santa Catarina</name>
+ <flag>br_SC.png</flag>
+ <capital>Florianopolis</capital>
+ <color>
+ <red>170</red>
+ <green>220</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ceara</name>
+ <flag>br_CE.png</flag>
+ <capital>Fortaleza</capital>
+ <color>
+ <red>0</red>
+ <green>222</green>
+ <blue>174</blue>
+ </color>
+ </division>
+ <division>
+ <name>Goias</name>
+ <flag>br_GO.png</flag>
+ <capital>Goiânia</capital>
+ <color>
+ <red>255</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Paraiba</name>
+ <flag>br_PR.png</flag>
+ <capital>Joao Pessoa</capital>
+ <color>
+ <red>207</red>
+ <green>18</green>
+ <blue>102</blue>
+ </color>
+ </division>
+ <division>
+ <name>Amapa</name>
+ <flag>br_AP.png</flag>
+ <capital>Macapa</capital>
+ <color>
+ <red>167</red>
+ <green>171</green>
+ <blue>195</blue>
+ </color>
+ </division>
+ <division>
+ <name>Alagoas</name>
+ <flag>br_AL.png</flag>
+ <capital>Maceio</capital>
+ <color>
+ <red>131</red>
+ <green>222</green>
+ <blue>174</blue>
+ </color>
+ </division>
+ <division>
+ <name>Amazonas</name>
+ <flag>br_AM.png</flag>
+ <capital>Manaus</capital>
+ <color>
+ <red>24</red>
+ <green>160</green>
+ <blue>62</blue>
+ </color>
+ </division>
+ <division>
+ <name>Rio Grande do Norte</name>
+ <flag>br_RN.png</flag>
+ <capital>Natal</capital>
+ <color>
+ <red>86</red>
+ <green>18</green>
+ <blue>102</blue>
+ </color>
+ </division>
+ <division>
+ <name>Tocantins</name>
+ <capital>Palmas</capital>
+ <flag>br_TO.png</flag>
+ <color>
+ <red>0</red>
+ <green>66</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Rio Grande do Sul</name>
+ <flag>br_RS.png</flag>
+ <capital>Porto Alegre</capital>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>9</blue>
+ </color>
+ </division>
+ <division>
+ <name>Rondonia</name>
+ <flag>br_RO.png</flag>
+ <capital>Porto Velho</capital>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Pernambuco</name>
+ <flag>br_PE.png</flag>
+ <capital>Recife</capital>
+ <color>
+ <red>222</red>
+ <green>188</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Acre</name>
+ <flag>br_AC.png</flag>
+ <capital>Rio Branco</capital>
+ <color>
+ <red>156</red>
+ <green>188</green>
+ <blue>157</blue>
+ </color>
+ </division>
+ <division>
+ <name>Rio de Janeiro State</name>
+ <flag>br_RJ.png</flag>
+ <capital>Rio de Janeiro</capital>
+ <color>
+ <red>201</red>
+ <green>172</green>
+ <blue>110</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bahia</name>
+ <flag>br_BA.png</flag>
+ <capital>Salvador</capital>
+ <color>
+ <red>255</red>
+ <green>132</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Maranhao</name>
+ <flag>br_MA.png</flag>
+ <capital>Sao Luis</capital>
+ <color>
+ <red>163</red>
+ <green>0</green>
+ <blue>112</blue>
+ </color>
+ </division>
+ <division>
+ <name>Sao Paulo State</name>
+ <flag>br_SP.png</flag>
+ <capital>Sao Paulo (city)</capital>
+ <color>
+ <red>0</red>
+ <green>103</green>
+ <blue>9</blue>
+ </color>
+ </division>
+ <division>
+ <name>Piaui</name>
+ <flag>br_PI.png</flag>
+ <capital>Teresina</capital>
+ <color>
+ <red>102</red>
+ <green>18</green>
+ <blue>18</blue>
+ </color>
+ </division>
+ <division>
+ <name>Espirito Santo</name>
+ <flag>br_ES.png</flag>
+ <capital>Vitoria</capital>
+ <color>
+ <red>186</red>
+ <green>170</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Frontier</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Out of Bounds</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </division>
+</map>
+
diff --git a/kgeography/data/brazil.png b/kgeography/data/brazil.png
new file mode 100644
index 00000000..1f4d632b
--- /dev/null
+++ b/kgeography/data/brazil.png
Binary files differ
diff --git a/kgeography/data/canada.kgm b/kgeography/data/canada.kgm
new file mode 100644
index 00000000..bba7946d
--- /dev/null
+++ b/kgeography/data/canada.kgm
@@ -0,0 +1,152 @@
+<map>
+ <mapFile>canada.png</mapFile>
+ <name>Canada</name>
+ <division>
+ <name>Out of Bounds</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Frontier</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Prince Edward Island</name>
+ <capital>Charlottetown</capital>
+ <flag>pei.png</flag>
+ <color>
+ <red>255</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>British Columbia</name>
+ <capital>Victoria</capital>
+ <flag>bc.png</flag>
+ <color>
+ <red>12</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ontario</name>
+ <capital>Toronto</capital>
+ <flag>ontario.png</flag>
+ <color>
+ <red>22</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Newfoundland</name>
+ <capital>St John's</capital>
+ <flag>newfoundland.png</flag>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>1</blue>
+ </color>
+ </division>
+ <division>
+ <name>Nunavut</name>
+ <capital>Iqaluit</capital>
+ <flag>nunavut.png</flag>
+ <color>
+ <red>253</red>
+ <green>5</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Alberta</name>
+ <capital>Edmonton</capital>
+ <flag>alberta.png</flag>
+ <color>
+ <red>210</red>
+ <green>106</green>
+ <blue>32</blue>
+ </color>
+ </division>
+ <division>
+ <name>North West Territories</name>
+ <capital>Yellowknife</capital>
+ <flag>nwterritories.png</flag>
+ <color>
+ <red>255</red>
+ <green>215</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Quebec</name>
+ <capital>Quebec City</capital>
+ <flag>quebec.png</flag>
+ <color>
+ <red>255</red>
+ <green>164</green>
+ <blue>5</blue>
+ </color>
+ </division>
+ <division>
+ <name>New Brunswick</name>
+ <capital>Fredericton</capital>
+ <flag>newbrunswick.png</flag>
+ <color>
+ <red>255</red>
+ <green>1</green>
+ <blue>146</blue>
+ </color>
+ </division>
+ <division>
+ <name>Manitoba</name>
+ <capital>Winnipeg</capital>
+ <flag>manitoba.png</flag>
+ <color>
+ <red>74</red>
+ <green>1</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Nova Scotia</name>
+ <capital>Halifax</capital>
+ <flag>novascotia.png</flag>
+ <color>
+ <red>27</red>
+ <green>139</green>
+ <blue>30</blue>
+ </color>
+ </division>
+ <division>
+ <name>Yukon Territory</name>
+ <capital>Whitehorse</capital>
+ <flag>yukon.png</flag>
+ <color>
+ <red>245</red>
+ <green>126</green>
+ <blue>127</blue>
+ </color>
+ </division>
+ <division>
+ <name>Saskatchewan</name>
+ <capital>Regina</capital>
+ <flag>saskatchewan.png</flag>
+ <color>
+ <red>255</red>
+ <green>67</green>
+ <blue>2</blue>
+ </color>
+ </division>
+</map>
diff --git a/kgeography/data/canada.png b/kgeography/data/canada.png
new file mode 100644
index 00000000..7f5766f9
--- /dev/null
+++ b/kgeography/data/canada.png
Binary files differ
diff --git a/kgeography/data/china.kgm b/kgeography/data/china.kgm
new file mode 100644
index 00000000..4025d9b3
--- /dev/null
+++ b/kgeography/data/china.kgm
@@ -0,0 +1,499 @@
+<map>
+ <mapFile>china.png</mapFile>
+ <name>China</name>
+ <division>
+ <name>Frontier</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Water</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>65</red>
+ <green>95</green>
+ <blue>173</blue>
+ </color>
+ </division>
+ <division>
+ <name>Coast</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>162</red>
+ <green>224</green>
+ <blue>249</blue>
+ </color>
+ </division>
+ <division>
+ <name>Russia</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>92</red>
+ <green>163</green>
+ <blue>163</blue>
+ </color>
+ </division>
+ <division>
+ <name>Japan</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>237</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Mongolia</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>202</red>
+ <green>114</green>
+ <blue>202</blue>
+ </color>
+ </division>
+ <division>
+ <name>North Korea</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>163</red>
+ <green>237</green>
+ <blue>163</blue>
+ </color>
+ </division>
+ <division>
+ <name>South Korea</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>163</red>
+ <green>92</green>
+ <blue>92</blue>
+ </color>
+ </division>
+ <division>
+ <name>Kazakhstan</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>100</red>
+ <green>100</green>
+ <blue>177</blue>
+ </color>
+ </division>
+ <division>
+ <name>Kyrgyzstan</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>74</red>
+ <green>70</green>
+ <blue>74</blue>
+ </color>
+ </division>
+ <division>
+ <name>Tajikistan</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>86</red>
+ <green>86</green>
+ <blue>69</blue>
+ </color>
+ </division>
+ <division>
+ <name>Afghanistan</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>207</red>
+ <green>0</green>
+ <blue>117</blue>
+ </color>
+ </division>
+ <division>
+ <name>Pakistan</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>92</red>
+ <green>237</green>
+ <blue>88</blue>
+ </color>
+ </division>
+ <division>
+ <name>India</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>88</red>
+ <green>163</green>
+ <blue>88</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bhutan</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>163</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bangladesh</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>244</red>
+ <green>91</green>
+ <blue>91</blue>
+ </color>
+ </division>
+ <division>
+ <name>Myanmar</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>150</red>
+ <green>85</green>
+ <blue>85</blue>
+ </color>
+ </division>
+ <division>
+ <name>Thailand</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>163</red>
+ <green>88</green>
+ <blue>88</blue>
+ </color>
+ </division>
+ <division>
+ <name>Taiwan</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>78</red>
+ <green>201</green>
+ <blue>137</blue>
+ </color>
+ </division>
+ <division>
+ <name>Vietnam</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>237</red>
+ <green>88</green>
+ <blue>88</blue>
+ </color>
+ </division>
+ <division>
+ <name>Laos</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>163</red>
+ <green>74</green>
+ <blue>74</blue>
+ </color>
+ </division>
+ <division>
+ <name>Nepal</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>163</red>
+ <green>0</green>
+ <blue>92</blue>
+ </color>
+ </division>
+ <division>
+ <name>Anhui</name>
+ <capital>Hefei</capital>
+ <color>
+ <red>191</red>
+ <green>191</green>
+ <blue>191</blue>
+ </color>
+ </division>
+ <division>
+ <name>Beijing</name>
+ <ignore>allowClickMode</ignore>
+ <color>
+ <red>35</red>
+ <green>236</green>
+ <blue>133</blue>
+ </color>
+ </division>
+ <division>
+ <name>Chongqing</name>
+ <ignore>allowClickMode</ignore>
+ <color>
+ <red>255</red>
+ <green>161</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Fujian</name>
+ <capital>Fuzhou</capital>
+ <color>
+ <red>99</red>
+ <green>99</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Gansu</name>
+ <capital>Lanzhou</capital>
+ <color>
+ <red>92</red>
+ <green>92</green>
+ <blue>92</blue>
+ </color>
+ </division>
+ <division>
+ <name>Guangdong</name>
+ <capital>Guangzhou</capital>
+ <color>
+ <red>163</red>
+ <green>92</green>
+ <blue>163</blue>
+ </color>
+ </division>
+ <division>
+ <name>Guangxi Zhuang</name>
+ <capital>Nanning</capital>
+ <color>
+ <red>92</red>
+ <green>92</green>
+ <blue>163</blue>
+ </color>
+ </division>
+ <division>
+ <name>Guizhou</name>
+ <capital>Guiyang</capital>
+ <color>
+ <red>92</red>
+ <green>92</green>
+ <blue>237</blue>
+ </color>
+ </division>
+ <division>
+ <name>Hainan</name>
+ <capital>Haikou</capital>
+ <color>
+ <red>92</red>
+ <green>163</green>
+ <blue>92</blue>
+ </color>
+ </division>
+ <division>
+ <name>Hebei</name>
+ <capital>Shijiazhuang</capital>
+ <color>
+ <red>117</red>
+ <green>208</green>
+ <blue>117</blue>
+ </color>
+ </division>
+ <division>
+ <name>Heilongjiang</name>
+ <capital>Harbin</capital>
+ <color>
+ <red>163</red>
+ <green>88</green>
+ <blue>92</blue>
+ </color>
+ </division>
+ <division>
+ <name>Henan</name>
+ <capital>Zhengzhou</capital>
+ <color>
+ <red>92</red>
+ <green>163</green>
+ <blue>237</blue>
+ </color>
+ </division>
+ <division>
+ <name>Hubei</name>
+ <capital>Wuhan</capital>
+ <color>
+ <red>92</red>
+ <green>237</green>
+ <blue>92</blue>
+ </color>
+ </division>
+ <division>
+ <name>Hunan</name>
+ <capital>Changsha</capital>
+ <color>
+ <red>60</red>
+ <green>154</green>
+ <blue>60</blue>
+ </color>
+ </division>
+ <division>
+ <name>Jiangsu</name>
+ <capital>Nanjing</capital>
+ <color>
+ <red>92</red>
+ <green>237</green>
+ <blue>163</blue>
+ </color>
+ </division>
+ <division>
+ <name>Jiangxi</name>
+ <capital>Nanchang</capital>
+ <color>
+ <red>237</red>
+ <green>92</green>
+ <blue>92</blue>
+ </color>
+ </division>
+ <division>
+ <name>Jilin</name>
+ <capital>Changchun</capital>
+ <color>
+ <red>163</red>
+ <green>237</green>
+ <blue>92</blue>
+ </color>
+ </division>
+ <division>
+ <name>Liaoning</name>
+ <capital>Shenyang</capital>
+ <color>
+ <red>237</red>
+ <green>237</green>
+ <blue>88</blue>
+ </color>
+ </division>
+ <division>
+ <name>Nei Mongol</name>
+ <capital>Hohhot</capital>
+ <color>
+ <red>139</red>
+ <green>139</green>
+ <blue>246</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ningxia Hui</name>
+ <capital>Yinchuan</capital>
+ <color>
+ <red>105</red>
+ <green>101</green>
+ <blue>187</blue>
+ </color>
+ </division>
+ <division>
+ <name>Qinghai</name>
+ <capital>Xining</capital>
+ <color>
+ <red>119</red>
+ <green>82</green>
+ <blue>119</blue>
+ </color>
+ </division>
+ <division>
+ <name>Shanxi</name>
+ <capital>Taiyuan</capital>
+ <color>
+ <red>163</red>
+ <green>163</green>
+ <blue>92</blue>
+ </color>
+ </division>
+ <division>
+ <name>Shandong</name>
+ <capital>Jinan</capital>
+ <color>
+ <red>226</red>
+ <green>128</green>
+ <blue>226</blue>
+ </color>
+ </division>
+ <division>
+ <name>Shanghai</name>
+ <ignore>allowClickMode</ignore>
+ <color>
+ <red>255</red>
+ <green>182</green>
+ <blue>23</blue>
+ </color>
+ </division>
+ <division>
+ <name>Shaanxi</name>
+ <capital>Xian</capital>
+ <color>
+ <red>237</red>
+ <green>163</green>
+ <blue>163</blue>
+ </color>
+ </division>
+ <division>
+ <name>Sichuan</name>
+ <capital>Chengdu</capital>
+ <color>
+ <red>144</red>
+ <green>255</green>
+ <blue>144</blue>
+ </color>
+ </division>
+ <division>
+ <name>Tianjin</name>
+ <ignore>allowClickMode</ignore>
+ <color>
+ <red>217</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Xinjiang Uygur</name>
+ <capital>Urumqi</capital>
+ <color>
+ <red>51</red>
+ <green>96</green>
+ <blue>51</blue>
+ </color>
+ </division>
+ <division>
+ <name>Xizang</name>
+ <capital>Lhasa</capital>
+ <color>
+ <red>177</red>
+ <green>177</green>
+ <blue>94</blue>
+ </color>
+ </division>
+ <division>
+ <name>Yunnan</name>
+ <capital>Kunming</capital>
+ <color>
+ <red>132</red>
+ <green>234</green>
+ <blue>127</blue>
+ </color>
+ </division>
+ <division>
+ <name>Zhejiang</name>
+ <capital>Hangzhou</capital>
+ <color>
+ <red>127</red>
+ <green>225</green>
+ <blue>225</blue>
+ </color>
+ </division>
+ <division>
+ <name>Hong Kong</name>
+ <ignore>allowClickMode</ignore>
+ <color>
+ <red>255</red>
+ <green>181</green>
+ <blue>170</blue>
+ </color>
+ </division>
+ <division>
+ <name>Macao</name>
+ <ignore>allowClickMode</ignore>
+ <color>
+ <red>238</red>
+ <green>255</green>
+ <blue>45</blue>
+ </color>
+ </division>
+</map>
diff --git a/kgeography/data/china.png b/kgeography/data/china.png
new file mode 100644
index 00000000..62ca689e
--- /dev/null
+++ b/kgeography/data/china.png
Binary files differ
diff --git a/kgeography/data/europe.kgm b/kgeography/data/europe.kgm
new file mode 100644
index 00000000..d6e0feaf
--- /dev/null
+++ b/kgeography/data/europe.kgm
@@ -0,0 +1,467 @@
+<map>
+ <mapFile>europe.png</mapFile>
+ <name>Europe</name>
+ <division>
+ <name>Water</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>65</red>
+ <green>95</green>
+ <blue>173</blue>
+ </color>
+ </division>
+ <division>
+ <name>Coast</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>2</red>
+ <green>206</green>
+ <blue>206</blue>
+ </color>
+ </division>
+ <division>
+ <name>Frontier</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Albania</name>
+ <flag>albania.png</flag>
+ <capital>Tirana</capital>
+ <color>
+ <red>221</red>
+ <green>136</green>
+ <blue>51</blue>
+ </color>
+ </division>
+ <division>
+ <name>Algeria</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>232</red>
+ <green>215</green>
+ <blue>50</blue>
+ </color>
+ </division>
+ <division>
+ <name>Austria</name>
+ <flag>austria.png</flag>
+ <capital>Vienna</capital>
+ <color>
+ <red>136</red>
+ <green>0</green>
+ <blue>136</blue>
+ </color>
+ </division>
+ <division>
+ <name>Belarus</name>
+ <flag>belarus.png</flag>
+ <capital>Minsk</capital>
+ <color>
+ <red>182</red>
+ <green>206</green>
+ <blue>50</blue>
+ </color>
+ </division>
+ <division>
+ <name>Belgium</name>
+ <flag>belgium.png</flag>
+ <capital>Brussels</capital>
+ <color>
+ <red>229</red>
+ <green>102</green>
+ <blue>122</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bosnia and Herzegovina</name>
+ <flag>bosnia_herzegovina.png</flag>
+ <capital>Sarajevo</capital>
+ <color>
+ <red>106</red>
+ <green>55</green>
+ <blue>85</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bulgaria</name>
+ <flag>bulgaria.png</flag>
+ <capital>Sofia</capital>
+ <color>
+ <red>0</red>
+ <green>191</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Croatia</name>
+ <flag>croatia.png</flag>
+ <capital>Zagreb</capital>
+ <color>
+ <red>18</red>
+ <green>52</green>
+ <blue>86</blue>
+ </color>
+ </division>
+ <division>
+ <name>Czech Republic</name>
+ <flag>czech.png</flag>
+ <capital>Prague</capital>
+ <color>
+ <red>51</red>
+ <green>136</green>
+ <blue>221</blue>
+ </color>
+ </division>
+ <division>
+ <name>Denmark</name>
+ <flag>denmark.png</flag>
+ <capital>Copenhagen</capital>
+ <color>
+ <red>158</red>
+ <green>253</green>
+ <blue>182</blue>
+ </color>
+ </division>
+ <division>
+ <name>Estonia</name>
+ <flag>estonia.png</flag>
+ <capital>Tallinn</capital>
+ <color>
+ <red>120</red>
+ <green>246</green>
+ <blue>18</blue>
+ </color>
+ </division>
+ <division>
+ <name>Finland</name>
+ <flag>finland.png</flag>
+ <capital>Helsinki</capital>
+ <color>
+ <red>74</red>
+ <green>254</green>
+ <blue>122</blue>
+ </color>
+ </division>
+ <division>
+ <name>Macedonia</name>
+ <flag>macedonia.png</flag>
+ <capital>Skopje</capital>
+ <color>
+ <red>103</red>
+ <green>109</green>
+ <blue>41</blue>
+ </color>
+ </division>
+ <division>
+ <name>France</name>
+ <flag>france.png</flag>
+ <capital>Paris</capital>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Germany</name>
+ <flag>germany.png</flag>
+ <capital>Berlin</capital>
+ <color>
+ <red>255</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Greece</name>
+ <flag>greece.png</flag>
+ <capital>Athens</capital>
+ <color>
+ <red>182</red>
+ <green>154</green>
+ <blue>122</blue>
+ </color>
+ </division>
+ <division>
+ <name>Hungary</name>
+ <flag>hungary.png</flag>
+ <capital>Budapest</capital>
+ <color>
+ <red>255</red>
+ <green>240</green>
+ <blue>245</blue>
+ </color>
+ </division>
+ <division>
+ <name>Iceland</name>
+ <flag>iceland.png</flag>
+ <capital>Reykjavik</capital>
+ <color>
+ <red>255</red>
+ <green>140</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ireland</name>
+ <flag>ireland.png</flag>
+ <capital>Dublin</capital>
+ <color>
+ <red>122</red>
+ <green>254</green>
+ <blue>50</blue>
+ </color>
+ </division>
+ <division>
+ <name>Italy</name>
+ <flag>italy.png</flag>
+ <capital>Rome</capital>
+ <color>
+ <red>254</red>
+ <green>254</green>
+ <blue>122</blue>
+ </color>
+ </division>
+ <division>
+ <name>Latvia</name>
+ <flag>latvia.png</flag>
+ <capital>Riga</capital>
+ <color>
+ <red>164</red>
+ <green>187</green>
+ <blue>9</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lithuania</name>
+ <flag>lithuania.png</flag>
+ <capital>Vilnius</capital>
+ <color>
+ <red>255</red>
+ <green>105</green>
+ <blue>180</blue>
+ </color>
+ </division>
+ <division>
+ <name>Luxembourg</name>
+ <flag>luxembourg.png</flag>
+ <capital>Luxembourg</capital>
+ <color>
+ <red>255</red>
+ <green>170</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Moldova</name>
+ <flag>moldova.png</flag>
+ <capital>Chisinau</capital>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Morocco</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>135</red>
+ <green>11</green>
+ <blue>75</blue>
+ </color>
+ </division>
+ <division>
+ <name>Netherlands</name>
+ <flag>netherlands.png</flag>
+ <capital>Amsterdam</capital>
+ <color>
+ <red>138</red>
+ <green>43</green>
+ <blue>226</blue>
+ </color>
+ </division>
+ <division>
+ <name>Norway</name>
+ <flag>norway.png</flag>
+ <capital>Oslo</capital>
+ <color>
+ <red>255</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Poland</name>
+ <flag>poland.png</flag>
+ <capital>Warsaw</capital>
+ <color>
+ <red>155</red>
+ <green>142</green>
+ <blue>15</blue>
+ </color>
+ </division>
+ <division>
+ <name>Portugal</name>
+ <flag>portugal.png</flag>
+ <capital>Lisbon</capital>
+ <color>
+ <red>249</red>
+ <green>3</green>
+ <blue>105</blue>
+ </color>
+ </division>
+ <division>
+ <name>Romania</name>
+ <flag>romania.png</flag>
+ <capital>Bucharest</capital>
+ <color>
+ <red>53</red>
+ <green>142</green>
+ <blue>142</blue>
+ </color>
+ </division>
+ <division>
+ <name>Russia</name>
+ <flag>russia.png</flag>
+ <capital>Moscow</capital>
+ <color>
+ <red>175</red>
+ <green>238</green>
+ <blue>238</blue>
+ </color>
+ </division>
+ <division>
+ <name>San Marino</name>
+ <flag>san_marino.png</flag>
+ <capital>San Marino</capital>
+ <color>
+ <red>139</red>
+ <green>139</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Serbia</name>
+ <flag>serbia.png</flag>
+ <capital>Belgrade</capital>
+ <color>
+ <red>120</red>
+ <green>144</green>
+ <blue>18</blue>
+ </color>
+ </division>
+ <division>
+ <name>Montenegro</name>
+ <flag>montenegro.png</flag>
+ <capital>Podgorica</capital>
+ <color>
+ <red>255</red>
+ <green>12</green>
+ <blue>12</blue>
+ </color>
+ </division>
+ <division>
+ <name>Slovakia</name>
+ <flag>slovakia.png</flag>
+ <capital>Bratislava</capital>
+ <color>
+ <red>139</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Slovenia</name>
+ <flag>slovenia.png</flag>
+ <capital>Ljubljana</capital>
+ <color>
+ <red>0</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Spain</name>
+ <flag>spain.png</flag>
+ <capital>Madrid</capital>
+ <color>
+ <red>254</red>
+ <green>218</green>
+ <blue>182</blue>
+ </color>
+ </division>
+ <division>
+ <name>Sweden</name>
+ <flag>sweden.png</flag>
+ <capital>Stockholm</capital>
+ <color>
+ <red>136</red>
+ <green>136</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Switzerland</name>
+ <flag>switzerland.png</flag>
+ <capital>Bern</capital>
+ <color>
+ <red>215</red>
+ <green>3</green>
+ <blue>50</blue>
+ </color>
+ </division>
+ <division>
+ <name>Syria</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>71</red>
+ <green>166</green>
+ <blue>113</blue>
+ </color>
+ </division>
+ <division>
+ <name>Tunisia</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>15</red>
+ <green>236</green>
+ <blue>248</blue>
+ </color>
+ </division>
+ <division>
+ <name>Turkey</name>
+ <flag>turkey.png</flag>
+ <capital>Ankara</capital>
+ <color>
+ <red>0</red>
+ <green>136</green>
+ <blue>136</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ukraine</name>
+ <flag>ukraine.png</flag>
+ <capital>Kiev</capital>
+ <color>
+ <red>136</red>
+ <green>5</green>
+ <blue>188</blue>
+ </color>
+ </division>
+ <division>
+ <name>United Kingdom</name>
+ <flag>uk.png</flag>
+ <capital>London</capital>
+ <color>
+ <red>254</red>
+ <green>206</green>
+ <blue>50</blue>
+ </color>
+ </division>
+</map>
diff --git a/kgeography/data/europe.png b/kgeography/data/europe.png
new file mode 100644
index 00000000..555c8847
--- /dev/null
+++ b/kgeography/data/europe.png
Binary files differ
diff --git a/kgeography/data/flags/Makefile.am b/kgeography/data/flags/Makefile.am
new file mode 100644
index 00000000..ac1fb3e9
--- /dev/null
+++ b/kgeography/data/flags/Makefile.am
@@ -0,0 +1,54 @@
+SUBDIRS = italy
+
+flagsdir = $(kde_datadir)/kgeography/flags
+flags_DATA = albania.png djibouti.png latvia.png saarland.png algeria.png \
+ dominicanrepublic.png lebanon.png san_marino.png angola.png \
+ dominica.png lesotho.png saudiarabia.png antigua.png egypt.png \
+ liberia.png saxony_anhalt.png austria.png el_salvador.png \
+ libya.png saxony.png baden_wurttemberg.png equatorial_guinea.png \
+ lithuania.png schleswig_holstein.png bahamas.png eritrea.png \
+ lower_saxony.png senegal.png barbados.png estonia.png \
+ luxembourg.png serbia.png montenegro.png bavaria.png ethiopia.png \
+ macedonia.png sierra_leone.png belarus.png finland.png \
+ madagascar.png slovakia.png belgium.png france.png malawi.png \
+ slovenia.png belize.png gabon.png mali.png somalia.png benin.png \
+ gambia.png mauritania.png southafrica.png berlin.png germany.png \
+ mecklenburg_western_pomerania.png spain.png \
+ bosnia_herzegovina.png ghana.png mexico.png sudan.png \
+ botswana.png greece.png moldova.png swaziland.png \
+ brandenburg.png guatemala.png morocco.png sweden.png bremen.png \
+ guineabissau.png mozambique.png switzerland.png bulgaria.png \
+ guinea.png namibia.png syria.png burkina.png haiti.png \
+ netherlands.png tanzania.png burundi.png hamburg.png \
+ nicaragua.png thuringia.png cameroon.png hesse.png nigeria.png \
+ togo.png canada.png honduras.png niger.png trinidad_tobago.png \
+ central_african_republic.png hungary.png \
+ north_rhine_westphalia.png tunisia.png chad.png iceland.png \
+ norway.png turkey.png congo_brazzaville.png iran.png oman.png \
+ turkmenistan.png congo_kinshasa.png iraq.png panama.png \
+ uganda.png costa_rica.png ireland.png poland.png uk.png \
+ cote_divoire.png israel.png portugal.png ukraine.png croatia.png \
+ italy.png qatar.png usa.png cuba_3x2.png jamaica.png \
+ rhineland_palatinate.png western_sahara.png cyprus_4x3.png \
+ jordan.png romania.png yemen.png czech.png kenya.png russia.png \
+ zambia.png denmark.png kuwait.png rwanda.png zimbabwe.png \
+ colombia.png venezuela.png guyana.png suriname.png ecuador.png \
+ peru.png brazil.png bolivia.png chile.png paraguay.png \
+ argentina.png uruguay.png br_AC.png br_AP.png br_DF.png \
+ br_MA.png br_MT.png br_PI.png br_RJ.png br_RR.png br_SE.png \
+ br_AL.png br_BA.png br_ES.png br_MG.png br_PA.png br_PN.png \
+ br_RN.png br_RS.png br_SP.png br_AM.png br_CE.png br_GO.png \
+ br_MS.png br_PE.png br_PR.png br_RO.png br_SC.png br_TO.png \
+ uae.png china.png india.png SriLanka.png mongolia.png kazakhstan.png \
+ japan.png myanmar.png nepal.png bhutan.png indonesia.png malaysia.png \
+ bangladesh.png afghanistan.png azerbaijan.png armenia.png bahrain.png \
+ georgia.png uzbekistan.png kyrgyzstan.png tajikistan.png pakistan.png \
+ laos.png cambodia.png easttimor.png brunei.png philippines.png \
+ thailand.png vietnam.png taiwan.png singapore.png nkorea.png \
+ skorea.png fiji.png tonga.png australia.png NewZealand.png \
+ Vatican.png andorra.png Monaco.png papua_new_guinea.png \
+ greenland.png pei.png alberta.png bc.png manitoba.png \
+ newbrunswick.png newfoundland.png novascotia.png \
+ nunavut.png nwterritories.png ontario.png \
+ quebec.png saskatchewan.png yukon.png \
+ liechtenstein.png
diff --git a/kgeography/data/flags/Monaco.png b/kgeography/data/flags/Monaco.png
new file mode 100644
index 00000000..012a3339
--- /dev/null
+++ b/kgeography/data/flags/Monaco.png
Binary files differ
diff --git a/kgeography/data/flags/NewZealand.png b/kgeography/data/flags/NewZealand.png
new file mode 100644
index 00000000..c6e2cc9c
--- /dev/null
+++ b/kgeography/data/flags/NewZealand.png
Binary files differ
diff --git a/kgeography/data/flags/README b/kgeography/data/flags/README
new file mode 100644
index 00000000..f317b65e
--- /dev/null
+++ b/kgeography/data/flags/README
@@ -0,0 +1,7 @@
+Some of these flags have been obtained using sodipodi to convert the sodipodi flags
+collection from svg to png and then modified a bit (sorry) to be of similar sizes.
+Sodipodi flags collection can be found at
+http://www.sodipodi.com/index.php3?section=clipart/flags
+Those flags are licensed under the Creative Commons Public Domain license.
+
+The rest have been obtained from www.wikipedia.org
diff --git a/kgeography/data/flags/SriLanka.png b/kgeography/data/flags/SriLanka.png
new file mode 100644
index 00000000..ba8c12f7
--- /dev/null
+++ b/kgeography/data/flags/SriLanka.png
Binary files differ
diff --git a/kgeography/data/flags/Vatican.png b/kgeography/data/flags/Vatican.png
new file mode 100644
index 00000000..a65e0174
--- /dev/null
+++ b/kgeography/data/flags/Vatican.png
Binary files differ
diff --git a/kgeography/data/flags/afghanistan.png b/kgeography/data/flags/afghanistan.png
new file mode 100644
index 00000000..b48ff6fd
--- /dev/null
+++ b/kgeography/data/flags/afghanistan.png
Binary files differ
diff --git a/kgeography/data/flags/albania.png b/kgeography/data/flags/albania.png
new file mode 100644
index 00000000..a1dc1d54
--- /dev/null
+++ b/kgeography/data/flags/albania.png
Binary files differ
diff --git a/kgeography/data/flags/alberta.png b/kgeography/data/flags/alberta.png
new file mode 100644
index 00000000..4e626d21
--- /dev/null
+++ b/kgeography/data/flags/alberta.png
Binary files differ
diff --git a/kgeography/data/flags/algeria.png b/kgeography/data/flags/algeria.png
new file mode 100644
index 00000000..b84f31f3
--- /dev/null
+++ b/kgeography/data/flags/algeria.png
Binary files differ
diff --git a/kgeography/data/flags/andorra.png b/kgeography/data/flags/andorra.png
new file mode 100644
index 00000000..45a7e37e
--- /dev/null
+++ b/kgeography/data/flags/andorra.png
Binary files differ
diff --git a/kgeography/data/flags/angola.png b/kgeography/data/flags/angola.png
new file mode 100644
index 00000000..296323cf
--- /dev/null
+++ b/kgeography/data/flags/angola.png
Binary files differ
diff --git a/kgeography/data/flags/antigua.png b/kgeography/data/flags/antigua.png
new file mode 100644
index 00000000..8b88fda7
--- /dev/null
+++ b/kgeography/data/flags/antigua.png
Binary files differ
diff --git a/kgeography/data/flags/argentina.png b/kgeography/data/flags/argentina.png
new file mode 100644
index 00000000..6a39fcaf
--- /dev/null
+++ b/kgeography/data/flags/argentina.png
Binary files differ
diff --git a/kgeography/data/flags/armenia.png b/kgeography/data/flags/armenia.png
new file mode 100644
index 00000000..21ded125
--- /dev/null
+++ b/kgeography/data/flags/armenia.png
Binary files differ
diff --git a/kgeography/data/flags/australia.png b/kgeography/data/flags/australia.png
new file mode 100644
index 00000000..029497c9
--- /dev/null
+++ b/kgeography/data/flags/australia.png
Binary files differ
diff --git a/kgeography/data/flags/austria.png b/kgeography/data/flags/austria.png
new file mode 100644
index 00000000..830c136c
--- /dev/null
+++ b/kgeography/data/flags/austria.png
Binary files differ
diff --git a/kgeography/data/flags/azerbaijan.png b/kgeography/data/flags/azerbaijan.png
new file mode 100644
index 00000000..1ec8ccd5
--- /dev/null
+++ b/kgeography/data/flags/azerbaijan.png
Binary files differ
diff --git a/kgeography/data/flags/baden_wurttemberg.png b/kgeography/data/flags/baden_wurttemberg.png
new file mode 100644
index 00000000..29718e47
--- /dev/null
+++ b/kgeography/data/flags/baden_wurttemberg.png
Binary files differ
diff --git a/kgeography/data/flags/bahamas.png b/kgeography/data/flags/bahamas.png
new file mode 100644
index 00000000..cb9b7d33
--- /dev/null
+++ b/kgeography/data/flags/bahamas.png
Binary files differ
diff --git a/kgeography/data/flags/bahrain.png b/kgeography/data/flags/bahrain.png
new file mode 100644
index 00000000..29f53fc5
--- /dev/null
+++ b/kgeography/data/flags/bahrain.png
Binary files differ
diff --git a/kgeography/data/flags/bangladesh.png b/kgeography/data/flags/bangladesh.png
new file mode 100644
index 00000000..b9d867cd
--- /dev/null
+++ b/kgeography/data/flags/bangladesh.png
Binary files differ
diff --git a/kgeography/data/flags/barbados.png b/kgeography/data/flags/barbados.png
new file mode 100644
index 00000000..196c95d2
--- /dev/null
+++ b/kgeography/data/flags/barbados.png
Binary files differ
diff --git a/kgeography/data/flags/bavaria.png b/kgeography/data/flags/bavaria.png
new file mode 100644
index 00000000..66a4c4b5
--- /dev/null
+++ b/kgeography/data/flags/bavaria.png
Binary files differ
diff --git a/kgeography/data/flags/bc.png b/kgeography/data/flags/bc.png
new file mode 100644
index 00000000..726e6047
--- /dev/null
+++ b/kgeography/data/flags/bc.png
Binary files differ
diff --git a/kgeography/data/flags/belarus.png b/kgeography/data/flags/belarus.png
new file mode 100644
index 00000000..c98d6e62
--- /dev/null
+++ b/kgeography/data/flags/belarus.png
Binary files differ
diff --git a/kgeography/data/flags/belgium.png b/kgeography/data/flags/belgium.png
new file mode 100644
index 00000000..4ce60f44
--- /dev/null
+++ b/kgeography/data/flags/belgium.png
Binary files differ
diff --git a/kgeography/data/flags/belize.png b/kgeography/data/flags/belize.png
new file mode 100644
index 00000000..f4513a26
--- /dev/null
+++ b/kgeography/data/flags/belize.png
Binary files differ
diff --git a/kgeography/data/flags/benin.png b/kgeography/data/flags/benin.png
new file mode 100644
index 00000000..26ad8a13
--- /dev/null
+++ b/kgeography/data/flags/benin.png
Binary files differ
diff --git a/kgeography/data/flags/berlin.png b/kgeography/data/flags/berlin.png
new file mode 100644
index 00000000..17de905e
--- /dev/null
+++ b/kgeography/data/flags/berlin.png
Binary files differ
diff --git a/kgeography/data/flags/bhutan.png b/kgeography/data/flags/bhutan.png
new file mode 100644
index 00000000..4c8e05f9
--- /dev/null
+++ b/kgeography/data/flags/bhutan.png
Binary files differ
diff --git a/kgeography/data/flags/bolivia.png b/kgeography/data/flags/bolivia.png
new file mode 100644
index 00000000..a59e4d37
--- /dev/null
+++ b/kgeography/data/flags/bolivia.png
Binary files differ
diff --git a/kgeography/data/flags/bosnia_herzegovina.png b/kgeography/data/flags/bosnia_herzegovina.png
new file mode 100644
index 00000000..1eb357a5
--- /dev/null
+++ b/kgeography/data/flags/bosnia_herzegovina.png
Binary files differ
diff --git a/kgeography/data/flags/botswana.png b/kgeography/data/flags/botswana.png
new file mode 100644
index 00000000..5e91b7e9
--- /dev/null
+++ b/kgeography/data/flags/botswana.png
Binary files differ
diff --git a/kgeography/data/flags/br_AC.png b/kgeography/data/flags/br_AC.png
new file mode 100644
index 00000000..24b40def
--- /dev/null
+++ b/kgeography/data/flags/br_AC.png
Binary files differ
diff --git a/kgeography/data/flags/br_AL.png b/kgeography/data/flags/br_AL.png
new file mode 100644
index 00000000..0031c4cd
--- /dev/null
+++ b/kgeography/data/flags/br_AL.png
Binary files differ
diff --git a/kgeography/data/flags/br_AM.png b/kgeography/data/flags/br_AM.png
new file mode 100644
index 00000000..9a4f850e
--- /dev/null
+++ b/kgeography/data/flags/br_AM.png
Binary files differ
diff --git a/kgeography/data/flags/br_AP.png b/kgeography/data/flags/br_AP.png
new file mode 100644
index 00000000..f24750b7
--- /dev/null
+++ b/kgeography/data/flags/br_AP.png
Binary files differ
diff --git a/kgeography/data/flags/br_BA.png b/kgeography/data/flags/br_BA.png
new file mode 100644
index 00000000..5549684f
--- /dev/null
+++ b/kgeography/data/flags/br_BA.png
Binary files differ
diff --git a/kgeography/data/flags/br_CE.png b/kgeography/data/flags/br_CE.png
new file mode 100644
index 00000000..b5076363
--- /dev/null
+++ b/kgeography/data/flags/br_CE.png
Binary files differ
diff --git a/kgeography/data/flags/br_DF.png b/kgeography/data/flags/br_DF.png
new file mode 100644
index 00000000..bc90e82b
--- /dev/null
+++ b/kgeography/data/flags/br_DF.png
Binary files differ
diff --git a/kgeography/data/flags/br_ES.png b/kgeography/data/flags/br_ES.png
new file mode 100644
index 00000000..206e22a0
--- /dev/null
+++ b/kgeography/data/flags/br_ES.png
Binary files differ
diff --git a/kgeography/data/flags/br_GO.png b/kgeography/data/flags/br_GO.png
new file mode 100644
index 00000000..21003b9c
--- /dev/null
+++ b/kgeography/data/flags/br_GO.png
Binary files differ
diff --git a/kgeography/data/flags/br_MA.png b/kgeography/data/flags/br_MA.png
new file mode 100644
index 00000000..29088fd1
--- /dev/null
+++ b/kgeography/data/flags/br_MA.png
Binary files differ
diff --git a/kgeography/data/flags/br_MG.png b/kgeography/data/flags/br_MG.png
new file mode 100644
index 00000000..df55d24a
--- /dev/null
+++ b/kgeography/data/flags/br_MG.png
Binary files differ
diff --git a/kgeography/data/flags/br_MS.png b/kgeography/data/flags/br_MS.png
new file mode 100644
index 00000000..267a9354
--- /dev/null
+++ b/kgeography/data/flags/br_MS.png
Binary files differ
diff --git a/kgeography/data/flags/br_MT.png b/kgeography/data/flags/br_MT.png
new file mode 100644
index 00000000..0d034761
--- /dev/null
+++ b/kgeography/data/flags/br_MT.png
Binary files differ
diff --git a/kgeography/data/flags/br_PA.png b/kgeography/data/flags/br_PA.png
new file mode 100644
index 00000000..606a6bcb
--- /dev/null
+++ b/kgeography/data/flags/br_PA.png
Binary files differ
diff --git a/kgeography/data/flags/br_PE.png b/kgeography/data/flags/br_PE.png
new file mode 100644
index 00000000..ad9dad38
--- /dev/null
+++ b/kgeography/data/flags/br_PE.png
Binary files differ
diff --git a/kgeography/data/flags/br_PI.png b/kgeography/data/flags/br_PI.png
new file mode 100644
index 00000000..101e33cd
--- /dev/null
+++ b/kgeography/data/flags/br_PI.png
Binary files differ
diff --git a/kgeography/data/flags/br_PN.png b/kgeography/data/flags/br_PN.png
new file mode 100644
index 00000000..b10045e9
--- /dev/null
+++ b/kgeography/data/flags/br_PN.png
Binary files differ
diff --git a/kgeography/data/flags/br_PR.png b/kgeography/data/flags/br_PR.png
new file mode 100644
index 00000000..19f65424
--- /dev/null
+++ b/kgeography/data/flags/br_PR.png
Binary files differ
diff --git a/kgeography/data/flags/br_RJ.png b/kgeography/data/flags/br_RJ.png
new file mode 100644
index 00000000..57770d18
--- /dev/null
+++ b/kgeography/data/flags/br_RJ.png
Binary files differ
diff --git a/kgeography/data/flags/br_RN.png b/kgeography/data/flags/br_RN.png
new file mode 100644
index 00000000..b17e64bd
--- /dev/null
+++ b/kgeography/data/flags/br_RN.png
Binary files differ
diff --git a/kgeography/data/flags/br_RO.png b/kgeography/data/flags/br_RO.png
new file mode 100644
index 00000000..910d77bd
--- /dev/null
+++ b/kgeography/data/flags/br_RO.png
Binary files differ
diff --git a/kgeography/data/flags/br_RR.png b/kgeography/data/flags/br_RR.png
new file mode 100644
index 00000000..a73a66c7
--- /dev/null
+++ b/kgeography/data/flags/br_RR.png
Binary files differ
diff --git a/kgeography/data/flags/br_RS.png b/kgeography/data/flags/br_RS.png
new file mode 100644
index 00000000..b58cf278
--- /dev/null
+++ b/kgeography/data/flags/br_RS.png
Binary files differ
diff --git a/kgeography/data/flags/br_SC.png b/kgeography/data/flags/br_SC.png
new file mode 100644
index 00000000..75eb4f6d
--- /dev/null
+++ b/kgeography/data/flags/br_SC.png
Binary files differ
diff --git a/kgeography/data/flags/br_SE.png b/kgeography/data/flags/br_SE.png
new file mode 100644
index 00000000..d7d3ee62
--- /dev/null
+++ b/kgeography/data/flags/br_SE.png
Binary files differ
diff --git a/kgeography/data/flags/br_SP.png b/kgeography/data/flags/br_SP.png
new file mode 100644
index 00000000..47cba81b
--- /dev/null
+++ b/kgeography/data/flags/br_SP.png
Binary files differ
diff --git a/kgeography/data/flags/br_TO.png b/kgeography/data/flags/br_TO.png
new file mode 100644
index 00000000..531b2145
--- /dev/null
+++ b/kgeography/data/flags/br_TO.png
Binary files differ
diff --git a/kgeography/data/flags/brandenburg.png b/kgeography/data/flags/brandenburg.png
new file mode 100644
index 00000000..f4e2e120
--- /dev/null
+++ b/kgeography/data/flags/brandenburg.png
Binary files differ
diff --git a/kgeography/data/flags/brazil.png b/kgeography/data/flags/brazil.png
new file mode 100644
index 00000000..55e9b38f
--- /dev/null
+++ b/kgeography/data/flags/brazil.png
Binary files differ
diff --git a/kgeography/data/flags/bremen.png b/kgeography/data/flags/bremen.png
new file mode 100644
index 00000000..e453ec42
--- /dev/null
+++ b/kgeography/data/flags/bremen.png
Binary files differ
diff --git a/kgeography/data/flags/brunei.png b/kgeography/data/flags/brunei.png
new file mode 100644
index 00000000..6dc48fcf
--- /dev/null
+++ b/kgeography/data/flags/brunei.png
Binary files differ
diff --git a/kgeography/data/flags/bulgaria.png b/kgeography/data/flags/bulgaria.png
new file mode 100644
index 00000000..270de352
--- /dev/null
+++ b/kgeography/data/flags/bulgaria.png
Binary files differ
diff --git a/kgeography/data/flags/burkina.png b/kgeography/data/flags/burkina.png
new file mode 100644
index 00000000..e5298b1f
--- /dev/null
+++ b/kgeography/data/flags/burkina.png
Binary files differ
diff --git a/kgeography/data/flags/burundi.png b/kgeography/data/flags/burundi.png
new file mode 100644
index 00000000..5beaeed1
--- /dev/null
+++ b/kgeography/data/flags/burundi.png
Binary files differ
diff --git a/kgeography/data/flags/cambodia.png b/kgeography/data/flags/cambodia.png
new file mode 100644
index 00000000..131fa655
--- /dev/null
+++ b/kgeography/data/flags/cambodia.png
Binary files differ
diff --git a/kgeography/data/flags/cameroon.png b/kgeography/data/flags/cameroon.png
new file mode 100644
index 00000000..051ce369
--- /dev/null
+++ b/kgeography/data/flags/cameroon.png
Binary files differ
diff --git a/kgeography/data/flags/canada.png b/kgeography/data/flags/canada.png
new file mode 100644
index 00000000..dfff43f5
--- /dev/null
+++ b/kgeography/data/flags/canada.png
Binary files differ
diff --git a/kgeography/data/flags/central_african_republic.png b/kgeography/data/flags/central_african_republic.png
new file mode 100644
index 00000000..6da6cd61
--- /dev/null
+++ b/kgeography/data/flags/central_african_republic.png
Binary files differ
diff --git a/kgeography/data/flags/chad.png b/kgeography/data/flags/chad.png
new file mode 100644
index 00000000..4de2b153
--- /dev/null
+++ b/kgeography/data/flags/chad.png
Binary files differ
diff --git a/kgeography/data/flags/chile.png b/kgeography/data/flags/chile.png
new file mode 100644
index 00000000..0f6aebb3
--- /dev/null
+++ b/kgeography/data/flags/chile.png
Binary files differ
diff --git a/kgeography/data/flags/china.png b/kgeography/data/flags/china.png
new file mode 100644
index 00000000..28f0ed28
--- /dev/null
+++ b/kgeography/data/flags/china.png
Binary files differ
diff --git a/kgeography/data/flags/colombia.png b/kgeography/data/flags/colombia.png
new file mode 100644
index 00000000..32ac30ee
--- /dev/null
+++ b/kgeography/data/flags/colombia.png
Binary files differ
diff --git a/kgeography/data/flags/congo_brazzaville.png b/kgeography/data/flags/congo_brazzaville.png
new file mode 100644
index 00000000..434a4b54
--- /dev/null
+++ b/kgeography/data/flags/congo_brazzaville.png
Binary files differ
diff --git a/kgeography/data/flags/congo_kinshasa.png b/kgeography/data/flags/congo_kinshasa.png
new file mode 100644
index 00000000..30249699
--- /dev/null
+++ b/kgeography/data/flags/congo_kinshasa.png
Binary files differ
diff --git a/kgeography/data/flags/costa_rica.png b/kgeography/data/flags/costa_rica.png
new file mode 100644
index 00000000..e3612d71
--- /dev/null
+++ b/kgeography/data/flags/costa_rica.png
Binary files differ
diff --git a/kgeography/data/flags/cote_divoire.png b/kgeography/data/flags/cote_divoire.png
new file mode 100644
index 00000000..4c047a37
--- /dev/null
+++ b/kgeography/data/flags/cote_divoire.png
Binary files differ
diff --git a/kgeography/data/flags/croatia.png b/kgeography/data/flags/croatia.png
new file mode 100644
index 00000000..493c739c
--- /dev/null
+++ b/kgeography/data/flags/croatia.png
Binary files differ
diff --git a/kgeography/data/flags/cuba_3x2.png b/kgeography/data/flags/cuba_3x2.png
new file mode 100644
index 00000000..232a989f
--- /dev/null
+++ b/kgeography/data/flags/cuba_3x2.png
Binary files differ
diff --git a/kgeography/data/flags/cyprus_4x3.png b/kgeography/data/flags/cyprus_4x3.png
new file mode 100644
index 00000000..e0a582f9
--- /dev/null
+++ b/kgeography/data/flags/cyprus_4x3.png
Binary files differ
diff --git a/kgeography/data/flags/czech.png b/kgeography/data/flags/czech.png
new file mode 100644
index 00000000..24637c70
--- /dev/null
+++ b/kgeography/data/flags/czech.png
Binary files differ
diff --git a/kgeography/data/flags/denmark.png b/kgeography/data/flags/denmark.png
new file mode 100644
index 00000000..43f79f0f
--- /dev/null
+++ b/kgeography/data/flags/denmark.png
Binary files differ
diff --git a/kgeography/data/flags/djibouti.png b/kgeography/data/flags/djibouti.png
new file mode 100644
index 00000000..1da808d8
--- /dev/null
+++ b/kgeography/data/flags/djibouti.png
Binary files differ
diff --git a/kgeography/data/flags/dominica.png b/kgeography/data/flags/dominica.png
new file mode 100644
index 00000000..6e0bdefa
--- /dev/null
+++ b/kgeography/data/flags/dominica.png
Binary files differ
diff --git a/kgeography/data/flags/dominicanrepublic.png b/kgeography/data/flags/dominicanrepublic.png
new file mode 100644
index 00000000..c89c66b9
--- /dev/null
+++ b/kgeography/data/flags/dominicanrepublic.png
Binary files differ
diff --git a/kgeography/data/flags/easttimor.png b/kgeography/data/flags/easttimor.png
new file mode 100644
index 00000000..97f2e075
--- /dev/null
+++ b/kgeography/data/flags/easttimor.png
Binary files differ
diff --git a/kgeography/data/flags/ecuador.png b/kgeography/data/flags/ecuador.png
new file mode 100644
index 00000000..9ee95371
--- /dev/null
+++ b/kgeography/data/flags/ecuador.png
Binary files differ
diff --git a/kgeography/data/flags/egypt.png b/kgeography/data/flags/egypt.png
new file mode 100644
index 00000000..37df645b
--- /dev/null
+++ b/kgeography/data/flags/egypt.png
Binary files differ
diff --git a/kgeography/data/flags/el_salvador.png b/kgeography/data/flags/el_salvador.png
new file mode 100644
index 00000000..74afe288
--- /dev/null
+++ b/kgeography/data/flags/el_salvador.png
Binary files differ
diff --git a/kgeography/data/flags/equatorial_guinea.png b/kgeography/data/flags/equatorial_guinea.png
new file mode 100644
index 00000000..4c075eb2
--- /dev/null
+++ b/kgeography/data/flags/equatorial_guinea.png
Binary files differ
diff --git a/kgeography/data/flags/eritrea.png b/kgeography/data/flags/eritrea.png
new file mode 100644
index 00000000..53b71e7c
--- /dev/null
+++ b/kgeography/data/flags/eritrea.png
Binary files differ
diff --git a/kgeography/data/flags/estonia.png b/kgeography/data/flags/estonia.png
new file mode 100644
index 00000000..7d20ed96
--- /dev/null
+++ b/kgeography/data/flags/estonia.png
Binary files differ
diff --git a/kgeography/data/flags/ethiopia.png b/kgeography/data/flags/ethiopia.png
new file mode 100644
index 00000000..72c0d45f
--- /dev/null
+++ b/kgeography/data/flags/ethiopia.png
Binary files differ
diff --git a/kgeography/data/flags/fiji.png b/kgeography/data/flags/fiji.png
new file mode 100644
index 00000000..8a015344
--- /dev/null
+++ b/kgeography/data/flags/fiji.png
Binary files differ
diff --git a/kgeography/data/flags/finland.png b/kgeography/data/flags/finland.png
new file mode 100644
index 00000000..326535d1
--- /dev/null
+++ b/kgeography/data/flags/finland.png
Binary files differ
diff --git a/kgeography/data/flags/france.png b/kgeography/data/flags/france.png
new file mode 100644
index 00000000..a0513ad6
--- /dev/null
+++ b/kgeography/data/flags/france.png
Binary files differ
diff --git a/kgeography/data/flags/gabon.png b/kgeography/data/flags/gabon.png
new file mode 100644
index 00000000..73c5fe0b
--- /dev/null
+++ b/kgeography/data/flags/gabon.png
Binary files differ
diff --git a/kgeography/data/flags/gambia.png b/kgeography/data/flags/gambia.png
new file mode 100644
index 00000000..1166d9fd
--- /dev/null
+++ b/kgeography/data/flags/gambia.png
Binary files differ
diff --git a/kgeography/data/flags/georgia.png b/kgeography/data/flags/georgia.png
new file mode 100644
index 00000000..442c3258
--- /dev/null
+++ b/kgeography/data/flags/georgia.png
Binary files differ
diff --git a/kgeography/data/flags/germany.png b/kgeography/data/flags/germany.png
new file mode 100644
index 00000000..61b7e589
--- /dev/null
+++ b/kgeography/data/flags/germany.png
Binary files differ
diff --git a/kgeography/data/flags/ghana.png b/kgeography/data/flags/ghana.png
new file mode 100644
index 00000000..2bed8170
--- /dev/null
+++ b/kgeography/data/flags/ghana.png
Binary files differ
diff --git a/kgeography/data/flags/greece.png b/kgeography/data/flags/greece.png
new file mode 100644
index 00000000..f57e8fdb
--- /dev/null
+++ b/kgeography/data/flags/greece.png
Binary files differ
diff --git a/kgeography/data/flags/greenland.png b/kgeography/data/flags/greenland.png
new file mode 100644
index 00000000..84997917
--- /dev/null
+++ b/kgeography/data/flags/greenland.png
Binary files differ
diff --git a/kgeography/data/flags/guatemala.png b/kgeography/data/flags/guatemala.png
new file mode 100644
index 00000000..7660ab86
--- /dev/null
+++ b/kgeography/data/flags/guatemala.png
Binary files differ
diff --git a/kgeography/data/flags/guinea.png b/kgeography/data/flags/guinea.png
new file mode 100644
index 00000000..aa83c5a0
--- /dev/null
+++ b/kgeography/data/flags/guinea.png
Binary files differ
diff --git a/kgeography/data/flags/guineabissau.png b/kgeography/data/flags/guineabissau.png
new file mode 100644
index 00000000..2370174b
--- /dev/null
+++ b/kgeography/data/flags/guineabissau.png
Binary files differ
diff --git a/kgeography/data/flags/guyana.png b/kgeography/data/flags/guyana.png
new file mode 100644
index 00000000..909f37c3
--- /dev/null
+++ b/kgeography/data/flags/guyana.png
Binary files differ
diff --git a/kgeography/data/flags/haiti.png b/kgeography/data/flags/haiti.png
new file mode 100644
index 00000000..0471ff39
--- /dev/null
+++ b/kgeography/data/flags/haiti.png
Binary files differ
diff --git a/kgeography/data/flags/hamburg.png b/kgeography/data/flags/hamburg.png
new file mode 100644
index 00000000..79d34dde
--- /dev/null
+++ b/kgeography/data/flags/hamburg.png
Binary files differ
diff --git a/kgeography/data/flags/hesse.png b/kgeography/data/flags/hesse.png
new file mode 100644
index 00000000..91962b7c
--- /dev/null
+++ b/kgeography/data/flags/hesse.png
Binary files differ
diff --git a/kgeography/data/flags/honduras.png b/kgeography/data/flags/honduras.png
new file mode 100644
index 00000000..6a85d33b
--- /dev/null
+++ b/kgeography/data/flags/honduras.png
Binary files differ
diff --git a/kgeography/data/flags/hungary.png b/kgeography/data/flags/hungary.png
new file mode 100644
index 00000000..17eec951
--- /dev/null
+++ b/kgeography/data/flags/hungary.png
Binary files differ
diff --git a/kgeography/data/flags/iceland.png b/kgeography/data/flags/iceland.png
new file mode 100644
index 00000000..30fff073
--- /dev/null
+++ b/kgeography/data/flags/iceland.png
Binary files differ
diff --git a/kgeography/data/flags/india.png b/kgeography/data/flags/india.png
new file mode 100644
index 00000000..d46352a3
--- /dev/null
+++ b/kgeography/data/flags/india.png
Binary files differ
diff --git a/kgeography/data/flags/indonesia.png b/kgeography/data/flags/indonesia.png
new file mode 100644
index 00000000..f94ffc6b
--- /dev/null
+++ b/kgeography/data/flags/indonesia.png
Binary files differ
diff --git a/kgeography/data/flags/iran.png b/kgeography/data/flags/iran.png
new file mode 100644
index 00000000..92666ffe
--- /dev/null
+++ b/kgeography/data/flags/iran.png
Binary files differ
diff --git a/kgeography/data/flags/iraq.png b/kgeography/data/flags/iraq.png
new file mode 100644
index 00000000..abc9f47d
--- /dev/null
+++ b/kgeography/data/flags/iraq.png
Binary files differ
diff --git a/kgeography/data/flags/ireland.png b/kgeography/data/flags/ireland.png
new file mode 100644
index 00000000..03f0dfcd
--- /dev/null
+++ b/kgeography/data/flags/ireland.png
Binary files differ
diff --git a/kgeography/data/flags/israel.png b/kgeography/data/flags/israel.png
new file mode 100644
index 00000000..0f3c53f1
--- /dev/null
+++ b/kgeography/data/flags/israel.png
Binary files differ
diff --git a/kgeography/data/flags/italy.png b/kgeography/data/flags/italy.png
new file mode 100644
index 00000000..161d45cc
--- /dev/null
+++ b/kgeography/data/flags/italy.png
Binary files differ
diff --git a/kgeography/data/flags/italy/Makefile.am b/kgeography/data/flags/italy/Makefile.am
new file mode 100644
index 00000000..7553d7ae
--- /dev/null
+++ b/kgeography/data/flags/italy/Makefile.am
@@ -0,0 +1,4 @@
+flagsdir = $(kde_datadir)/kgeography/flags/italy
+flags_DATA = it-bas200.png it-emi200.png it-lig200.png it-mol200.png it-sar200.png it-tus200.png \
+ it-abr200.png it-cal200.png it-fri200.png it-lom200.png it-pie200.png it-sic200.png it-umb200.png \
+ it-aos200.png it-cam200.png it-lat200.png it-mar200.png it-pug200.png it-tre200.png it-ven200.png
diff --git a/kgeography/data/flags/italy/it-abr200.png b/kgeography/data/flags/italy/it-abr200.png
new file mode 100644
index 00000000..d5da32b9
--- /dev/null
+++ b/kgeography/data/flags/italy/it-abr200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-aos200.png b/kgeography/data/flags/italy/it-aos200.png
new file mode 100644
index 00000000..c7a178e8
--- /dev/null
+++ b/kgeography/data/flags/italy/it-aos200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-bas200.png b/kgeography/data/flags/italy/it-bas200.png
new file mode 100644
index 00000000..beebeb69
--- /dev/null
+++ b/kgeography/data/flags/italy/it-bas200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-cal200.png b/kgeography/data/flags/italy/it-cal200.png
new file mode 100644
index 00000000..a9236dda
--- /dev/null
+++ b/kgeography/data/flags/italy/it-cal200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-cam200.png b/kgeography/data/flags/italy/it-cam200.png
new file mode 100644
index 00000000..6cd306e2
--- /dev/null
+++ b/kgeography/data/flags/italy/it-cam200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-emi200.png b/kgeography/data/flags/italy/it-emi200.png
new file mode 100644
index 00000000..efa333ae
--- /dev/null
+++ b/kgeography/data/flags/italy/it-emi200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-fri200.png b/kgeography/data/flags/italy/it-fri200.png
new file mode 100644
index 00000000..73396f57
--- /dev/null
+++ b/kgeography/data/flags/italy/it-fri200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-lat200.png b/kgeography/data/flags/italy/it-lat200.png
new file mode 100644
index 00000000..42856c97
--- /dev/null
+++ b/kgeography/data/flags/italy/it-lat200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-lig200.png b/kgeography/data/flags/italy/it-lig200.png
new file mode 100644
index 00000000..8ba5f73d
--- /dev/null
+++ b/kgeography/data/flags/italy/it-lig200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-lom200.png b/kgeography/data/flags/italy/it-lom200.png
new file mode 100644
index 00000000..bebab4eb
--- /dev/null
+++ b/kgeography/data/flags/italy/it-lom200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-mar200.png b/kgeography/data/flags/italy/it-mar200.png
new file mode 100644
index 00000000..71b804f2
--- /dev/null
+++ b/kgeography/data/flags/italy/it-mar200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-mol200.png b/kgeography/data/flags/italy/it-mol200.png
new file mode 100644
index 00000000..fff6ba8f
--- /dev/null
+++ b/kgeography/data/flags/italy/it-mol200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-pie200.png b/kgeography/data/flags/italy/it-pie200.png
new file mode 100644
index 00000000..4761b928
--- /dev/null
+++ b/kgeography/data/flags/italy/it-pie200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-pug200.png b/kgeography/data/flags/italy/it-pug200.png
new file mode 100644
index 00000000..15764d0a
--- /dev/null
+++ b/kgeography/data/flags/italy/it-pug200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-sar200.png b/kgeography/data/flags/italy/it-sar200.png
new file mode 100644
index 00000000..d6ca8a83
--- /dev/null
+++ b/kgeography/data/flags/italy/it-sar200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-sic200.png b/kgeography/data/flags/italy/it-sic200.png
new file mode 100644
index 00000000..41041952
--- /dev/null
+++ b/kgeography/data/flags/italy/it-sic200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-tre200.png b/kgeography/data/flags/italy/it-tre200.png
new file mode 100644
index 00000000..a0cfd03a
--- /dev/null
+++ b/kgeography/data/flags/italy/it-tre200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-tus200.png b/kgeography/data/flags/italy/it-tus200.png
new file mode 100644
index 00000000..98bc9de0
--- /dev/null
+++ b/kgeography/data/flags/italy/it-tus200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-umb200.png b/kgeography/data/flags/italy/it-umb200.png
new file mode 100644
index 00000000..730f853f
--- /dev/null
+++ b/kgeography/data/flags/italy/it-umb200.png
Binary files differ
diff --git a/kgeography/data/flags/italy/it-ven200.png b/kgeography/data/flags/italy/it-ven200.png
new file mode 100644
index 00000000..83307751
--- /dev/null
+++ b/kgeography/data/flags/italy/it-ven200.png
Binary files differ
diff --git a/kgeography/data/flags/jamaica.png b/kgeography/data/flags/jamaica.png
new file mode 100644
index 00000000..0af4ad1b
--- /dev/null
+++ b/kgeography/data/flags/jamaica.png
Binary files differ
diff --git a/kgeography/data/flags/japan.png b/kgeography/data/flags/japan.png
new file mode 100644
index 00000000..a2b38648
--- /dev/null
+++ b/kgeography/data/flags/japan.png
Binary files differ
diff --git a/kgeography/data/flags/jordan.png b/kgeography/data/flags/jordan.png
new file mode 100644
index 00000000..4ea3d67c
--- /dev/null
+++ b/kgeography/data/flags/jordan.png
Binary files differ
diff --git a/kgeography/data/flags/kazakhstan.png b/kgeography/data/flags/kazakhstan.png
new file mode 100644
index 00000000..7bb57eb1
--- /dev/null
+++ b/kgeography/data/flags/kazakhstan.png
Binary files differ
diff --git a/kgeography/data/flags/kenya.png b/kgeography/data/flags/kenya.png
new file mode 100644
index 00000000..e189c9b2
--- /dev/null
+++ b/kgeography/data/flags/kenya.png
Binary files differ
diff --git a/kgeography/data/flags/kuwait.png b/kgeography/data/flags/kuwait.png
new file mode 100644
index 00000000..546dd58b
--- /dev/null
+++ b/kgeography/data/flags/kuwait.png
Binary files differ
diff --git a/kgeography/data/flags/kyrgyzstan.png b/kgeography/data/flags/kyrgyzstan.png
new file mode 100644
index 00000000..afb1c6c0
--- /dev/null
+++ b/kgeography/data/flags/kyrgyzstan.png
Binary files differ
diff --git a/kgeography/data/flags/laos.png b/kgeography/data/flags/laos.png
new file mode 100644
index 00000000..2935b60c
--- /dev/null
+++ b/kgeography/data/flags/laos.png
Binary files differ
diff --git a/kgeography/data/flags/latvia.png b/kgeography/data/flags/latvia.png
new file mode 100644
index 00000000..41c1c6dc
--- /dev/null
+++ b/kgeography/data/flags/latvia.png
Binary files differ
diff --git a/kgeography/data/flags/lebanon.png b/kgeography/data/flags/lebanon.png
new file mode 100644
index 00000000..8c4af793
--- /dev/null
+++ b/kgeography/data/flags/lebanon.png
Binary files differ
diff --git a/kgeography/data/flags/lesotho.png b/kgeography/data/flags/lesotho.png
new file mode 100644
index 00000000..63f27c2d
--- /dev/null
+++ b/kgeography/data/flags/lesotho.png
Binary files differ
diff --git a/kgeography/data/flags/liberia.png b/kgeography/data/flags/liberia.png
new file mode 100644
index 00000000..43e05163
--- /dev/null
+++ b/kgeography/data/flags/liberia.png
Binary files differ
diff --git a/kgeography/data/flags/libya.png b/kgeography/data/flags/libya.png
new file mode 100644
index 00000000..bb8da98a
--- /dev/null
+++ b/kgeography/data/flags/libya.png
Binary files differ
diff --git a/kgeography/data/flags/liechtenstein.png b/kgeography/data/flags/liechtenstein.png
new file mode 100644
index 00000000..e9bccfd5
--- /dev/null
+++ b/kgeography/data/flags/liechtenstein.png
Binary files differ
diff --git a/kgeography/data/flags/lithuania.png b/kgeography/data/flags/lithuania.png
new file mode 100644
index 00000000..c230a092
--- /dev/null
+++ b/kgeography/data/flags/lithuania.png
Binary files differ
diff --git a/kgeography/data/flags/lower_saxony.png b/kgeography/data/flags/lower_saxony.png
new file mode 100644
index 00000000..4bb7bbb2
--- /dev/null
+++ b/kgeography/data/flags/lower_saxony.png
Binary files differ
diff --git a/kgeography/data/flags/luxembourg.png b/kgeography/data/flags/luxembourg.png
new file mode 100644
index 00000000..15c52ab0
--- /dev/null
+++ b/kgeography/data/flags/luxembourg.png
Binary files differ
diff --git a/kgeography/data/flags/macedonia.png b/kgeography/data/flags/macedonia.png
new file mode 100644
index 00000000..ecddcad1
--- /dev/null
+++ b/kgeography/data/flags/macedonia.png
Binary files differ
diff --git a/kgeography/data/flags/madagascar.png b/kgeography/data/flags/madagascar.png
new file mode 100644
index 00000000..3a151724
--- /dev/null
+++ b/kgeography/data/flags/madagascar.png
Binary files differ
diff --git a/kgeography/data/flags/malawi.png b/kgeography/data/flags/malawi.png
new file mode 100644
index 00000000..33dfe0c0
--- /dev/null
+++ b/kgeography/data/flags/malawi.png
Binary files differ
diff --git a/kgeography/data/flags/malaysia.png b/kgeography/data/flags/malaysia.png
new file mode 100644
index 00000000..d95e41dd
--- /dev/null
+++ b/kgeography/data/flags/malaysia.png
Binary files differ
diff --git a/kgeography/data/flags/mali.png b/kgeography/data/flags/mali.png
new file mode 100644
index 00000000..b92a85ab
--- /dev/null
+++ b/kgeography/data/flags/mali.png
Binary files differ
diff --git a/kgeography/data/flags/manitoba.png b/kgeography/data/flags/manitoba.png
new file mode 100644
index 00000000..6c3df80e
--- /dev/null
+++ b/kgeography/data/flags/manitoba.png
Binary files differ
diff --git a/kgeography/data/flags/mauritania.png b/kgeography/data/flags/mauritania.png
new file mode 100644
index 00000000..2a09e06f
--- /dev/null
+++ b/kgeography/data/flags/mauritania.png
Binary files differ
diff --git a/kgeography/data/flags/mecklenburg_western_pomerania.png b/kgeography/data/flags/mecklenburg_western_pomerania.png
new file mode 100644
index 00000000..7f005674
--- /dev/null
+++ b/kgeography/data/flags/mecklenburg_western_pomerania.png
Binary files differ
diff --git a/kgeography/data/flags/mexico.png b/kgeography/data/flags/mexico.png
new file mode 100644
index 00000000..333aeb38
--- /dev/null
+++ b/kgeography/data/flags/mexico.png
Binary files differ
diff --git a/kgeography/data/flags/moldova.png b/kgeography/data/flags/moldova.png
new file mode 100644
index 00000000..f7df0869
--- /dev/null
+++ b/kgeography/data/flags/moldova.png
Binary files differ
diff --git a/kgeography/data/flags/mongolia.png b/kgeography/data/flags/mongolia.png
new file mode 100644
index 00000000..b6bcbd1a
--- /dev/null
+++ b/kgeography/data/flags/mongolia.png
Binary files differ
diff --git a/kgeography/data/flags/montenegro.png b/kgeography/data/flags/montenegro.png
new file mode 100644
index 00000000..efb89c40
--- /dev/null
+++ b/kgeography/data/flags/montenegro.png
Binary files differ
diff --git a/kgeography/data/flags/morocco.png b/kgeography/data/flags/morocco.png
new file mode 100644
index 00000000..1baf27a9
--- /dev/null
+++ b/kgeography/data/flags/morocco.png
Binary files differ
diff --git a/kgeography/data/flags/mozambique.png b/kgeography/data/flags/mozambique.png
new file mode 100644
index 00000000..0660b042
--- /dev/null
+++ b/kgeography/data/flags/mozambique.png
Binary files differ
diff --git a/kgeography/data/flags/myanmar.png b/kgeography/data/flags/myanmar.png
new file mode 100644
index 00000000..7720261e
--- /dev/null
+++ b/kgeography/data/flags/myanmar.png
Binary files differ
diff --git a/kgeography/data/flags/namibia.png b/kgeography/data/flags/namibia.png
new file mode 100644
index 00000000..7c8f30d0
--- /dev/null
+++ b/kgeography/data/flags/namibia.png
Binary files differ
diff --git a/kgeography/data/flags/nepal.png b/kgeography/data/flags/nepal.png
new file mode 100644
index 00000000..a166f6c2
--- /dev/null
+++ b/kgeography/data/flags/nepal.png
Binary files differ
diff --git a/kgeography/data/flags/netherlands.png b/kgeography/data/flags/netherlands.png
new file mode 100644
index 00000000..e69b002c
--- /dev/null
+++ b/kgeography/data/flags/netherlands.png
Binary files differ
diff --git a/kgeography/data/flags/newbrunswick.png b/kgeography/data/flags/newbrunswick.png
new file mode 100644
index 00000000..ddaa496b
--- /dev/null
+++ b/kgeography/data/flags/newbrunswick.png
Binary files differ
diff --git a/kgeography/data/flags/newfoundland.png b/kgeography/data/flags/newfoundland.png
new file mode 100644
index 00000000..f1997220
--- /dev/null
+++ b/kgeography/data/flags/newfoundland.png
Binary files differ
diff --git a/kgeography/data/flags/nicaragua.png b/kgeography/data/flags/nicaragua.png
new file mode 100644
index 00000000..740739a3
--- /dev/null
+++ b/kgeography/data/flags/nicaragua.png
Binary files differ
diff --git a/kgeography/data/flags/niger.png b/kgeography/data/flags/niger.png
new file mode 100644
index 00000000..6454c214
--- /dev/null
+++ b/kgeography/data/flags/niger.png
Binary files differ
diff --git a/kgeography/data/flags/nigeria.png b/kgeography/data/flags/nigeria.png
new file mode 100644
index 00000000..968549ce
--- /dev/null
+++ b/kgeography/data/flags/nigeria.png
Binary files differ
diff --git a/kgeography/data/flags/nkorea.png b/kgeography/data/flags/nkorea.png
new file mode 100644
index 00000000..c818e02a
--- /dev/null
+++ b/kgeography/data/flags/nkorea.png
Binary files differ
diff --git a/kgeography/data/flags/north_rhine_westphalia.png b/kgeography/data/flags/north_rhine_westphalia.png
new file mode 100644
index 00000000..b928d1ea
--- /dev/null
+++ b/kgeography/data/flags/north_rhine_westphalia.png
Binary files differ
diff --git a/kgeography/data/flags/norway.png b/kgeography/data/flags/norway.png
new file mode 100644
index 00000000..4914b1ee
--- /dev/null
+++ b/kgeography/data/flags/norway.png
Binary files differ
diff --git a/kgeography/data/flags/novascotia.png b/kgeography/data/flags/novascotia.png
new file mode 100644
index 00000000..f38092f9
--- /dev/null
+++ b/kgeography/data/flags/novascotia.png
Binary files differ
diff --git a/kgeography/data/flags/nunavut.png b/kgeography/data/flags/nunavut.png
new file mode 100644
index 00000000..b28571aa
--- /dev/null
+++ b/kgeography/data/flags/nunavut.png
Binary files differ
diff --git a/kgeography/data/flags/nwterritories.png b/kgeography/data/flags/nwterritories.png
new file mode 100644
index 00000000..7a09c985
--- /dev/null
+++ b/kgeography/data/flags/nwterritories.png
Binary files differ
diff --git a/kgeography/data/flags/oman.png b/kgeography/data/flags/oman.png
new file mode 100644
index 00000000..a96b0447
--- /dev/null
+++ b/kgeography/data/flags/oman.png
Binary files differ
diff --git a/kgeography/data/flags/ontario.png b/kgeography/data/flags/ontario.png
new file mode 100644
index 00000000..a870df5e
--- /dev/null
+++ b/kgeography/data/flags/ontario.png
Binary files differ
diff --git a/kgeography/data/flags/pakistan.png b/kgeography/data/flags/pakistan.png
new file mode 100644
index 00000000..4c83eb36
--- /dev/null
+++ b/kgeography/data/flags/pakistan.png
Binary files differ
diff --git a/kgeography/data/flags/panama.png b/kgeography/data/flags/panama.png
new file mode 100644
index 00000000..768c19b2
--- /dev/null
+++ b/kgeography/data/flags/panama.png
Binary files differ
diff --git a/kgeography/data/flags/papua_new_guinea.png b/kgeography/data/flags/papua_new_guinea.png
new file mode 100644
index 00000000..a6f88924
--- /dev/null
+++ b/kgeography/data/flags/papua_new_guinea.png
Binary files differ
diff --git a/kgeography/data/flags/paraguay.png b/kgeography/data/flags/paraguay.png
new file mode 100644
index 00000000..d9353ae0
--- /dev/null
+++ b/kgeography/data/flags/paraguay.png
Binary files differ
diff --git a/kgeography/data/flags/pei.png b/kgeography/data/flags/pei.png
new file mode 100644
index 00000000..f2f48c0f
--- /dev/null
+++ b/kgeography/data/flags/pei.png
Binary files differ
diff --git a/kgeography/data/flags/peru.png b/kgeography/data/flags/peru.png
new file mode 100644
index 00000000..0a8df2e6
--- /dev/null
+++ b/kgeography/data/flags/peru.png
Binary files differ
diff --git a/kgeography/data/flags/philippines.png b/kgeography/data/flags/philippines.png
new file mode 100644
index 00000000..bd560c13
--- /dev/null
+++ b/kgeography/data/flags/philippines.png
Binary files differ
diff --git a/kgeography/data/flags/poland.png b/kgeography/data/flags/poland.png
new file mode 100644
index 00000000..668c2319
--- /dev/null
+++ b/kgeography/data/flags/poland.png
Binary files differ
diff --git a/kgeography/data/flags/portugal.png b/kgeography/data/flags/portugal.png
new file mode 100644
index 00000000..ee5252e9
--- /dev/null
+++ b/kgeography/data/flags/portugal.png
Binary files differ
diff --git a/kgeography/data/flags/qatar.png b/kgeography/data/flags/qatar.png
new file mode 100644
index 00000000..1070a775
--- /dev/null
+++ b/kgeography/data/flags/qatar.png
Binary files differ
diff --git a/kgeography/data/flags/quebec.png b/kgeography/data/flags/quebec.png
new file mode 100644
index 00000000..10b34487
--- /dev/null
+++ b/kgeography/data/flags/quebec.png
Binary files differ
diff --git a/kgeography/data/flags/rhineland_palatinate.png b/kgeography/data/flags/rhineland_palatinate.png
new file mode 100644
index 00000000..3f1bcaa3
--- /dev/null
+++ b/kgeography/data/flags/rhineland_palatinate.png
Binary files differ
diff --git a/kgeography/data/flags/romania.png b/kgeography/data/flags/romania.png
new file mode 100644
index 00000000..16812523
--- /dev/null
+++ b/kgeography/data/flags/romania.png
Binary files differ
diff --git a/kgeography/data/flags/russia.png b/kgeography/data/flags/russia.png
new file mode 100644
index 00000000..76651f1b
--- /dev/null
+++ b/kgeography/data/flags/russia.png
Binary files differ
diff --git a/kgeography/data/flags/rwanda.png b/kgeography/data/flags/rwanda.png
new file mode 100644
index 00000000..ad9732e1
--- /dev/null
+++ b/kgeography/data/flags/rwanda.png
Binary files differ
diff --git a/kgeography/data/flags/saarland.png b/kgeography/data/flags/saarland.png
new file mode 100644
index 00000000..3beb9c2e
--- /dev/null
+++ b/kgeography/data/flags/saarland.png
Binary files differ
diff --git a/kgeography/data/flags/san_marino.png b/kgeography/data/flags/san_marino.png
new file mode 100644
index 00000000..49badb27
--- /dev/null
+++ b/kgeography/data/flags/san_marino.png
Binary files differ
diff --git a/kgeography/data/flags/saskatchewan.png b/kgeography/data/flags/saskatchewan.png
new file mode 100644
index 00000000..29db4485
--- /dev/null
+++ b/kgeography/data/flags/saskatchewan.png
Binary files differ
diff --git a/kgeography/data/flags/saudiarabia.png b/kgeography/data/flags/saudiarabia.png
new file mode 100644
index 00000000..3bfce36c
--- /dev/null
+++ b/kgeography/data/flags/saudiarabia.png
Binary files differ
diff --git a/kgeography/data/flags/saxony.png b/kgeography/data/flags/saxony.png
new file mode 100644
index 00000000..d6064abf
--- /dev/null
+++ b/kgeography/data/flags/saxony.png
Binary files differ
diff --git a/kgeography/data/flags/saxony_anhalt.png b/kgeography/data/flags/saxony_anhalt.png
new file mode 100644
index 00000000..1be64b9c
--- /dev/null
+++ b/kgeography/data/flags/saxony_anhalt.png
Binary files differ
diff --git a/kgeography/data/flags/schleswig_holstein.png b/kgeography/data/flags/schleswig_holstein.png
new file mode 100644
index 00000000..c7c7b873
--- /dev/null
+++ b/kgeography/data/flags/schleswig_holstein.png
Binary files differ
diff --git a/kgeography/data/flags/senegal.png b/kgeography/data/flags/senegal.png
new file mode 100644
index 00000000..c2e80bef
--- /dev/null
+++ b/kgeography/data/flags/senegal.png
Binary files differ
diff --git a/kgeography/data/flags/serbia.png b/kgeography/data/flags/serbia.png
new file mode 100644
index 00000000..02ceb56d
--- /dev/null
+++ b/kgeography/data/flags/serbia.png
Binary files differ
diff --git a/kgeography/data/flags/sierra_leone.png b/kgeography/data/flags/sierra_leone.png
new file mode 100644
index 00000000..be1138a7
--- /dev/null
+++ b/kgeography/data/flags/sierra_leone.png
Binary files differ
diff --git a/kgeography/data/flags/singapore.png b/kgeography/data/flags/singapore.png
new file mode 100644
index 00000000..eb3ee5fa
--- /dev/null
+++ b/kgeography/data/flags/singapore.png
Binary files differ
diff --git a/kgeography/data/flags/skorea.png b/kgeography/data/flags/skorea.png
new file mode 100644
index 00000000..02443cad
--- /dev/null
+++ b/kgeography/data/flags/skorea.png
Binary files differ
diff --git a/kgeography/data/flags/slovakia.png b/kgeography/data/flags/slovakia.png
new file mode 100644
index 00000000..c5b561f5
--- /dev/null
+++ b/kgeography/data/flags/slovakia.png
Binary files differ
diff --git a/kgeography/data/flags/slovenia.png b/kgeography/data/flags/slovenia.png
new file mode 100644
index 00000000..50466277
--- /dev/null
+++ b/kgeography/data/flags/slovenia.png
Binary files differ
diff --git a/kgeography/data/flags/somalia.png b/kgeography/data/flags/somalia.png
new file mode 100644
index 00000000..43e54004
--- /dev/null
+++ b/kgeography/data/flags/somalia.png
Binary files differ
diff --git a/kgeography/data/flags/southafrica.png b/kgeography/data/flags/southafrica.png
new file mode 100644
index 00000000..88af1179
--- /dev/null
+++ b/kgeography/data/flags/southafrica.png
Binary files differ
diff --git a/kgeography/data/flags/spain.png b/kgeography/data/flags/spain.png
new file mode 100644
index 00000000..44b30bfd
--- /dev/null
+++ b/kgeography/data/flags/spain.png
Binary files differ
diff --git a/kgeography/data/flags/sudan.png b/kgeography/data/flags/sudan.png
new file mode 100644
index 00000000..449fdbd2
--- /dev/null
+++ b/kgeography/data/flags/sudan.png
Binary files differ
diff --git a/kgeography/data/flags/suriname.png b/kgeography/data/flags/suriname.png
new file mode 100644
index 00000000..2409946e
--- /dev/null
+++ b/kgeography/data/flags/suriname.png
Binary files differ
diff --git a/kgeography/data/flags/svg/README b/kgeography/data/flags/svg/README
new file mode 100644
index 00000000..9597865e
--- /dev/null
+++ b/kgeography/data/flags/svg/README
@@ -0,0 +1,3 @@
+These flags have been taken from sodipodi flags collection
+http://www.sodipodi.com/index.php3?section=clipart/flags
+and are licensed under the Creative Commons Public Domain license.
diff --git a/kgeography/data/flags/svg/albania.svgz b/kgeography/data/flags/svg/albania.svgz
new file mode 100644
index 00000000..28215de5
--- /dev/null
+++ b/kgeography/data/flags/svg/albania.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/algeria.svgz b/kgeography/data/flags/svg/algeria.svgz
new file mode 100644
index 00000000..99ca17bd
--- /dev/null
+++ b/kgeography/data/flags/svg/algeria.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/angola.svgz b/kgeography/data/flags/svg/angola.svgz
new file mode 100644
index 00000000..bd0300bf
--- /dev/null
+++ b/kgeography/data/flags/svg/angola.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/antigua.svgz b/kgeography/data/flags/svg/antigua.svgz
new file mode 100644
index 00000000..c514c168
--- /dev/null
+++ b/kgeography/data/flags/svg/antigua.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/argentina.svgz b/kgeography/data/flags/svg/argentina.svgz
new file mode 100644
index 00000000..cd3bca29
--- /dev/null
+++ b/kgeography/data/flags/svg/argentina.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/austria.svgz b/kgeography/data/flags/svg/austria.svgz
new file mode 100644
index 00000000..33eea3d5
--- /dev/null
+++ b/kgeography/data/flags/svg/austria.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/bahamas.svgz b/kgeography/data/flags/svg/bahamas.svgz
new file mode 100644
index 00000000..b9395e52
--- /dev/null
+++ b/kgeography/data/flags/svg/bahamas.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/barbados.svgz b/kgeography/data/flags/svg/barbados.svgz
new file mode 100644
index 00000000..2167bd30
--- /dev/null
+++ b/kgeography/data/flags/svg/barbados.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/belarus.svgz b/kgeography/data/flags/svg/belarus.svgz
new file mode 100644
index 00000000..3dcb65ec
--- /dev/null
+++ b/kgeography/data/flags/svg/belarus.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/belgium.svgz b/kgeography/data/flags/svg/belgium.svgz
new file mode 100644
index 00000000..32f42293
--- /dev/null
+++ b/kgeography/data/flags/svg/belgium.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/belize.svgz b/kgeography/data/flags/svg/belize.svgz
new file mode 100644
index 00000000..670d090e
--- /dev/null
+++ b/kgeography/data/flags/svg/belize.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/benin.svgz b/kgeography/data/flags/svg/benin.svgz
new file mode 100644
index 00000000..e18ad546
--- /dev/null
+++ b/kgeography/data/flags/svg/benin.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/bolivia.svgz b/kgeography/data/flags/svg/bolivia.svgz
new file mode 100644
index 00000000..2a19029b
--- /dev/null
+++ b/kgeography/data/flags/svg/bolivia.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/bosnia_herzegovina.svgz b/kgeography/data/flags/svg/bosnia_herzegovina.svgz
new file mode 100644
index 00000000..3b6e28b9
--- /dev/null
+++ b/kgeography/data/flags/svg/bosnia_herzegovina.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/botswana.svgz b/kgeography/data/flags/svg/botswana.svgz
new file mode 100644
index 00000000..2f69343b
--- /dev/null
+++ b/kgeography/data/flags/svg/botswana.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/brazil.svgz b/kgeography/data/flags/svg/brazil.svgz
new file mode 100644
index 00000000..0ebf8371
--- /dev/null
+++ b/kgeography/data/flags/svg/brazil.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/bulgaria.svgz b/kgeography/data/flags/svg/bulgaria.svgz
new file mode 100644
index 00000000..5ceb7e7f
--- /dev/null
+++ b/kgeography/data/flags/svg/bulgaria.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/burkina.svgz b/kgeography/data/flags/svg/burkina.svgz
new file mode 100644
index 00000000..b87c209a
--- /dev/null
+++ b/kgeography/data/flags/svg/burkina.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/burundi.svgz b/kgeography/data/flags/svg/burundi.svgz
new file mode 100644
index 00000000..c2a3b7e7
--- /dev/null
+++ b/kgeography/data/flags/svg/burundi.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/cameroon.svgz b/kgeography/data/flags/svg/cameroon.svgz
new file mode 100644
index 00000000..b572b177
--- /dev/null
+++ b/kgeography/data/flags/svg/cameroon.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/canada.svgz b/kgeography/data/flags/svg/canada.svgz
new file mode 100644
index 00000000..650bea92
--- /dev/null
+++ b/kgeography/data/flags/svg/canada.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/central_african_republic.svgz b/kgeography/data/flags/svg/central_african_republic.svgz
new file mode 100644
index 00000000..fe63c9c3
--- /dev/null
+++ b/kgeography/data/flags/svg/central_african_republic.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/chad.svgz b/kgeography/data/flags/svg/chad.svgz
new file mode 100644
index 00000000..25f92728
--- /dev/null
+++ b/kgeography/data/flags/svg/chad.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/chile.svgz b/kgeography/data/flags/svg/chile.svgz
new file mode 100644
index 00000000..0d72f9f7
--- /dev/null
+++ b/kgeography/data/flags/svg/chile.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/colombia.svgz b/kgeography/data/flags/svg/colombia.svgz
new file mode 100644
index 00000000..3e48e268
--- /dev/null
+++ b/kgeography/data/flags/svg/colombia.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/congo_brazzaville.svgz b/kgeography/data/flags/svg/congo_brazzaville.svgz
new file mode 100644
index 00000000..0d6685c4
--- /dev/null
+++ b/kgeography/data/flags/svg/congo_brazzaville.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/congo_kinshasa.svgz b/kgeography/data/flags/svg/congo_kinshasa.svgz
new file mode 100644
index 00000000..941d2a58
--- /dev/null
+++ b/kgeography/data/flags/svg/congo_kinshasa.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/costa_rica.svgz b/kgeography/data/flags/svg/costa_rica.svgz
new file mode 100644
index 00000000..74e0437e
--- /dev/null
+++ b/kgeography/data/flags/svg/costa_rica.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/cote_divoire.svgz b/kgeography/data/flags/svg/cote_divoire.svgz
new file mode 100644
index 00000000..15529295
--- /dev/null
+++ b/kgeography/data/flags/svg/cote_divoire.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/croatia.svgz b/kgeography/data/flags/svg/croatia.svgz
new file mode 100644
index 00000000..e2a13121
--- /dev/null
+++ b/kgeography/data/flags/svg/croatia.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/cuba_3x2.svgz b/kgeography/data/flags/svg/cuba_3x2.svgz
new file mode 100644
index 00000000..90c189cb
--- /dev/null
+++ b/kgeography/data/flags/svg/cuba_3x2.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/cyprus_4x3.svgz b/kgeography/data/flags/svg/cyprus_4x3.svgz
new file mode 100644
index 00000000..6fb08fcb
--- /dev/null
+++ b/kgeography/data/flags/svg/cyprus_4x3.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/czech.svgz b/kgeography/data/flags/svg/czech.svgz
new file mode 100644
index 00000000..f6c9b863
--- /dev/null
+++ b/kgeography/data/flags/svg/czech.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/denmark.svgz b/kgeography/data/flags/svg/denmark.svgz
new file mode 100644
index 00000000..f6313c04
--- /dev/null
+++ b/kgeography/data/flags/svg/denmark.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/djibouti.svgz b/kgeography/data/flags/svg/djibouti.svgz
new file mode 100644
index 00000000..6a04315e
--- /dev/null
+++ b/kgeography/data/flags/svg/djibouti.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/dominica.svgz b/kgeography/data/flags/svg/dominica.svgz
new file mode 100644
index 00000000..6ef67931
--- /dev/null
+++ b/kgeography/data/flags/svg/dominica.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/dominicanrepublic.svgz b/kgeography/data/flags/svg/dominicanrepublic.svgz
new file mode 100644
index 00000000..f03acd04
--- /dev/null
+++ b/kgeography/data/flags/svg/dominicanrepublic.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/ecuador.svgz b/kgeography/data/flags/svg/ecuador.svgz
new file mode 100644
index 00000000..98aa235c
--- /dev/null
+++ b/kgeography/data/flags/svg/ecuador.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/egypt.svgz b/kgeography/data/flags/svg/egypt.svgz
new file mode 100644
index 00000000..5bc02472
--- /dev/null
+++ b/kgeography/data/flags/svg/egypt.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/el_salvador.svgz b/kgeography/data/flags/svg/el_salvador.svgz
new file mode 100644
index 00000000..c1b139de
--- /dev/null
+++ b/kgeography/data/flags/svg/el_salvador.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/equatorial_guinea.svgz b/kgeography/data/flags/svg/equatorial_guinea.svgz
new file mode 100644
index 00000000..a1d10b94
--- /dev/null
+++ b/kgeography/data/flags/svg/equatorial_guinea.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/eritrea.svgz b/kgeography/data/flags/svg/eritrea.svgz
new file mode 100644
index 00000000..938395a9
--- /dev/null
+++ b/kgeography/data/flags/svg/eritrea.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/estonia.svgz b/kgeography/data/flags/svg/estonia.svgz
new file mode 100644
index 00000000..b9a5d033
--- /dev/null
+++ b/kgeography/data/flags/svg/estonia.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/ethiopia.svgz b/kgeography/data/flags/svg/ethiopia.svgz
new file mode 100644
index 00000000..0654a8bb
--- /dev/null
+++ b/kgeography/data/flags/svg/ethiopia.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/finland.svgz b/kgeography/data/flags/svg/finland.svgz
new file mode 100644
index 00000000..4c429d8d
--- /dev/null
+++ b/kgeography/data/flags/svg/finland.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/france.svgz b/kgeography/data/flags/svg/france.svgz
new file mode 100644
index 00000000..147635e2
--- /dev/null
+++ b/kgeography/data/flags/svg/france.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/gabon.svgz b/kgeography/data/flags/svg/gabon.svgz
new file mode 100644
index 00000000..320157a8
--- /dev/null
+++ b/kgeography/data/flags/svg/gabon.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/gambia.svgz b/kgeography/data/flags/svg/gambia.svgz
new file mode 100644
index 00000000..0bc30ff8
--- /dev/null
+++ b/kgeography/data/flags/svg/gambia.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/germany.svgz b/kgeography/data/flags/svg/germany.svgz
new file mode 100644
index 00000000..d7eb4e78
--- /dev/null
+++ b/kgeography/data/flags/svg/germany.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/ghana.svgz b/kgeography/data/flags/svg/ghana.svgz
new file mode 100644
index 00000000..ed39a084
--- /dev/null
+++ b/kgeography/data/flags/svg/ghana.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/greece.svgz b/kgeography/data/flags/svg/greece.svgz
new file mode 100644
index 00000000..027c8021
--- /dev/null
+++ b/kgeography/data/flags/svg/greece.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/guatemala.svgz b/kgeography/data/flags/svg/guatemala.svgz
new file mode 100644
index 00000000..7789c609
--- /dev/null
+++ b/kgeography/data/flags/svg/guatemala.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/guinea.svgz b/kgeography/data/flags/svg/guinea.svgz
new file mode 100644
index 00000000..00373f96
--- /dev/null
+++ b/kgeography/data/flags/svg/guinea.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/guineabissau.svgz b/kgeography/data/flags/svg/guineabissau.svgz
new file mode 100644
index 00000000..8043b7ff
--- /dev/null
+++ b/kgeography/data/flags/svg/guineabissau.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/guyana.svgz b/kgeography/data/flags/svg/guyana.svgz
new file mode 100644
index 00000000..1ac8827d
--- /dev/null
+++ b/kgeography/data/flags/svg/guyana.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/haiti.svgz b/kgeography/data/flags/svg/haiti.svgz
new file mode 100644
index 00000000..242cc08c
--- /dev/null
+++ b/kgeography/data/flags/svg/haiti.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/honduras.svgz b/kgeography/data/flags/svg/honduras.svgz
new file mode 100644
index 00000000..279517f5
--- /dev/null
+++ b/kgeography/data/flags/svg/honduras.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/hungary.svgz b/kgeography/data/flags/svg/hungary.svgz
new file mode 100644
index 00000000..d580639e
--- /dev/null
+++ b/kgeography/data/flags/svg/hungary.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/iceland.svgz b/kgeography/data/flags/svg/iceland.svgz
new file mode 100644
index 00000000..3213361f
--- /dev/null
+++ b/kgeography/data/flags/svg/iceland.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/iran.svgz b/kgeography/data/flags/svg/iran.svgz
new file mode 100644
index 00000000..8b1e19a9
--- /dev/null
+++ b/kgeography/data/flags/svg/iran.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/iraq.svgz b/kgeography/data/flags/svg/iraq.svgz
new file mode 100644
index 00000000..4813096d
--- /dev/null
+++ b/kgeography/data/flags/svg/iraq.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/ireland.svgz b/kgeography/data/flags/svg/ireland.svgz
new file mode 100644
index 00000000..93787b8e
--- /dev/null
+++ b/kgeography/data/flags/svg/ireland.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/israel.svgz b/kgeography/data/flags/svg/israel.svgz
new file mode 100644
index 00000000..f47c6e95
--- /dev/null
+++ b/kgeography/data/flags/svg/israel.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/italy.svgz b/kgeography/data/flags/svg/italy.svgz
new file mode 100644
index 00000000..1a0eefe5
--- /dev/null
+++ b/kgeography/data/flags/svg/italy.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/jamaica.svgz b/kgeography/data/flags/svg/jamaica.svgz
new file mode 100644
index 00000000..0857762d
--- /dev/null
+++ b/kgeography/data/flags/svg/jamaica.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/jordan.svgz b/kgeography/data/flags/svg/jordan.svgz
new file mode 100644
index 00000000..bcd4fadf
--- /dev/null
+++ b/kgeography/data/flags/svg/jordan.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/kenya.svgz b/kgeography/data/flags/svg/kenya.svgz
new file mode 100644
index 00000000..22ad94ff
--- /dev/null
+++ b/kgeography/data/flags/svg/kenya.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/kuwait.svgz b/kgeography/data/flags/svg/kuwait.svgz
new file mode 100644
index 00000000..58f2da76
--- /dev/null
+++ b/kgeography/data/flags/svg/kuwait.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/latvia.svgz b/kgeography/data/flags/svg/latvia.svgz
new file mode 100644
index 00000000..db1bbece
--- /dev/null
+++ b/kgeography/data/flags/svg/latvia.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/lebanon.svgz b/kgeography/data/flags/svg/lebanon.svgz
new file mode 100644
index 00000000..65c09dba
--- /dev/null
+++ b/kgeography/data/flags/svg/lebanon.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/lesotho.svgz b/kgeography/data/flags/svg/lesotho.svgz
new file mode 100644
index 00000000..0a5248b2
--- /dev/null
+++ b/kgeography/data/flags/svg/lesotho.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/liberia.svgz b/kgeography/data/flags/svg/liberia.svgz
new file mode 100644
index 00000000..f0550c55
--- /dev/null
+++ b/kgeography/data/flags/svg/liberia.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/libya.svgz b/kgeography/data/flags/svg/libya.svgz
new file mode 100644
index 00000000..e23e03ce
--- /dev/null
+++ b/kgeography/data/flags/svg/libya.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/lithuania.svgz b/kgeography/data/flags/svg/lithuania.svgz
new file mode 100644
index 00000000..b6049f70
--- /dev/null
+++ b/kgeography/data/flags/svg/lithuania.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/luxembourg.svgz b/kgeography/data/flags/svg/luxembourg.svgz
new file mode 100644
index 00000000..0c307bf0
--- /dev/null
+++ b/kgeography/data/flags/svg/luxembourg.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/macedonia.svgz b/kgeography/data/flags/svg/macedonia.svgz
new file mode 100644
index 00000000..a86ac024
--- /dev/null
+++ b/kgeography/data/flags/svg/macedonia.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/madagascar.svgz b/kgeography/data/flags/svg/madagascar.svgz
new file mode 100644
index 00000000..18b8d33d
--- /dev/null
+++ b/kgeography/data/flags/svg/madagascar.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/malawi.svgz b/kgeography/data/flags/svg/malawi.svgz
new file mode 100644
index 00000000..65f21ef7
--- /dev/null
+++ b/kgeography/data/flags/svg/malawi.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/mali.svgz b/kgeography/data/flags/svg/mali.svgz
new file mode 100644
index 00000000..8abc0333
--- /dev/null
+++ b/kgeography/data/flags/svg/mali.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/mauritania.svgz b/kgeography/data/flags/svg/mauritania.svgz
new file mode 100644
index 00000000..4e86bb29
--- /dev/null
+++ b/kgeography/data/flags/svg/mauritania.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/mexico.svgz b/kgeography/data/flags/svg/mexico.svgz
new file mode 100644
index 00000000..29c2cbda
--- /dev/null
+++ b/kgeography/data/flags/svg/mexico.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/moldova.svgz b/kgeography/data/flags/svg/moldova.svgz
new file mode 100644
index 00000000..045e7821
--- /dev/null
+++ b/kgeography/data/flags/svg/moldova.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/morocco.svgz b/kgeography/data/flags/svg/morocco.svgz
new file mode 100644
index 00000000..0d1d9439
--- /dev/null
+++ b/kgeography/data/flags/svg/morocco.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/mozambique.svgz b/kgeography/data/flags/svg/mozambique.svgz
new file mode 100644
index 00000000..d2dafc80
--- /dev/null
+++ b/kgeography/data/flags/svg/mozambique.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/namibia.svgz b/kgeography/data/flags/svg/namibia.svgz
new file mode 100644
index 00000000..fe8f7fa5
--- /dev/null
+++ b/kgeography/data/flags/svg/namibia.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/netherlands.svgz b/kgeography/data/flags/svg/netherlands.svgz
new file mode 100644
index 00000000..8e6367a8
--- /dev/null
+++ b/kgeography/data/flags/svg/netherlands.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/nicaragua.svgz b/kgeography/data/flags/svg/nicaragua.svgz
new file mode 100644
index 00000000..0d56af6d
--- /dev/null
+++ b/kgeography/data/flags/svg/nicaragua.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/niger.svgz b/kgeography/data/flags/svg/niger.svgz
new file mode 100644
index 00000000..238ace76
--- /dev/null
+++ b/kgeography/data/flags/svg/niger.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/nigeria.svgz b/kgeography/data/flags/svg/nigeria.svgz
new file mode 100644
index 00000000..6608fb1c
--- /dev/null
+++ b/kgeography/data/flags/svg/nigeria.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/norway.svgz b/kgeography/data/flags/svg/norway.svgz
new file mode 100644
index 00000000..f3e8ea6e
--- /dev/null
+++ b/kgeography/data/flags/svg/norway.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/oman.svgz b/kgeography/data/flags/svg/oman.svgz
new file mode 100644
index 00000000..de00170e
--- /dev/null
+++ b/kgeography/data/flags/svg/oman.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/panama.svgz b/kgeography/data/flags/svg/panama.svgz
new file mode 100644
index 00000000..591a4579
--- /dev/null
+++ b/kgeography/data/flags/svg/panama.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/paraguay.svgz b/kgeography/data/flags/svg/paraguay.svgz
new file mode 100644
index 00000000..5fef00ee
--- /dev/null
+++ b/kgeography/data/flags/svg/paraguay.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/peru.svgz b/kgeography/data/flags/svg/peru.svgz
new file mode 100644
index 00000000..9da21775
--- /dev/null
+++ b/kgeography/data/flags/svg/peru.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/poland.svgz b/kgeography/data/flags/svg/poland.svgz
new file mode 100644
index 00000000..e73d2f8a
--- /dev/null
+++ b/kgeography/data/flags/svg/poland.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/portugal.svgz b/kgeography/data/flags/svg/portugal.svgz
new file mode 100644
index 00000000..b6906e02
--- /dev/null
+++ b/kgeography/data/flags/svg/portugal.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/qatar.svgz b/kgeography/data/flags/svg/qatar.svgz
new file mode 100644
index 00000000..3061d4da
--- /dev/null
+++ b/kgeography/data/flags/svg/qatar.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/romania.svgz b/kgeography/data/flags/svg/romania.svgz
new file mode 100644
index 00000000..9657e9e6
--- /dev/null
+++ b/kgeography/data/flags/svg/romania.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/russia.svgz b/kgeography/data/flags/svg/russia.svgz
new file mode 100644
index 00000000..cb559fae
--- /dev/null
+++ b/kgeography/data/flags/svg/russia.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/rwanda.svgz b/kgeography/data/flags/svg/rwanda.svgz
new file mode 100644
index 00000000..2e93e5dd
--- /dev/null
+++ b/kgeography/data/flags/svg/rwanda.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/san_marino.svgz b/kgeography/data/flags/svg/san_marino.svgz
new file mode 100644
index 00000000..f2167757
--- /dev/null
+++ b/kgeography/data/flags/svg/san_marino.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/saudiarabia.svgz b/kgeography/data/flags/svg/saudiarabia.svgz
new file mode 100644
index 00000000..d220335e
--- /dev/null
+++ b/kgeography/data/flags/svg/saudiarabia.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/senegal.svgz b/kgeography/data/flags/svg/senegal.svgz
new file mode 100644
index 00000000..3ea9ae4e
--- /dev/null
+++ b/kgeography/data/flags/svg/senegal.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/serbia.svgz b/kgeography/data/flags/svg/serbia.svgz
new file mode 100644
index 00000000..626ec85d
--- /dev/null
+++ b/kgeography/data/flags/svg/serbia.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/sierra_leone.svgz b/kgeography/data/flags/svg/sierra_leone.svgz
new file mode 100644
index 00000000..15e28872
--- /dev/null
+++ b/kgeography/data/flags/svg/sierra_leone.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/slovakia.svgz b/kgeography/data/flags/svg/slovakia.svgz
new file mode 100644
index 00000000..c84f4157
--- /dev/null
+++ b/kgeography/data/flags/svg/slovakia.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/slovenia.svgz b/kgeography/data/flags/svg/slovenia.svgz
new file mode 100644
index 00000000..74199448
--- /dev/null
+++ b/kgeography/data/flags/svg/slovenia.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/somalia.svgz b/kgeography/data/flags/svg/somalia.svgz
new file mode 100644
index 00000000..514b363a
--- /dev/null
+++ b/kgeography/data/flags/svg/somalia.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/southafrica.svgz b/kgeography/data/flags/svg/southafrica.svgz
new file mode 100644
index 00000000..f8edf9e5
--- /dev/null
+++ b/kgeography/data/flags/svg/southafrica.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/spain.svgz b/kgeography/data/flags/svg/spain.svgz
new file mode 100644
index 00000000..e8ea4251
--- /dev/null
+++ b/kgeography/data/flags/svg/spain.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/sudan.svgz b/kgeography/data/flags/svg/sudan.svgz
new file mode 100644
index 00000000..5abf9148
--- /dev/null
+++ b/kgeography/data/flags/svg/sudan.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/suriname.svgz b/kgeography/data/flags/svg/suriname.svgz
new file mode 100644
index 00000000..af144855
--- /dev/null
+++ b/kgeography/data/flags/svg/suriname.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/swaziland.svgz b/kgeography/data/flags/svg/swaziland.svgz
new file mode 100644
index 00000000..50be2be4
--- /dev/null
+++ b/kgeography/data/flags/svg/swaziland.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/sweden.svgz b/kgeography/data/flags/svg/sweden.svgz
new file mode 100644
index 00000000..86498420
--- /dev/null
+++ b/kgeography/data/flags/svg/sweden.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/switzerland.svgz b/kgeography/data/flags/svg/switzerland.svgz
new file mode 100644
index 00000000..aacb4991
--- /dev/null
+++ b/kgeography/data/flags/svg/switzerland.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/syria.svgz b/kgeography/data/flags/svg/syria.svgz
new file mode 100644
index 00000000..056b84d1
--- /dev/null
+++ b/kgeography/data/flags/svg/syria.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/tanzania.svgz b/kgeography/data/flags/svg/tanzania.svgz
new file mode 100644
index 00000000..299faec0
--- /dev/null
+++ b/kgeography/data/flags/svg/tanzania.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/togo.svgz b/kgeography/data/flags/svg/togo.svgz
new file mode 100644
index 00000000..d95c7ce0
--- /dev/null
+++ b/kgeography/data/flags/svg/togo.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/trinidad_tobago.svgz b/kgeography/data/flags/svg/trinidad_tobago.svgz
new file mode 100644
index 00000000..f2f4ef77
--- /dev/null
+++ b/kgeography/data/flags/svg/trinidad_tobago.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/tunisia.svgz b/kgeography/data/flags/svg/tunisia.svgz
new file mode 100644
index 00000000..7e5d3cf0
--- /dev/null
+++ b/kgeography/data/flags/svg/tunisia.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/turkey.svgz b/kgeography/data/flags/svg/turkey.svgz
new file mode 100644
index 00000000..a72eedc8
--- /dev/null
+++ b/kgeography/data/flags/svg/turkey.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/turkmenistan.svgz b/kgeography/data/flags/svg/turkmenistan.svgz
new file mode 100644
index 00000000..36fe5277
--- /dev/null
+++ b/kgeography/data/flags/svg/turkmenistan.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/uganda.svgz b/kgeography/data/flags/svg/uganda.svgz
new file mode 100644
index 00000000..40ef20f1
--- /dev/null
+++ b/kgeography/data/flags/svg/uganda.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/uk.svgz b/kgeography/data/flags/svg/uk.svgz
new file mode 100644
index 00000000..a476bcf5
--- /dev/null
+++ b/kgeography/data/flags/svg/uk.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/ukraine.svgz b/kgeography/data/flags/svg/ukraine.svgz
new file mode 100644
index 00000000..10d92757
--- /dev/null
+++ b/kgeography/data/flags/svg/ukraine.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/uruguay.svgz b/kgeography/data/flags/svg/uruguay.svgz
new file mode 100644
index 00000000..16c64327
--- /dev/null
+++ b/kgeography/data/flags/svg/uruguay.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/usa.svgz b/kgeography/data/flags/svg/usa.svgz
new file mode 100644
index 00000000..c9237bf4
--- /dev/null
+++ b/kgeography/data/flags/svg/usa.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/venezuela.svgz b/kgeography/data/flags/svg/venezuela.svgz
new file mode 100644
index 00000000..5121f262
--- /dev/null
+++ b/kgeography/data/flags/svg/venezuela.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/western_sahara.svgz b/kgeography/data/flags/svg/western_sahara.svgz
new file mode 100644
index 00000000..f61c0b1e
--- /dev/null
+++ b/kgeography/data/flags/svg/western_sahara.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/yemen.svgz b/kgeography/data/flags/svg/yemen.svgz
new file mode 100644
index 00000000..487d189c
--- /dev/null
+++ b/kgeography/data/flags/svg/yemen.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/zambia.svgz b/kgeography/data/flags/svg/zambia.svgz
new file mode 100644
index 00000000..5cc6044f
--- /dev/null
+++ b/kgeography/data/flags/svg/zambia.svgz
Binary files differ
diff --git a/kgeography/data/flags/svg/zimbabwe.svgz b/kgeography/data/flags/svg/zimbabwe.svgz
new file mode 100644
index 00000000..c431659c
--- /dev/null
+++ b/kgeography/data/flags/svg/zimbabwe.svgz
Binary files differ
diff --git a/kgeography/data/flags/swaziland.png b/kgeography/data/flags/swaziland.png
new file mode 100644
index 00000000..758eb216
--- /dev/null
+++ b/kgeography/data/flags/swaziland.png
Binary files differ
diff --git a/kgeography/data/flags/sweden.png b/kgeography/data/flags/sweden.png
new file mode 100644
index 00000000..9e21cef0
--- /dev/null
+++ b/kgeography/data/flags/sweden.png
Binary files differ
diff --git a/kgeography/data/flags/switzerland.png b/kgeography/data/flags/switzerland.png
new file mode 100644
index 00000000..baf08560
--- /dev/null
+++ b/kgeography/data/flags/switzerland.png
Binary files differ
diff --git a/kgeography/data/flags/syria.png b/kgeography/data/flags/syria.png
new file mode 100644
index 00000000..2fb695c6
--- /dev/null
+++ b/kgeography/data/flags/syria.png
Binary files differ
diff --git a/kgeography/data/flags/taiwan.png b/kgeography/data/flags/taiwan.png
new file mode 100644
index 00000000..2d7b956a
--- /dev/null
+++ b/kgeography/data/flags/taiwan.png
Binary files differ
diff --git a/kgeography/data/flags/tajikistan.png b/kgeography/data/flags/tajikistan.png
new file mode 100644
index 00000000..72f98fb7
--- /dev/null
+++ b/kgeography/data/flags/tajikistan.png
Binary files differ
diff --git a/kgeography/data/flags/tanzania.png b/kgeography/data/flags/tanzania.png
new file mode 100644
index 00000000..4d08fe2a
--- /dev/null
+++ b/kgeography/data/flags/tanzania.png
Binary files differ
diff --git a/kgeography/data/flags/thailand.png b/kgeography/data/flags/thailand.png
new file mode 100644
index 00000000..a3ea689a
--- /dev/null
+++ b/kgeography/data/flags/thailand.png
Binary files differ
diff --git a/kgeography/data/flags/thuringia.png b/kgeography/data/flags/thuringia.png
new file mode 100644
index 00000000..f21ea06e
--- /dev/null
+++ b/kgeography/data/flags/thuringia.png
Binary files differ
diff --git a/kgeography/data/flags/togo.png b/kgeography/data/flags/togo.png
new file mode 100644
index 00000000..81e408e6
--- /dev/null
+++ b/kgeography/data/flags/togo.png
Binary files differ
diff --git a/kgeography/data/flags/tonga.png b/kgeography/data/flags/tonga.png
new file mode 100644
index 00000000..11c64392
--- /dev/null
+++ b/kgeography/data/flags/tonga.png
Binary files differ
diff --git a/kgeography/data/flags/trinidad_tobago.png b/kgeography/data/flags/trinidad_tobago.png
new file mode 100644
index 00000000..ce5ef235
--- /dev/null
+++ b/kgeography/data/flags/trinidad_tobago.png
Binary files differ
diff --git a/kgeography/data/flags/tunisia.png b/kgeography/data/flags/tunisia.png
new file mode 100644
index 00000000..1b36d103
--- /dev/null
+++ b/kgeography/data/flags/tunisia.png
Binary files differ
diff --git a/kgeography/data/flags/turkey.png b/kgeography/data/flags/turkey.png
new file mode 100644
index 00000000..2af1fc49
--- /dev/null
+++ b/kgeography/data/flags/turkey.png
Binary files differ
diff --git a/kgeography/data/flags/turkmenistan.png b/kgeography/data/flags/turkmenistan.png
new file mode 100644
index 00000000..455342e3
--- /dev/null
+++ b/kgeography/data/flags/turkmenistan.png
Binary files differ
diff --git a/kgeography/data/flags/uae.png b/kgeography/data/flags/uae.png
new file mode 100644
index 00000000..f6333db1
--- /dev/null
+++ b/kgeography/data/flags/uae.png
Binary files differ
diff --git a/kgeography/data/flags/uganda.png b/kgeography/data/flags/uganda.png
new file mode 100644
index 00000000..c5189d29
--- /dev/null
+++ b/kgeography/data/flags/uganda.png
Binary files differ
diff --git a/kgeography/data/flags/uk.png b/kgeography/data/flags/uk.png
new file mode 100644
index 00000000..c1b59b43
--- /dev/null
+++ b/kgeography/data/flags/uk.png
Binary files differ
diff --git a/kgeography/data/flags/ukraine.png b/kgeography/data/flags/ukraine.png
new file mode 100644
index 00000000..14c6e3a7
--- /dev/null
+++ b/kgeography/data/flags/ukraine.png
Binary files differ
diff --git a/kgeography/data/flags/uruguay.png b/kgeography/data/flags/uruguay.png
new file mode 100644
index 00000000..b2edcf7f
--- /dev/null
+++ b/kgeography/data/flags/uruguay.png
Binary files differ
diff --git a/kgeography/data/flags/usa.png b/kgeography/data/flags/usa.png
new file mode 100644
index 00000000..405c806f
--- /dev/null
+++ b/kgeography/data/flags/usa.png
Binary files differ
diff --git a/kgeography/data/flags/uzbekistan.png b/kgeography/data/flags/uzbekistan.png
new file mode 100644
index 00000000..67158c95
--- /dev/null
+++ b/kgeography/data/flags/uzbekistan.png
Binary files differ
diff --git a/kgeography/data/flags/venezuela.png b/kgeography/data/flags/venezuela.png
new file mode 100644
index 00000000..71b5a0b7
--- /dev/null
+++ b/kgeography/data/flags/venezuela.png
Binary files differ
diff --git a/kgeography/data/flags/vietnam.png b/kgeography/data/flags/vietnam.png
new file mode 100644
index 00000000..f900cae4
--- /dev/null
+++ b/kgeography/data/flags/vietnam.png
Binary files differ
diff --git a/kgeography/data/flags/western_sahara.png b/kgeography/data/flags/western_sahara.png
new file mode 100644
index 00000000..03e6cbd7
--- /dev/null
+++ b/kgeography/data/flags/western_sahara.png
Binary files differ
diff --git a/kgeography/data/flags/yemen.png b/kgeography/data/flags/yemen.png
new file mode 100644
index 00000000..ea2e3716
--- /dev/null
+++ b/kgeography/data/flags/yemen.png
Binary files differ
diff --git a/kgeography/data/flags/yukon.png b/kgeography/data/flags/yukon.png
new file mode 100644
index 00000000..71c08b9d
--- /dev/null
+++ b/kgeography/data/flags/yukon.png
Binary files differ
diff --git a/kgeography/data/flags/zambia.png b/kgeography/data/flags/zambia.png
new file mode 100644
index 00000000..dec5becc
--- /dev/null
+++ b/kgeography/data/flags/zambia.png
Binary files differ
diff --git a/kgeography/data/flags/zimbabwe.png b/kgeography/data/flags/zimbabwe.png
new file mode 100644
index 00000000..45ac8774
--- /dev/null
+++ b/kgeography/data/flags/zimbabwe.png
Binary files differ
diff --git a/kgeography/data/france.kgm b/kgeography/data/france.kgm
new file mode 100644
index 00000000..8e2274a9
--- /dev/null
+++ b/kgeography/data/france.kgm
@@ -0,0 +1,886 @@
+<map>
+ <mapFile>france.png</mapFile>
+ <name>France</name>
+ <division>
+ <name>Not France</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Frontier</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ain</name>
+ <capital>Bourg en Bresse</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Aisne</name>
+ <capital>Laon</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Allier</name>
+ <capital>Moulins</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Alpes de Haute-Provence</name>
+ <capital>Digne</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Hautes-Alpes</name>
+ <capital>Gap</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Alpes Maritimes</name>
+ <capital>Nice</capital>
+ <color>
+ <red>130</red>
+ <green>160</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ardèche</name>
+ <capital>Privas</capital>
+ <color>
+ <red>130</red>
+ <green>160</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ardennes</name>
+ <capital>Charleville-Mézières</capital>
+ <color>
+ <red>130</red>
+ <green>160</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ariège</name>
+ <capital>Foix</capital>
+ <color>
+ <red>130</red>
+ <green>160</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Aube</name>
+ <capital>Troyes</capital>
+ <color>
+ <red>130</red>
+ <green>160</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Aude</name>
+ <capital>Carcassonne</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Aveyron</name>
+ <capital>Rodez</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bouches-du-Rhône</name>
+ <capital>Marseille</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Calvados</name>
+ <capital>Caen</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Cantal</name>
+ <capital>Aurillac</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Charente</name>
+ <capital>Angoulème</capital>
+ <color>
+ <red>130</red>
+ <green>220</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Charente-Maritime</name>
+ <capital>La Rochelle</capital>
+ <color>
+ <red>130</red>
+ <green>220</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Cher</name>
+ <capital>Bourges</capital>
+ <color>
+ <red>130</red>
+ <green>220</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Corrèze</name>
+ <capital>Tulle</capital>
+ <color>
+ <red>130</red>
+ <green>220</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Corse du Sud</name>
+ <capital>Ajaccio</capital>
+ <color>
+ <red>130</red>
+ <green>220</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Haute-Corse</name>
+ <capital>Bastia</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Côte d'Or</name>
+ <capital>Dijon</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Côtes d'Armor</name>
+ <capital>Saint Brieuc</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Creuse</name>
+ <capital>Guéret</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Dordogne</name>
+ <capital>Périgueux</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Doubs</name>
+ <capital>Besançon</capital>
+ <color>
+ <red>160</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Drôme</name>
+ <capital>Valence</capital>
+ <color>
+ <red>160</red>
+ <green>130</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Eure</name>
+ <capital>Evreux</capital>
+ <color>
+ <red>160</red>
+ <green>130</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Eure et Loir</name>
+ <capital>Chartres</capital>
+ <color>
+ <red>160</red>
+ <green>130</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Finistère</name>
+ <capital>Quimper</capital>
+ <color>
+ <red>160</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Gard</name>
+ <capital>Nîmes</capital>
+ <color>
+ <red>160</red>
+ <green>160</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Haute-Garonne</name>
+ <capital>Toulouse</capital>
+ <color>
+ <red>160</red>
+ <green>160</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Gers</name>
+ <capital>Auch</capital>
+ <color>
+ <red>160</red>
+ <green>160</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Gironde</name>
+ <capital>Bordeaux</capital>
+ <color>
+ <red>160</red>
+ <green>160</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Hérault</name>
+ <capital>Montpellier</capital>
+ <color>
+ <red>160</red>
+ <green>160</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ille et Vilaine</name>
+ <capital>Rennes</capital>
+ <color>
+ <red>160</red>
+ <green>190</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Indre</name>
+ <capital>Châteauroux</capital>
+ <color>
+ <red>160</red>
+ <green>190</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Indre et Loire</name>
+ <capital>Tours</capital>
+ <color>
+ <red>160</red>
+ <green>190</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Isère</name>
+ <capital>Grenoble</capital>
+ <color>
+ <red>160</red>
+ <green>190</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Jura</name>
+ <capital>Lons le Saunier</capital>
+ <color>
+ <red>160</red>
+ <green>190</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Landes</name>
+ <capital>Mont de Marsan</capital>
+ <color>
+ <red>160</red>
+ <green>220</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Loir et Cher</name>
+ <capital>Blois</capital>
+ <color>
+ <red>160</red>
+ <green>220</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Loire</name>
+ <capital>Saint Etienne</capital>
+ <color>
+ <red>160</red>
+ <green>220</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Haute-Loire</name>
+ <capital>Le Puy</capital>
+ <color>
+ <red>160</red>
+ <green>220</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Loire-Atlantique</name>
+ <capital>Nantes</capital>
+ <color>
+ <red>160</red>
+ <green>220</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Loiret</name>
+ <capital>Orléans</capital>
+ <color>
+ <red>160</red>
+ <green>250</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lot</name>
+ <capital>Cahors</capital>
+ <color>
+ <red>160</red>
+ <green>250</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lot et Garonne</name>
+ <capital>Agen</capital>
+ <color>
+ <red>160</red>
+ <green>250</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lozère</name>
+ <capital>Mende</capital>
+ <color>
+ <red>160</red>
+ <green>250</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Maine et Loire</name>
+ <capital>Angers</capital>
+ <color>
+ <red>160</red>
+ <green>250</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Manche</name>
+ <capital>Saint Lô</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Marne</name>
+ <capital>Châlon en Champagne</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Haute-Marne</name>
+ <capital>Chaumont</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Mayenne</name>
+ <capital>Laval</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Meurthe et Moselle</name>
+ <capital>Nancy</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Meuse</name>
+ <capital>Bar le Duc</capital>
+ <color>
+ <red>190</red>
+ <green>160</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Morbihan</name>
+ <capital>Vannes</capital>
+ <color>
+ <red>190</red>
+ <green>160</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Moselle</name>
+ <capital>Metz</capital>
+ <color>
+ <red>190</red>
+ <green>160</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Nièvre</name>
+ <capital>Nevers</capital>
+ <color>
+ <red>190</red>
+ <green>160</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Nord</name>
+ <capital>Lille</capital>
+ <color>
+ <red>190</red>
+ <green>160</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Oise</name>
+ <capital>Beauvais</capital>
+ <color>
+ <red>190</red>
+ <green>190</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Orne</name>
+ <capital>Alençon</capital>
+ <color>
+ <red>190</red>
+ <green>190</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Pas-de-Calais</name>
+ <capital>Arras</capital>
+ <color>
+ <red>190</red>
+ <green>190</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Puy-de-Dôme</name>
+ <capital>Clermont Ferrand</capital>
+ <color>
+ <red>190</red>
+ <green>190</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Pyrénées-Atlantiques</name>
+ <capital>Pau</capital>
+ <color>
+ <red>190</red>
+ <green>190</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Hautes-Pyrénées</name>
+ <capital>Tarbes</capital>
+ <color>
+ <red>190</red>
+ <green>220</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Pyrénées-Orientales</name>
+ <capital>Perpignan</capital>
+ <color>
+ <red>190</red>
+ <green>220</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bas-Rhin</name>
+ <capital>Strasbourg</capital>
+ <color>
+ <red>190</red>
+ <green>220</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Haut-Rhin</name>
+ <capital>Colmar</capital>
+ <color>
+ <red>190</red>
+ <green>220</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Rhône</name>
+ <capital>Lyon</capital>
+ <color>
+ <red>190</red>
+ <green>220</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Haute-Saône</name>
+ <capital>Vesoul</capital>
+ <color>
+ <red>190</red>
+ <green>250</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Saône et Loire</name>
+ <capital>Mâcon</capital>
+ <color>
+ <red>190</red>
+ <green>250</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Sarthe</name>
+ <capital>Le Mans</capital>
+ <color>
+ <red>190</red>
+ <green>250</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Savoie</name>
+ <capital>Chambéry</capital>
+ <color>
+ <red>190</red>
+ <green>250</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Haute-Savoie</name>
+ <capital>Annecy</capital>
+ <color>
+ <red>190</red>
+ <green>250</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Paris</name>
+ <capital>Paris</capital>
+ <color>
+ <red>220</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Seine-Maritime</name>
+ <capital>Rouen</capital>
+ <color>
+ <red>220</red>
+ <green>130</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Seine et Marne</name>
+ <capital>Melun</capital>
+ <color>
+ <red>220</red>
+ <green>130</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Yvelines</name>
+ <capital>Versailles</capital>
+ <color>
+ <red>220</red>
+ <green>130</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Deux-Sèvres</name>
+ <capital>Niort</capital>
+ <color>
+ <red>220</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Somme</name>
+ <capital>Amiens</capital>
+ <color>
+ <red>220</red>
+ <green>160</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Tarn</name>
+ <capital>Albi</capital>
+ <color>
+ <red>220</red>
+ <green>160</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Tarn et Garonne</name>
+ <capital>Montauban</capital>
+ <color>
+ <red>220</red>
+ <green>160</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Var</name>
+ <capital>Toulon</capital>
+ <color>
+ <red>220</red>
+ <green>160</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Vaucluse</name>
+ <capital>Avignon</capital>
+ <color>
+ <red>220</red>
+ <green>160</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Vendée</name>
+ <capital>La Roche sur Yon</capital>
+ <color>
+ <red>220</red>
+ <green>190</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Vienne</name>
+ <capital>Poitiers</capital>
+ <color>
+ <red>220</red>
+ <green>190</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Haute-Vienne</name>
+ <capital>Limoges</capital>
+ <color>
+ <red>220</red>
+ <green>190</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Vosges</name>
+ <capital>Epinal</capital>
+ <color>
+ <red>220</red>
+ <green>190</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Yonne</name>
+ <capital>Auxerre</capital>
+ <color>
+ <red>220</red>
+ <green>190</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Territoire de Belfort</name>
+ <capital>Belfort</capital>
+ <color>
+ <red>220</red>
+ <green>220</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Essonne</name>
+ <capital>Evry</capital>
+ <color>
+ <red>220</red>
+ <green>220</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Hauts-de-Seine</name>
+ <capital>Nanterre</capital>
+ <color>
+ <red>220</red>
+ <green>220</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Seine-Saint-Denis</name>
+ <capital>Bobigny</capital>
+ <color>
+ <red>220</red>
+ <green>220</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Val-de-Marne</name>
+ <capital>Créteil</capital>
+ <color>
+ <red>220</red>
+ <green>220</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Val d'Oise</name>
+ <capital>Cergy-Pontoise</capital>
+ <color>
+ <red>220</red>
+ <green>250</green>
+ <blue>130</blue>
+ </color>
+ </division>
+</map>
diff --git a/kgeography/data/france.png b/kgeography/data/france.png
new file mode 100644
index 00000000..7b00c2eb
--- /dev/null
+++ b/kgeography/data/france.png
Binary files differ
diff --git a/kgeography/data/germany.kgm b/kgeography/data/germany.kgm
new file mode 100644
index 00000000..589058c0
--- /dev/null
+++ b/kgeography/data/germany.kgm
@@ -0,0 +1,182 @@
+<map>
+ <mapFile>germany.png</mapFile>
+ <name>Germany</name>
+ <division>
+ <name>Frontier</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Not Germany</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Baden-Württemberg</name>
+ <flag>baden_wurttemberg.png</flag>
+ <capital>Stuttgart</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bavaria</name>
+ <flag>bavaria.png</flag>
+ <capital>Munich</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Berlin</name>
+ <flag>berlin.png</flag>
+ <capital>Berlin</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Brandenburg</name>
+ <flag>brandenburg.png</flag>
+ <capital>Potsdam</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bremen</name>
+ <flag>bremen.png</flag>
+ <capital>Bremen</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Hamburg</name>
+ <flag>hamburg.png</flag>
+ <capital>Hamburg</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Hesse</name>
+ <flag>hesse.png</flag>
+ <capital>Wiesbaden</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Mecklenburg-Western Pomerania</name>
+ <flag>mecklenburg_western_pomerania.png</flag>
+ <capital>Schwerin</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lower Saxony</name>
+ <flag>lower_saxony.png</flag>
+ <capital>Hanover</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>North Rhine-Westphalia</name>
+ <flag>north_rhine_westphalia.png</flag>
+ <capital>Düsseldorf</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Rhineland-Palatinate</name>
+ <flag>rhineland_palatinate.png</flag>
+ <capital>Mainz</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Saarland</name>
+ <flag>saarland.png</flag>
+ <capital>Saarbrücken</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Saxony</name>
+ <flag>saxony.png</flag>
+ <capital>Dresden</capital>
+ <color>
+ <red>190</red>
+ <green>190</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Saxony-Anhalt</name>
+ <flag>saxony_anhalt.png</flag>
+ <capital>Magdeburg</capital>
+ <color>
+ <red>190</red>
+ <green>190</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Schleswig-Holstein</name>
+ <flag>schleswig_holstein.png</flag>
+ <capital>Kiel</capital>
+ <color>
+ <red>190</red>
+ <green>190</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Thuringia</name>
+ <flag>thuringia.png</flag>
+ <capital>Erfurt</capital>
+ <color>
+ <red>190</red>
+ <green>250</green>
+ <blue>130</blue>
+ </color>
+ </division>
+</map>
diff --git a/kgeography/data/germany.png b/kgeography/data/germany.png
new file mode 100644
index 00000000..558235ff
--- /dev/null
+++ b/kgeography/data/germany.png
Binary files differ
diff --git a/kgeography/data/italy.kgm b/kgeography/data/italy.kgm
new file mode 100644
index 00000000..dad613ed
--- /dev/null
+++ b/kgeography/data/italy.kgm
@@ -0,0 +1,222 @@
+<map>
+ <mapFile>italy.png</mapFile>
+ <name>Italy</name>
+ <division>
+ <name>Not Italy</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Frontier</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Sicily</name>
+ <flag>italy/it-sic200.png</flag>
+ <capital>Palermo</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Friuli Venezia Giulia</name>
+ <flag>italy/it-fri200.png</flag>
+ <capital>Trieste</capital>
+ <color>
+ <red>160</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Abruzzo</name>
+ <flag>italy/it-abr200.png</flag>
+ <capital>L'Aquila</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Latium</name>
+ <flag>italy/it-lat200.png</flag>
+ <capital>Rome</capital>
+ <color>
+ <red>190</red>
+ <green>160</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Calabria</name>
+ <flag>italy/it-cal200.png</flag>
+ <capital>Catanzaro</capital>
+ <color>
+ <red>190</red>
+ <green>190</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Piedmont</name>
+ <flag>italy/it-pie200.png</flag>
+ <capital>Turin</capital>
+ <color>
+ <red>190</red>
+ <green>160</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Apulia</name>
+ <flag>italy/it-pug200.png</flag>
+ <capital>Bari</capital>
+ <color>
+ <red>190</red>
+ <green>190</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lombardy</name>
+ <flag>italy/it-lom200.png</flag>
+ <capital>Milan</capital>
+ <color>
+ <red>160</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Umbria</name>
+ <flag>italy/it-umb200.png</flag>
+ <capital>Perugia</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Trentino Alto Adige</name>
+ <flag>italy/it-tre200.png</flag>
+ <capital>Trento</capital>
+ <color>
+ <red>160</red>
+ <green>190</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Molise</name>
+ <flag>italy/it-mol200.png</flag>
+ <capital>Campobasso</capital>
+ <color>
+ <red>190</red>
+ <green>160</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Tuscany</name>
+ <flag>italy/it-tus200.png</flag>
+ <capital>Florence</capital>
+ <color>
+ <red>190</red>
+ <green>220</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Emilia Romagna</name>
+ <flag>italy/it-emi200.png</flag>
+ <capital>Bologna</capital>
+ <color>
+ <red>190</red>
+ <green>220</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Val d'Aosta</name>
+ <flag>italy/it-aos200.png</flag>
+ <capital>Aosta</capital>
+ <color>
+ <red>160</red>
+ <green>220</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Campania</name>
+ <flag>italy/it-cam200.png</flag>
+ <capital>Naples</capital>
+ <color>
+ <red>220</red>
+ <green>130</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Basilicata</name>
+ <flag>italy/it-bas200.png</flag>
+ <capital>Potenza</capital>
+ <color>
+ <red>220</red>
+ <green>160</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Liguria</name>
+ <flag>italy/it-lig200.png</flag>
+ <capital>Genoa</capital>
+ <color>
+ <red>220</red>
+ <green>190</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Sardinia</name>
+ <flag>italy/it-sar200.png</flag>
+ <capital>Cagliari</capital>
+ <color>
+ <red>220</red>
+ <green>190</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Marches</name>
+ <flag>italy/it-mar200.png</flag>
+ <capital>Ancona</capital>
+ <color>
+ <red>220</red>
+ <green>190</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Veneto</name>
+ <flag>italy/it-ven200.png</flag>
+ <capital>Venice</capital>
+ <color>
+ <red>220</red>
+ <green>220</green>
+ <blue>130</blue>
+ </color>
+ </division>
+</map>
diff --git a/kgeography/data/italy.png b/kgeography/data/italy.png
new file mode 100644
index 00000000..c529162c
--- /dev/null
+++ b/kgeography/data/italy.png
Binary files differ
diff --git a/kgeography/data/italyprovince.kgm b/kgeography/data/italyprovince.kgm
new file mode 100644
index 00000000..0814278c
--- /dev/null
+++ b/kgeography/data/italyprovince.kgm
@@ -0,0 +1,949 @@
+<map>
+ <mapFile>italyprovince.png</mapFile>
+ <name>Italy by Provinces</name>
+ <division>
+ <name>Frontier</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Not Italy</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Alessandria</name>
+ <capital>Alessandria</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Asti</name>
+ <capital>Asti</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Biella</name>
+ <capital>Biella</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Cuneo</name>
+ <capital>Cuneo</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Novara</name>
+ <capital>Novara</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Turin</name>
+ <capital>Turin</capital>
+ <color>
+ <red>130</red>
+ <green>160</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Verbano-Cusio-Ossola</name>
+ <capital>Verbania</capital>
+ <color>
+ <red>130</red>
+ <green>160</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Vercelli</name>
+ <capital>Vercelli</capital>
+ <color>
+ <red>130</red>
+ <green>160</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bergamo</name>
+ <capital>Bergamo</capital>
+ <color>
+ <red>130</red>
+ <green>160</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Brescia</name>
+ <capital>Brescia</capital>
+ <color>
+ <red>130</red>
+ <green>160</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Como</name>
+ <capital>Como</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Cremona</name>
+ <capital>Cremona</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lecco</name>
+ <capital>Lecco</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lodi</name>
+ <capital>Lodi</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Mantova</name>
+ <capital>Mantova</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Milan</name>
+ <capital>Milan</capital>
+ <color>
+ <red>130</red>
+ <green>220</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Pavia</name>
+ <capital>Pavia</capital>
+ <color>
+ <red>130</red>
+ <green>220</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Sondrio</name>
+ <capital>Sondrio</capital>
+ <color>
+ <red>130</red>
+ <green>220</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Varese</name>
+ <capital>Varese</capital>
+ <color>
+ <red>130</red>
+ <green>220</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Aosta</name>
+ <capital>Aosta</capital>
+ <color>
+ <red>130</red>
+ <green>220</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bolzano</name>
+ <capital>Bolzano</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Trento</name>
+ <capital>Trento</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Belluno</name>
+ <capital>Belluno</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Padova</name>
+ <capital>Padova</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Rovigo</name>
+ <capital>Rovigo</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Treviso</name>
+ <capital>Treviso</capital>
+ <color>
+ <red>160</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Venice</name>
+ <capital>Venice</capital>
+ <color>
+ <red>160</red>
+ <green>130</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Verona</name>
+ <capital>Verona</capital>
+ <color>
+ <red>160</red>
+ <green>130</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Vicenza</name>
+ <capital>Vicenza</capital>
+ <color>
+ <red>160</red>
+ <green>130</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Gorizia</name>
+ <capital>Gorizia</capital>
+ <color>
+ <red>160</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Pordenone</name>
+ <capital>Pordenone</capital>
+ <color>
+ <red>160</red>
+ <green>160</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Trieste</name>
+ <capital>Trieste</capital>
+ <color>
+ <red>160</red>
+ <green>160</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Udine</name>
+ <capital>Udine</capital>
+ <color>
+ <red>160</red>
+ <green>160</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Genoa</name>
+ <capital>Genoa</capital>
+ <color>
+ <red>160</red>
+ <green>160</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Imperia</name>
+ <capital>Imperia</capital>
+ <color>
+ <red>160</red>
+ <green>160</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>La Spezia</name>
+ <capital>La Spezia</capital>
+ <color>
+ <red>160</red>
+ <green>190</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Savona</name>
+ <capital>Savona</capital>
+ <color>
+ <red>160</red>
+ <green>190</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bologna</name>
+ <capital>Bologna</capital>
+ <color>
+ <red>160</red>
+ <green>190</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ferrara</name>
+ <capital>Ferrara</capital>
+ <color>
+ <red>160</red>
+ <green>190</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Forlì-Cesena</name>
+ <capital>Forlì</capital>
+ <color>
+ <red>160</red>
+ <green>190</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Modena</name>
+ <capital>Modena</capital>
+ <color>
+ <red>160</red>
+ <green>220</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Parma</name>
+ <capital>Parma</capital>
+ <color>
+ <red>160</red>
+ <green>220</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Piacenza</name>
+ <capital>Piacenza</capital>
+ <color>
+ <red>160</red>
+ <green>220</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ravenna</name>
+ <capital>Ravenna</capital>
+ <color>
+ <red>160</red>
+ <green>220</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Reggio nell'Emilia</name>
+ <capital>Reggio nell'Emilia</capital>
+ <color>
+ <red>160</red>
+ <green>220</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Rimini</name>
+ <capital>Rimini</capital>
+ <color>
+ <red>160</red>
+ <green>250</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Arezzo</name>
+ <capital>Arezzo</capital>
+ <color>
+ <red>160</red>
+ <green>250</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Florence</name>
+ <capital>Florence</capital>
+ <color>
+ <red>160</red>
+ <green>250</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Grosseto</name>
+ <capital>Grosseto</capital>
+ <color>
+ <red>160</red>
+ <green>250</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Livorno</name>
+ <capital>Livorno</capital>
+ <color>
+ <red>160</red>
+ <green>250</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lucca</name>
+ <capital>Lucca</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Massa-Carrara</name>
+ <capital>Massa</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Pisa</name>
+ <capital>Pisa</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Pistoia</name>
+ <capital>Pistoia</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Prato</name>
+ <capital>Prato</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Siena</name>
+ <capital>Siena</capital>
+ <color>
+ <red>190</red>
+ <green>160</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Perugia</name>
+ <capital>Perugia</capital>
+ <color>
+ <red>190</red>
+ <green>160</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Terni</name>
+ <capital>Terni</capital>
+ <color>
+ <red>190</red>
+ <green>160</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ancona</name>
+ <capital>Ancona</capital>
+ <color>
+ <red>190</red>
+ <green>160</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ascoli Piceno</name>
+ <capital>Ascoli Piceno</capital>
+ <color>
+ <red>190</red>
+ <green>160</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Macerata</name>
+ <capital>Macerata</capital>
+ <color>
+ <red>190</red>
+ <green>190</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Pesaro and Urbino</name>
+ <capital>Pesaro</capital>
+ <color>
+ <red>190</red>
+ <green>190</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Frosinone</name>
+ <capital>Frosinone</capital>
+ <color>
+ <red>190</red>
+ <green>190</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Latina</name>
+ <capital>Latina</capital>
+ <color>
+ <red>190</red>
+ <green>190</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Rieti</name>
+ <capital>Rieti</capital>
+ <color>
+ <red>190</red>
+ <green>190</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Rome</name>
+ <capital>Rome</capital>
+ <color>
+ <red>190</red>
+ <green>220</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Viterbo</name>
+ <capital>Viterbo</capital>
+ <color>
+ <red>190</red>
+ <green>220</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Chieti</name>
+ <capital>Chieti</capital>
+ <color>
+ <red>190</red>
+ <green>220</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>L'Aquila</name>
+ <capital>L'Aquila</capital>
+ <color>
+ <red>190</red>
+ <green>220</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Pescara</name>
+ <capital>Pescara</capital>
+ <color>
+ <red>190</red>
+ <green>220</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Teramo</name>
+ <capital>Teramo</capital>
+ <color>
+ <red>190</red>
+ <green>250</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Campobasso</name>
+ <capital>Campobasso</capital>
+ <color>
+ <red>190</red>
+ <green>250</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Isernia</name>
+ <capital>Isernia</capital>
+ <color>
+ <red>190</red>
+ <green>250</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Avellino</name>
+ <capital>Avellino</capital>
+ <color>
+ <red>190</red>
+ <green>250</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Benevento</name>
+ <capital>Benevento</capital>
+ <color>
+ <red>190</red>
+ <green>250</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Caserta</name>
+ <capital>Caserta</capital>
+ <color>
+ <red>220</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Naples</name>
+ <capital>Naples</capital>
+ <color>
+ <red>220</red>
+ <green>130</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Salerno</name>
+ <capital>Salerno</capital>
+ <color>
+ <red>220</red>
+ <green>130</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bari</name>
+ <capital>Bari</capital>
+ <color>
+ <red>220</red>
+ <green>130</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Brindisi</name>
+ <capital>Brindisi</capital>
+ <color>
+ <red>220</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Foggia</name>
+ <capital>Foggia</capital>
+ <color>
+ <red>220</red>
+ <green>160</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lecce</name>
+ <capital>Lecce</capital>
+ <color>
+ <red>220</red>
+ <green>160</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Taranto</name>
+ <capital>Taranto</capital>
+ <color>
+ <red>220</red>
+ <green>160</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Matera</name>
+ <capital>Matera</capital>
+ <color>
+ <red>220</red>
+ <green>160</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Potenza</name>
+ <capital>Potenza</capital>
+ <color>
+ <red>220</red>
+ <green>160</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Catanzaro</name>
+ <capital>Catanzaro</capital>
+ <color>
+ <red>220</red>
+ <green>190</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Cosenza</name>
+ <capital>Cosenza</capital>
+ <color>
+ <red>220</red>
+ <green>190</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Crotone</name>
+ <capital>Crotone</capital>
+ <color>
+ <red>220</red>
+ <green>190</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Reggio di Calabria</name>
+ <capital>Reggio di Calabria</capital>
+ <color>
+ <red>220</red>
+ <green>190</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Vibo Valentia</name>
+ <capital>Vibo Valentia</capital>
+ <color>
+ <red>220</red>
+ <green>190</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Agrigento</name>
+ <capital>Agrigento</capital>
+ <color>
+ <red>220</red>
+ <green>220</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Caltanissetta</name>
+ <capital>Caltanissetta</capital>
+ <color>
+ <red>220</red>
+ <green>220</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Catania</name>
+ <capital>Catania</capital>
+ <color>
+ <red>220</red>
+ <green>220</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Enna</name>
+ <capital>Enna</capital>
+ <color>
+ <red>220</red>
+ <green>220</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Messina</name>
+ <capital>Messina</capital>
+ <color>
+ <red>220</red>
+ <green>220</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Palermo</name>
+ <capital>Palermo</capital>
+ <color>
+ <red>220</red>
+ <green>250</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ragusa</name>
+ <capital>Ragusa</capital>
+ <color>
+ <red>220</red>
+ <green>250</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Syracuse</name>
+ <capital>Syracuse</capital>
+ <color>
+ <red>220</red>
+ <green>250</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Trapani</name>
+ <capital>Trapani</capital>
+ <color>
+ <red>220</red>
+ <green>250</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Cagliari</name>
+ <capital>Cagliari</capital>
+ <color>
+ <red>220</red>
+ <green>250</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Nuoro</name>
+ <capital>Nuoro</capital>
+ <color>
+ <red>250</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Oristano</name>
+ <capital>Oristano</capital>
+ <color>
+ <red>250</red>
+ <green>130</green>
+ <blue>160</blue>
+ </color>
+ </division>
+ <division>
+ <name>Sassari</name>
+ <capital>Sassari</capital>
+ <color>
+ <red>250</red>
+ <green>130</green>
+ <blue>190</blue>
+ </color>
+ </division>
+</map>
diff --git a/kgeography/data/italyprovince.png b/kgeography/data/italyprovince.png
new file mode 100644
index 00000000..6d67a353
--- /dev/null
+++ b/kgeography/data/italyprovince.png
Binary files differ
diff --git a/kgeography/data/ncamerica.kgm b/kgeography/data/ncamerica.kgm
new file mode 100644
index 00000000..67d8853f
--- /dev/null
+++ b/kgeography/data/ncamerica.kgm
@@ -0,0 +1,257 @@
+<map>
+ <mapFile>ncamerica.png</mapFile>
+ <name>North and Central America</name>
+ <division>
+ <name>Water</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>65</red>
+ <green>95</green>
+ <blue>173</blue>
+ </color>
+ </division>
+ <division>
+ <name>Not North and Central America</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>66</red>
+ <green>96</green>
+ <blue>174</blue>
+ </color>
+ </division>
+ <division>
+ <name>Frontier</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Canada</name>
+ <capital>Ottawa</capital>
+ <flag>canada.png</flag>
+ <color>
+ <red>153</red>
+ <green>204</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>El Salvador</name>
+ <capital>San Salvador</capital>
+ <flag>el_salvador.png</flag>
+ <color>
+ <red>102</red>
+ <green>153</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>The United States of America</name>
+ <capital>Washington D.C.</capital>
+ <flag>usa.png</flag>
+ <color>
+ <red>204</red>
+ <green>153</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>The Bahamas</name>
+ <capital>Nassau</capital>
+ <flag>bahamas.png</flag>
+ <color>
+ <red>102</red>
+ <green>51</green>
+ <blue>102</blue>
+ </color>
+ </division>
+ <division>
+ <name>The Dominican Republic</name>
+ <capital>Santo Domingo</capital>
+ <flag>dominicanrepublic.png</flag>
+ <color>
+ <red>255</red>
+ <green>0</green>
+ <blue>51</blue>
+ </color>
+ </division>
+ <division>
+ <name>Haiti</name>
+ <capital>Port-au-Prince</capital>
+ <flag>haiti.png</flag>
+ <color>
+ <red>51</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Cuba</name>
+ <capital>Havana</capital>
+ <flag>cuba_3x2.png</flag>
+ <color>
+ <red>255</red>
+ <green>204</green>
+ <blue>153</blue>
+ </color>
+ </division>
+ <division>
+ <name>Jamaica</name>
+ <capital>Kingston</capital>
+ <flag>jamaica.png</flag>
+ <color>
+ <red>204</red>
+ <green>51</green>
+ <blue>204</blue>
+ </color>
+ </division>
+ <division>
+ <name>Dominica</name>
+ <capital>Roseau</capital>
+ <flag>dominica.png</flag>
+ <color>
+ <red>153</red>
+ <green>102</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Antigua and Barbuda</name>
+ <capital>St. John's</capital>
+ <flag>antigua.png</flag>
+ <color>
+ <red>102</red>
+ <green>153</green>
+ <blue>153</blue>
+ </color>
+ </division>
+ <division>
+ <name>Barbados</name>
+ <capital>Bridgetown</capital>
+ <flag>barbados.png</flag>
+ <color>
+ <red>0</red>
+ <green>204</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Trinidad and Tobago</name>
+ <capital>Port of Spain</capital>
+ <flag>trinidad_tobago.png</flag>
+ <color>
+ <red>51</red>
+ <green>204</green>
+ <blue>204</blue>
+ </color>
+ </division>
+ <division>
+ <name>Mexico</name>
+ <capital>Mexico City</capital>
+ <flag>mexico.png</flag>
+ <color>
+ <red>228</red>
+ <green>228</green>
+ <blue>228</blue>
+ </color>
+ </division>
+ <division>
+ <name>Guatemala</name>
+ <capital>Guatemala City</capital>
+ <flag>guatemala.png</flag>
+ <color>
+ <red>153</red>
+ <green>255</green>
+ <blue>153</blue>
+ </color>
+ </division>
+ <division>
+ <name>Belize</name>
+ <capital>Belmopan</capital>
+ <flag>belize.png</flag>
+ <color>
+ <red>204</red>
+ <green>102</green>
+ <blue>51</blue>
+ </color>
+ </division>
+ <division>
+ <name>Honduras</name>
+ <capital>Tegucigalpa</capital>
+ <flag>honduras.png</flag>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>204</blue>
+ </color>
+ </division>
+ <division>
+ <name>Nicaragua</name>
+ <capital>Managua</capital>
+ <flag>nicaragua.png</flag>
+ <color>
+ <red>255</red>
+ <green>204</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Costa Rica</name>
+ <capital>San José</capital>
+ <flag>costa_rica.png</flag>
+ <color>
+ <red>153</red>
+ <green>204</green>
+ <blue>204</blue>
+ </color>
+ </division>
+ <division>
+ <name>Panama</name>
+ <capital>Panama City</capital>
+ <flag>panama.png</flag>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Greenland [Denmark]</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Guyana</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>102</red>
+ <green>255</green>
+ <blue>204</blue>
+ </color>
+ </division>
+ <division>
+ <name>Venezuela</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>13</red>
+ <green>13</green>
+ <blue>13</blue>
+ </color>
+ </division>
+ <division>
+ <name>Colombia</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>102</green>
+ <blue>153</blue>
+ </color>
+ </division>
+</map>
diff --git a/kgeography/data/ncamerica.png b/kgeography/data/ncamerica.png
new file mode 100644
index 00000000..38a81aeb
--- /dev/null
+++ b/kgeography/data/ncamerica.png
Binary files differ
diff --git a/kgeography/data/netherlands.kgm b/kgeography/data/netherlands.kgm
new file mode 100644
index 00000000..55b7edd4
--- /dev/null
+++ b/kgeography/data/netherlands.kgm
@@ -0,0 +1,139 @@
+<map>
+ <mapFile>netherlands.png</mapFile>
+ <name>The Netherlands</name>
+ <division>
+ <name>Frontier</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Not The Netherlands</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>250</red>
+ <green>237</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Water</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>48</red>
+ <green>57</green>
+ <blue>182</blue>
+ </color>
+ </division>
+ <division>
+ <name>Friesland</name>
+ <capital>Leeuwarden</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Groningen</name>
+ <capital>Groningen</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Drenthe</name>
+ <capital>Assen</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Overijssel</name>
+ <capital>Zwolle</capital>
+ <color>
+ <red>250</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Gelderland</name>
+ <capital>Arnhem</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>North Brabant</name>
+ <capital>'s Hertogenbosch</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Limburg</name>
+ <capital>Maastricht</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Flevoland</name>
+ <capital>Lelystad</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Utrecht</name>
+ <capital>Utrecht</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Zeeland</name>
+ <capital>Middelburg</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>North Holland</name>
+ <capital>Haarlem</capital>
+ <color>
+ <red>250</red>
+ <green>200</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>South Holland</name>
+ <capital>The Hague</capital>
+ <color>
+ <red>190</red>
+ <green>190</green>
+ <blue>130</blue>
+ </color>
+ </division>
+</map>
diff --git a/kgeography/data/netherlands.png b/kgeography/data/netherlands.png
new file mode 100644
index 00000000..0474fe6a
--- /dev/null
+++ b/kgeography/data/netherlands.png
Binary files differ
diff --git a/kgeography/data/norway.kgm b/kgeography/data/norway.kgm
new file mode 100644
index 00000000..aa1a1165
--- /dev/null
+++ b/kgeography/data/norway.kgm
@@ -0,0 +1,193 @@
+<map>
+ <mapFile>norway.png</mapFile>
+ <name>Norway</name>
+ <division>
+ <name>Frontier</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Not Norway</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Finnmark</name>
+ <capital>Vadsø</capital>
+ <color>
+ <red>241</red>
+ <green>14</green>
+ <blue>14</blue>
+ </color>
+ </division>
+ <division>
+ <name>Troms</name>
+ <capital>Tromsø</capital>
+ <color>
+ <red>14</red>
+ <green>41</green>
+ <blue>241</blue>
+ </color>
+ </division>
+ <division>
+ <name>Nordland</name>
+ <capital>Bodø</capital>
+ <color>
+ <red>14</red>
+ <green>238</green>
+ <blue>241</blue>
+ </color>
+ </division>
+ <division>
+ <name>Nord-Trøndelag</name>
+ <capital>Steinkjer</capital>
+ <color>
+ <red>241</red>
+ <green>228</green>
+ <blue>14</blue>
+ </color>
+ </division>
+ <division>
+ <name>Sør-Trøndelag</name>
+ <capital>Trondheim</capital>
+ <color>
+ <red>241</red>
+ <green>142</green>
+ <blue>14</blue>
+ </color>
+ </division>
+ <division>
+ <name>Møre Og Romsdal</name>
+ <capital>Molde</capital>
+ <color>
+ <red>198</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Oppland</name>
+ <capital>Lillehammer</capital>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Hedmark</name>
+ <capital>Hamar</capital>
+ <color>
+ <red>241</red>
+ <green>14</green>
+ <blue>137</blue>
+ </color>
+ </division>
+ <division>
+ <name>Sogn Og Fjordane</name>
+ <capital>Hermansverk</capital>
+ <color>
+ <red>149</red>
+ <green>137</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Hordaland</name>
+ <capital>Bergen</capital>
+ <color>
+ <red>45</red>
+ <green>95</green>
+ <blue>47</blue>
+ </color>
+ </division>
+ <division>
+ <name>Rogaland</name>
+ <capital>Stavanger</capital>
+ <color>
+ <red>255</red>
+ <green>79</green>
+ <blue>79</blue>
+ </color>
+ </division>
+ <division>
+ <name>Vest-Agder</name>
+ <capital>Kristiansand</capital>
+ <color>
+ <red>18</red>
+ <green>235</green>
+ <blue>29</blue>
+ </color>
+ </division>
+ <division>
+ <name>Aust-Agder</name>
+ <capital>Arendal</capital>
+ <color>
+ <red>255</red>
+ <green>186</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Telemark</name>
+ <capital>Skien</capital>
+ <color>
+ <red>189</red>
+ <green>217</green>
+ <blue>215</blue>
+ </color>
+ </division>
+ <division>
+ <name>Buskerud</name>
+ <capital>Drammen</capital>
+ <color>
+ <red>45</red>
+ <green>48</green>
+ <blue>95</blue>
+ </color>
+ </division>
+ <division>
+ <name>Vestfold</name>
+ <capital>Tønsberg</capital>
+ <color>
+ <red>125</red>
+ <green>172</green>
+ <blue>57</blue>
+ </color>
+ </division>
+ <division>
+ <name>Oslo</name>
+ <capital>Oslo</capital>
+ <color>
+ <red>168</red>
+ <green>223</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Akershus</name>
+ <capital>Oslo</capital>
+ <color>
+ <red>255</red>
+ <green>102</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Østfold</name>
+ <capital>Sarpsborg</capital>
+ <color>
+ <red>219</red>
+ <green>185</green>
+ <blue>228</blue>
+ </color>
+ </division>
+</map>
diff --git a/kgeography/data/norway.png b/kgeography/data/norway.png
new file mode 100644
index 00000000..128036bd
--- /dev/null
+++ b/kgeography/data/norway.png
Binary files differ
diff --git a/kgeography/data/poland.kgm b/kgeography/data/poland.kgm
new file mode 100644
index 00000000..63e431be
--- /dev/null
+++ b/kgeography/data/poland.kgm
@@ -0,0 +1,166 @@
+<map>
+ <mapFile>poland.png</mapFile>
+ <name>Poland</name>
+ <division>
+ <name>Frontier</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Not Poland</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Masovia</name>
+ <capital>Warsaw</capital>
+ <color>
+ <red>250</red>
+ <green>251</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Warmia and Masuria</name>
+ <capital>Olsztyn</capital>
+ <color>
+ <red>188</red>
+ <green>190</green>
+ <blue>187</blue>
+ </color>
+ </division>
+ <division>
+ <name>Podlachia</name>
+ <capital>Białystok</capital>
+ <color>
+ <red>251</red>
+ <green>205</green>
+ <blue>137</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lublin</name>
+ <capital>Lublin</capital>
+ <color>
+ <red>0</red>
+ <green>251</green>
+ <blue>4</blue>
+ </color>
+ </division>
+ <division>
+ <name>Subcarpathia</name>
+ <capital>Rzeszów</capital>
+ <color>
+ <red>247</red>
+ <green>138</green>
+ <blue>214</blue>
+ </color>
+ </division>
+ <division>
+ <name>Świętokrzyskie</name>
+ <capital>Kielce</capital>
+ <color>
+ <red>170</red>
+ <green>138</green>
+ <blue>253</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lesser Poland</name>
+ <capital>Kraków</capital>
+ <color>
+ <red>252</red>
+ <green>0</green>
+ <blue>3</blue>
+ </color>
+ </division>
+ <division>
+ <name>Åódź</name>
+ <capital>Åódź</capital>
+ <color>
+ <red>248</red>
+ <green>199</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Silesia</name>
+ <capital>Katowice</capital>
+ <color>
+ <red>129</red>
+ <green>130</green>
+ <blue>189</blue>
+ </color>
+ </division>
+ <division>
+ <name>Opole</name>
+ <capital>Opole</capital>
+ <color>
+ <red>129</red>
+ <green>131</green>
+ <blue>128</blue>
+ </color>
+ </division>
+ <division>
+ <name>Pomerania</name>
+ <capital>Gdańsk</capital>
+ <color>
+ <red>51</red>
+ <green>219</green>
+ <blue>211</blue>
+ </color>
+ </division>
+ <division>
+ <name>West Pomerania</name>
+ <capital>Szczecin</capital>
+ <color>
+ <red>60</red>
+ <green>65</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Greater Poland</name>
+ <capital>Poznań</capital>
+ <color>
+ <red>165</red>
+ <green>190</green>
+ <blue>131</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lower Silesia</name>
+ <capital>Wrocław</capital>
+ <color>
+ <red>187</red>
+ <green>131</green>
+ <blue>188</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lubusz</name>
+ <capital>Zielona Góra, Gorzów Wielkopolski</capital>
+ <color>
+ <red>8</red>
+ <green>211</green>
+ <blue>3</blue>
+ </color>
+ </division>
+ <division>
+ <name>Kuyavia-Pomerania</name>
+ <capital>Bydgoszcz, Toruń</capital>
+ <color>
+ <red>251</red>
+ <green>229</green>
+ <blue>139</blue>
+ </color>
+ </division>
+</map>
diff --git a/kgeography/data/poland.png b/kgeography/data/poland.png
new file mode 100644
index 00000000..96961579
--- /dev/null
+++ b/kgeography/data/poland.png
Binary files differ
diff --git a/kgeography/data/southamerica.kgm b/kgeography/data/southamerica.kgm
new file mode 100644
index 00000000..42eb859c
--- /dev/null
+++ b/kgeography/data/southamerica.kgm
@@ -0,0 +1,170 @@
+<map>
+ <mapFile>southamerica.png</mapFile>
+ <name>South America</name>
+ <division>
+ <name>Frontier</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Water</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>65</red>
+ <green>95</green>
+ <blue>173</blue>
+ </color>
+ </division>
+ <division>
+ <name>Coast</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>202</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Panama</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>131</red>
+ <green>201</green>
+ <blue>136</blue>
+ </color>
+ </division>
+ <division>
+ <name>Colombia</name>
+ <flag>colombia.png</flag>
+ <capital>Bogotá</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Venezuela</name>
+ <flag>venezuela.png</flag>
+ <capital>Caracas</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Guyana</name>
+ <flag>guyana.png</flag>
+ <capital>Georgetown</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Suriname</name>
+ <flag>suriname.png</flag>
+ <capital>Paramaribo</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>French Guiana</name>
+ <flag>france.png</flag>
+ <capital>Cayenne</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ecuador</name>
+ <flag>ecuador.png</flag>
+ <capital>Quito</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Peru</name>
+ <flag>peru.png</flag>
+ <capital>Lima</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Brazil</name>
+ <flag>brazil.png</flag>
+ <capital>Brasilia</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bolivia</name>
+ <flag>bolivia.png</flag>
+ <capital>La Paz</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Chile</name>
+ <flag>chile.png</flag>
+ <capital>Santiago</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Paraguay</name>
+ <flag>paraguay.png</flag>
+ <capital>Asunción</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Argentina</name>
+ <flag>argentina.png</flag>
+ <capital>Buenos Aires</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Uruguay</name>
+ <flag>uruguay.png</flag>
+ <capital>Montevideo</capital>
+ <color>
+ <red>190</red>
+ <green>190</green>
+ <blue>130</blue>
+ </color>
+ </division>
+</map>
diff --git a/kgeography/data/southamerica.png b/kgeography/data/southamerica.png
new file mode 100644
index 00000000..81990f16
--- /dev/null
+++ b/kgeography/data/southamerica.png
Binary files differ
diff --git a/kgeography/data/spain.kgm b/kgeography/data/spain.kgm
new file mode 100644
index 00000000..6d611ade
--- /dev/null
+++ b/kgeography/data/spain.kgm
@@ -0,0 +1,175 @@
+<map>
+ <mapFile>spain.png</mapFile>
+ <name>Spain</name>
+ <division>
+ <name>Not Spain</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Frontier</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Andalucia</name>
+ <capital>Seville</capital>
+ <color>
+ <red>169</red>
+ <green>155</green>
+ <blue>110</blue>
+ </color>
+ </division>
+ <division>
+ <name>Aragon</name>
+ <capital>Zaragoza</capital>
+ <color>
+ <red>181</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Asturias</name>
+ <capital>Oviedo</capital>
+ <color>
+ <red>121</red>
+ <green>208</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Balearic Islands</name>
+ <capital>Palma de Mallorca</capital>
+ <color>
+ <red>77</red>
+ <green>66</green>
+ <blue>161</blue>
+ </color>
+ </division>
+ <division>
+ <name>Basque Country</name>
+ <capital>Vitoria</capital>
+ <color>
+ <red>238</red>
+ <green>86</green>
+ <blue>222</blue>
+ </color>
+ </division>
+ <division>
+ <name>Canary Islands</name>
+ <capital>Las Palmas de Gran Canaria and Santa Cruz de Tenerife</capital>
+ <color>
+ <red>8</red>
+ <green>143</green>
+ <blue>231</blue>
+ </color>
+ </division>
+ <division>
+ <name>Cantabria</name>
+ <capital>Santander</capital>
+ <color>
+ <red>136</red>
+ <green>5</green>
+ <blue>25</blue>
+ </color>
+ </division>
+ <division>
+ <name>Castile-La Mancha</name>
+ <capital>Toledo</capital>
+ <color>
+ <red>246</red>
+ <green>106</green>
+ <blue>90</blue>
+ </color>
+ </division>
+ <division>
+ <name>Castile and Leon</name>
+ <capital>Valladolid</capital>
+ <color>
+ <red>98</red>
+ <green>210</green>
+ <blue>74</blue>
+ </color>
+ </division>
+ <division>
+ <name>Catalonia</name>
+ <capital>Barcelona</capital>
+ <color>
+ <red>130</red>
+ <green>254</green>
+ <blue>98</blue>
+ </color>
+ </division>
+ <division>
+ <name>Extremadura</name>
+ <capital>Mérida</capital>
+ <color>
+ <red>206</red>
+ <green>162</green>
+ <blue>246</blue>
+ </color>
+ </division>
+ <division>
+ <name>Galicia</name>
+ <capital>Santiago de Compostela</capital>
+ <color>
+ <red>94</red>
+ <green>160</green>
+ <blue>136</blue>
+ </color>
+ </division>
+ <division>
+ <name>La Rioja</name>
+ <capital>Logroño</capital>
+ <color>
+ <red>238</red>
+ <green>230</green>
+ <blue>74</blue>
+ </color>
+ </division>
+ <division>
+ <name>Madrid</name>
+ <capital>Madrid</capital>
+ <color>
+ <red>141</red>
+ <green>65</green>
+ <blue>179</blue>
+ </color>
+ </division>
+ <division>
+ <name>Murcia</name>
+ <capital>Murcia</capital>
+ <color>
+ <red>206</red>
+ <green>214</green>
+ <blue>242</blue>
+ </color>
+ </division>
+ <division>
+ <name>Navarre</name>
+ <capital>Pamplona</capital>
+ <color>
+ <red>255</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Valencian Community</name>
+ <capital>Valencia</capital>
+ <color>
+ <red>222</red>
+ <green>214</green>
+ <blue>74</blue>
+ </color>
+ </division>
+</map>
diff --git a/kgeography/data/spain.png b/kgeography/data/spain.png
new file mode 100644
index 00000000..1a710487
--- /dev/null
+++ b/kgeography/data/spain.png
Binary files differ
diff --git a/kgeography/data/usa.kgm b/kgeography/data/usa.kgm
new file mode 100644
index 00000000..8cf1be87
--- /dev/null
+++ b/kgeography/data/usa.kgm
@@ -0,0 +1,580 @@
+<map>
+ <mapFile>usa.png</mapFile>
+ <name>USA</name>
+ <division>
+ <name>Frontier</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Coast</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>150</blue>
+ </color>
+ </division>
+ <division>
+ <name>Water</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lake Superior</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>150</red>
+ <green>200</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lake Michigan</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>150</red>
+ <green>210</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lake Huron</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>160</red>
+ <green>210</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lake Erie</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>160</red>
+ <green>220</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lake Ontario</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>160</red>
+ <green>230</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>The Bahamas</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>210</green>
+ <blue>180</blue>
+ </color>
+ </division>
+ <division>
+ <name>Cuba</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>210</green>
+ <blue>200</blue>
+ </color>
+ </division>
+ <division>
+ <name>Canada</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>220</green>
+ <blue>180</blue>
+ </color>
+ </division>
+ <division>
+ <name>Mexico</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>220</green>
+ <blue>200</blue>
+ </color>
+ </division>
+ <division>
+ <name>Russia</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>220</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Washington DC</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>80</red>
+ <green>80</green>
+ <blue>80</blue>
+ </color>
+ </division>
+ <division>
+ <name>Alabama</name>
+ <capital>Montgomery</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Alaska</name>
+ <capital>Juneau</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>170</blue>
+ </color>
+ </division>
+ <division>
+ <name>Arizona</name>
+ <capital>Phoenix</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>210</blue>
+ </color>
+ </division>
+ <division>
+ <name>Arkansas</name>
+ <capital>Little Rock</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>California</name>
+ <capital>Sacramento</capital>
+ <color>
+ <red>130</red>
+ <green>170</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Colorado</name>
+ <capital>Denver</capital>
+ <color>
+ <red>130</red>
+ <green>170</green>
+ <blue>170</blue>
+ </color>
+ </division>
+ <division>
+ <name>Connecticut</name>
+ <capital>Hartford</capital>
+ <color>
+ <red>130</red>
+ <green>170</green>
+ <blue>210</blue>
+ </color>
+ </division>
+ <division>
+ <name>Delaware</name>
+ <capital>Dover</capital>
+ <color>
+ <red>130</red>
+ <green>170</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Florida</name>
+ <capital>Tallahassee</capital>
+ <color>
+ <red>130</red>
+ <green>210</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Georgia</name>
+ <capital>Atlanta</capital>
+ <color>
+ <red>130</red>
+ <green>210</green>
+ <blue>170</blue>
+ </color>
+ </division>
+ <division>
+ <name>Hawaii</name>
+ <capital>Honolulu</capital>
+ <color>
+ <red>130</red>
+ <green>210</green>
+ <blue>210</blue>
+ </color>
+ </division>
+ <division>
+ <name>Idaho</name>
+ <capital>Boise</capital>
+ <color>
+ <red>130</red>
+ <green>210</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Illinois</name>
+ <capital>Springfield</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Indiana</name>
+ <capital>Indianapolis</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>170</blue>
+ </color>
+ </division>
+ <division>
+ <name>Iowa</name>
+ <capital>Des Moines</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>210</blue>
+ </color>
+ </division>
+ <division>
+ <name>Kansas</name>
+ <capital>Topeka</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Kentucky</name>
+ <capital>Frankfort</capital>
+ <color>
+ <red>170</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Louisiana</name>
+ <capital>Baton Rouge</capital>
+ <color>
+ <red>170</red>
+ <green>130</green>
+ <blue>170</blue>
+ </color>
+ </division>
+ <division>
+ <name>Maine</name>
+ <capital>Augusta</capital>
+ <color>
+ <red>170</red>
+ <green>130</green>
+ <blue>210</blue>
+ </color>
+ </division>
+ <division>
+ <name>Maryland</name>
+ <capital>Annapolis</capital>
+ <color>
+ <red>170</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Massachusetts</name>
+ <capital>Boston</capital>
+ <color>
+ <red>170</red>
+ <green>170</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Michigan</name>
+ <capital>Lansing</capital>
+ <color>
+ <red>170</red>
+ <green>170</green>
+ <blue>170</blue>
+ </color>
+ </division>
+ <division>
+ <name>Minnesota</name>
+ <capital>Saint Paul</capital>
+ <color>
+ <red>170</red>
+ <green>170</green>
+ <blue>210</blue>
+ </color>
+ </division>
+ <division>
+ <name>Mississippi</name>
+ <capital>Jackson</capital>
+ <color>
+ <red>170</red>
+ <green>170</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Missouri</name>
+ <capital>Jefferson City</capital>
+ <color>
+ <red>170</red>
+ <green>210</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Montana</name>
+ <capital>Helena</capital>
+ <color>
+ <red>170</red>
+ <green>210</green>
+ <blue>170</blue>
+ </color>
+ </division>
+ <division>
+ <name>Nebraska</name>
+ <capital>Lincoln</capital>
+ <color>
+ <red>170</red>
+ <green>210</green>
+ <blue>210</blue>
+ </color>
+ </division>
+ <division>
+ <name>Nevada</name>
+ <capital>Carson City</capital>
+ <color>
+ <red>170</red>
+ <green>210</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>New Hampshire</name>
+ <capital>Concord</capital>
+ <color>
+ <red>170</red>
+ <green>250</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>New Jersey</name>
+ <capital>Trenton</capital>
+ <color>
+ <red>170</red>
+ <green>250</green>
+ <blue>170</blue>
+ </color>
+ </division>
+ <division>
+ <name>New Mexico</name>
+ <capital>Santa Fe</capital>
+ <color>
+ <red>170</red>
+ <green>250</green>
+ <blue>210</blue>
+ </color>
+ </division>
+ <division>
+ <name>New York</name>
+ <capital>Albany</capital>
+ <color>
+ <red>170</red>
+ <green>250</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>North Carolina</name>
+ <capital>Raleigh</capital>
+ <color>
+ <red>210</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>North Dakota</name>
+ <capital>Bismarck</capital>
+ <color>
+ <red>210</red>
+ <green>130</green>
+ <blue>170</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ohio</name>
+ <capital>Columbus</capital>
+ <color>
+ <red>210</red>
+ <green>130</green>
+ <blue>210</blue>
+ </color>
+ </division>
+ <division>
+ <name>Oklahoma</name>
+ <capital>Oklahoma City</capital>
+ <color>
+ <red>210</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Oregon</name>
+ <capital>Salem</capital>
+ <color>
+ <red>210</red>
+ <green>170</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Pennsylvania</name>
+ <capital>Harrisburg</capital>
+ <color>
+ <red>210</red>
+ <green>170</green>
+ <blue>170</blue>
+ </color>
+ </division>
+ <division>
+ <name>Rhode Island</name>
+ <capital>Providence</capital>
+ <color>
+ <red>210</red>
+ <green>170</green>
+ <blue>210</blue>
+ </color>
+ </division>
+ <division>
+ <name>South Carolina</name>
+ <capital>Columbia</capital>
+ <color>
+ <red>210</red>
+ <green>170</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>South Dakota</name>
+ <capital>Pierre</capital>
+ <color>
+ <red>210</red>
+ <green>210</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Tennessee</name>
+ <capital>Nashville</capital>
+ <color>
+ <red>210</red>
+ <green>210</green>
+ <blue>170</blue>
+ </color>
+ </division>
+ <division>
+ <name>Texas</name>
+ <capital>Austin</capital>
+ <color>
+ <red>210</red>
+ <green>210</green>
+ <blue>210</blue>
+ </color>
+ </division>
+ <division>
+ <name>Utah</name>
+ <capital>Salt Lake City</capital>
+ <color>
+ <red>210</red>
+ <green>210</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Vermont</name>
+ <capital>Montpelier</capital>
+ <color>
+ <red>210</red>
+ <green>250</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Virginia</name>
+ <capital>Richmond</capital>
+ <color>
+ <red>210</red>
+ <green>250</green>
+ <blue>170</blue>
+ </color>
+ </division>
+ <division>
+ <name>Washington</name>
+ <capital>Olympia</capital>
+ <color>
+ <red>210</red>
+ <green>250</green>
+ <blue>210</blue>
+ </color>
+ </division>
+ <division>
+ <name>West Virginia</name>
+ <capital>Charleston</capital>
+ <color>
+ <red>210</red>
+ <green>250</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Wisconsin</name>
+ <capital>Madison</capital>
+ <color>
+ <red>250</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Wyoming</name>
+ <capital>Cheyenne</capital>
+ <color>
+ <red>250</red>
+ <green>130</green>
+ <blue>170</blue>
+ </color>
+ </division>
+</map>
diff --git a/kgeography/data/usa.png b/kgeography/data/usa.png
new file mode 100644
index 00000000..c04c4c20
--- /dev/null
+++ b/kgeography/data/usa.png
Binary files differ
diff --git a/kgeography/data/world.kgm b/kgeography/data/world.kgm
new file mode 100644
index 00000000..7d1701d7
--- /dev/null
+++ b/kgeography/data/world.kgm
@@ -0,0 +1,1792 @@
+<map>
+ <mapFile>world.png</mapFile>
+ <name>World</name>
+ <division>
+ <name>Not a Nation</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Algeria</name>
+ <flag>algeria.png</flag>
+ <capital>Algiers</capital>
+ <color>
+ <red>65</red>
+ <green>189</green>
+ <blue>57</blue>
+ </color>
+ </division>
+ <division>
+ <name>Angola</name>
+ <flag>angola.png</flag>
+ <capital>Luanda</capital>
+ <color>
+ <red>217</red>
+ <green>43</green>
+ <blue>5</blue>
+ </color>
+ </division>
+ <division>
+ <name>Benin</name>
+ <flag>benin.png</flag>
+ <capital>Porto Novo</capital>
+ <color>
+ <red>123</red>
+ <green>161</green>
+ <blue>172</blue>
+ </color>
+ </division>
+ <division>
+ <name>Botswana</name>
+ <flag>botswana.png</flag>
+ <capital>Gaborone</capital>
+ <color>
+ <red>73</red>
+ <green>125</green>
+ <blue>140</blue>
+ </color>
+ </division>
+ <division>
+ <name>Burkina Faso</name>
+ <flag>burkina.png</flag>
+ <capital>Ouagadougou</capital>
+ <color>
+ <red>180</red>
+ <green>178</green>
+ <blue>57</blue>
+ </color>
+ </division>
+ <division>
+ <name>Burundi</name>
+ <flag>burundi.png</flag>
+ <capital>Bujumbura</capital>
+ <color>
+ <red>132</red>
+ <green>12</green>
+ <blue>95</blue>
+ </color>
+ </division>
+ <division>
+ <name>Cameroon</name>
+ <flag>cameroon.png</flag>
+ <capital>Yaoundé</capital>
+ <color>
+ <red>73</red>
+ <green>125</green>
+ <blue>57</blue>
+ </color>
+ </division>
+ <division>
+ <name>Central African Republic</name>
+ <flag>central_african_republic.png</flag>
+ <capital>Bangui</capital>
+ <color>
+ <red>28</red>
+ <green>136</green>
+ <blue>187</blue>
+ </color>
+ </division>
+ <division>
+ <name>Chad</name>
+ <flag>chad.png</flag>
+ <capital>N'Djamena</capital>
+ <color>
+ <red>165</red>
+ <green>173</green>
+ <blue>219</blue>
+ </color>
+ </division>
+ <division>
+ <name>Côte d'Ivoire</name>
+ <flag>cote_divoire.png</flag>
+ <capital>Yamoussoukro</capital>
+ <color>
+ <red>73</red>
+ <green>189</green>
+ <blue>57</blue>
+ </color>
+ </division>
+ <division>
+ <name>Democratic Republic of the Congo</name>
+ <flag>congo_kinshasa.png</flag>
+ <capital>Kinshasa</capital>
+ <color>
+ <red>75</red>
+ <green>94</green>
+ <blue>102</blue>
+ </color>
+ </division>
+ <division>
+ <name>Djibouti</name>
+ <flag>djibouti.png</flag>
+ <capital>Djibouti</capital>
+ <color>
+ <red>197</red>
+ <green>170</green>
+ <blue>205</blue>
+ </color>
+ </division>
+ <division>
+ <name>Egypt</name>
+ <flag>egypt.png</flag>
+ <capital>Cairo</capital>
+ <color>
+ <red>176</red>
+ <green>53</green>
+ <blue>140</blue>
+ </color>
+ </division>
+ <division>
+ <name>Equatorial Guinea</name>
+ <flag>equatorial_guinea.png</flag>
+ <capital>Malabo</capital>
+ <color>
+ <red>222</red>
+ <green>97</green>
+ <blue>98</blue>
+ </color>
+ </division>
+ <division>
+ <name>Eritrea</name>
+ <flag>eritrea.png</flag>
+ <capital>Asmara</capital>
+ <color>
+ <red>251</red>
+ <green>10</green>
+ <blue>91</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ethiopia</name>
+ <flag>ethiopia.png</flag>
+ <capital>Addis Ababa</capital>
+ <color>
+ <red>64</red>
+ <green>185</green>
+ <blue>136</blue>
+ </color>
+ </division>
+ <division>
+ <name>Gabon</name>
+ <flag>gabon.png</flag>
+ <capital>Libreville</capital>
+ <color>
+ <red>0</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ghana</name>
+ <flag>ghana.png</flag>
+ <capital>Accra</capital>
+ <color>
+ <red>22</red>
+ <green>219</green>
+ <blue>188</blue>
+ </color>
+ </division>
+ <division>
+ <name>Guinea</name>
+ <flag>guinea.png</flag>
+ <capital>Conakry</capital>
+ <color>
+ <red>149</red>
+ <green>83</green>
+ <blue>65</blue>
+ </color>
+ </division>
+ <division>
+ <name>Guinea-Bissau</name>
+ <flag>guineabissau.png</flag>
+ <capital>Bissau</capital>
+ <color>
+ <red>38</red>
+ <green>174</green>
+ <blue>125</blue>
+ </color>
+ </division>
+ <division>
+ <name>Iran</name>
+ <capital>Tehran</capital>
+ <flag>iran.png</flag>
+ <color>
+ <red>250</red>
+ <green>72</green>
+ <blue>119</blue>
+ </color>
+ </division>
+ <division>
+ <name>Iraq</name>
+ <capital>Baghdad</capital>
+ <flag>iraq.png</flag>
+ <color>
+ <red>115</red>
+ <green>39</green>
+ <blue>233</blue>
+ </color>
+ </division>
+ <division>
+ <name>Israel</name>
+ <capital>Jerusalem</capital>
+ <flag>israel.png</flag>
+ <color>
+ <red>137</red>
+ <green>28</green>
+ <blue>87</blue>
+ </color>
+ </division>
+ <division>
+ <name>Jordan</name>
+ <capital>Amman</capital>
+ <flag>jordan.png</flag>
+ <color>
+ <red>255</red>
+ <green>206</green>
+ <blue>49</blue>
+ </color>
+ </division>
+ <division>
+ <name>Kenya</name>
+ <flag>kenya.png</flag>
+ <capital>Nairobi</capital>
+ <color>
+ <red>65</red>
+ <green>189</green>
+ <blue>87</blue>
+ </color>
+ </division>
+ <division>
+ <name>Kuwait</name>
+ <capital>Kuwait City</capital>
+ <flag>kuwait.png</flag>
+ <color>
+ <red>123</red>
+ <green>198</green>
+ <blue>65</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lebanon</name>
+ <capital>Beirut</capital>
+ <flag>lebanon.png</flag>
+ <color>
+ <red>56</red>
+ <green>227</green>
+ <blue>23</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lesotho</name>
+ <flag>lesotho.png</flag>
+ <capital>Maseru</capital>
+ <color>
+ <red>27</red>
+ <green>179</green>
+ <blue>179</blue>
+ </color>
+ </division>
+ <division>
+ <name>Liberia</name>
+ <flag>liberia.png</flag>
+ <capital>Monrovia</capital>
+ <color>
+ <red>174</red>
+ <green>11</green>
+ <blue>239</blue>
+ </color>
+ </division>
+ <division>
+ <name>Libya</name>
+ <flag>libya.png</flag>
+ <capital>Tripoli</capital>
+ <color>
+ <red>192</red>
+ <green>184</green>
+ <blue>201</blue>
+ </color>
+ </division>
+ <division>
+ <name>Liechtenstein</name>
+ <flag>liechtenstein.png</flag>
+ <capital>Vaduz</capital>
+ <color>
+ <red>205</red>
+ <green>195</green>
+ <blue>204</blue>
+ </color>
+ </division>
+ <division>
+ <name>Madagascar</name>
+ <flag>madagascar.png</flag>
+ <capital>Antananarivo</capital>
+ <color>
+ <red>65</red>
+ <green>28</green>
+ <blue>87</blue>
+ </color>
+ </division>
+ <division>
+ <name>Malawi</name>
+ <flag>malawi.png</flag>
+ <capital>Lilongwe</capital>
+ <color>
+ <red>27</red>
+ <green>125</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Mali</name>
+ <flag>mali.png</flag>
+ <capital>Bamako</capital>
+ <color>
+ <red>192</red>
+ <green>94</green>
+ <blue>102</blue>
+ </color>
+ </division>
+ <division>
+ <name>Mauritania</name>
+ <flag>mauritania.png</flag>
+ <capital>Nouakchott</capital>
+ <color>
+ <red>205</red>
+ <green>230</green>
+ <blue>57</blue>
+ </color>
+ </division>
+ <division>
+ <name>Morocco</name>
+ <flag>morocco.png</flag>
+ <capital>Rabat</capital>
+ <color>
+ <red>201</red>
+ <green>130</green>
+ <blue>87</blue>
+ </color>
+ </division>
+ <division>
+ <name>Mozambique</name>
+ <flag>mozambique.png</flag>
+ <capital>Maputo</capital>
+ <color>
+ <red>104</red>
+ <green>118</green>
+ <blue>6</blue>
+ </color>
+ </division>
+ <division>
+ <name>Namibia</name>
+ <flag>namibia.png</flag>
+ <capital>Windhoek</capital>
+ <color>
+ <red>75</red>
+ <green>215</green>
+ <blue>181</blue>
+ </color>
+ </division>
+ <division>
+ <name>Niger</name>
+ <flag>niger.png</flag>
+ <capital>Niamey</capital>
+ <color>
+ <red>105</red>
+ <green>109</green>
+ <blue>28</blue>
+ </color>
+ </division>
+ <division>
+ <name>Nigeria</name>
+ <flag>nigeria.png</flag>
+ <capital>Abuja</capital>
+ <color>
+ <red>243</red>
+ <green>83</green>
+ <blue>141</blue>
+ </color>
+ </division>
+ <division>
+ <name>Qatar</name>
+ <capital>Doha</capital>
+ <flag>qatar.png</flag>
+ <color>
+ <red>255</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Republic of the Congo</name>
+ <flag>congo_brazzaville.png</flag>
+ <capital>Brazzaville</capital>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Rwanda</name>
+ <flag>rwanda.png</flag>
+ <capital>Kigali</capital>
+ <color>
+ <red>0</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Saudi Arabia</name>
+ <capital>Riyadh</capital>
+ <flag>saudiarabia.png</flag>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>131</blue>
+ </color>
+ </division>
+ <division>
+ <name>Senegal</name>
+ <flag>senegal.png</flag>
+ <capital>Dakar</capital>
+ <color>
+ <red>244</red>
+ <green>242</green>
+ <blue>76</blue>
+ </color>
+ </division>
+ <division>
+ <name>Sierra Leone</name>
+ <flag>sierra_leone.png</flag>
+ <capital>Freetown</capital>
+ <color>
+ <red>16</red>
+ <green>168</green>
+ <blue>92</blue>
+ </color>
+ </division>
+ <division>
+ <name>Somalia</name>
+ <flag>somalia.png</flag>
+ <capital>Mogadishu</capital>
+ <color>
+ <red>75</red>
+ <green>215</green>
+ <blue>102</blue>
+ </color>
+ </division>
+ <division>
+ <name>South Africa</name>
+ <flag>southafrica.png</flag>
+ <capital>Pretoria, Bloemfontein and Cape Town</capital>
+ <color>
+ <red>176</red>
+ <green>53</green>
+ <blue>141</blue>
+ </color>
+ </division>
+ <division>
+ <name>Sudan</name>
+ <flag>sudan.png</flag>
+ <capital>Khartoum</capital>
+ <color>
+ <red>181</red>
+ <green>121</green>
+ <blue>21</blue>
+ </color>
+ </division>
+ <division>
+ <name>Swaziland</name>
+ <flag>swaziland.png</flag>
+ <capital>Mbabane</capital>
+ <color>
+ <red>125</red>
+ <green>125</green>
+ <blue>125</blue>
+ </color>
+ </division>
+ <division>
+ <name>Syria</name>
+ <capital>Damascus</capital>
+ <flag>syria.png</flag>
+ <color>
+ <red>135</red>
+ <green>76</green>
+ <blue>31</blue>
+ </color>
+ </division>
+ <division>
+ <name>Tanzania</name>
+ <flag>tanzania.png</flag>
+ <capital>Dodoma</capital>
+ <color>
+ <red>243</red>
+ <green>53</green>
+ <blue>141</blue>
+ </color>
+ </division>
+ <division>
+ <name>The Gambia</name>
+ <flag>gambia.png</flag>
+ <capital>Banjul</capital>
+ <color>
+ <red>219</red>
+ <green>175</green>
+ <blue>44</blue>
+ </color>
+ </division>
+ <division>
+ <name>Togo</name>
+ <flag>togo.png</flag>
+ <capital>Lomé</capital>
+ <color>
+ <red>255</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Tunisia</name>
+ <flag>tunisia.png</flag>
+ <capital>Tunis</capital>
+ <color>
+ <red>243</red>
+ <green>83</green>
+ <blue>65</blue>
+ </color>
+ </division>
+ <division>
+ <name>Uganda</name>
+ <flag>uganda.png</flag>
+ <capital>Kampala</capital>
+ <color>
+ <red>149</red>
+ <green>188</green>
+ <blue>170</blue>
+ </color>
+ </division>
+ <division>
+ <name>United Arab Emirates</name>
+ <flag>uae.png</flag>
+ <capital>Abu Dhabi City</capital>
+ <color>
+ <red>176</red>
+ <green>125</green>
+ <blue>140</blue>
+ </color>
+ </division>
+ <division>
+ <name>Oman</name>
+ <flag>oman.png</flag>
+ <capital>Muscat</capital>
+ <color>
+ <red>232</red>
+ <green>133</green>
+ <blue>36</blue>
+ </color>
+ </division>
+ <division>
+ <name>West Bank</name>
+ <ignore>yes</ignore>
+ <color>
+ <red>255</red>
+ <green>184</green>
+ <blue>201</blue>
+ </color>
+ </division>
+ <division>
+ <name>Western Sahara</name>
+ <flag>western_sahara.png</flag>
+ <capital>Laayoune</capital>
+ <color>
+ <red>74</red>
+ <green>178</green>
+ <blue>123</blue>
+ </color>
+ </division>
+ <division>
+ <name>Yemen</name>
+ <capital>Sana'a</capital>
+ <flag>yemen.png</flag>
+ <color>
+ <red>192</red>
+ <green>94</green>
+ <blue>201</blue>
+ </color>
+ </division>
+ <division>
+ <name>Zambia</name>
+ <flag>zambia.png</flag>
+ <capital>Lusaka</capital>
+ <color>
+ <red>156</red>
+ <green>214</green>
+ <blue>172</blue>
+ </color>
+ </division>
+ <division>
+ <name>Zimbabwe</name>
+ <flag>zimbabwe.png</flag>
+ <capital>Harare</capital>
+ <color>
+ <red>241</red>
+ <green>69</green>
+ <blue>7</blue>
+ </color>
+ </division>
+ <division>
+ <name>Albania</name>
+ <flag>albania.png</flag>
+ <capital>Tirana</capital>
+ <color>
+ <red>221</red>
+ <green>136</green>
+ <blue>51</blue>
+ </color>
+ </division>
+ <division>
+ <name>Austria</name>
+ <flag>austria.png</flag>
+ <capital>Vienna</capital>
+ <color>
+ <red>136</red>
+ <green>0</green>
+ <blue>136</blue>
+ </color>
+ </division>
+ <division>
+ <name>Belarus</name>
+ <flag>belarus.png</flag>
+ <capital>Minsk</capital>
+ <color>
+ <red>182</red>
+ <green>206</green>
+ <blue>50</blue>
+ </color>
+ </division>
+ <division>
+ <name>Belgium</name>
+ <flag>belgium.png</flag>
+ <capital>Brussels</capital>
+ <color>
+ <red>229</red>
+ <green>102</green>
+ <blue>122</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bosnia and Herzegovina</name>
+ <flag>bosnia_herzegovina.png</flag>
+ <capital>Sarajevo</capital>
+ <color>
+ <red>106</red>
+ <green>55</green>
+ <blue>85</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bulgaria</name>
+ <flag>bulgaria.png</flag>
+ <capital>Sofia</capital>
+ <color>
+ <red>0</red>
+ <green>191</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Croatia</name>
+ <flag>croatia.png</flag>
+ <capital>Zagreb</capital>
+ <color>
+ <red>18</red>
+ <green>52</green>
+ <blue>86</blue>
+ </color>
+ </division>
+ <division>
+ <name>Czech Republic</name>
+ <flag>czech.png</flag>
+ <capital>Prague</capital>
+ <color>
+ <red>51</red>
+ <green>136</green>
+ <blue>221</blue>
+ </color>
+ </division>
+ <division>
+ <name>Denmark</name>
+ <flag>denmark.png</flag>
+ <capital>Copenhagen</capital>
+ <color>
+ <red>158</red>
+ <green>253</green>
+ <blue>182</blue>
+ </color>
+ </division>
+ <division>
+ <name>Estonia</name>
+ <flag>estonia.png</flag>
+ <capital>Tallinn</capital>
+ <color>
+ <red>120</red>
+ <green>246</green>
+ <blue>18</blue>
+ </color>
+ </division>
+ <division>
+ <name>Finland</name>
+ <flag>finland.png</flag>
+ <capital>Helsinki</capital>
+ <color>
+ <red>74</red>
+ <green>254</green>
+ <blue>122</blue>
+ </color>
+ </division>
+ <division>
+ <name>Macedonia</name>
+ <flag>macedonia.png</flag>
+ <capital>Skopje</capital>
+ <color>
+ <red>103</red>
+ <green>109</green>
+ <blue>41</blue>
+ </color>
+ </division>
+ <division>
+ <name>France</name>
+ <flag>france.png</flag>
+ <capital>Paris</capital>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Germany</name>
+ <flag>germany.png</flag>
+ <capital>Berlin</capital>
+ <color>
+ <red>255</red>
+ <green>8</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Greece</name>
+ <flag>greece.png</flag>
+ <capital>Athens</capital>
+ <color>
+ <red>131</red>
+ <green>116</green>
+ <blue>99</blue>
+ </color>
+ </division>
+ <division>
+ <name>Hungary</name>
+ <flag>hungary.png</flag>
+ <capital>Budapest</capital>
+ <color>
+ <red>255</red>
+ <green>240</green>
+ <blue>245</blue>
+ </color>
+ </division>
+ <division>
+ <name>Iceland</name>
+ <flag>iceland.png</flag>
+ <capital>Reykjavik</capital>
+ <color>
+ <red>255</red>
+ <green>140</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ireland</name>
+ <flag>ireland.png</flag>
+ <capital>Dublin</capital>
+ <color>
+ <red>122</red>
+ <green>254</green>
+ <blue>50</blue>
+ </color>
+ </division>
+ <division>
+ <name>Italy</name>
+ <flag>italy.png</flag>
+ <capital>Rome</capital>
+ <color>
+ <red>254</red>
+ <green>254</green>
+ <blue>122</blue>
+ </color>
+ </division>
+ <division>
+ <name>Latvia</name>
+ <flag>latvia.png</flag>
+ <capital>Riga</capital>
+ <color>
+ <red>164</red>
+ <green>187</green>
+ <blue>9</blue>
+ </color>
+ </division>
+ <division>
+ <name>Lithuania</name>
+ <flag>lithuania.png</flag>
+ <capital>Vilnius</capital>
+ <color>
+ <red>255</red>
+ <green>105</green>
+ <blue>180</blue>
+ </color>
+ </division>
+ <division>
+ <name>Luxembourg</name>
+ <flag>luxembourg.png</flag>
+ <capital>Luxembourg</capital>
+ <color>
+ <red>255</red>
+ <green>170</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Moldova</name>
+ <flag>moldova.png</flag>
+ <capital>Chisinau</capital>
+ <color>
+ <red>10</red>
+ <green>10</green>
+ <blue>237</blue>
+ </color>
+ </division>
+ <division>
+ <name>Netherlands</name>
+ <flag>netherlands.png</flag>
+ <capital>Amsterdam</capital>
+ <color>
+ <red>138</red>
+ <green>43</green>
+ <blue>226</blue>
+ </color>
+ </division>
+ <division>
+ <name>Norway</name>
+ <flag>norway.png</flag>
+ <capital>Oslo</capital>
+ <color>
+ <red>248</red>
+ <green>8</green>
+ <blue>8</blue>
+ </color>
+ </division>
+ <division>
+ <name>Poland</name>
+ <flag>poland.png</flag>
+ <capital>Warsaw</capital>
+ <color>
+ <red>155</red>
+ <green>142</green>
+ <blue>15</blue>
+ </color>
+ </division>
+ <division>
+ <name>Portugal</name>
+ <flag>portugal.png</flag>
+ <capital>Lisbon</capital>
+ <color>
+ <red>249</red>
+ <green>3</green>
+ <blue>105</blue>
+ </color>
+ </division>
+ <division>
+ <name>Romania</name>
+ <flag>romania.png</flag>
+ <capital>Bucharest</capital>
+ <color>
+ <red>53</red>
+ <green>142</green>
+ <blue>142</blue>
+ </color>
+ </division>
+ <division>
+ <name>Russia</name>
+ <flag>russia.png</flag>
+ <capital>Moscow</capital>
+ <color>
+ <red>175</red>
+ <green>238</green>
+ <blue>238</blue>
+ </color>
+ </division>
+ <division>
+ <name>San Marino</name>
+ <flag>san_marino.png</flag>
+ <capital>San Marino</capital>
+ <color>
+ <red>139</red>
+ <green>139</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Serbia</name>
+ <flag>serbia.png</flag>
+ <capital>Belgrade</capital>
+ <color>
+ <red>120</red>
+ <green>144</green>
+ <blue>18</blue>
+ </color>
+ </division>
+ <division>
+ <name>Montenegro</name>
+ <flag>montenegro.png</flag>
+ <capital>Podgorica</capital>
+ <color>
+ <red>255</red>
+ <green>12</green>
+ <blue>12</blue>
+ </color>
+ </division>
+ <division>
+ <name>Slovakia</name>
+ <flag>slovakia.png</flag>
+ <capital>Bratislava</capital>
+ <color>
+ <red>139</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Slovenia</name>
+ <flag>slovenia.png</flag>
+ <capital>Ljubljana</capital>
+ <color>
+ <red>30</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Spain</name>
+ <flag>spain.png</flag>
+ <capital>Madrid</capital>
+ <color>
+ <red>254</red>
+ <green>218</green>
+ <blue>182</blue>
+ </color>
+ </division>
+ <division>
+ <name>Sweden</name>
+ <flag>sweden.png</flag>
+ <capital>Stockholm</capital>
+ <color>
+ <red>136</red>
+ <green>136</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Switzerland</name>
+ <flag>switzerland.png</flag>
+ <capital>Bern</capital>
+ <color>
+ <red>215</red>
+ <green>3</green>
+ <blue>50</blue>
+ </color>
+ </division>
+ <division>
+ <name>Turkey</name>
+ <flag>turkey.png</flag>
+ <capital>Ankara</capital>
+ <color>
+ <red>0</red>
+ <green>136</green>
+ <blue>136</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ukraine</name>
+ <flag>ukraine.png</flag>
+ <capital>Kiev</capital>
+ <color>
+ <red>136</red>
+ <green>5</green>
+ <blue>188</blue>
+ </color>
+ </division>
+ <division>
+ <name>United Kingdom</name>
+ <flag>uk.png</flag>
+ <capital>London</capital>
+ <color>
+ <red>254</red>
+ <green>206</green>
+ <blue>50</blue>
+ </color>
+ </division>
+ <division>
+ <name>Canada</name>
+ <capital>Ottawa</capital>
+ <flag>canada.png</flag>
+ <color>
+ <red>153</red>
+ <green>204</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>El Salvador</name>
+ <capital>San Salvador</capital>
+ <flag>el_salvador.png</flag>
+ <color>
+ <red>102</red>
+ <green>153</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>The United States of America</name>
+ <capital>Washington D.C.</capital>
+ <flag>usa.png</flag>
+ <color>
+ <red>204</red>
+ <green>153</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>The Bahamas</name>
+ <capital>Nassau</capital>
+ <flag>bahamas.png</flag>
+ <color>
+ <red>102</red>
+ <green>51</green>
+ <blue>102</blue>
+ </color>
+ </division>
+ <division>
+ <name>The Dominican Republic</name>
+ <capital>Santo Domingo</capital>
+ <flag>dominicanrepublic.png</flag>
+ <color>
+ <red>255</red>
+ <green>0</green>
+ <blue>51</blue>
+ </color>
+ </division>
+ <division>
+ <name>Haiti</name>
+ <capital>Port-au-Prince</capital>
+ <flag>haiti.png</flag>
+ <color>
+ <red>51</red>
+ <green>255</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Cuba</name>
+ <capital>Havana</capital>
+ <flag>cuba_3x2.png</flag>
+ <color>
+ <red>255</red>
+ <green>204</green>
+ <blue>153</blue>
+ </color>
+ </division>
+ <division>
+ <name>Jamaica</name>
+ <capital>Kingston</capital>
+ <flag>jamaica.png</flag>
+ <color>
+ <red>204</red>
+ <green>51</green>
+ <blue>204</blue>
+ </color>
+ </division>
+ <division>
+ <name>Dominica</name>
+ <capital>Roseau</capital>
+ <flag>dominica.png</flag>
+ <color>
+ <red>153</red>
+ <green>102</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Barbados</name>
+ <capital>Bridgetown</capital>
+ <flag>barbados.png</flag>
+ <color>
+ <red>0</red>
+ <green>204</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Antigua and Barbuda</name>
+ <capital>St. John's</capital>
+ <flag>antigua.png</flag>
+ <color>
+ <red>102</red>
+ <green>153</green>
+ <blue>153</blue>
+ </color>
+ </division>
+ <division>
+ <name>Trinidad and Tobago</name>
+ <capital>Port of Spain</capital>
+ <flag>trinidad_tobago.png</flag>
+ <color>
+ <red>51</red>
+ <green>204</green>
+ <blue>204</blue>
+ </color>
+ </division>
+ <division>
+ <name>Mexico</name>
+ <capital>Mexico City</capital>
+ <flag>mexico.png</flag>
+ <color>
+ <red>228</red>
+ <green>228</green>
+ <blue>228</blue>
+ </color>
+ </division>
+ <division>
+ <name>Guatemala</name>
+ <capital>Guatemala City</capital>
+ <flag>guatemala.png</flag>
+ <color>
+ <red>153</red>
+ <green>255</green>
+ <blue>153</blue>
+ </color>
+ </division>
+ <division>
+ <name>Belize</name>
+ <capital>Belmopan</capital>
+ <flag>belize.png</flag>
+ <color>
+ <red>204</red>
+ <green>102</green>
+ <blue>51</blue>
+ </color>
+ </division>
+ <division>
+ <name>Honduras</name>
+ <capital>Tegucigalpa</capital>
+ <flag>honduras.png</flag>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>204</blue>
+ </color>
+ </division>
+ <division>
+ <name>Nicaragua</name>
+ <capital>Managua</capital>
+ <flag>nicaragua.png</flag>
+ <color>
+ <red>255</red>
+ <green>204</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>Costa Rica</name>
+ <capital>San José</capital>
+ <flag>costa_rica.png</flag>
+ <color>
+ <red>153</red>
+ <green>204</green>
+ <blue>204</blue>
+ </color>
+ </division>
+ <division>
+ <name>Panama</name>
+ <capital>Panama City</capital>
+ <flag>panama.png</flag>
+ <color>
+ <red>241</red>
+ <green>239</green>
+ <blue>51</blue>
+ </color>
+ </division>
+ <division>
+ <name>Colombia</name>
+ <flag>colombia.png</flag>
+ <capital>Bogotá</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Venezuela</name>
+ <flag>venezuela.png</flag>
+ <capital>Caracas</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Guyana</name>
+ <flag>guyana.png</flag>
+ <capital>Georgetown</capital>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Suriname</name>
+ <flag>suriname.png</flag>
+ <capital>Paramaribo</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>French Guiana</name>
+ <flag>france.png</flag>
+ <capital>Cayenne</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Ecuador</name>
+ <flag>ecuador.png</flag>
+ <capital>Quito</capital>
+ <color>
+ <red>130</red>
+ <green>190</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Peru</name>
+ <flag>peru.png</flag>
+ <capital>Lima</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Brazil</name>
+ <flag>brazil.png</flag>
+ <capital>Brasilia</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bolivia</name>
+ <flag>bolivia.png</flag>
+ <capital>La Paz</capital>
+ <color>
+ <red>130</red>
+ <green>250</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Chile</name>
+ <flag>chile.png</flag>
+ <capital>Santiago</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Paraguay</name>
+ <flag>paraguay.png</flag>
+ <capital>Asunción</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>190</blue>
+ </color>
+ </division>
+ <division>
+ <name>Argentina</name>
+ <flag>argentina.png</flag>
+ <capital>Buenos Aires</capital>
+ <color>
+ <red>190</red>
+ <green>130</green>
+ <blue>250</blue>
+ </color>
+ </division>
+ <division>
+ <name>Uruguay</name>
+ <flag>uruguay.png</flag>
+ <capital>Montevideo</capital>
+ <color>
+ <red>190</red>
+ <green>190</green>
+ <blue>130</blue>
+ </color>
+ </division>
+ <division>
+ <name>Australia</name>
+ <capital>Canberra</capital>
+ <flag>australia.png</flag>
+ <color>
+ <red>0</red>
+ <green>255</green>
+ <blue>150</blue>
+ </color>
+ </division>
+ <division>
+ <name>New Zealand</name>
+ <capital>Wellington</capital>
+ <flag>NewZealand.png</flag>
+ <color>
+ <red>6</red>
+ <green>198</green>
+ <blue>142</blue>
+ </color>
+ </division>
+ <division>
+ <name>Vatican City</name>
+ <capital>Vatican City</capital>
+ <flag>Vatican.png</flag>
+ <color>
+ <red>54</red>
+ <green>164</green>
+ <blue>93</blue>
+ </color>
+ </division>
+ <division>
+ <name>Andorra</name>
+ <capital>Andorra la Vella</capital>
+ <flag>andorra.png</flag>
+ <color>
+ <red>31</red>
+ <green>34</green>
+ <blue>109</blue>
+ </color>
+ </division>
+ <division>
+ <name>Monaco</name>
+ <capital>Monaco-Ville</capital>
+ <flag>Monaco.png</flag>
+ <color>
+ <red>54</red>
+ <green>59</green>
+ <blue>164</blue>
+ </color>
+ </division>
+ <division>
+ <name>China</name>
+ <capital>Beijing</capital>
+ <flag>china.png</flag>
+ <color>
+ <red>62</red>
+ <green>66</green>
+ <blue>145</blue>
+ </color>
+ </division>
+ <division>
+ <name>India</name>
+ <capital>New Delhi</capital>
+ <flag>india.png</flag>
+ <color>
+ <red>62</red>
+ <green>145</green>
+ <blue>68</blue>
+ </color>
+ </division>
+ <division>
+ <name>Sri Lanka</name>
+ <capital>Colombo and Sri Jayewardenepura</capital>
+ <flag>SriLanka.png</flag>
+ <color>
+ <red>145</red>
+ <green>62</green>
+ <blue>144</blue>
+ </color>
+ </division>
+ <division>
+ <name>Mongolia</name>
+ <flag>mongolia.png</flag>
+ <capital>Ulaanbaatar</capital>
+ <color>
+ <red>174</red>
+ <green>189</green>
+ <blue>2</blue>
+ </color>
+ </division>
+ <division>
+ <name>Kazakhstan</name>
+ <flag>kazakhstan.png</flag>
+ <capital>Astana</capital>
+ <color>
+ <red>189</red>
+ <green>130</green>
+ <blue>2</blue>
+ </color>
+ </division>
+ <division>
+ <name>Japan</name>
+ <flag>japan.png</flag>
+ <capital>Tokyo</capital>
+ <color>
+ <red>246</red>
+ <green>70</green>
+ <blue>22</blue>
+ </color>
+ </division>
+ <division>
+ <name>Myanmar</name>
+ <flag>myanmar.png</flag>
+ <capital>Naypyidaw</capital>
+ <color>
+ <red>62</red>
+ <green>170</green>
+ <blue>220</blue>
+ </color>
+ </division>
+ <division>
+ <name>Nepal</name>
+ <flag>nepal.png</flag>
+ <capital>Kathmandu</capital>
+ <color>
+ <red>220</red>
+ <green>125</green>
+ <blue>62</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bhutan</name>
+ <flag>bhutan.png</flag>
+ <capital>Thimphu</capital>
+ <color>
+ <red>123</red>
+ <green>104</green>
+ <blue>166</blue>
+ </color>
+ </division>
+ <division>
+ <name>Indonesia</name>
+ <flag>indonesia.png</flag>
+ <capital>Jakarta</capital>
+ <color>
+ <red>5</red>
+ <green>97</green>
+ <blue>37</blue>
+ </color>
+ </division>
+ <division>
+ <name>Malaysia</name>
+ <flag>malaysia.png</flag>
+ <capital>Kuala Lumpur</capital>
+ <color>
+ <red>6</red>
+ <green>40</green>
+ <blue>126</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bangladesh</name>
+ <flag>bangladesh.png</flag>
+ <capital>Dhaka</capital>
+ <color>
+ <red>86</red>
+ <green>227</green>
+ <blue>79</blue>
+ </color>
+ </division>
+ <division>
+ <name>Cyprus</name>
+ <flag>cyprus_4x3.png</flag>
+ <capital>Nicosia</capital>
+ <color>
+ <red>213</red>
+ <green>99</green>
+ <blue>120</blue>
+ </color>
+ </division>
+ <division>
+ <name>Afghanistan</name>
+ <flag>afghanistan.png</flag>
+ <capital>Kabul</capital>
+ <color>
+ <red>211</red>
+ <green>241</green>
+ <blue>12</blue>
+ </color>
+ </division>
+ <division>
+ <name>Azerbaijan</name>
+ <flag>azerbaijan.png</flag>
+ <capital>Baku</capital>
+ <color>
+ <red>70</red>
+ <green>65</green>
+ <blue>69</blue>
+ </color>
+ </division>
+ <division>
+ <name>Armenia</name>
+ <flag>armenia.png</flag>
+ <capital>Yerevan</capital>
+ <color>
+ <red>142</red>
+ <green>88</green>
+ <blue>136</blue>
+ </color>
+ </division>
+ <division>
+ <name>Bahrain</name>
+ <flag>bahrain.png</flag>
+ <capital>Manama</capital>
+ <color>
+ <red>191</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </division>
+ <division>
+ <name>Georgia</name>
+ <flag>georgia.png</flag>
+ <capital>Tbilisi</capital>
+ <color>
+ <red>217</red>
+ <green>26</green>
+ <blue>84</blue>
+ </color>
+ </division>
+ <division>
+ <name>Turkmenistan</name>
+ <flag>turkmenistan.png</flag>
+ <capital>Ashgabat</capital>
+ <color>
+ <red>142</red>
+ <green>171</green>
+ <blue>150</blue>
+ </color>
+ </division>
+ <division>
+ <name>Uzbekistan</name>
+ <flag>uzbekistan.png</flag>
+ <capital>Tashkent</capital>
+ <color>
+ <red>103</red>
+ <green>201</green>
+ <blue>205</blue>
+ </color>
+ </division>
+ <division>
+ <name>Kyrgyzstan</name>
+ <flag>kyrgyzstan.png</flag>
+ <capital>Bishkek</capital>
+ <color>
+ <red>249</red>
+ <green>173</green>
+ <blue>223</blue>
+ </color>
+ </division>
+ <division>
+ <name>Tajikistan</name>
+ <flag>tajikistan.png</flag>
+ <capital>Dushanbe</capital>
+ <color>
+ <red>103</red>
+ <green>205</green>
+ <blue>175</blue>
+ </color>
+ </division>
+ <division>
+ <name>Pakistan</name>
+ <flag>pakistan.png</flag>
+ <capital>Islamabad</capital>
+ <color>
+ <red>171</red>
+ <green>142</green>
+ <blue>168</blue>
+ </color>
+ </division>
+ <division>
+ <name>Laos</name>
+ <flag>laos.png</flag>
+ <capital>Vientiane</capital>
+ <color>
+ <red>174</red>
+ <green>42</green>
+ <blue>229</blue>
+ </color>
+ </division>
+ <division>
+ <name>Cambodia</name>
+ <flag>cambodia.png</flag>
+ <capital>Phnom Penh</capital>
+ <color>
+ <red>227</red>
+ <green>233</green>
+ <blue>255</blue>
+ </color>
+ </division>
+ <division>
+ <name>East Timor</name>
+ <flag>easttimor.png</flag>
+ <capital>Dili</capital>
+ <color>
+ <red>132</red>
+ <green>205</green>
+ <blue>208</blue>
+ </color>
+ </division>
+ <division>
+ <name>Brunei</name>
+ <flag>brunei.png</flag>
+ <capital>Bandar Seri Begawan</capital>
+ <color>
+ <red>239</red>
+ <green>56</green>
+ <blue>56</blue>
+ </color>
+ </division>
+ <division>
+ <name>Philippines</name>
+ <flag>philippines.png</flag>
+ <capital>Manila</capital>
+ <color>
+ <red>239</red>
+ <green>224</green>
+ <blue>56</blue>
+ </color>
+ </division>
+ <division>
+ <name>Thailand</name>
+ <flag>thailand.png</flag>
+ <capital>Bangkok</capital>
+ <color>
+ <red>56</red>
+ <green>239</green>
+ <blue>185</blue>
+ </color>
+ </division>
+ <division>
+ <name>Vietnam</name>
+ <flag>vietnam.png</flag>
+ <capital>Hanoi</capital>
+ <color>
+ <red>56</red>
+ <green>233</green>
+ <blue>239</blue>
+ </color>
+ </division>
+ <division>
+ <name>Republic of China (Taiwan)</name>
+ <flag>taiwan.png</flag>
+ <capital>Taipei</capital>
+ <color>
+ <red>99</red>
+ <green>239</green>
+ <blue>56</blue>
+ </color>
+ </division>
+ <division>
+ <name>Singapore</name>
+ <flag>singapore.png</flag>
+ <capital>Singapore</capital>
+ <color>
+ <red>229</red>
+ <green>140</green>
+ <blue>54</blue>
+ </color>
+ </division>
+ <division>
+ <name>Democratic People's Republic of Korea</name>
+ <flag>nkorea.png</flag>
+ <capital>Pyeongyang</capital>
+ <color>
+ <red>179</red>
+ <green>90</green>
+ <blue>18</blue>
+ </color>
+ </division>
+ <division>
+ <name>Republic of Korea</name>
+ <flag>skorea.png</flag>
+ <capital>Seoul</capital>
+ <color>
+ <red>69</red>
+ <green>118</green>
+ <blue>65</blue>
+ </color>
+ </division>
+ <division>
+ <name>Fiji</name>
+ <flag>fiji.png</flag>
+ <capital>Suva</capital>
+ <color>
+ <red>122</red>
+ <green>195</green>
+ <blue>222</blue>
+ </color>
+ </division>
+ <division>
+ <name>Tonga</name>
+ <flag>tonga.png</flag>
+ <capital>Nuku'alofa</capital>
+ <color>
+ <red>222</red>
+ <green>122</green>
+ <blue>122</blue>
+ </color>
+ </division>
+ <division>
+ <name>Papua New Guinea</name>
+ <flag>papua_new_guinea.png</flag>
+ <capital>Port Moresby</capital>
+ <color>
+ <red>184</red>
+ <green>46</green>
+ <blue>46</blue>
+ </color>
+ </division>
+ <division>
+ <name>Greenland (Denmark)</name>
+ <capital>Nuuk</capital>
+ <flag>greenland.png</flag>
+ <color>
+ <red>163</red>
+ <green>244</green>
+ <blue>184</blue>
+ </color>
+ </division>
+</map>
diff --git a/kgeography/data/world.png b/kgeography/data/world.png
new file mode 100644
index 00000000..8f4b6b1e
--- /dev/null
+++ b/kgeography/data/world.png
Binary files differ
diff --git a/kgeography/icons/Makefile.am b/kgeography/icons/Makefile.am
new file mode 100644
index 00000000..ae308414
--- /dev/null
+++ b/kgeography/icons/Makefile.am
@@ -0,0 +1 @@
+KDE_ICON = kgeography
diff --git a/kgeography/icons/cr128-app-kgeography.png b/kgeography/icons/cr128-app-kgeography.png
new file mode 100644
index 00000000..ba061836
--- /dev/null
+++ b/kgeography/icons/cr128-app-kgeography.png
Binary files differ
diff --git a/kgeography/icons/cr16-app-kgeography.png b/kgeography/icons/cr16-app-kgeography.png
new file mode 100644
index 00000000..67872fa5
--- /dev/null
+++ b/kgeography/icons/cr16-app-kgeography.png
Binary files differ
diff --git a/kgeography/icons/cr22-app-kgeography.png b/kgeography/icons/cr22-app-kgeography.png
new file mode 100644
index 00000000..afdd2b07
--- /dev/null
+++ b/kgeography/icons/cr22-app-kgeography.png
Binary files differ
diff --git a/kgeography/icons/cr32-app-kgeography.png b/kgeography/icons/cr32-app-kgeography.png
new file mode 100644
index 00000000..33b4d52e
--- /dev/null
+++ b/kgeography/icons/cr32-app-kgeography.png
Binary files differ
diff --git a/kgeography/icons/cr48-app-kgeography.png b/kgeography/icons/cr48-app-kgeography.png
new file mode 100644
index 00000000..4b3b3028
--- /dev/null
+++ b/kgeography/icons/cr48-app-kgeography.png
Binary files differ
diff --git a/kgeography/icons/cr64-app-kgeography.png b/kgeography/icons/cr64-app-kgeography.png
new file mode 100644
index 00000000..cfa3661b
--- /dev/null
+++ b/kgeography/icons/cr64-app-kgeography.png
Binary files differ
diff --git a/kgeography/icons/crsc-app-kgeography.svgz b/kgeography/icons/crsc-app-kgeography.svgz
new file mode 100644
index 00000000..6d5b3650
--- /dev/null
+++ b/kgeography/icons/crsc-app-kgeography.svgz
Binary files differ
diff --git a/kgeography/icons/hi128-app-kgeography.png b/kgeography/icons/hi128-app-kgeography.png
new file mode 100644
index 00000000..ce5decd5
--- /dev/null
+++ b/kgeography/icons/hi128-app-kgeography.png
Binary files differ
diff --git a/kgeography/icons/hi16-app-kgeography.png b/kgeography/icons/hi16-app-kgeography.png
new file mode 100644
index 00000000..2fbc4c6a
--- /dev/null
+++ b/kgeography/icons/hi16-app-kgeography.png
Binary files differ
diff --git a/kgeography/icons/hi22-app-kgeography.png b/kgeography/icons/hi22-app-kgeography.png
new file mode 100644
index 00000000..d5e18f17
--- /dev/null
+++ b/kgeography/icons/hi22-app-kgeography.png
Binary files differ
diff --git a/kgeography/icons/hi32-app-kgeography.png b/kgeography/icons/hi32-app-kgeography.png
new file mode 100644
index 00000000..3eb9f3a3
--- /dev/null
+++ b/kgeography/icons/hi32-app-kgeography.png
Binary files differ
diff --git a/kgeography/icons/hi48-app-kgeography.png b/kgeography/icons/hi48-app-kgeography.png
new file mode 100644
index 00000000..48fe55ec
--- /dev/null
+++ b/kgeography/icons/hi48-app-kgeography.png
Binary files differ
diff --git a/kgeography/icons/hi64-app-kgeography.png b/kgeography/icons/hi64-app-kgeography.png
new file mode 100644
index 00000000..235bc829
--- /dev/null
+++ b/kgeography/icons/hi64-app-kgeography.png
Binary files differ
diff --git a/kgeography/src/Makefile.am b/kgeography/src/Makefile.am
new file mode 100644
index 00000000..e70ac19c
--- /dev/null
+++ b/kgeography/src/Makefile.am
@@ -0,0 +1,43 @@
+## Makefile.am for kgeography
+
+# this is the program that gets installed. it's name is used for all
+# of the other Makefile.am variables
+bin_PROGRAMS = kgeography
+
+# set the include path for X, qt and KDE
+INCLUDES = $(all_includes)
+
+# the library search path.
+kgeography_LDFLAGS = $(all_libraries) $(KDE_RPATH)
+
+# the libraries to link against.
+kgeography_LDADD = $(LIB_KDEUI)
+
+# which sources should be compiled for kgeography
+kgeography_SOURCES = main.cpp mapwidget.cpp division.cpp map.cpp mapparser.cpp kgeography.cpp mapchooser.cpp mypopup.cpp popupmanager.cpp settings.kcfgc flagdivisionasker.cpp askwidget.cpp mapasker.cpp capitaldivisionasker.cpp divisioncapitalasker.cpp boxasker.cpp divisionflagasker.cpp answer.cpp answersdialog.cpp
+
+# let automoc handle all of the meta source files (moc)
+METASOURCES = AUTO
+
+messages: rc.cpp
+ $(XGETTEXT) *.cpp -o $(podir)/kgeography.pot
+
+# this is where the kdelnk file will go
+xdg_apps_DATA = kgeography.desktop
+
+kde_kcfg_DATA = kgeography.kcfg
+
+# this is where the XML-GUI resource file goes
+rcdir = $(kde_datadir)/kgeography
+rc_DATA = kgeographyui.rc
+
+debug: kgeography
+ ddd ./kgeography
+
+valgrind: kgeography
+ valgrind --tool=memcheck --leak-check=yes ./kgeography
+
+noinst_PROGRAMS = script
+script_SOURCES = script.cpp
+script_LDADD = $(LIB_QT)
+script_LDFLAGS = $(all_libraries)
diff --git a/kgeography/src/answer.cpp b/kgeography/src/answer.cpp
new file mode 100644
index 00000000..a468333c
--- /dev/null
+++ b/kgeography/src/answer.cpp
@@ -0,0 +1,116 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include <qimage.h>
+#include <qlabel.h>
+#include <qlayout.h>
+
+#include <kdialog.h>
+
+#include "answer.h"
+
+userAnswer::userAnswer()
+{
+}
+
+userAnswer::userAnswer(const userAnswer &r)
+{
+ p_question = r.p_question;
+ p_answer = r.p_answer;
+ p_correctAnswer = r.p_correctAnswer;
+ p_correct = r.p_correct;
+}
+
+userAnswer &userAnswer::operator=(const userAnswer &r)
+{
+ p_question = r.p_question;
+ p_answer = r.p_answer;
+ p_correctAnswer = r.p_correctAnswer;
+ p_correct = r.p_correct;
+ return *this;
+}
+
+void userAnswer::setQuestion(QVariant question)
+{
+ p_question = question;
+}
+
+void userAnswer::setAnswer(QVariant answer)
+{
+ p_answer = answer;
+}
+
+void userAnswer::setAnswerCorrect(bool correct)
+{
+ p_correct = correct;
+}
+
+void userAnswer::setCorrectAnswer(QVariant correctAnswer)
+{
+ p_correctAnswer = correctAnswer;
+}
+
+void userAnswer::putWidgets(QWidget *w, QGridLayout *lay, int row) const
+{
+ QWidget *widgets[3];
+ const QVariant *v;
+
+ for (int i = 0; i < 3; i++)
+ {
+ if (i == 0) v = &p_question;
+ else if (i == 1) v = &p_answer;
+ else v = &p_correctAnswer;
+
+ if (v -> type() == QVariant::String)
+ {
+ QLabel *l;
+ l = new QLabel(w);
+ l -> setText(v -> toString());
+ l -> setMargin(KDialog::marginHint() / 2);
+ widgets[i] = l;
+ }
+ else if (v -> type() == QVariant::Color)
+ {
+ QWidget *aux = new QWidget(w);
+ QHBoxLayout *lay = new QHBoxLayout(aux);
+
+ QFrame *inner = new QFrame(aux);
+ lay -> addWidget(inner);
+ inner -> setBackgroundColor(v -> toColor());
+ inner -> setLineWidth(1);
+ lay -> setMargin(KDialog::marginHint() / 2);
+ widgets[i] = aux;
+ }
+ else if (v -> type() == QVariant::Image)
+ {
+ QLabel *l;
+ l = new QLabel(w);
+ l -> setPixmap(v -> toImage());
+ l -> setAlignment(Qt::AlignHCenter);
+ l -> setMargin(KDialog::marginHint() / 2);
+ widgets[i] = l;
+ }
+
+ lay -> addWidget(widgets[i], row, i + 1);
+ }
+
+ if (!p_correct)
+ {
+ QColor back, fore;
+ back = widgets[0] -> colorGroup().highlight();
+ fore = widgets[0] -> colorGroup().highlightedText();
+ for (int i = 0; i < 3; i++)
+ {
+ widgets[i] -> setPaletteBackgroundColor(back);
+ widgets[i] -> setPaletteForegroundColor(fore);
+ }
+ }
+}
+
diff --git a/kgeography/src/answer.h b/kgeography/src/answer.h
new file mode 100644
index 00000000..02190ab4
--- /dev/null
+++ b/kgeography/src/answer.h
@@ -0,0 +1,38 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef RESULT_H
+#define RESULT_H
+
+#include <qvariant.h>
+
+class QGridLayout;
+
+class userAnswer
+{
+ public:
+ userAnswer();
+ userAnswer(const userAnswer &qa);
+
+ userAnswer &operator=(const userAnswer &qa);
+
+ void setQuestion(QVariant question);
+ void setAnswer(QVariant answer);
+ void setAnswerCorrect(bool correct);
+ void setCorrectAnswer(QVariant correctAnswer);
+
+ void putWidgets(QWidget *w, QGridLayout *lay, int row) const;
+
+ private:
+ QVariant p_question, p_answer, p_correctAnswer;
+ bool p_correct;
+};
+
+#endif
diff --git a/kgeography/src/answersdialog.cpp b/kgeography/src/answersdialog.cpp
new file mode 100644
index 00000000..a9925b6d
--- /dev/null
+++ b/kgeography/src/answersdialog.cpp
@@ -0,0 +1,95 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include <klocale.h>
+
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qscrollview.h>
+
+#include "answer.h"
+#include "answersdialog.h"
+
+answersDialog::answersDialog(QWidget *parent, const QValueVector<userAnswer> &userAnswers, QString question, int correctAnswers) : KDialogBase(parent, 0, true, i18n("Your Answers Were"), Ok)
+{
+ QLabel *l1, *l2, *l3;
+ QFont boldFont, bigFont;
+ uint totalAnswers;
+ totalAnswers = userAnswers.count();
+
+ p_sv = new QScrollView(this);
+ setMainWidget(p_sv);
+
+ p_container = new QWidget(p_sv -> viewport());
+ p_sv -> viewport() -> setPaletteBackgroundColor(p_container -> paletteBackgroundColor());
+
+ QGridLayout *lay = new QGridLayout(p_container);
+ lay -> setColStretch(0, 1);
+ lay -> setColStretch(4, 1);
+ lay -> setRowStretch(totalAnswers + 4, 1);
+
+ // Title
+ bigFont = p_container -> font();
+ bigFont.setPointSize(24);
+ l1 = new QLabel(question, p_container);
+ l1 -> setFont(bigFont);
+ l1 -> setAlignment(Qt::AlignCenter);
+ lay->addMultiCellWidget(l1, 0, 0, 0, 4);
+
+ // Headers
+ boldFont = p_container -> font();
+ boldFont.setBold(true);
+
+ l1 = new QLabel(i18n("Question"), p_container);
+ l1 -> setFont(boldFont);
+ l2 = new QLabel(i18n("Your Answer"), p_container);
+ l2 -> setFont(boldFont);
+ l3 = new QLabel(i18n("Correct Answer"), p_container);
+ l3 -> setFont(boldFont);
+ l1 -> setMargin(KDialog::marginHint() / 2);
+ l2 -> setMargin(KDialog::marginHint() / 2);
+ l3 -> setMargin(KDialog::marginHint() / 2);
+ lay->addWidget(l1, 1, 1);
+ lay->addWidget(l2, 1, 2);
+ lay->addWidget(l3, 1, 3);
+
+ for(uint i = 0; i < totalAnswers; i++)
+ {
+ userAnswers[i].putWidgets(p_container, lay, i + 2);
+ }
+
+ lay -> addItem(new QSpacerItem(20, 20, QSizePolicy::Fixed, QSizePolicy::Fixed), totalAnswers + 3, 2);
+
+ l1 = new QLabel(i18n("You answered correctly %1 out of %2 questions.").arg(correctAnswers).arg(totalAnswers), p_container);
+ l1 -> setAlignment(Qt::AlignCenter);
+ lay->addMultiCellWidget(l1, totalAnswers + 4, totalAnswers + 4, 0, 4);
+
+ p_sv -> addChild(p_container);
+ resize(500, 500);
+}
+
+void answersDialog::showEvent(QShowEvent *)
+{
+ positionContainer();
+}
+
+void answersDialog::resizeEvent(QResizeEvent *)
+{
+ positionContainer();
+}
+
+void answersDialog::positionContainer()
+{
+ int x = p_sv -> viewport() -> width() - p_container -> width();
+ x = x / 2;
+ if (x < 0) x = 0;
+ p_sv -> moveChild(p_container, x, 0);
+}
+
diff --git a/kgeography/src/answersdialog.h b/kgeography/src/answersdialog.h
new file mode 100644
index 00000000..acd930a9
--- /dev/null
+++ b/kgeography/src/answersdialog.h
@@ -0,0 +1,39 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef RESULTSWIDGET_H
+#define RESULTSWIDGET_H
+
+#include <kdialogbase.h>
+
+#include <qvaluevector.h>
+
+class QScrollView;
+class QWidget;
+
+class userAnswer;
+
+class answersDialog : public KDialogBase
+{
+ public:
+ answersDialog(QWidget *parent, const QValueVector<userAnswer> &userAnswers, QString question, int correctAnswers);
+
+ protected:
+ void showEvent(QShowEvent *e);
+ void resizeEvent(QResizeEvent *e);
+
+ private:
+ void positionContainer();
+
+ QWidget *p_container;
+ QScrollView *p_sv;
+};
+
+#endif
diff --git a/kgeography/src/askwidget.cpp b/kgeography/src/askwidget.cpp
new file mode 100644
index 00000000..d0d38548
--- /dev/null
+++ b/kgeography/src/askwidget.cpp
@@ -0,0 +1,104 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include <klocale.h>
+#include <kmessagebox.h>
+
+#include <qlabel.h>
+
+#include "askwidget.h"
+#include "map.h"
+
+askWidget::askWidget(QWidget *parent, KGmap *m, QWidget *w, uint count, bool showLabel) : QWidget(parent), p_map(m), p_count(count)
+{
+ if (showLabel)
+ {
+ p_answers = new QLabel(w);
+ p_answers -> setAlignment(AlignTop | AlignHCenter);
+ resetAnswers();
+ p_answers -> show();
+ }
+ else p_answers = 0;
+}
+
+askWidget::~askWidget()
+{
+ delete p_answers;
+}
+
+int askWidget::correctAnswers() const
+{
+ return p_correctAnswers;
+}
+
+QValueVector<userAnswer> askWidget::userAnswers() const
+{
+ return p_userAnswers;
+}
+
+void askWidget::setMovement(bool)
+{
+}
+
+void askWidget::setZoom(bool)
+{
+}
+
+void askWidget::setOriginalZoom()
+{
+}
+
+void askWidget::clearAsked()
+{
+ p_asked.clear();
+}
+
+QString askWidget::lastDivisionAsked()
+{
+ return p_asked.last();
+}
+
+void askWidget::nextQuestion()
+{
+ QString aux;
+
+ if (p_asked.count() < p_count)
+ {
+ aux = p_map -> getRandomDivision(isClickOnDivision());
+ while (p_asked.find(aux) != p_asked.end()) aux = p_map -> getRandomDivision(isClickOnDivision());
+ p_asked << aux;
+ nextQuestionHook(aux);
+ }
+ else emit questionsEnded();
+}
+
+void askWidget::questionAnswered(bool wasCorrect)
+{
+ p_currentAnswer.setAnswerCorrect(wasCorrect);
+ p_userAnswers.append(p_currentAnswer);
+
+ if (wasCorrect) p_correctAnswers++;
+ else p_incorrectAnswers++;
+ updateLabel();
+}
+
+void askWidget::resetAnswers()
+{
+ p_correctAnswers = 0;
+ p_incorrectAnswers = 0;
+ updateLabel();
+}
+
+void askWidget::updateLabel()
+{
+ p_answers -> setText(i18n("Correct answers: %1/%2").arg(p_correctAnswers).arg(p_correctAnswers + p_incorrectAnswers));
+}
+
+#include "askwidget.moc"
diff --git a/kgeography/src/askwidget.h b/kgeography/src/askwidget.h
new file mode 100644
index 00000000..9e7450ae
--- /dev/null
+++ b/kgeography/src/askwidget.h
@@ -0,0 +1,72 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef ASKWIDGET_H
+#define ASKWIDGET_H
+
+#include <qvaluevector.h>
+#include <qwidget.h>
+
+#include "answer.h"
+
+class QLabel;
+
+class KGmap;
+
+class askWidget : public QWidget
+{
+Q_OBJECT
+ public:
+ askWidget(QWidget *parent, KGmap *m, QWidget *w, uint count, bool showLabel = true);
+ virtual ~askWidget();
+
+ virtual QString getQuestionHook() const = 0;
+ virtual bool isClickOnDivision() const { return false; }
+ int correctAnswers() const;
+ QValueVector<userAnswer> userAnswers() const;
+
+ public slots:
+ virtual void setMovement(bool b);
+ virtual void setZoom(bool b);
+ virtual void setOriginalZoom();
+
+ signals:
+ void setMoveActionChecked(bool b);
+ void setZoomActionChecked(bool b);
+ void setMoveActionEnabled(bool b);
+ void questionsEnded();
+
+ protected:
+ void clearAsked();
+ QString lastDivisionAsked();
+ void nextQuestion();
+ virtual void nextQuestionHook(const QString &division) = 0;
+ void questionAnswered(bool wasCorrect);
+ void resetAnswers();
+
+ KGmap *p_map;
+ userAnswer p_currentAnswer;
+ QLabel *p_answers;
+
+ private:
+ void updateLabel();
+
+ int p_correctAnswers, p_incorrectAnswers;
+
+ QValueVector<userAnswer> p_userAnswers;
+
+ // the list of asked divisions
+ QStringList p_asked;
+
+ // the number of questions to do
+ uint p_count;
+};
+
+#endif
diff --git a/kgeography/src/boxasker.cpp b/kgeography/src/boxasker.cpp
new file mode 100644
index 00000000..0634c622
--- /dev/null
+++ b/kgeography/src/boxasker.cpp
@@ -0,0 +1,128 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include <stdlib.h> // for RAND_MAX
+
+#include <kaccelmanager.h>
+#include <kapplication.h>
+#include <klocale.h>
+#include <kpushbutton.h>
+
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qradiobutton.h>
+#include <qvbuttongroup.h>
+
+#include "boxasker.h"
+#include "map.h"
+
+boxAsker::boxAsker(QWidget *parent, KGmap *m, QWidget *w, uint count) : askWidget(parent, m, w, count)
+{
+ p_lay = new QVBoxLayout(this);
+
+ QVButtonGroup *bg = new QVButtonGroup(this);
+ p_label = new QLabel(this);
+ p_rb = new QRadioButton*[4];
+ for(int i = 0; i < 4; i++)
+ {
+ p_rb[i] = new QRadioButton(bg);
+ p_rb[i]->setFocusPolicy(QWidget::StrongFocus);
+ }
+ p_accept = new KPushButton(this);
+
+ p_lay -> addWidget(p_label);
+ p_lay -> addWidget(bg, 1);
+ p_lay -> addWidget(p_accept);
+ KAcceleratorManager::setNoAccel(this);
+}
+
+boxAsker::~boxAsker()
+{
+ delete[] p_rb;
+}
+
+void boxAsker::setQuestion(const QString &q)
+{
+ p_label -> setText(q);
+}
+
+void boxAsker::keyReleaseEvent(QKeyEvent *e)
+{
+ if (e -> key() == Qt::Key_Return || e -> key() == Qt::Key_Enter) checkAnswer();
+ else askWidget::keyReleaseEvent(e);
+}
+
+void boxAsker::nextQuestionHook(const QString &division)
+{
+ QString otherDivision;
+ QStringList auxList;
+ int i;
+
+ setFocus();
+ for (i = 0; i < 4; i++) p_rb[i] -> setChecked(false);
+
+ auxList << division;
+
+ // we put the division in a random place
+ p_position = (int)((float)4 * kapp -> random() / (RAND_MAX + 1.0));
+ nextBoxAskerQuestionHook(division, p_position, true);
+
+ // we put other 3 names
+ i = 0;
+ while (i < 4)
+ {
+ // false because boxaskers never are clickOnDivision
+ otherDivision = p_map -> getRandomDivision(false);
+ while (auxList.find(otherDivision) != auxList.end()) otherDivision = p_map -> getRandomDivision(false);
+ if (i == p_position) i++;
+ if (i < 4 && nextBoxAskerQuestionHook(otherDivision, i, false)) i++;
+ auxList << otherDivision;
+ }
+}
+
+void boxAsker::checkAnswer()
+{
+ bool any, correct;
+ int i;
+
+ correct = false;
+ any = false;
+ i = 0;
+ while(!any && i < 4)
+ {
+ if (p_rb[i] -> isChecked())
+ {
+ any = true;
+ correct = (i == p_position);
+ }
+ else i++;
+ }
+
+ if (any)
+ {
+ setAnswerHook(i);
+ questionAnswered(correct);
+ nextQuestion();
+ }
+}
+
+void boxAsker::init()
+{
+ p_accept -> setText(i18n("&Accept"));
+
+ resetAnswers();
+ clearAsked();
+ nextQuestion();
+
+ p_accept -> disconnect();
+ connect(p_accept, SIGNAL(clicked()), this, SLOT(checkAnswer()));
+}
+
+#include "boxasker.moc"
diff --git a/kgeography/src/boxasker.h b/kgeography/src/boxasker.h
new file mode 100644
index 00000000..a9391f43
--- /dev/null
+++ b/kgeography/src/boxasker.h
@@ -0,0 +1,57 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef BOXASKER_H
+#define BOXASKER_H
+
+#include "askwidget.h"
+
+class KPushButton;
+
+class QLabel;
+class QRadioButton;
+class QVBoxLayout;
+
+class boxAsker : public askWidget
+{
+Q_OBJECT
+ public:
+ boxAsker(QWidget *parent, KGmap *m, QWidget *w, uint count);
+ ~boxAsker();
+
+ protected:
+ virtual bool nextBoxAskerQuestionHook(const QString &division, int i, bool isAnswer) = 0;
+ void nextQuestionHook(const QString &division);
+ void setQuestion(const QString &q);
+ virtual void setAnswerHook(int userSays) = 0;
+
+ void keyReleaseEvent(QKeyEvent *e);
+
+ QVBoxLayout *p_lay;
+ QRadioButton **p_rb;
+
+ protected slots:
+ void init();
+
+ private slots:
+ void checkAnswer();
+
+ private:
+ /*void nextQuestion();*/
+
+ KPushButton *p_accept;
+
+ // the position the correct answer is in
+ int p_position;
+
+ QLabel *p_label;
+};
+
+#endif
diff --git a/kgeography/src/capitaldivisionasker.cpp b/kgeography/src/capitaldivisionasker.cpp
new file mode 100644
index 00000000..623cffa4
--- /dev/null
+++ b/kgeography/src/capitaldivisionasker.cpp
@@ -0,0 +1,74 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include <klocale.h>
+
+#include <qradiobutton.h>
+
+#include "capitaldivisionasker.h"
+#include "map.h"
+
+capitalDivisionAsker::capitalDivisionAsker(QWidget *parent, KGmap *m, QWidget *w, uint count) : boxAsker(parent, m, w, count)
+{
+ init();
+}
+
+bool capitalDivisionAsker::nextBoxAskerQuestionHook(const QString &division, int i, bool isAnswer)
+{
+ bool b;
+ if (isAnswer)
+ {
+ p_capital = p_map -> getDivisionCapital(division);
+ p_currentAnswer.setQuestion(i18n(p_map -> getFileName().utf8(), p_capital.utf8()));
+ p_currentAnswer.setCorrectAnswer(i18n(p_map -> getFileName().utf8(), division.utf8()));
+
+ QString sw = i18n("There are two ways of dealing with the translation of \"%1 is the capital of...\". The first option simply replaces %1 with the translated name of the relevant city. If the grammar of your language allows this, choose this option by setting the translation of this message to 1, and leave untranslated the translations of \"%1 is the capital of...\" that have the placename embedded (or translate them as - if you wish to show the file as fully translated. The second option is to translate all messages in full - this is likely to be required in the case of highly-inflected languages like Russian. To choose this option, set the translation of this message to 0, and translate all the messages.", "0");
+ if (sw == "1")
+ {
+ QString capitalName = i18n(p_map -> getFileName().utf8(), p_capital.utf8());
+ QString text = i18n("%1 is the capital of...");
+ setQuestion(text.arg(capitalName));
+ }
+ else
+ {
+ QString s = QString("%1 is the capital of...").arg(p_capital);
+ setQuestion(i18n(p_map -> getFileName().utf8(), s.utf8()));
+ }
+ p_rb[i] -> setText(i18n(p_map -> getFileName().utf8(), division.utf8()));
+ b = true;
+ }
+ else
+ {
+ // There are crazy countries like Norway where two different divisions
+ // have the same capital, avoid asking
+ // Oslo is the capital of ...
+ // Oslo (true)
+ // Akershus (true)
+ // Buskerud
+ // Hedmark
+ if (p_map -> getDivisionCapital(division) != p_capital)
+ {
+ p_rb[i] -> setText(i18n(p_map -> getFileName().utf8(), division.utf8()));
+ b = true;
+ }
+ else b = false;
+ }
+ return b;
+}
+
+void capitalDivisionAsker::setAnswerHook(int userSays)
+{
+ p_currentAnswer.setAnswer(p_rb[userSays] -> text());
+}
+
+QString capitalDivisionAsker::getQuestionHook() const
+{
+ return i18n("Division From Its Capital");
+}
diff --git a/kgeography/src/capitaldivisionasker.h b/kgeography/src/capitaldivisionasker.h
new file mode 100644
index 00000000..6464d62b
--- /dev/null
+++ b/kgeography/src/capitaldivisionasker.h
@@ -0,0 +1,32 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef CAPITALDIVISIONASKER_H
+#define CAPITALDIVISIONASKER_H
+
+#include "boxasker.h"
+
+class QLabel;
+
+class capitalDivisionAsker : public boxAsker
+{
+ public:
+ capitalDivisionAsker(QWidget *parent, KGmap *m, QWidget *w, uint count);
+
+ protected:
+ bool nextBoxAskerQuestionHook(const QString &division, int i, bool isAnswer);
+ void setAnswerHook(int userSays);
+ QString getQuestionHook() const;
+
+ private:
+ QString p_capital;
+};
+
+#endif
diff --git a/kgeography/src/division.cpp b/kgeography/src/division.cpp
new file mode 100644
index 00000000..733b6d3f
--- /dev/null
+++ b/kgeography/src/division.cpp
@@ -0,0 +1,82 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include <qfile.h>
+
+#include "division.h"
+
+division::division()
+{
+ p_canAskAlways = true;
+ p_canAskClickDivision = true;
+ p_flagFile = QString::null;
+}
+
+bool division::canAsk(bool clickDivisionMode) const
+{
+ if (clickDivisionMode) return p_canAskClickDivision;
+ else return p_canAskAlways;
+}
+
+QString division::getName() const
+{
+ return p_name;
+}
+
+QRgb division::getRGB() const
+{
+ return p_color;
+}
+
+QString division::getFlagFile() const
+{
+ return p_flagFile;
+}
+
+QString division::getCapital() const
+{
+ if (p_capital.isEmpty()) return "";
+ return p_capital;
+}
+
+void division::setCapital(const QString &name)
+{
+ p_capital = name;
+}
+
+void division::setIgnore(bool ignore, bool canAskClickDivision)
+{
+ if (ignore)
+ {
+ p_canAskAlways = false;
+ p_canAskClickDivision = canAskClickDivision;
+ }
+ else
+ {
+ p_canAskAlways = true;
+ p_canAskClickDivision = true;
+ }
+}
+
+void division::setName(const QString &name)
+{
+ p_name = name;
+}
+
+void division::setRGB(int r, int g, int b)
+{
+ p_color = qRgb(r, g, b);
+}
+
+bool division::setFlagFile(const QString &path)
+{
+ p_flagFile = path;
+ return QFile::exists(path);
+}
diff --git a/kgeography/src/division.h b/kgeography/src/division.h
new file mode 100644
index 00000000..cc8119a3
--- /dev/null
+++ b/kgeography/src/division.h
@@ -0,0 +1,40 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef DIVISION_H
+#define DIVISION_H
+
+#include <qcolor.h>
+#include <qstring.h>
+
+class division
+{
+ public:
+ division();
+
+ bool canAsk(bool clickDivisionMode) const;
+ QString getName() const;
+ QRgb getRGB() const;
+ QString getFlagFile() const;
+ QString getCapital() const;
+
+ void setCapital(const QString &name);
+ void setIgnore(bool ignore, bool canAskClickDivision);
+ void setName(const QString &name);
+ void setRGB(int r, int g, int b);
+ bool setFlagFile(const QString &path);
+
+ private:
+ QString p_name, p_flagFile, p_capital;
+ QRgb p_color;
+ bool p_canAskAlways, p_canAskClickDivision;
+};
+
+#endif
diff --git a/kgeography/src/divisioncapitalasker.cpp b/kgeography/src/divisioncapitalasker.cpp
new file mode 100644
index 00000000..0fcdb8b8
--- /dev/null
+++ b/kgeography/src/divisioncapitalasker.cpp
@@ -0,0 +1,75 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include <klocale.h>
+
+#include <qradiobutton.h>
+
+#include "divisioncapitalasker.h"
+#include "map.h"
+
+divisionCapitalAsker::divisionCapitalAsker(QWidget *parent, KGmap *m, QWidget *w, uint count) : boxAsker(parent, m, w, count)
+{
+ init();
+}
+
+bool divisionCapitalAsker::nextBoxAskerQuestionHook(const QString &division, int i, bool isAnswer)
+{
+ bool b;
+ if (isAnswer)
+ {
+ QString sw = i18n("There are two ways of dealing with the translation of \"The capital of %1 is...\". The first option simply replaces %1 with the translated name of the relevant region. If the grammar of your language allows this, choose this option by setting the translation of this message to 1, and leave untranslated the translations of \"The capital of %1 is...\" that have the placename embedded (or translate them as - if you wish to show the file as fully translated. The second option is to translate all messages in full - this is likely to be required in the case of highly-inflected languages like Russian. To choose this option, set the translation of this message to 0, and translate all the messages.", "0");
+ if (sw == "1")
+ {
+ QString divisionName = i18n(p_map -> getFileName().utf8(), division.utf8());
+ QString text = i18n("The capital of %1 is...");
+ setQuestion(text.arg(divisionName));
+ }
+ else
+ {
+ QString s = QString("The capital of %1 is...").arg(division);
+ setQuestion(i18n(p_map -> getFileName().utf8(), s.utf8()));
+ }
+ p_currentAnswer.setQuestion(i18n(p_map -> getFileName().utf8(), division.utf8()));
+ p_capital = p_map -> getDivisionCapital(division);
+ p_currentAnswer.setCorrectAnswer(i18n(p_map -> getFileName().utf8(), p_capital.utf8()));
+ p_rb[i] -> setText(i18n(p_map -> getFileName().utf8(), p_capital.utf8()));
+ b = true;
+ }
+ else
+ {
+ QString capital;
+ capital = p_map -> getDivisionCapital(division);
+ // There are crazy countries like Norway where two different divisions
+ // have the same capital, avoid asking
+ // The capital of Akershus is ...
+ // Oslo (true)
+ // Oslo (true)
+ // Lillehammer
+ // Moss
+ if (capital != p_capital)
+ {
+ p_rb[i] -> setText(i18n(p_map -> getFileName().utf8(), capital.utf8()));
+ b = true;
+ }
+ else b = false;
+ }
+ return b;
+}
+
+void divisionCapitalAsker::setAnswerHook(int userSays)
+{
+ p_currentAnswer.setAnswer(p_rb[userSays] -> text());
+}
+
+QString divisionCapitalAsker::getQuestionHook() const
+{
+ return i18n("Capital of Division");
+}
diff --git a/kgeography/src/divisioncapitalasker.h b/kgeography/src/divisioncapitalasker.h
new file mode 100644
index 00000000..e63901c5
--- /dev/null
+++ b/kgeography/src/divisioncapitalasker.h
@@ -0,0 +1,30 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef DIVISIONCAPITALASKER_H
+#define DIVISIONCAPITALASKER_H
+
+#include "boxasker.h"
+
+class divisionCapitalAsker : public boxAsker
+{
+ public:
+ divisionCapitalAsker(QWidget *parent, KGmap *m, QWidget *w, uint count);
+
+ protected:
+ bool nextBoxAskerQuestionHook(const QString &division, int i, bool isAnswer);
+ void setAnswerHook(int userSays);
+ QString getQuestionHook() const;
+
+ private:
+ QString p_capital;
+};
+
+#endif
diff --git a/kgeography/src/divisionflagasker.cpp b/kgeography/src/divisionflagasker.cpp
new file mode 100644
index 00000000..cc5f2430
--- /dev/null
+++ b/kgeography/src/divisionflagasker.cpp
@@ -0,0 +1,57 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include <klocale.h>
+
+#include <qimage.h>
+#include <qradiobutton.h>
+
+#include "divisionflagasker.h"
+#include "map.h"
+
+divisionFlagAsker::divisionFlagAsker(QWidget *parent, KGmap *m, QWidget *w, uint count) : boxAsker(parent, m, w, count)
+{
+ init();
+}
+
+bool divisionFlagAsker::nextBoxAskerQuestionHook(const QString &division, int i, bool isAnswer)
+{
+ QImage im(p_map -> getDivisionFlagFile(division));
+ im = im.smoothScale(im.width()/5, im.height()/5);
+ p_rb[i] -> setPixmap(im);
+ if (isAnswer)
+ {
+ QString sw = i18n("There are two ways of dealing with the translation of \"The flag of %1 is...\". The first option simply replaces %1 with the translated name of the relevant region. If the grammar of your language allows this, choose this option by setting the translation of this message to 1, and leave untranslated the translations of \"The flag of %1 is...\" that have the placename embedded (or translate them as - if you wish to show the file as fully translated. The second option is to translate all messages in full - this is likely to be required in the case of highly-inflected languages like Russian. To choose this option, set the translation of this message to 0, and translate all the messages.", "0");
+ if (sw == "1")
+ {
+ QString divisionName = i18n(p_map -> getFileName().utf8(), division.utf8());
+ QString text = i18n("The flag of %1 is...");
+ setQuestion(text.arg(divisionName));
+ }
+ else
+ {
+ QString s = QString("The flag of %1 is...").arg(division);
+ setQuestion(i18n(p_map -> getFileName().utf8(), s.utf8()));
+ }
+ p_currentAnswer.setCorrectAnswer(im);
+ p_currentAnswer.setQuestion(i18n(p_map -> getFileName().utf8(), division.utf8()));
+ }
+ return true;
+}
+
+void divisionFlagAsker::setAnswerHook(int userSays)
+{
+ p_currentAnswer.setAnswer(p_rb[userSays] -> pixmap() -> convertToImage());
+}
+
+QString divisionFlagAsker::getQuestionHook() const
+{
+ return i18n("Flag of Division");
+}
diff --git a/kgeography/src/divisionflagasker.h b/kgeography/src/divisionflagasker.h
new file mode 100644
index 00000000..a0611d28
--- /dev/null
+++ b/kgeography/src/divisionflagasker.h
@@ -0,0 +1,27 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef DIVISIONFLAGASKER_H
+#define DIVISIONFLAGASKER_H
+
+#include "boxasker.h"
+
+class divisionFlagAsker : public boxAsker
+{
+ public:
+ divisionFlagAsker(QWidget *parent, KGmap *m, QWidget *w, uint count);
+
+ protected:
+ bool nextBoxAskerQuestionHook(const QString &division, int i, bool isAnswer);
+ void setAnswerHook(int userSays);
+ QString getQuestionHook() const;
+};
+
+#endif
diff --git a/kgeography/src/flagdivisionasker.cpp b/kgeography/src/flagdivisionasker.cpp
new file mode 100644
index 00000000..365da9ef
--- /dev/null
+++ b/kgeography/src/flagdivisionasker.cpp
@@ -0,0 +1,52 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include <klocale.h>
+
+#include <qimage.h>
+#include <qlayout.h>
+#include <qradiobutton.h>
+
+#include "flagdivisionasker.h"
+#include "map.h"
+
+flagDivisionAsker::flagDivisionAsker(QWidget *parent, KGmap *m, QWidget *w, uint count) : boxAsker(parent, m, w, count)
+{
+ p_flag = new QWidget(this);
+ p_lay -> insertWidget(0, p_flag);
+ setQuestion(i18n("This flag belongs to:"));
+ init();
+}
+
+bool flagDivisionAsker::nextBoxAskerQuestionHook(const QString &division, int i, bool isAnswer)
+{
+ if (isAnswer)
+ {
+ // we put the flag image
+ QImage image(p_map -> getDivisionFlagFile(division));
+ p_flag -> setPaletteBackgroundPixmap(image);
+ p_flag -> setFixedSize(image.size());
+
+ p_currentAnswer.setQuestion(image.smoothScale(image.width()/5, image.height()/5));
+ p_currentAnswer.setCorrectAnswer(i18n(p_map -> getFileName().utf8(), division.utf8()));
+ }
+ p_rb[i] -> setText(i18n(p_map -> getFileName().utf8(), division.utf8()));
+ return true;
+}
+
+void flagDivisionAsker::setAnswerHook(int userSays)
+{
+ p_currentAnswer.setAnswer(p_rb[userSays] -> text());
+}
+
+QString flagDivisionAsker::getQuestionHook() const
+{
+ return i18n("Division From Its Flag");
+}
diff --git a/kgeography/src/flagdivisionasker.h b/kgeography/src/flagdivisionasker.h
new file mode 100644
index 00000000..5e351f4c
--- /dev/null
+++ b/kgeography/src/flagdivisionasker.h
@@ -0,0 +1,30 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef FLAGDIVISIONASKER_H
+#define FLAGDIVISIONASKER_H
+
+#include "boxasker.h"
+
+class flagDivisionAsker : public boxAsker
+{
+ public:
+ flagDivisionAsker(QWidget *parent, KGmap *m, QWidget *w, uint count);
+
+ protected:
+ bool nextBoxAskerQuestionHook(const QString &division, int i, bool isAnswer);
+ void setAnswerHook(int userSays);
+ QString getQuestionHook() const;
+
+ private:
+ QWidget *p_flag;
+};
+
+#endif
diff --git a/kgeography/src/kgeography.cpp b/kgeography/src/kgeography.cpp
new file mode 100644
index 00000000..26ce7819
--- /dev/null
+++ b/kgeography/src/kgeography.cpp
@@ -0,0 +1,338 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include <kaction.h>
+#include <kdialog.h>
+#include <klocale.h>
+#include <kinputdialog.h>
+#include <kmessagebox.h>
+#include <kpushbutton.h>
+#include <kstdaction.h>
+#include <kmenubar.h>
+
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qvbox.h>
+#include <qsize.h>
+#include <qtimer.h>
+#include <qwhatsthis.h>
+
+#include "answersdialog.h"
+#include "capitaldivisionasker.h"
+#include "divisioncapitalasker.h"
+#include "divisionflagasker.h"
+#include "flagdivisionasker.h"
+#include "kgeography.h"
+#include "settings.h"
+#include "mapasker.h"
+#include "mapchooser.h"
+#include "mapparser.h"
+#include "map.h"
+
+kgeography::kgeography() : KMainWindow(), p_firstShow(true), p_mustShowResultsDialog(false)
+{
+ p_map = 0;
+ p_askWidget = 0;
+
+ p_bigWidget = new QHBox(this);
+
+ QVBox *p_leftWidget = new QVBox(p_bigWidget);
+ p_currentMap = new QLabel(p_leftWidget);
+ p_currentMap -> setAlignment(AlignCenter);
+ p_consult = new KPushButton(i18n("&Browse Map"), p_leftWidget);
+ QWhatsThis::add(p_consult, i18n("In this section left click on any part of the map to learn about the divisions" ));
+ p_askMap = new KPushButton(i18n("&Click Division in Map..."), p_leftWidget);
+ QWhatsThis::add(p_askMap, i18n("In this challenge you are given a division name on the left under the menu and you must find it on the map and click on it"));
+ p_askCapitalDivisions = new KPushButton(i18n("Guess Division From Its &Capital..."), p_leftWidget);
+ QWhatsThis::add(p_askCapitalDivisions, i18n("In this quiz you have to guess the division name given its capital"));
+ p_askDivisionCapitals = new KPushButton(i18n("Guess Capital of &Division..."), p_leftWidget);
+ QWhatsThis::add(p_askDivisionCapitals, i18n("In this quiz you have to guess the capital of a given division name"));
+ p_askFlagDivisions = new KPushButton(i18n("&Guess Division From Its Flag..."), p_leftWidget);
+ QWhatsThis::add(p_askFlagDivisions, i18n("In this quiz you have to guess the division name given its flag"));
+ p_askDivisionFlags = new KPushButton(i18n("G&uess Flag of Division..."), p_leftWidget);
+ QWhatsThis::add(p_askDivisionFlags, i18n("In this quiz you have to guess the flag of a division given its name"));
+ p_underLeftWidget = new QVBox(p_leftWidget);
+ p_underLeftWidget -> layout() -> setSpacing(KDialog::spacingHint());
+ p_underLeftWidget -> layout() -> setMargin(KDialog::marginHint());
+ p_leftWidget -> setStretchFactor(p_underLeftWidget, 1);
+
+ setCentralWidget(p_bigWidget);
+
+ connect(p_consult, SIGNAL(clicked()), this, SLOT(consult()));
+ connect(p_askMap, SIGNAL(clicked()), this, SLOT(askMap()));
+ connect(p_askCapitalDivisions, SIGNAL(clicked()), this, SLOT(askCapitalDivisions()));
+ connect(p_askDivisionCapitals, SIGNAL(clicked()), this, SLOT(askDivisionCapitals()));
+ connect(p_askFlagDivisions, SIGNAL(clicked()), this, SLOT(askFlagDivisions()));
+ connect(p_askDivisionFlags, SIGNAL(clicked()), this, SLOT(askDivisionFlags()));
+
+ KAction *a = KStdAction::open(this, SLOT(openMap()), actionCollection(), "openMap");
+ a -> setText(i18n("&Open Map..."));
+ KStdAction::quit(this, SLOT(close()), actionCollection(), "quit");
+
+ p_zoom = new KToggleAction(i18n("&Zoom"), "viewmagfit", 0, 0, 0, actionCollection(), "zoom_select");
+ p_zoom -> setEnabled(false);
+
+ p_zoomOriginal = new KAction(i18n("&Original Size"), "viewmag1", 0, 0, 0, actionCollection(), "zoom_original");
+ p_zoomOriginal -> setEnabled(false);
+
+ p_move = new KToggleAction(i18n("&Move"), "move", 0, 0, 0, actionCollection(), "move");
+ p_move -> setEnabled(false);
+
+ new KAction(i18n("Disclaimer"), 0, this, SLOT(disclaimer()), actionCollection(), "disclaimer");
+
+ setupGUI(Keys | ToolBar | Save | Create);
+
+ show();
+}
+
+kgeography::~kgeography()
+{
+ delete p_askWidget;
+ delete p_map;
+}
+
+void kgeography::showEvent(QShowEvent *)
+{
+ if (p_firstShow)
+ {
+ QString file = kgeographySettings::self() -> lastMap();
+
+ if (QFile::exists(file))
+ {
+ mapReader reader;
+ if (reader.parseMap(file))
+ {
+ setMap(reader.getMap());
+ }
+ else
+ {
+ KMessageBox::error(this, i18n("Could not open last used map. Error parsing %1: %2").arg(file).arg(reader.getError()));
+ delete reader.getMap();
+ openMap();
+ }
+ }
+ else openMap();
+
+ if (!p_map)
+ {
+ p_currentMap -> setText(i18n("There is no current map"));
+ p_consult -> setEnabled(false);
+ p_askMap -> setEnabled(false);
+ p_askFlagDivisions -> setEnabled(false);
+ p_askDivisionFlags -> setEnabled(false);
+ p_askCapitalDivisions -> setEnabled(false);
+ p_askDivisionCapitals -> setEnabled(false);
+ }
+ // if anyone can explain why with the slot works and now without
+ // i'll be glad to learn
+ QTimer::singleShot(0, this, SLOT(resizeMainWindow()));
+// resizeMainWindow();
+
+ p_firstShow = false;
+ }
+}
+
+void kgeography::openMap()
+{
+ mapChooser mp(this);
+ if (mp.exec() == mapChooser::Accepted)
+ {
+ showResultsDialog();
+ setMap(mp.getMap());
+ resizeMainWindow();
+ }
+}
+
+void kgeography::consult()
+{
+ // No need to create another map viewer if we are already in it
+ mapAsker *ma = dynamic_cast<mapAsker*>(p_askWidget);
+ if (ma && !ma -> isAsker()) return;
+
+ showResultsDialog();
+ removeOldAskWidget();
+ p_askWidget = new mapAsker(p_bigWidget, p_map, p_underLeftWidget, false);
+ p_zoom -> setEnabled(true);
+ p_zoomOriginal -> setEnabled(true);
+ putAskWidget();
+}
+
+void kgeography::askCapitalDivisions()
+{
+ int i;
+ bool ok;
+ showResultsDialog();
+ i = KInputDialog::getInteger(i18n("Number of Questions"), i18n("How many questions do you want? (1 to %1)").arg(p_map -> count(false)), 1, 1, p_map -> count(false), 1, &ok);
+ if (ok)
+ {
+ removeOldAskWidget();
+ p_askWidget = new capitalDivisionAsker(p_bigWidget, p_map, p_underLeftWidget, i);
+ putAskWidget();
+ p_mustShowResultsDialog = true;
+ }
+ else consult();
+}
+
+void kgeography::askDivisionCapitals()
+{
+ int i;
+ bool ok;
+ showResultsDialog();
+ i = KInputDialog::getInteger(i18n("Number of Questions"), i18n("How many questions do you want? (1 to %1)").arg(p_map -> count(false)), 1, 1, p_map -> count(false), 1, &ok);
+ if (ok)
+ {
+ removeOldAskWidget();
+ p_askWidget = new divisionCapitalAsker(p_bigWidget, p_map, p_underLeftWidget, i);
+ putAskWidget();
+ p_mustShowResultsDialog = true;
+ }
+ else consult();
+}
+
+void kgeography::askMap()
+{
+ int i;
+ bool ok;
+ showResultsDialog();
+ i = KInputDialog::getInteger(i18n("Number of Questions"), i18n("How many questions do you want? (1 to %1)").arg(p_map -> count(true)), 1, 1, p_map -> count(true), 1, &ok);
+ if (ok)
+ {
+ removeOldAskWidget();
+ p_askWidget = new mapAsker(p_bigWidget, p_map, p_underLeftWidget, true, i);
+ p_zoom -> setEnabled(true);
+ p_zoomOriginal -> setEnabled(true);
+ putAskWidget();
+ p_mustShowResultsDialog = true;
+ }
+ else consult();
+}
+
+void kgeography::askFlagDivisions()
+{
+ int i;
+ bool ok;
+ showResultsDialog();
+ i = KInputDialog::getInteger(i18n("Number of Questions"), i18n("How many questions do you want? (1 to %1)").arg(p_map -> count(false)), 1, 1, p_map -> count(false), 1, &ok);
+ if (ok)
+ {
+ removeOldAskWidget();
+ p_askWidget = new flagDivisionAsker(p_bigWidget, p_map, p_underLeftWidget, i);
+ putAskWidget();
+ p_mustShowResultsDialog = true;
+ }
+ else consult();
+}
+
+void kgeography::askDivisionFlags()
+{
+ int i;
+ bool ok;
+ showResultsDialog();
+ i = KInputDialog::getInteger(i18n("Number of Questions"), i18n("How many questions do you want? (1 to %1)").arg(p_map -> count(false)), 1, 1, p_map -> count(false), 1, &ok);
+ if (ok)
+ {
+ removeOldAskWidget();
+ p_askWidget = new divisionFlagAsker(p_bigWidget, p_map, p_underLeftWidget, i);
+ putAskWidget();
+ p_mustShowResultsDialog = true;
+ }
+ else consult();
+}
+
+void kgeography::removeOldAskWidget()
+{
+ delete p_askWidget;
+ p_askWidget = 0;
+ p_zoom -> setEnabled(false);
+ p_zoomOriginal -> setEnabled(false);
+ p_move -> setEnabled(false);
+ p_zoom -> setChecked(false);
+ p_move -> setChecked(false);
+}
+
+QSize kgeography::getPreferredSize()
+{
+ int ySize = 0;
+
+ ySize = menuBar() -> size().height() + toolBar() -> size().height() + ((mapAsker*) p_askWidget)->mapSize().height();
+ return QSize(p_underLeftWidget -> size().width() + ((mapAsker*) p_askWidget)->mapSize().width() + 1, ySize + 1);
+}
+
+void kgeography::putAskWidget()
+{
+ p_bigWidget -> setStretchFactor(p_askWidget, 1);
+ p_askWidget -> show();
+ connect(p_askWidget, SIGNAL(setZoomActionChecked(bool)), p_zoom, SLOT(setChecked(bool)));
+ connect(p_zoom, SIGNAL(toggled(bool)), p_askWidget, SLOT(setZoom(bool)));
+ connect(p_zoomOriginal, SIGNAL(activated()), p_askWidget, SLOT(setOriginalZoom()));
+ connect(p_askWidget, SIGNAL(setMoveActionEnabled(bool)), p_move, SLOT(setEnabled(bool)));
+ connect(p_askWidget, SIGNAL(setMoveActionChecked(bool)), p_move, SLOT(setChecked(bool)));
+ connect(p_move, SIGNAL(toggled(bool)), p_askWidget, SLOT(setMovement(bool)));
+ connect(p_askWidget, SIGNAL(questionsEnded()), this, SLOT(showResultsDialog()));
+}
+
+void kgeography::setMap(KGmap *m)
+{
+ removeOldAskWidget();
+ kgeographySettings *set = kgeographySettings::self();
+ set -> setLastMap(m -> getFile());
+ set -> writeConfig();
+ delete p_map;
+ p_map = m;
+
+ QString sw = i18n("There are two ways of dealing with the translation of \"Current map: %1\". The first option simply replaces %1 with the translated name of the relevant region. If the grammar of your language allows this, choose this option by setting the translation of this message to 1, and leave untranslated the translations of \"Current map: %1\" that have the placename embedded (or translate them as - if you wish to show the file as fully translated. The second option is to translate all messages in full - this is likely to be required in the case of highly-inflected languages like Russian. To choose this option, set the translation of this message to 0, and translate all the messages.", "0");
+ if (sw == "1")
+ {
+ QString mapName = i18n(p_map -> getFileName().utf8(), p_map -> getName().utf8());
+ QString text = i18n("<qt>Current map:<br><b>%1<b></qt>");
+ p_currentMap -> setText(text.arg(mapName));
+ }
+ else
+ {
+ QString s = QString("<qt>Current map:<br><b>%1</b></qt>").arg(p_map -> getName());
+ p_currentMap -> setText(i18n(p_map -> getFileName().utf8(), s.utf8()));
+ }
+ p_consult -> setEnabled(true);
+ p_askMap -> setEnabled(true);
+ p_askFlagDivisions -> setEnabled(m -> hasAllFlags());
+ p_askDivisionFlags -> setEnabled(m -> hasAllFlags());
+ p_askCapitalDivisions -> setEnabled(true);
+ p_askDivisionCapitals -> setEnabled(true);
+ consult();
+}
+
+void kgeography::disclaimer()
+{
+ KMessageBox::information(this, i18n("Maps, flags, translations, etc. are as accurate as their respective authors could achieve, but KGeography should not be taken as an authoritative source."), i18n("Disclaimer"));
+}
+
+void kgeography::resizeMainWindow()
+{
+ if (p_askWidget) resize(getPreferredSize());
+}
+
+void kgeography::showResultsDialog()
+{
+ if (p_mustShowResultsDialog)
+ {
+ p_mustShowResultsDialog = false;
+ int ca = p_askWidget -> correctAnswers();
+ QString q = p_askWidget -> getQuestionHook();
+ QValueVector<userAnswer> ua = p_askWidget -> userAnswers();
+
+ consult();
+
+ answersDialog *ad = new answersDialog(this, ua, q, ca);
+ ad -> exec();
+ delete ad;
+ }
+}
+
+#include "kgeography.moc"
diff --git a/kgeography/src/kgeography.desktop b/kgeography/src/kgeography.desktop
new file mode 100644
index 00000000..4820d65b
--- /dev/null
+++ b/kgeography/src/kgeography.desktop
@@ -0,0 +1,116 @@
+[Desktop Entry]
+Name=KGeography
+Name[bn]=কে-জিওগà§à¦°à¦¾à¦«à¦¿
+Name[hr]=KZemljopis
+Name[nds]=KGeographie
+Name[ne]=केडीई भूगोल
+Name[pa]=ਕੇ-ਭੂਗੋਲ
+Name[sv]=Kgeografi
+Name[vi]=Äịa lý K
+GenericName=Geography Trainer
+GenericName[be]=ÐаÑтаўнік па геаграфіі
+GenericName[bg]=ГеографÑки тренировки
+GenericName[bn]=ভূগোল পà§à¦°à¦¶à¦¿à¦•à§à¦·à¦•
+GenericName[bs]=UÄitelj geografije
+GenericName[ca]=Entrenador de geografia
+GenericName[cs]=ProcviÄování zemÄ›pisu
+GenericName[csb]=Cwiczënczi z geògrafiji
+GenericName[cy]=Hyfforddydd Daearyddiaeth
+GenericName[da]=Geografitræner
+GenericName[de]=Geographie-Trainer
+GenericName[el]=Εκπαιδευτής στη γεωγÏαφία
+GenericName[eo]=Geografia trajnilo
+GenericName[es]=Geografía
+GenericName[et]=Geograafia õpiprogramm
+GenericName[eu]=Geografia entrenatzailea
+GenericName[fa]=مربی جغراÙیا
+GenericName[fi]=Maantieteen harjoittaja
+GenericName[fr]=Apprentissage de la géographie
+GenericName[ga]=Traenálaí Tíreolaíochta
+GenericName[gl]=Titor de Xeografía
+GenericName[he]=מ×מן ×’×וגרפיה
+GenericName[hr]=Vježbanje u zemljopisu
+GenericName[hu]=Földrajztanító
+GenericName[is]=Landafræðiþjálfun
+GenericName[it]=Impara la geografia
+GenericName[ja]=地ç†å­¦ãƒˆãƒ¬ãƒ¼ãƒŠãƒ¼
+GenericName[ka]=გეáƒáƒ’რáƒáƒ¤áƒ˜áƒ˜áƒ¡ სáƒáƒ•áƒáƒ áƒ¯áƒ˜áƒ¨áƒáƒ”ბი
+GenericName[km]=កម្មវិធី​បង្ហាážáŸ‹â€‹áž—ូមិវិទ្យា
+GenericName[lt]=Geografijos treniruoklis
+GenericName[ms]=Jurulatih Geografi
+GenericName[nb]=Geografitrening
+GenericName[nds]=Eerdkunn lehren
+GenericName[ne]=भूगोल शिकà¥à¤·à¤•
+GenericName[nl]=Geografietrainer
+GenericName[nn]=Geografiøvingssystem
+GenericName[pa]=ਭੂਗੋਲ ਸਿਖਲਾਈ
+GenericName[pl]=Ćwiczenia z geografii
+GenericName[pt]=Treinar Geografia
+GenericName[pt_BR]=Treinamento em Geografia
+GenericName[ru]=Тренировка знаний по географии
+GenericName[sk]=Geografický tréner
+GenericName[sl]=UÄenje zemljepisa
+GenericName[sr]=Тренер географије
+GenericName[sr@Latn]=Trener geografije
+GenericName[sv]=Geografiövning
+GenericName[tr]=CoÄŸrafya EÄŸitmeni
+GenericName[uk]=Ð¢Ñ€ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ð½ÑŒ з географії
+GenericName[vi]=Luyện tập Äịa lý
+GenericName[zh_CN]=地ç†è€å¸ˆ
+GenericName[zh_TW]=地ç†çŸ¥è­˜
+Comment=A Geography Learning Program
+Comment[be]=Праграма Ð´Ð»Ñ Ð²Ñ‹Ð²ÑƒÑ‡ÑÐ½Ð½Ñ Ð³ÐµÐ°Ð³Ñ€Ð°Ñ„Ñ–Ñ–
+Comment[bg]=Програма за изучаване на географиÑ
+Comment[bn]=ভূগোল শেখার পà§à¦°à§‹à¦—à§à¦°à¦¾à¦®
+Comment[bs]=Program za uÄenje geografije
+Comment[ca]=Un programa per aprendre geografia
+Comment[cs]=Zeměpisný výukový program
+Comment[csb]=Programa do ùczbë geògrafiji
+Comment[cy]=Rhaglen ar gyfer Dysgu Daearyddiaeth
+Comment[da]=Et indlæringsprogram for geografi
+Comment[de]=Ein Geographie-Lernprogramm
+Comment[el]=Μία εφαÏμογή εκμάθησης γεωγÏαφίας
+Comment[eo]=Programo por lerni geografion
+Comment[es]=Un programa para conocer los países y sus capitales
+Comment[et]=Geograafia õpiprogramm
+Comment[eu]=Geografia ikasteko programa
+Comment[fa]=برنامۀ یادگیری جغراÙیا
+Comment[fi]=Maantieteen oppimisohjelma
+Comment[fr]=Un programme d'apprentissage de la géographie
+Comment[ga]=Clár Foghlamtha Tíreolaíochta
+Comment[gl]=Un programa para Aprender Xeografía
+Comment[he]=תוכנה ללמידת ×’×וגרפיה
+Comment[hr]=Program za uÄenje zemljopisa
+Comment[hu]=Földrajztanító program
+Comment[is]=Landafræði forrit
+Comment[it]=Un programma per imparare la geografia
+Comment[ja]=地ç†å­¦å­¦ç¿’プログラム
+Comment[ka]=გეáƒáƒ’რáƒáƒ¤áƒ˜áƒ˜áƒ¡ სáƒáƒ¡áƒ¬áƒáƒ•áƒšáƒ პრáƒáƒ’რáƒáƒ›áƒ
+Comment[km]=កម្មវិធី​រៀន​ភូមិវិទ្យា
+Comment[lt]=Geografijos mokymo programa
+Comment[nb]=Et program for å lære geografi
+Comment[nds]=En Eerdkunn-Lehrprogramm
+Comment[ne]=भूगोल सिकà¥à¤¨à¥‡ कारà¥à¤¯à¤•à¥à¤°à¤®
+Comment[nl]=Een geografie leerprogramma
+Comment[nn]=Eit program for å læra geografi
+Comment[pa]=ਭੂਗੋਲ ਸਿਖਾਉਣ ਵਾਲਾ ਪਰੋਗਰਾਮ
+Comment[pl]=Program do nauki geografii
+Comment[pt]=Um Programa de Aprendizagem de Geografia
+Comment[pt_BR]=Um programa de aprendizagem de geografia
+Comment[ru]=Программа Ð´Ð»Ñ Ð¸Ð·ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð³ÐµÐ¾Ð³Ñ€Ð°Ñ„Ð¸Ð¸
+Comment[sk]=Geografický výukový program
+Comment[sl]=Program za uÄenje zemljepisa
+Comment[sr]=Програм за учење географије
+Comment[sr@Latn]=Program za uÄenje geografije
+Comment[sv]=Ett program för att lära sig geografi
+Comment[tr]=Bir Coğrafya Öğrenme Programı
+Comment[uk]=Програма Ð´Ð»Ñ Ð²Ð¸Ð²Ñ‡ÐµÐ½Ð½Ñ Ð³ÐµÐ¾Ð³Ñ€Ð°Ñ„Ñ–Ñ—
+Comment[vi]=Má»™t ChÆ°Æ¡ng trình giúp Há»c Äịa lý
+Comment[zh_CN]=地ç†å­¦ä¹ ç¨‹åº
+Comment[zh_TW]=學習地ç†çš„程å¼
+Exec=kgeography
+Icon=kgeography
+Type=Application
+DocPath=kgeography/index.html
+Terminal=false
+Categories=Qt;KDE;Education;
diff --git a/kgeography/src/kgeography.h b/kgeography/src/kgeography.h
new file mode 100644
index 00000000..86e79cc5
--- /dev/null
+++ b/kgeography/src/kgeography.h
@@ -0,0 +1,75 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef KGEOGRAPHY_H
+#define KGEOGRAPHY_H
+
+#include <kmainwindow.h>
+
+class KAction;
+class KPushButton;
+class KToggleAction;
+
+class QHBox;
+class QLabel;
+class QVBox;
+
+class KGmap;
+class askWidget;
+
+class kgeography : public KMainWindow
+{
+Q_OBJECT
+ public:
+ kgeography();
+ ~kgeography();
+
+ protected:
+ void showEvent(QShowEvent *e);
+
+ private slots:
+ void openMap();
+
+ void consult();
+ void askCapitalDivisions();
+ void askDivisionCapitals();
+ void askMap();
+ void askFlagDivisions();
+ void askDivisionFlags();
+ void disclaimer();
+ void resizeMainWindow();
+ void showResultsDialog();
+
+ private:
+ QSize getPreferredSize();
+
+ void putAskWidget();
+ void removeOldAskWidget();
+ void setMap(KGmap *m);
+
+ QHBox *p_bigWidget;
+ QVBox *p_underLeftWidget;
+
+ KPushButton *p_consult;
+ KPushButton *p_askCapitalDivisions;
+ KPushButton *p_askDivisionCapitals;
+ KPushButton *p_askMap;
+ KPushButton *p_askFlagDivisions;
+ KPushButton *p_askDivisionFlags;
+ KToggleAction *p_zoom, *p_move;
+ KAction *p_zoomOriginal;
+ QLabel *p_currentMap;
+
+ KGmap *p_map;
+ askWidget *p_askWidget;
+ bool p_firstShow, p_mustShowResultsDialog;
+};
+
+#endif
diff --git a/kgeography/src/kgeography.kcfg b/kgeography/src/kgeography.kcfg
new file mode 100644
index 00000000..8904f888
--- /dev/null
+++ b/kgeography/src/kgeography.kcfg
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
+ http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
+ <kcfgfile name="kgeographyrc"/>
+ <group name="general">
+ <entry name="lastMap" type="String">
+ <label>The last opened map</label>
+ </entry>
+ </group>
+</kcfg>
diff --git a/kgeography/src/kgeographyui.rc b/kgeography/src/kgeographyui.rc
new file mode 100644
index 00000000..b934b6d3
--- /dev/null
+++ b/kgeography/src/kgeographyui.rc
@@ -0,0 +1,25 @@
+<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
+<kpartgui name="kgeography" version="1">
+ <MenuBar>
+ <Menu name="file">
+ <Action name="openMap" />
+ <Separator />
+ <Action name="quit" />
+ </Menu>
+ <Menu name="view">
+ <Action name="zoom_select" />
+ <Action name="zoom_original" />
+ <Separator />
+ <Action name="move" />
+ </Menu>
+ <Menu name="help">
+ <Action name="disclaimer"/>
+ </Menu>
+ </MenuBar>
+ <ToolBar name="mainToolBar">
+ <Action name="zoom_select" />
+ <Action name="zoom_original" />
+ <Separator />
+ <Action name="move" />
+ </ToolBar>
+</kpartgui>
diff --git a/kgeography/src/main.cpp b/kgeography/src/main.cpp
new file mode 100644
index 00000000..e7b9d6ab
--- /dev/null
+++ b/kgeography/src/main.cpp
@@ -0,0 +1,37 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include <kaboutdata.h>
+#include <kapplication.h>
+#include <kcmdlineargs.h>
+
+#include "kgeography.h"
+
+int main(int argc, char *argv[])
+{
+ KAboutData about("kgeography", I18N_NOOP("KGeography"), "0.4.4", I18N_NOOP("A geography learning program"), KAboutData::License_GPL, "© 2004-2005 Albert Astals Cid", 0, "http://kgeography.berlios.de");
+ about.addAuthor("Albert Astals Cid", I18N_NOOP("Programmer and designer"), "tsdgeos@terra.es");
+ about.addCredit("Danny Allen", I18N_NOOP("Small refinements"), "danny@dannyallen.co.uk");
+ about.addCredit("Giuseppe Caruso", I18N_NOOP("Italy flags and Italy by provinces map"), "caruso@pietrobo.com");
+ about.addCredit("Melody Fink", I18N_NOOP("Map contributor"));
+ about.addCredit("Mikolaj Machowski", I18N_NOOP("Map contributor"));
+ about.addCredit("Ed Montgomery", I18N_NOOP("Map contributor"));
+ about.addCredit("Justin Morgan", I18N_NOOP("Map contributor"));
+ about.addCredit("Frank Mutsaers", I18N_NOOP("Map contributor"));
+ about.addCredit("Maurizio Paolini", I18N_NOOP("Map contributor"));
+ about.addCredit("Yann Verley", I18N_NOOP("Contributed some maps and map generation tools"), "yann.verley@free.fr");
+ about.addCredit(I18N_NOOP("Sodipodi flags collection"), I18N_NOOP("Got some flags from it"), 0, "http://www.sodipodi.com/index.php3?section=clipart/flags");
+ KCmdLineArgs::init(argc, argv, &about);
+ KApplication app;
+
+ app.setTopWidget(new kgeography());
+
+ return app.exec();
+}
diff --git a/kgeography/src/map.cpp b/kgeography/src/map.cpp
new file mode 100644
index 00000000..be681191
--- /dev/null
+++ b/kgeography/src/map.cpp
@@ -0,0 +1,156 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include <stdlib.h> // for RAND_MAX
+
+#include <kapplication.h>
+#include <klocale.h>
+
+#include <qfile.h>
+#include <qfileinfo.h>
+
+#include "division.h"
+#include "map.h"
+
+KGmap::KGmap()
+{
+ p_hasAllFlags = true;
+}
+
+KGmap::~KGmap()
+{
+ QMap<QRgb, division*>::iterator it;
+ it = p_colorMap.begin();
+ while (it != p_colorMap.end())
+ {
+ delete it.data();
+ p_colorMap.remove(it);
+ it = p_colorMap.begin();
+ }
+}
+
+bool KGmap::addDivision(division *c)
+{
+ bool b;
+ if (p_nameMap.find(c -> getName()) == p_nameMap.end() &&
+ p_colorMap.find(c -> getRGB()) == p_colorMap.end())
+ {
+ p_colorMap.insert(c -> getRGB(), c);
+ p_nameMap.insert(c -> getName(), c);
+ b = true;
+ if (c -> canAsk(false)) p_hasAllFlags = p_hasAllFlags && !c -> getFlagFile().isNull();
+ }
+ else b = false;
+ return b;
+}
+
+void KGmap::setFile(const QString &s)
+{
+ p_file = s;
+}
+
+bool KGmap::setMapFile(const QString &s)
+{
+ p_mapFile = s;
+ return QFile::exists(s);
+}
+
+void KGmap::setName(const QString &s)
+{
+ p_name = s;
+}
+
+uint KGmap::count(bool clickDivisionMode) const
+{
+ QValueList<division*> aux = p_nameMap.values();
+ QValueList<division*>::const_iterator it = aux.begin();
+ QValueList<division*>::const_iterator end = aux.end();
+ uint count = 0;
+ for( ; it != end; ++it)
+ {
+ if ((*it)->canAsk(clickDivisionMode)) count++;
+ }
+ return count;
+}
+
+bool KGmap::hasAllFlags() const
+{
+ return p_hasAllFlags;
+}
+
+QString KGmap::getDivisionFlagFile(const QString &s) const
+{
+ return p_nameMap[s] -> getFlagFile();
+}
+
+QString KGmap::getDivisionCapital(const QString &s) const
+{
+ return p_nameMap[s] -> getCapital();
+}
+
+QString KGmap::getFile() const
+{
+ return p_file;
+}
+
+QString KGmap::getFileName() const
+{
+ QFileInfo fi(p_file);
+ return fi.fileName();
+}
+
+QString KGmap::getMapFile() const
+{
+ return p_mapFile;
+}
+
+QString KGmap::getName() const
+{
+ return p_name;
+}
+
+QString KGmap::getRandomDivision(bool clickDivisionMode) const
+{
+ QValueList<division*> aux;
+ int i = (int)((float)p_nameMap.size() * kapp -> random() / (RAND_MAX + 1.0));
+ aux = p_nameMap.values();
+ if (!aux[i] -> canAsk(clickDivisionMode)) return getRandomDivision(clickDivisionMode);
+ else return aux[i] -> getName();
+}
+
+QString KGmap::getWhatIs(QRgb c, bool all) const
+{
+ // this is only asked from mapasker.cpp hence the true in canAsk
+ QMap<QRgb, division*>::const_iterator it;
+ it = p_colorMap.find(c);
+ if (it == p_colorMap.end()) return "nothing";
+ else
+ {
+ if (all) return it.data() -> getName();
+ else if (it.data() -> canAsk(true)) return it.data() -> getName();
+ else return "";
+ }
+}
+
+QColor KGmap::getColor(const QString &s) const
+{
+ QValueList<division*> divisions;
+ QValueList<QRgb> colors;
+ division *d;
+ int i;
+
+ d = p_nameMap[s];
+ divisions = p_colorMap.values();
+ colors = p_colorMap.keys();
+
+ i = 0;
+ while(divisions[i] != d) i++;
+ return QColor(colors[i]);
+}
diff --git a/kgeography/src/map.h b/kgeography/src/map.h
new file mode 100644
index 00000000..0eb08f53
--- /dev/null
+++ b/kgeography/src/map.h
@@ -0,0 +1,52 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef MAP_H
+#define MAP_H
+
+#include <qcolor.h>
+#include <qmap.h>
+
+class division;
+
+class KGmap
+{
+ public:
+ KGmap();
+ ~KGmap();
+
+ bool addDivision(division *d);
+
+ void setFile(const QString &s);
+ bool setMapFile(const QString &s);
+ void setName(const QString &s);
+
+ // return the number of askable divisions
+ uint count(bool clickDivisionMode) const;
+ bool hasAllFlags() const;
+ QString getDivisionFlagFile(const QString &s) const;
+ QString getDivisionCapital(const QString &s) const;
+ QString getFile() const;
+ QString getFileName() const;
+ QString getMapFile() const;
+ QString getName() const;
+ QString getRandomDivision(bool clickDivisionMode) const;
+ QString getWhatIs(QRgb c, bool all) const;
+ QColor getColor(const QString &s) const;
+
+ private:
+ QMap<QRgb, division*> p_colorMap;
+ QMap<QString, division*> p_nameMap;
+
+ QString p_name, p_file, p_mapFile;
+ bool p_hasAllFlags;
+};
+
+#endif
diff --git a/kgeography/src/mapasker.cpp b/kgeography/src/mapasker.cpp
new file mode 100644
index 00000000..aca0b379
--- /dev/null
+++ b/kgeography/src/mapasker.cpp
@@ -0,0 +1,209 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include <klocale.h>
+#include <kmessagebox.h>
+
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qscrollbar.h>
+#include <qstring.h>
+
+#include "map.h"
+#include "mapasker.h"
+#include "mapwidget.h"
+
+mapAsker::mapAsker(QWidget *parent, KGmap *m, QWidget *w, bool asker, uint count) : askWidget(parent, m, w, count, asker), p_popupManager(this), p_asker(asker), p_firstShow(true)
+{
+ QGridLayout *lay = new QGridLayout(this, 2, 2);
+
+ p_mapWidget = new mapWidget(this);
+ lay -> addWidget(p_mapWidget, 0, 0);
+
+ p_hsb = new QScrollBar(Horizontal, this);
+ lay -> addWidget(p_hsb, 1, 0);
+ p_vsb = new QScrollBar(Vertical, this);
+ lay -> addWidget(p_vsb, 0, 1);
+
+ lay -> setRowStretch(2, 1);
+ lay -> setColStretch(2, 1);
+
+ p_shouldClearPopup = false;
+
+ connect(p_mapWidget, SIGNAL(clicked(QRgb, const QPoint&)), this, SLOT(handleMapClick(QRgb, const QPoint&)));
+ connect(p_mapWidget, SIGNAL(setMoveActionChecked(bool)), this, SIGNAL(setMoveActionChecked(bool)));
+ connect(p_mapWidget, SIGNAL(setZoomActionChecked(bool)), this, SIGNAL(setZoomActionChecked(bool)));
+ connect(p_mapWidget, SIGNAL(setMoveActionEnabled(bool)), this, SIGNAL(setMoveActionEnabled(bool)));
+ connect(p_mapWidget, SIGNAL(setMoveActionEnabled(bool)), this, SLOT(showScrollBars(bool)));
+ connect(p_mapWidget, SIGNAL(updatePosition(int, int)), this, SLOT(setScrollBarsPosition(int, int)));
+ connect(p_mapWidget, SIGNAL(updateVisibleSize(int, int)), this, SLOT(setScrollBarsVisibleSize(int, int)));
+ connect(p_mapWidget, SIGNAL(updateMaximumSize(int, int)), this, SLOT(setScrollBarsMaximumSize(int, int)));
+
+ connect(p_hsb, SIGNAL(valueChanged(int)), p_mapWidget, SLOT(updateHPosition(int)));
+ connect(p_vsb, SIGNAL(valueChanged(int)), p_mapWidget, SLOT(updateVPosition(int)));
+
+ if (asker)
+ {
+ QBoxLayout *vbl = dynamic_cast<QBoxLayout*>(w -> layout());
+ p_next = new QLabel(w);
+ p_next -> setAlignment(AlignTop | AlignHCenter);
+ p_fill = new QWidget(w);
+ p_fill -> show();
+ vbl -> setStretchFactor(p_fill, 1);
+ nextQuestion();
+ }
+ else
+ {
+ p_next = 0;
+ p_fill = 0;
+ }
+}
+
+mapAsker::~mapAsker()
+{
+ delete p_next;
+ delete p_fill;
+}
+
+bool mapAsker::isAsker() const
+{
+ return p_answers;
+}
+
+void mapAsker::mousePressEvent(QMouseEvent*)
+{
+ p_popupManager.clear();
+}
+
+void mapAsker::setMovement(bool b)
+{
+ p_mapWidget -> setMapMove(b);
+ p_popupManager.clear();
+}
+
+void mapAsker::setZoom(bool b)
+{
+ p_mapWidget -> setMapZoom(b);
+ p_popupManager.clear();
+}
+
+void mapAsker::setOriginalZoom()
+{
+ p_mapWidget -> setOriginalImage();
+ p_popupManager.clear();
+}
+
+void mapAsker::handleMapClick(QRgb c, const QPoint &p)
+{
+ QString aux, cap;
+ aux = p_map -> getWhatIs(c, !p_asker);
+ if (aux == "nothing") KMessageBox::error(this, i18n("You have found a bug in a map. Please contact the author and tell the %1 map has nothing associated to color %2,%3,%4.").arg(p_map -> getFile()).arg(qRed(c)).arg(qGreen(c)).arg(qBlue(c)));
+ else if (p_shouldClearPopup)
+ {
+ p_popupManager.clear();
+ p_shouldClearPopup = false;
+ }
+ else if (!p_asker)
+ {
+ QString flagFile;
+ cap = p_map -> getDivisionCapital(aux);
+ if (!cap.isEmpty())
+ {
+ flagFile = p_map -> getDivisionFlagFile(aux);
+ cap = i18n(p_map -> getFileName().utf8(), cap.utf8());
+ }
+
+ aux = i18n(p_map -> getFileName().utf8(), aux.utf8());
+
+ if (!flagFile.isEmpty()) p_popupManager.show(aux, cap, p, flagFile);
+ else if (!cap.isEmpty()) p_popupManager.show(aux, cap, p);
+ else p_popupManager.show(aux, p);
+ }
+ else if (!aux.isEmpty())
+ {
+ p_currentAnswer.setAnswer(QColor(c));
+ questionAnswered(aux == lastDivisionAsked());
+ nextQuestion();
+ }
+}
+
+void mapAsker::showScrollBars(bool b)
+{
+ if (b)
+ {
+ p_hsb -> show();
+ p_vsb -> show();
+ }
+ else
+ {
+ p_hsb -> hide();
+ p_vsb -> hide();
+ }
+}
+
+void mapAsker::setScrollBarsPosition(int x, int y)
+{
+ p_hsb -> setValue(x);
+ p_vsb -> setValue(y);
+}
+
+void mapAsker::setScrollBarsVisibleSize(int w, int h)
+{
+ p_hsb -> setMaxValue(p_hsbms - w);
+ p_hsb -> setPageStep(w);
+ p_vsb -> setMaxValue(p_vsbms - h);
+ p_vsb -> setPageStep(h);
+}
+
+void mapAsker::setScrollBarsMaximumSize(int w, int h)
+{
+ p_hsbms = w;
+ p_vsbms = h;
+}
+
+void mapAsker::nextQuestionHook(const QString &division)
+{
+ QString sw = i18n("There are two ways of dealing with the translation of \"Please click on: %1\". The first option simply replaces %1 with the translated name of the relevant region/city. If the grammar of your language allows this, choose this option by setting the translation of this message to 1, and leave untranslated the translations of \"Please click on: %1\" that have the placename embedded (or translate them as - if you wish to show the file as fully translated. The second option is to translate all messages in full - this is likely to be required in the case of highly-inflected languages like Russian. To choose this option, set the translation of this message to 0, and translate all the messages.", "0");
+ if (sw == "1")
+ {
+ QString divisionName = i18n(p_map -> getFileName().utf8(), division.utf8());
+ QString text = i18n("Please click on:\n%1");
+ p_next -> setText(text.arg(divisionName));
+ }
+ else
+ {
+ QString s = QString("Please click on:\n%1").arg(division);
+ p_next -> setText(i18n(p_map -> getFileName().utf8(), s.utf8()));
+ }
+ p_currentAnswer.setQuestion(i18n(p_map -> getFileName().utf8(), division.utf8()));
+ p_next -> show();
+ p_currentAnswer.setCorrectAnswer(p_map -> getColor(division));
+}
+
+QString mapAsker::getQuestionHook() const
+{
+ return i18n("Division in Map");
+}
+
+void mapAsker::showEvent(QShowEvent *)
+{
+ if (p_firstShow)
+ {
+ p_mapWidget -> init(p_map -> getMapFile(), p_vsb->width(), p_hsb->height());
+ p_firstShow = false;
+ }
+}
+
+QSize mapAsker::mapSize() const
+{
+ return p_mapWidget -> mapSize();
+}
+
+#include "mapasker.moc"
diff --git a/kgeography/src/mapasker.h b/kgeography/src/mapasker.h
new file mode 100644
index 00000000..fbddae96
--- /dev/null
+++ b/kgeography/src/mapasker.h
@@ -0,0 +1,67 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef MAPASKER_H
+#define MAPASKER_H
+
+#include "askwidget.h"
+#include "popupmanager.h"
+
+class QLabel;
+class QScrollBar;
+class QSize;
+
+class flagDivisionAsker;
+class infoWidget;
+class mapWidget;
+
+class mapAsker : public askWidget
+{
+Q_OBJECT
+ public:
+ mapAsker(QWidget *parent, KGmap *m, QWidget *w, bool asker, uint count = 0);
+ ~mapAsker();
+
+ QSize mapSize() const;
+ bool isAsker() const;
+ virtual bool isClickOnDivision() const { return true; }
+
+ protected:
+ void nextQuestionHook(const QString &division);
+ void mousePressEvent(QMouseEvent *e);
+ QString getQuestionHook() const;
+ void showEvent(QShowEvent *e);
+
+ public slots:
+ void setMovement(bool b);
+ void setZoom(bool b);
+ void setOriginalZoom();
+
+ private slots:
+ void handleMapClick(QRgb c, const QPoint &p);
+ void setScrollBarsPosition(int x, int y);
+ void setScrollBarsVisibleSize(int w, int h);
+ void setScrollBarsMaximumSize(int w, int h);
+ void showScrollBars(bool b);
+
+ private:
+ QLabel *p_next;
+ QWidget *p_fill;
+ QScrollBar *p_hsb, *p_vsb;
+ int p_hsbms, p_vsbms; //H and V maximum size for scrollbars
+
+ infoWidget *p_infoWidget;
+ mapWidget *p_mapWidget;
+
+ popupManager p_popupManager;
+ bool p_shouldClearPopup, p_asker, p_firstShow;
+};
+
+#endif
diff --git a/kgeography/src/mapchooser.cpp b/kgeography/src/mapchooser.cpp
new file mode 100644
index 00000000..57dcb1c9
--- /dev/null
+++ b/kgeography/src/mapchooser.cpp
@@ -0,0 +1,93 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include <klocale.h>
+#include <kglobal.h>
+#include <kmessagebox.h>
+#include <kstandarddirs.h>
+
+#include <qhbox.h>
+#include <qimage.h>
+#include <qlayout.h>
+
+#include "mapchooser.h"
+
+mapChooser::mapChooser(QWidget *parent) : KDialogBase(parent, 0, true, i18n("Choose Map to Use"), KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok, true)
+{
+ QHBox *mainHB;
+ QStringList list;
+ KGmap *m;
+ QWidget *mapArea;
+ QGridLayout *mapLay;
+
+ mainHB = new QHBox(this);
+ mainHB -> setSpacing(KDialog::spacingHint());
+ list = KGlobal::dirs() -> findAllResources("appdata", "*.kgm");
+ p_listBox = new QListBox(mainHB);
+ QStringList::iterator it;
+ for(it = list.begin(); it != list.end(); ++it)
+ {
+ if (!p_reader.parseMap(*it))
+ {
+ KMessageBox::error(this, i18n("Error parsing %1: %2").arg(*it).arg(p_reader.getError()));
+ delete p_reader.getMap();
+ }
+ else
+ {
+ m = p_reader.getMap();
+ QString text = i18n(m -> getFileName().utf8(), m -> getName().utf8());
+ p_listBox -> insertItem(text);
+ p_maps.insert(text, m);
+ }
+ }
+
+ mapArea = new QWidget(mainHB);
+ mapArea -> setFixedSize(300, 225);
+
+ mapLay = new QGridLayout(mapArea, 3, 3);
+
+ p_image = new QWidget(mapArea);
+ mapLay -> addWidget(p_image, 1, 1);
+
+ connect(p_listBox, SIGNAL(highlighted(const QString&)), this, SLOT(putImage(const QString&)));
+ connect(p_listBox, SIGNAL(selected(int)), this, SLOT(slotOk()));
+
+ setMainWidget(mainHB);
+
+ p_listBox -> sort();
+ if (p_listBox -> count() > 0) p_listBox -> setCurrentItem(0);
+ else enableButtonOK(false);
+}
+
+mapChooser::~mapChooser()
+{
+ p_maps.setAutoDelete(true);
+ p_maps.clear();
+}
+
+KGmap *mapChooser::getMap()
+{
+ KGmap *m;
+ m = p_maps[p_listBox -> currentText()];
+ p_maps.remove(p_listBox -> currentText());
+ return m;
+}
+
+void mapChooser::putImage(const QString &mapName)
+{
+ KGmap *m;
+ m = p_maps[mapName];
+ QImage image(m -> getMapFile());
+ image = image.smoothScale(300, 225, QImage::ScaleMin);
+ p_image -> setPaletteBackgroundPixmap(image);
+ p_image -> setFixedSize(image.size());
+}
+
+#include "mapchooser.moc"
diff --git a/kgeography/src/mapchooser.h b/kgeography/src/mapchooser.h
new file mode 100644
index 00000000..8fc5be08
--- /dev/null
+++ b/kgeography/src/mapchooser.h
@@ -0,0 +1,40 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef MAPCHOOSER_H
+#define MAPCHOOSER_H
+
+#include <kdialogbase.h>
+
+#include <qdict.h>
+
+#include "map.h"
+#include "mapparser.h"
+
+class mapChooser : public KDialogBase
+{
+Q_OBJECT
+ public:
+ mapChooser(QWidget *parent);
+ ~mapChooser();
+
+ KGmap *getMap();
+
+ private slots:
+ void putImage(const QString &mapName);
+
+ private:
+ QListBox *p_listBox;
+ QWidget *p_image;
+ mapReader p_reader;
+ QDict<KGmap> p_maps;
+};
+
+#endif
diff --git a/kgeography/src/mapparser.cpp b/kgeography/src/mapparser.cpp
new file mode 100644
index 00000000..97ca5306
--- /dev/null
+++ b/kgeography/src/mapparser.cpp
@@ -0,0 +1,279 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include <klocale.h>
+
+#include "division.h"
+#include "map.h"
+#include "mapparser.h"
+
+/* unitReader */
+
+mapReader::mapReader() : QXmlSimpleReader()
+{
+}
+
+bool mapReader::parseMap(const QString &path)
+{
+ QString aux;
+ p_map = new KGmap();
+ p_map -> setFile(path);
+ aux = path.left(path.findRev('/') + 1); // aux = path but without the file name
+ mapParser handler(p_map, aux);
+ QFile xmlFile(path);
+ if (xmlFile.exists())
+ {
+ QXmlInputSource source(&xmlFile);
+ setContentHandler(&handler);
+ if (parse(source)) return true;
+ p_error = handler.errorString();
+ }
+ else
+ {
+ p_error = i18n("%1 does not exist.").arg(path);
+ }
+ return false;
+}
+
+QString mapReader::getError()
+{
+ return p_error;
+}
+
+KGmap *mapReader::getMap()
+{
+ return p_map;
+}
+
+/* mapParser */
+
+mapParser::mapParser(KGmap *m, const QString &path) : QXmlDefaultHandler(), p_map(m), p_path(path)
+{
+}
+
+bool mapParser::startDocument()
+{
+ p_mapNameSet = false;
+ p_mapFileSet = false;
+ return true;
+}
+
+bool mapParser::startElement(const QString&, const QString &name, const QString&, const QXmlAttributes&)
+{
+ QString prev;
+ bool b = true;
+ prev = getPreviousTag();
+ p_previousTags += ":" + name;
+ if (prev.isEmpty())
+ {
+ b = name == "map";
+ if (!b) p_error = i18n("The map description file should begin with the %1 tag").arg("map");
+ }
+ else if (prev == "map")
+ {
+ if (name != "mapFile" && name != "name" && name != "division")
+ {
+ b = false;
+ p_error = i18n("%1 is not a valid tag inside tag %2. Valid tags are %3, %4 and %5").arg(name).arg(prev).arg("mapFile").arg("name").arg("division");
+ }
+ else if ((name == "mapFile" && p_mapFileSet) || (name == "name" && p_mapNameSet))
+ {
+ b = false;
+ p_error = i18n("%1 tag has already been set").arg(name);
+ }
+ p_colorSet = false;
+ if (name == "division")
+ {
+ p_divisionNameSet = false;
+ p_divisionIgnoreSet = false;
+ p_flagFileSet = false;
+ p_capitalSet = false;
+ p_division = new division();
+ }
+ }
+ else if (prev == "mapFile" || prev == "name" || prev == "red" || prev == "green" || prev == "blue" ||
+ prev == "ignore")
+ {
+ b = false;
+ p_error = i18n("There can not be a tag inside %1 tag").arg(prev);
+ }
+ else if (prev == "division")
+ {
+ if (name != "color" && name != "name" && name != "ignore" && name != "flag" && name != "capital")
+ {
+ b = false;
+ p_error = i18n("%1 is not a valid tag inside tag %2. Valid tags are %3, %4, %5, %6 and %7").arg(name).arg(prev).arg("color").arg("name").arg("ignore").arg("capital").arg("flag");
+ }
+ else if ((name == "name" && p_divisionNameSet) || (name == "color" && p_colorSet) ||
+ (name == "ignore" && p_divisionIgnoreSet) || (name == "flag" && p_flagFileSet) ||
+ (name == "capital" && p_capitalSet))
+ {
+ b = false;
+ p_error = i18n("%1 tag has already been set").arg(name);
+ }
+ p_red = -1;
+ p_green = -1;
+ p_blue = -1;
+ }
+ else if (prev == "color")
+ {
+ b = (name == "red" && p_red == -1) || (name == "green" && p_green == -1) ||
+ (name == "blue" && p_blue == -1);
+ }
+ else b = false;
+ return b;
+}
+
+bool mapParser::endElement(const QString &, const QString &, const QString &)
+{
+ QString aux;
+ bool b;
+ aux = getPreviousTag();
+ b = true;
+ if (p_previousTags == ":map:name")
+ {
+ p_map -> setName(p_contents);
+ p_mapNameSet = true;
+ }
+ else if (p_previousTags == ":map:mapFile")
+ {
+ b = p_map -> setMapFile(p_path + p_contents);
+ p_mapFileSet = true;
+ if (!b) p_error = i18n("File %1 does not exist").arg(p_path + p_contents);
+ }
+ else if (aux == "division")
+ {
+ p_division -> setRGB(p_red, p_green , p_blue);
+ b = p_divisionNameSet;
+ if (!b) p_error = i18n("There is a division without name");
+ b = b && p_map -> addDivision(p_division);
+ if (!b) p_error = i18n("There is already either a division called %1 or a division with the same colors as %2").arg(p_division -> getName()).arg(p_division -> getName());
+ b = b && (p_capitalSet || !p_division -> canAsk(false));
+ if (!b) p_error = i18n("Division %1 has no capital").arg(p_division -> getName());
+ }
+ else if (p_previousTags == ":map:division:name")
+ {
+ p_divisionNameSet = true;
+ p_division -> setName(p_contents);
+ }
+ else if (p_previousTags == ":map:division:capital")
+ {
+ p_capitalSet = true;
+ p_division -> setCapital(p_contents);
+ }
+ else if (aux == "color")
+ {
+ if (p_red == -1)
+ {
+ b = false;
+ p_error = i18n("Tag %1 has not the %2 tag.").arg("<color>").arg("<red>");
+ }
+ else if (p_green == -1)
+ {
+ b = false;
+ p_error = i18n("Tag %1 has not the %2 tag.").arg("<color>").arg("<green>");
+ }
+ else if (p_blue == -1)
+ {
+ b = false;
+ p_error = i18n("Tag %1 has not the %2 tag.").arg("<color>").arg("<blue>");
+ }
+ else p_colorSet = true;
+ }
+ else if (aux == "red")
+ {
+ p_red = p_contents.toInt();
+ }
+ else if (aux == "green")
+ {
+ p_green = p_contents.toInt();
+ }
+ else if (aux == "blue")
+ {
+ p_blue = p_contents.toInt();
+ }
+ else if (aux == "ignore")
+ {
+ p_divisionIgnoreSet = true;
+ if (p_contents.lower() == "yes")
+ {
+ p_division -> setIgnore(true, false);
+ }
+ else if (p_contents.lower() == "no")
+ {
+ p_division -> setIgnore(false, false);
+ }
+ else if (p_contents.lower() == "allowclickmode")
+ {
+ p_division -> setIgnore(true, true);
+ }
+ else
+ {
+ b = false;
+ p_error = i18n("Invalid value in tag %1").arg("<ignore>");
+ }
+ }
+ else if (aux == "flag")
+ {
+ b = p_division -> setFlagFile(p_path + "flags/" + p_contents);
+ p_flagFileSet = true;
+ if (!b) p_error = i18n("Could not find flag file %1").arg(p_path + "flags/" + p_contents);
+ }
+ else if (aux == "map")
+ {
+ }
+ else b = false;
+ removeLastTag();
+ p_contents = QString::null;
+ return b;
+}
+
+bool mapParser::characters(const QString &ch)
+{
+ QString aux;
+ if (ch.simplifyWhiteSpace().length() == 0) return true;
+ aux = getPreviousTag();
+ if (aux == "mapFile" || aux == "name" || aux == "red" || aux == "green" || aux == "blue" || aux == "ignore" || aux == "flag" || aux == "capital")
+ {
+ p_contents += ch;
+ return true;
+ }
+ p_error = i18n("There are characters outside tags.");
+ return false;
+}
+
+bool mapParser::endDocument()
+{
+ QString aux;
+ if (p_mapNameSet && p_mapFileSet)
+ {
+ return true;
+ }
+ else if (!p_mapNameSet) aux = "name";
+ else if (!p_mapFileSet) aux = "mapFile";
+ p_error = i18n("Tag %1 is missing.").arg(aux);
+ return false;
+}
+
+QString mapParser::errorString()
+{
+ if (!p_error.isEmpty()) return p_error;
+ return i18n("The XML document is malformed.");
+}
+
+QString mapParser::getPreviousTag() const
+{
+ return p_previousTags.right(p_previousTags.length() - p_previousTags.findRev(':') - 1);
+}
+
+void mapParser::removeLastTag()
+{
+ p_previousTags = p_previousTags.left(p_previousTags.findRev(':'));
+}
diff --git a/kgeography/src/mapparser.h b/kgeography/src/mapparser.h
new file mode 100644
index 00000000..af3d6d1f
--- /dev/null
+++ b/kgeography/src/mapparser.h
@@ -0,0 +1,57 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef MAPPARSER_H
+#define MAPPARSER_H
+
+#include <qxml.h>
+
+class division;
+class KGmap;
+
+class mapReader : public QXmlSimpleReader
+{
+ public:
+ mapReader();
+
+ bool parseMap(const QString &path);
+ QString getError();
+ KGmap *getMap();
+
+ private:
+ QString p_error;
+ KGmap *p_map;
+};
+
+class mapParser : public QXmlDefaultHandler
+{
+ public:
+ mapParser(KGmap *m, const QString &path);
+ bool startDocument();
+ bool startElement(const QString&, const QString&, const QString&, const QXmlAttributes&);
+ bool endElement(const QString &, const QString &name, const QString &);
+ bool characters(const QString &ch);
+ bool endDocument();
+ QString errorString();
+
+ private:
+ QString getPreviousTag() const;
+ void removeLastTag();
+
+ division *p_division;
+ int p_red, p_green, p_blue;
+ KGmap *p_map;
+ bool p_allowChars, p_mapNameSet, p_mapFileSet;
+ bool p_divisionNameSet, p_colorSet, p_divisionIgnoreSet, p_flagFileSet, p_capitalSet;
+ const QString &p_path;
+ QString p_error, p_contents, p_previousTags;
+};
+
+#endif
diff --git a/kgeography/src/mapsdatatranslation.cpp b/kgeography/src/mapsdatatranslation.cpp
new file mode 100644
index 00000000..23fb3418
--- /dev/null
+++ b/kgeography/src/mapsdatatranslation.cpp
@@ -0,0 +1,4422 @@
+i18n("africa.kgm", "Africa");
+i18n("africa.kgm", "<qt>Current map:<br><b>Africa</b></qt>");
+i18n("africa.kgm", "Water");
+i18n("africa.kgm", "Coast");
+i18n("africa.kgm", "Frontier");
+i18n("africa.kgm", "Algeria");
+i18n("africa.kgm", "The capital of Algeria is...");
+i18n("africa.kgm", "Please click on:\nAlgeria");
+i18n("africa.kgm", "The flag of Algeria is...");
+i18n("africa.kgm", "Algiers");
+i18n("africa.kgm", "Algiers is the capital of...");
+i18n("africa.kgm", "Angola");
+i18n("africa.kgm", "The capital of Angola is...");
+i18n("africa.kgm", "Please click on:\nAngola");
+i18n("africa.kgm", "The flag of Angola is...");
+i18n("africa.kgm", "Luanda");
+i18n("africa.kgm", "Luanda is the capital of...");
+i18n("africa.kgm", "Benin");
+i18n("africa.kgm", "The capital of Benin is...");
+i18n("africa.kgm", "Please click on:\nBenin");
+i18n("africa.kgm", "The flag of Benin is...");
+i18n("africa.kgm", "Porto Novo");
+i18n("africa.kgm", "Porto Novo is the capital of...");
+i18n("africa.kgm", "Botswana");
+i18n("africa.kgm", "The capital of Botswana is...");
+i18n("africa.kgm", "Please click on:\nBotswana");
+i18n("africa.kgm", "The flag of Botswana is...");
+i18n("africa.kgm", "Gaborone");
+i18n("africa.kgm", "Gaborone is the capital of...");
+i18n("africa.kgm", "Burkina Faso");
+i18n("africa.kgm", "The capital of Burkina Faso is...");
+i18n("africa.kgm", "Please click on:\nBurkina Faso");
+i18n("africa.kgm", "The flag of Burkina Faso is...");
+i18n("africa.kgm", "Ouagadougou");
+i18n("africa.kgm", "Ouagadougou is the capital of...");
+i18n("africa.kgm", "Burundi");
+i18n("africa.kgm", "The capital of Burundi is...");
+i18n("africa.kgm", "Please click on:\nBurundi");
+i18n("africa.kgm", "The flag of Burundi is...");
+i18n("africa.kgm", "Bujumbura");
+i18n("africa.kgm", "Bujumbura is the capital of...");
+i18n("africa.kgm", "Cameroon");
+i18n("africa.kgm", "The capital of Cameroon is...");
+i18n("africa.kgm", "Please click on:\nCameroon");
+i18n("africa.kgm", "The flag of Cameroon is...");
+i18n("africa.kgm", "Yaoundé");
+i18n("africa.kgm", "Yaoundé is the capital of...");
+i18n("africa.kgm", "Central African Republic");
+i18n("africa.kgm", "The capital of Central African Republic is...");
+i18n("africa.kgm", "Please click on:\nCentral African Republic");
+i18n("africa.kgm", "The flag of Central African Republic is...");
+i18n("africa.kgm", "Bangui");
+i18n("africa.kgm", "Bangui is the capital of...");
+i18n("africa.kgm", "Chad");
+i18n("africa.kgm", "The capital of Chad is...");
+i18n("africa.kgm", "Please click on:\nChad");
+i18n("africa.kgm", "The flag of Chad is...");
+i18n("africa.kgm", "N'Djamena");
+i18n("africa.kgm", "N'Djamena is the capital of...");
+i18n("africa.kgm", "Côte d'Ivoire");
+i18n("africa.kgm", "The capital of Côte d'Ivoire is...");
+i18n("africa.kgm", "Please click on:\nCôte d'Ivoire");
+i18n("africa.kgm", "The flag of Côte d'Ivoire is...");
+i18n("africa.kgm", "Yamoussoukro");
+i18n("africa.kgm", "Yamoussoukro is the capital of...");
+i18n("africa.kgm", "Cyprus");
+i18n("africa.kgm", "Democratic Republic of the Congo");
+i18n("africa.kgm", "The capital of Democratic Republic of the Congo is...");
+i18n("africa.kgm", "Please click on:\nDemocratic Republic of the Congo");
+i18n("africa.kgm", "The flag of Democratic Republic of the Congo is...");
+i18n("africa.kgm", "Kinshasa");
+i18n("africa.kgm", "Kinshasa is the capital of...");
+i18n("africa.kgm", "Djibouti");
+i18n("africa.kgm", "The capital of Djibouti is...");
+i18n("africa.kgm", "Please click on:\nDjibouti");
+i18n("africa.kgm", "The flag of Djibouti is...");
+i18n("africa.kgm", "Djibouti");
+i18n("africa.kgm", "Djibouti is the capital of...");
+i18n("africa.kgm", "Egypt");
+i18n("africa.kgm", "The capital of Egypt is...");
+i18n("africa.kgm", "Please click on:\nEgypt");
+i18n("africa.kgm", "The flag of Egypt is...");
+i18n("africa.kgm", "Cairo");
+i18n("africa.kgm", "Cairo is the capital of...");
+i18n("africa.kgm", "Equatorial Guinea");
+i18n("africa.kgm", "The capital of Equatorial Guinea is...");
+i18n("africa.kgm", "Please click on:\nEquatorial Guinea");
+i18n("africa.kgm", "The flag of Equatorial Guinea is...");
+i18n("africa.kgm", "Malabo");
+i18n("africa.kgm", "Malabo is the capital of...");
+i18n("africa.kgm", "Eritrea");
+i18n("africa.kgm", "The capital of Eritrea is...");
+i18n("africa.kgm", "Please click on:\nEritrea");
+i18n("africa.kgm", "The flag of Eritrea is...");
+i18n("africa.kgm", "Asmara");
+i18n("africa.kgm", "Asmara is the capital of...");
+i18n("africa.kgm", "Ethiopia");
+i18n("africa.kgm", "The capital of Ethiopia is...");
+i18n("africa.kgm", "Please click on:\nEthiopia");
+i18n("africa.kgm", "The flag of Ethiopia is...");
+i18n("africa.kgm", "Addis Ababa");
+i18n("africa.kgm", "Addis Ababa is the capital of...");
+i18n("africa.kgm", "Gabon");
+i18n("africa.kgm", "The capital of Gabon is...");
+i18n("africa.kgm", "Please click on:\nGabon");
+i18n("africa.kgm", "The flag of Gabon is...");
+i18n("africa.kgm", "Libreville");
+i18n("africa.kgm", "Libreville is the capital of...");
+i18n("africa.kgm", "Ghana");
+i18n("africa.kgm", "The capital of Ghana is...");
+i18n("africa.kgm", "Please click on:\nGhana");
+i18n("africa.kgm", "The flag of Ghana is...");
+i18n("africa.kgm", "Accra");
+i18n("africa.kgm", "Accra is the capital of...");
+i18n("africa.kgm", "Greece");
+i18n("africa.kgm", "Guinea");
+i18n("africa.kgm", "The capital of Guinea is...");
+i18n("africa.kgm", "Please click on:\nGuinea");
+i18n("africa.kgm", "The flag of Guinea is...");
+i18n("africa.kgm", "Conakry");
+i18n("africa.kgm", "Conakry is the capital of...");
+i18n("africa.kgm", "Guinea-Bissau");
+i18n("africa.kgm", "The capital of Guinea-Bissau is...");
+i18n("africa.kgm", "Please click on:\nGuinea-Bissau");
+i18n("africa.kgm", "The flag of Guinea-Bissau is...");
+i18n("africa.kgm", "Bissau");
+i18n("africa.kgm", "Bissau is the capital of...");
+i18n("africa.kgm", "Iran");
+i18n("africa.kgm", "Iraq");
+i18n("africa.kgm", "Israel");
+i18n("africa.kgm", "Italy");
+i18n("africa.kgm", "Jordan");
+i18n("africa.kgm", "Kenya");
+i18n("africa.kgm", "The capital of Kenya is...");
+i18n("africa.kgm", "Please click on:\nKenya");
+i18n("africa.kgm", "The flag of Kenya is...");
+i18n("africa.kgm", "Nairobi");
+i18n("africa.kgm", "Nairobi is the capital of...");
+i18n("africa.kgm", "Kuwait");
+i18n("africa.kgm", "Lebanon");
+i18n("africa.kgm", "Lesotho");
+i18n("africa.kgm", "The capital of Lesotho is...");
+i18n("africa.kgm", "Please click on:\nLesotho");
+i18n("africa.kgm", "The flag of Lesotho is...");
+i18n("africa.kgm", "Maseru");
+i18n("africa.kgm", "Maseru is the capital of...");
+i18n("africa.kgm", "Liberia");
+i18n("africa.kgm", "The capital of Liberia is...");
+i18n("africa.kgm", "Please click on:\nLiberia");
+i18n("africa.kgm", "The flag of Liberia is...");
+i18n("africa.kgm", "Monrovia");
+i18n("africa.kgm", "Monrovia is the capital of...");
+i18n("africa.kgm", "Libya");
+i18n("africa.kgm", "The capital of Libya is...");
+i18n("africa.kgm", "Please click on:\nLibya");
+i18n("africa.kgm", "The flag of Libya is...");
+i18n("africa.kgm", "Tripoli");
+i18n("africa.kgm", "Tripoli is the capital of...");
+i18n("africa.kgm", "Madagascar");
+i18n("africa.kgm", "The capital of Madagascar is...");
+i18n("africa.kgm", "Please click on:\nMadagascar");
+i18n("africa.kgm", "The flag of Madagascar is...");
+i18n("africa.kgm", "Antananarivo");
+i18n("africa.kgm", "Antananarivo is the capital of...");
+i18n("africa.kgm", "Malawi");
+i18n("africa.kgm", "The capital of Malawi is...");
+i18n("africa.kgm", "Please click on:\nMalawi");
+i18n("africa.kgm", "The flag of Malawi is...");
+i18n("africa.kgm", "Lilongwe");
+i18n("africa.kgm", "Lilongwe is the capital of...");
+i18n("africa.kgm", "Mali");
+i18n("africa.kgm", "The capital of Mali is...");
+i18n("africa.kgm", "Please click on:\nMali");
+i18n("africa.kgm", "The flag of Mali is...");
+i18n("africa.kgm", "Bamako");
+i18n("africa.kgm", "Bamako is the capital of...");
+i18n("africa.kgm", "Mauritania");
+i18n("africa.kgm", "The capital of Mauritania is...");
+i18n("africa.kgm", "Please click on:\nMauritania");
+i18n("africa.kgm", "The flag of Mauritania is...");
+i18n("africa.kgm", "Nouakchott");
+i18n("africa.kgm", "Nouakchott is the capital of...");
+i18n("africa.kgm", "Morocco");
+i18n("africa.kgm", "The capital of Morocco is...");
+i18n("africa.kgm", "Please click on:\nMorocco");
+i18n("africa.kgm", "The flag of Morocco is...");
+i18n("africa.kgm", "Rabat");
+i18n("africa.kgm", "Rabat is the capital of...");
+i18n("africa.kgm", "Mozambique");
+i18n("africa.kgm", "The capital of Mozambique is...");
+i18n("africa.kgm", "Please click on:\nMozambique");
+i18n("africa.kgm", "The flag of Mozambique is...");
+i18n("africa.kgm", "Maputo");
+i18n("africa.kgm", "Maputo is the capital of...");
+i18n("africa.kgm", "Namibia");
+i18n("africa.kgm", "The capital of Namibia is...");
+i18n("africa.kgm", "Please click on:\nNamibia");
+i18n("africa.kgm", "The flag of Namibia is...");
+i18n("africa.kgm", "Windhoek");
+i18n("africa.kgm", "Windhoek is the capital of...");
+i18n("africa.kgm", "Niger");
+i18n("africa.kgm", "The capital of Niger is...");
+i18n("africa.kgm", "Please click on:\nNiger");
+i18n("africa.kgm", "The flag of Niger is...");
+i18n("africa.kgm", "Niamey");
+i18n("africa.kgm", "Niamey is the capital of...");
+i18n("africa.kgm", "Nigeria");
+i18n("africa.kgm", "The capital of Nigeria is...");
+i18n("africa.kgm", "Please click on:\nNigeria");
+i18n("africa.kgm", "The flag of Nigeria is...");
+i18n("africa.kgm", "Abuja");
+i18n("africa.kgm", "Abuja is the capital of...");
+i18n("africa.kgm", "Portugal");
+i18n("africa.kgm", "Qatar");
+i18n("africa.kgm", "Republic of the Congo");
+i18n("africa.kgm", "The capital of Republic of the Congo is...");
+i18n("africa.kgm", "Please click on:\nRepublic of the Congo");
+i18n("africa.kgm", "The flag of Republic of the Congo is...");
+i18n("africa.kgm", "Brazzaville");
+i18n("africa.kgm", "Brazzaville is the capital of...");
+i18n("africa.kgm", "Rwanda");
+i18n("africa.kgm", "The capital of Rwanda is...");
+i18n("africa.kgm", "Please click on:\nRwanda");
+i18n("africa.kgm", "The flag of Rwanda is...");
+i18n("africa.kgm", "Kigali");
+i18n("africa.kgm", "Kigali is the capital of...");
+i18n("africa.kgm", "Saudi Arabia");
+i18n("africa.kgm", "Senegal");
+i18n("africa.kgm", "The capital of Senegal is...");
+i18n("africa.kgm", "Please click on:\nSenegal");
+i18n("africa.kgm", "The flag of Senegal is...");
+i18n("africa.kgm", "Dakar");
+i18n("africa.kgm", "Dakar is the capital of...");
+i18n("africa.kgm", "Sierra Leone");
+i18n("africa.kgm", "The capital of Sierra Leone is...");
+i18n("africa.kgm", "Please click on:\nSierra Leone");
+i18n("africa.kgm", "The flag of Sierra Leone is...");
+i18n("africa.kgm", "Freetown");
+i18n("africa.kgm", "Freetown is the capital of...");
+i18n("africa.kgm", "Somalia");
+i18n("africa.kgm", "The capital of Somalia is...");
+i18n("africa.kgm", "Please click on:\nSomalia");
+i18n("africa.kgm", "The flag of Somalia is...");
+i18n("africa.kgm", "Mogadishu");
+i18n("africa.kgm", "Mogadishu is the capital of...");
+i18n("africa.kgm", "South Africa");
+i18n("africa.kgm", "The capital of South Africa is...");
+i18n("africa.kgm", "Please click on:\nSouth Africa");
+i18n("africa.kgm", "The flag of South Africa is...");
+i18n("africa.kgm", "Pretoria, Bloemfontein and Cape Town");
+i18n("africa.kgm", "Pretoria, Bloemfontein and Cape Town is the capital of...");
+i18n("africa.kgm", "Spain");
+i18n("africa.kgm", "Sudan");
+i18n("africa.kgm", "The capital of Sudan is...");
+i18n("africa.kgm", "Please click on:\nSudan");
+i18n("africa.kgm", "The flag of Sudan is...");
+i18n("africa.kgm", "Khartoum");
+i18n("africa.kgm", "Khartoum is the capital of...");
+i18n("africa.kgm", "Swaziland");
+i18n("africa.kgm", "The capital of Swaziland is...");
+i18n("africa.kgm", "Please click on:\nSwaziland");
+i18n("africa.kgm", "The flag of Swaziland is...");
+i18n("africa.kgm", "Mbabane");
+i18n("africa.kgm", "Mbabane is the capital of...");
+i18n("africa.kgm", "Syria");
+i18n("africa.kgm", "Tanzania");
+i18n("africa.kgm", "The capital of Tanzania is...");
+i18n("africa.kgm", "Please click on:\nTanzania");
+i18n("africa.kgm", "The flag of Tanzania is...");
+i18n("africa.kgm", "Dodoma");
+i18n("africa.kgm", "Dodoma is the capital of...");
+i18n("africa.kgm", "The Gambia");
+i18n("africa.kgm", "The capital of The Gambia is...");
+i18n("africa.kgm", "Please click on:\nThe Gambia");
+i18n("africa.kgm", "The flag of The Gambia is...");
+i18n("africa.kgm", "Banjul");
+i18n("africa.kgm", "Banjul is the capital of...");
+i18n("africa.kgm", "Togo");
+i18n("africa.kgm", "The capital of Togo is...");
+i18n("africa.kgm", "Please click on:\nTogo");
+i18n("africa.kgm", "The flag of Togo is...");
+i18n("africa.kgm", "Lomé");
+i18n("africa.kgm", "Lomé is the capital of...");
+i18n("africa.kgm", "Tunisia");
+i18n("africa.kgm", "The capital of Tunisia is...");
+i18n("africa.kgm", "Please click on:\nTunisia");
+i18n("africa.kgm", "The flag of Tunisia is...");
+i18n("africa.kgm", "Tunis");
+i18n("africa.kgm", "Tunis is the capital of...");
+i18n("africa.kgm", "Turkey");
+i18n("africa.kgm", "Turkmenistan");
+i18n("africa.kgm", "Uganda");
+i18n("africa.kgm", "The capital of Uganda is...");
+i18n("africa.kgm", "Please click on:\nUganda");
+i18n("africa.kgm", "The flag of Uganda is...");
+i18n("africa.kgm", "Kampala");
+i18n("africa.kgm", "Kampala is the capital of...");
+i18n("africa.kgm", "United Arab Emirates");
+i18n("africa.kgm", "West Bank");
+i18n("africa.kgm", "Western Sahara");
+i18n("africa.kgm", "The capital of Western Sahara is...");
+i18n("africa.kgm", "Please click on:\nWestern Sahara");
+i18n("africa.kgm", "The flag of Western Sahara is...");
+i18n("africa.kgm", "Laayoune");
+i18n("africa.kgm", "Laayoune is the capital of...");
+i18n("africa.kgm", "Yemen");
+i18n("africa.kgm", "Zambia");
+i18n("africa.kgm", "The capital of Zambia is...");
+i18n("africa.kgm", "Please click on:\nZambia");
+i18n("africa.kgm", "The flag of Zambia is...");
+i18n("africa.kgm", "Lusaka");
+i18n("africa.kgm", "Lusaka is the capital of...");
+i18n("africa.kgm", "Zimbabwe");
+i18n("africa.kgm", "The capital of Zimbabwe is...");
+i18n("africa.kgm", "Please click on:\nZimbabwe");
+i18n("africa.kgm", "The flag of Zimbabwe is...");
+i18n("africa.kgm", "Harare");
+i18n("africa.kgm", "Harare is the capital of...");
+i18n("asia.kgm", "Asia");
+i18n("asia.kgm", "<qt>Current map:<br><b>Asia</b></qt>");
+i18n("asia.kgm", "Not a Nation");
+i18n("asia.kgm", "Russia");
+i18n("asia.kgm", "The capital of Russia is...");
+i18n("asia.kgm", "Please click on:\nRussia");
+i18n("asia.kgm", "The flag of Russia is...");
+i18n("asia.kgm", "Moscow");
+i18n("asia.kgm", "Moscow is the capital of...");
+i18n("asia.kgm", "Turkey");
+i18n("asia.kgm", "The capital of Turkey is...");
+i18n("asia.kgm", "Please click on:\nTurkey");
+i18n("asia.kgm", "The flag of Turkey is...");
+i18n("asia.kgm", "Ankara");
+i18n("asia.kgm", "Ankara is the capital of...");
+i18n("asia.kgm", "Egypt");
+i18n("asia.kgm", "Djibouti");
+i18n("asia.kgm", "Eritrea");
+i18n("asia.kgm", "Ethiopia");
+i18n("asia.kgm", "Iran");
+i18n("asia.kgm", "The capital of Iran is...");
+i18n("asia.kgm", "Please click on:\nIran");
+i18n("asia.kgm", "The flag of Iran is...");
+i18n("asia.kgm", "Tehran");
+i18n("asia.kgm", "Tehran is the capital of...");
+i18n("asia.kgm", "Iraq");
+i18n("asia.kgm", "The capital of Iraq is...");
+i18n("asia.kgm", "Please click on:\nIraq");
+i18n("asia.kgm", "The flag of Iraq is...");
+i18n("asia.kgm", "Baghdad");
+i18n("asia.kgm", "Baghdad is the capital of...");
+i18n("asia.kgm", "Israel");
+i18n("asia.kgm", "The capital of Israel is...");
+i18n("asia.kgm", "Please click on:\nIsrael");
+i18n("asia.kgm", "The flag of Israel is...");
+i18n("asia.kgm", "Jerusalem");
+i18n("asia.kgm", "Jerusalem is the capital of...");
+i18n("asia.kgm", "Jordan");
+i18n("asia.kgm", "The capital of Jordan is...");
+i18n("asia.kgm", "Please click on:\nJordan");
+i18n("asia.kgm", "The flag of Jordan is...");
+i18n("asia.kgm", "Amman");
+i18n("asia.kgm", "Amman is the capital of...");
+i18n("asia.kgm", "Kenya");
+i18n("asia.kgm", "Kuwait");
+i18n("asia.kgm", "The capital of Kuwait is...");
+i18n("asia.kgm", "Please click on:\nKuwait");
+i18n("asia.kgm", "The flag of Kuwait is...");
+i18n("asia.kgm", "Kuwait City");
+i18n("asia.kgm", "Kuwait City is the capital of...");
+i18n("asia.kgm", "Lebanon");
+i18n("asia.kgm", "The capital of Lebanon is...");
+i18n("asia.kgm", "Please click on:\nLebanon");
+i18n("asia.kgm", "The flag of Lebanon is...");
+i18n("asia.kgm", "Beirut");
+i18n("asia.kgm", "Beirut is the capital of...");
+i18n("asia.kgm", "Qatar");
+i18n("asia.kgm", "The capital of Qatar is...");
+i18n("asia.kgm", "Please click on:\nQatar");
+i18n("asia.kgm", "The flag of Qatar is...");
+i18n("asia.kgm", "Doha");
+i18n("asia.kgm", "Doha is the capital of...");
+i18n("asia.kgm", "Saudi Arabia");
+i18n("asia.kgm", "The capital of Saudi Arabia is...");
+i18n("asia.kgm", "Please click on:\nSaudi Arabia");
+i18n("asia.kgm", "The flag of Saudi Arabia is...");
+i18n("asia.kgm", "Riyadh");
+i18n("asia.kgm", "Riyadh is the capital of...");
+i18n("asia.kgm", "Somalia");
+i18n("asia.kgm", "Sudan");
+i18n("asia.kgm", "Syria");
+i18n("asia.kgm", "The capital of Syria is...");
+i18n("asia.kgm", "Please click on:\nSyria");
+i18n("asia.kgm", "The flag of Syria is...");
+i18n("asia.kgm", "Damascus");
+i18n("asia.kgm", "Damascus is the capital of...");
+i18n("asia.kgm", "Uganda");
+i18n("asia.kgm", "United Arab Emirates");
+i18n("asia.kgm", "The capital of United Arab Emirates is...");
+i18n("asia.kgm", "Please click on:\nUnited Arab Emirates");
+i18n("asia.kgm", "The flag of United Arab Emirates is...");
+i18n("asia.kgm", "Abu Dhabi City");
+i18n("asia.kgm", "Abu Dhabi City is the capital of...");
+i18n("asia.kgm", "Oman");
+i18n("asia.kgm", "The capital of Oman is...");
+i18n("asia.kgm", "Please click on:\nOman");
+i18n("asia.kgm", "The flag of Oman is...");
+i18n("asia.kgm", "Muscat");
+i18n("asia.kgm", "Muscat is the capital of...");
+i18n("asia.kgm", "West Bank");
+i18n("asia.kgm", "Yemen");
+i18n("asia.kgm", "The capital of Yemen is...");
+i18n("asia.kgm", "Please click on:\nYemen");
+i18n("asia.kgm", "The flag of Yemen is...");
+i18n("asia.kgm", "Sana'a");
+i18n("asia.kgm", "Sana'a is the capital of...");
+i18n("asia.kgm", "Ukraine");
+i18n("asia.kgm", "China");
+i18n("asia.kgm", "The capital of China is...");
+i18n("asia.kgm", "Please click on:\nChina");
+i18n("asia.kgm", "The flag of China is...");
+i18n("asia.kgm", "Beijing");
+i18n("asia.kgm", "Beijing is the capital of...");
+i18n("asia.kgm", "India");
+i18n("asia.kgm", "The capital of India is...");
+i18n("asia.kgm", "Please click on:\nIndia");
+i18n("asia.kgm", "The flag of India is...");
+i18n("asia.kgm", "New Delhi");
+i18n("asia.kgm", "New Delhi is the capital of...");
+i18n("asia.kgm", "Sri Lanka");
+i18n("asia.kgm", "The capital of Sri Lanka is...");
+i18n("asia.kgm", "Please click on:\nSri Lanka");
+i18n("asia.kgm", "The flag of Sri Lanka is...");
+i18n("asia.kgm", "Colombo and Sri Jayewardenepura");
+i18n("asia.kgm", "Colombo and Sri Jayewardenepura is the capital of...");
+i18n("asia.kgm", "Mongolia");
+i18n("asia.kgm", "The capital of Mongolia is...");
+i18n("asia.kgm", "Please click on:\nMongolia");
+i18n("asia.kgm", "The flag of Mongolia is...");
+i18n("asia.kgm", "Ulaanbaatar");
+i18n("asia.kgm", "Ulaanbaatar is the capital of...");
+i18n("asia.kgm", "Kazakhstan");
+i18n("asia.kgm", "The capital of Kazakhstan is...");
+i18n("asia.kgm", "Please click on:\nKazakhstan");
+i18n("asia.kgm", "The flag of Kazakhstan is...");
+i18n("asia.kgm", "Astana");
+i18n("asia.kgm", "Astana is the capital of...");
+i18n("asia.kgm", "Japan");
+i18n("asia.kgm", "The capital of Japan is...");
+i18n("asia.kgm", "Please click on:\nJapan");
+i18n("asia.kgm", "The flag of Japan is...");
+i18n("asia.kgm", "Tokyo");
+i18n("asia.kgm", "Tokyo is the capital of...");
+i18n("asia.kgm", "Myanmar");
+i18n("asia.kgm", "The capital of Myanmar is...");
+i18n("asia.kgm", "Please click on:\nMyanmar");
+i18n("asia.kgm", "The flag of Myanmar is...");
+i18n("asia.kgm", "Naypyidaw");
+i18n("asia.kgm", "Naypyidaw is the capital of...");
+i18n("asia.kgm", "Nepal");
+i18n("asia.kgm", "The capital of Nepal is...");
+i18n("asia.kgm", "Please click on:\nNepal");
+i18n("asia.kgm", "The flag of Nepal is...");
+i18n("asia.kgm", "Kathmandu");
+i18n("asia.kgm", "Kathmandu is the capital of...");
+i18n("asia.kgm", "Bhutan");
+i18n("asia.kgm", "The capital of Bhutan is...");
+i18n("asia.kgm", "Please click on:\nBhutan");
+i18n("asia.kgm", "The flag of Bhutan is...");
+i18n("asia.kgm", "Thimphu");
+i18n("asia.kgm", "Thimphu is the capital of...");
+i18n("asia.kgm", "Indonesia");
+i18n("asia.kgm", "Malaysia");
+i18n("asia.kgm", "The capital of Malaysia is...");
+i18n("asia.kgm", "Please click on:\nMalaysia");
+i18n("asia.kgm", "The flag of Malaysia is...");
+i18n("asia.kgm", "Kuala Lumpur");
+i18n("asia.kgm", "Kuala Lumpur is the capital of...");
+i18n("asia.kgm", "Bangladesh");
+i18n("asia.kgm", "The capital of Bangladesh is...");
+i18n("asia.kgm", "Please click on:\nBangladesh");
+i18n("asia.kgm", "The flag of Bangladesh is...");
+i18n("asia.kgm", "Dhaka");
+i18n("asia.kgm", "Dhaka is the capital of...");
+i18n("asia.kgm", "Afghanistan");
+i18n("asia.kgm", "The capital of Afghanistan is...");
+i18n("asia.kgm", "Please click on:\nAfghanistan");
+i18n("asia.kgm", "The flag of Afghanistan is...");
+i18n("asia.kgm", "Kabul");
+i18n("asia.kgm", "Kabul is the capital of...");
+i18n("asia.kgm", "Azerbaijan");
+i18n("asia.kgm", "The capital of Azerbaijan is...");
+i18n("asia.kgm", "Please click on:\nAzerbaijan");
+i18n("asia.kgm", "The flag of Azerbaijan is...");
+i18n("asia.kgm", "Baku");
+i18n("asia.kgm", "Baku is the capital of...");
+i18n("asia.kgm", "Armenia");
+i18n("asia.kgm", "The capital of Armenia is...");
+i18n("asia.kgm", "Please click on:\nArmenia");
+i18n("asia.kgm", "The flag of Armenia is...");
+i18n("asia.kgm", "Yerevan");
+i18n("asia.kgm", "Yerevan is the capital of...");
+i18n("asia.kgm", "Bahrain");
+i18n("asia.kgm", "The capital of Bahrain is...");
+i18n("asia.kgm", "Please click on:\nBahrain");
+i18n("asia.kgm", "The flag of Bahrain is...");
+i18n("asia.kgm", "Manama");
+i18n("asia.kgm", "Manama is the capital of...");
+i18n("asia.kgm", "Georgia");
+i18n("asia.kgm", "The capital of Georgia is...");
+i18n("asia.kgm", "Please click on:\nGeorgia");
+i18n("asia.kgm", "The flag of Georgia is...");
+i18n("asia.kgm", "Tbilisi");
+i18n("asia.kgm", "Tbilisi is the capital of...");
+i18n("asia.kgm", "Turkmenistan");
+i18n("asia.kgm", "The capital of Turkmenistan is...");
+i18n("asia.kgm", "Please click on:\nTurkmenistan");
+i18n("asia.kgm", "The flag of Turkmenistan is...");
+i18n("asia.kgm", "Ashgabat");
+i18n("asia.kgm", "Ashgabat is the capital of...");
+i18n("asia.kgm", "Uzbekistan");
+i18n("asia.kgm", "The capital of Uzbekistan is...");
+i18n("asia.kgm", "Please click on:\nUzbekistan");
+i18n("asia.kgm", "The flag of Uzbekistan is...");
+i18n("asia.kgm", "Tashkent");
+i18n("asia.kgm", "Tashkent is the capital of...");
+i18n("asia.kgm", "Kyrgyzstan");
+i18n("asia.kgm", "The capital of Kyrgyzstan is...");
+i18n("asia.kgm", "Please click on:\nKyrgyzstan");
+i18n("asia.kgm", "The flag of Kyrgyzstan is...");
+i18n("asia.kgm", "Bishkek");
+i18n("asia.kgm", "Bishkek is the capital of...");
+i18n("asia.kgm", "Tajikistan");
+i18n("asia.kgm", "The capital of Tajikistan is...");
+i18n("asia.kgm", "Please click on:\nTajikistan");
+i18n("asia.kgm", "The flag of Tajikistan is...");
+i18n("asia.kgm", "Dushanbe");
+i18n("asia.kgm", "Dushanbe is the capital of...");
+i18n("asia.kgm", "Pakistan");
+i18n("asia.kgm", "The capital of Pakistan is...");
+i18n("asia.kgm", "Please click on:\nPakistan");
+i18n("asia.kgm", "The flag of Pakistan is...");
+i18n("asia.kgm", "Islamabad");
+i18n("asia.kgm", "Islamabad is the capital of...");
+i18n("asia.kgm", "Laos");
+i18n("asia.kgm", "The capital of Laos is...");
+i18n("asia.kgm", "Please click on:\nLaos");
+i18n("asia.kgm", "The flag of Laos is...");
+i18n("asia.kgm", "Vientiane");
+i18n("asia.kgm", "Vientiane is the capital of...");
+i18n("asia.kgm", "Cambodia");
+i18n("asia.kgm", "The capital of Cambodia is...");
+i18n("asia.kgm", "Please click on:\nCambodia");
+i18n("asia.kgm", "The flag of Cambodia is...");
+i18n("asia.kgm", "Phnom Penh");
+i18n("asia.kgm", "Phnom Penh is the capital of...");
+i18n("asia.kgm", "Brunei");
+i18n("asia.kgm", "The capital of Brunei is...");
+i18n("asia.kgm", "Please click on:\nBrunei");
+i18n("asia.kgm", "The flag of Brunei is...");
+i18n("asia.kgm", "Bandar Seri Begawan");
+i18n("asia.kgm", "Bandar Seri Begawan is the capital of...");
+i18n("asia.kgm", "Philippines");
+i18n("asia.kgm", "The capital of Philippines is...");
+i18n("asia.kgm", "Please click on:\nPhilippines");
+i18n("asia.kgm", "The flag of Philippines is...");
+i18n("asia.kgm", "Manila");
+i18n("asia.kgm", "Manila is the capital of...");
+i18n("asia.kgm", "Thailand");
+i18n("asia.kgm", "The capital of Thailand is...");
+i18n("asia.kgm", "Please click on:\nThailand");
+i18n("asia.kgm", "The flag of Thailand is...");
+i18n("asia.kgm", "Bangkok");
+i18n("asia.kgm", "Bangkok is the capital of...");
+i18n("asia.kgm", "Vietnam");
+i18n("asia.kgm", "The capital of Vietnam is...");
+i18n("asia.kgm", "Please click on:\nVietnam");
+i18n("asia.kgm", "The flag of Vietnam is...");
+i18n("asia.kgm", "Hanoi");
+i18n("asia.kgm", "Hanoi is the capital of...");
+i18n("asia.kgm", "Taiwan");
+i18n("asia.kgm", "The capital of Taiwan is...");
+i18n("asia.kgm", "Please click on:\nTaiwan");
+i18n("asia.kgm", "The flag of Taiwan is...");
+i18n("asia.kgm", "Taipei");
+i18n("asia.kgm", "Taipei is the capital of...");
+i18n("asia.kgm", "Singapore");
+i18n("asia.kgm", "The capital of Singapore is...");
+i18n("asia.kgm", "Please click on:\nSingapore");
+i18n("asia.kgm", "The flag of Singapore is...");
+i18n("asia.kgm", "Singapore");
+i18n("asia.kgm", "Singapore is the capital of...");
+i18n("asia.kgm", "North Korea");
+i18n("asia.kgm", "The capital of North Korea is...");
+i18n("asia.kgm", "Please click on:\nNorth Korea");
+i18n("asia.kgm", "The flag of North Korea is...");
+i18n("asia.kgm", "Pyeongyang");
+i18n("asia.kgm", "Pyeongyang is the capital of...");
+i18n("asia.kgm", "South Korea");
+i18n("asia.kgm", "The capital of South Korea is...");
+i18n("asia.kgm", "Please click on:\nSouth Korea");
+i18n("asia.kgm", "The flag of South Korea is...");
+i18n("asia.kgm", "Seoul");
+i18n("asia.kgm", "Seoul is the capital of...");
+i18n("austria.kgm", "Austria");
+i18n("austria.kgm", "<qt>Current map:<br><b>Austria</b></qt>");
+i18n("austria.kgm", "Frontier");
+i18n("austria.kgm", "Not Austria");
+i18n("austria.kgm", "Vienna");
+i18n("austria.kgm", "The capital of Vienna is...");
+i18n("austria.kgm", "Please click on:\nVienna");
+i18n("austria.kgm", "Vienna");
+i18n("austria.kgm", "Vienna is the capital of...");
+i18n("austria.kgm", "Burgenland");
+i18n("austria.kgm", "The capital of Burgenland is...");
+i18n("austria.kgm", "Please click on:\nBurgenland");
+i18n("austria.kgm", "Eisenstadt");
+i18n("austria.kgm", "Eisenstadt is the capital of...");
+i18n("austria.kgm", "Styria");
+i18n("austria.kgm", "The capital of Styria is...");
+i18n("austria.kgm", "Please click on:\nStyria");
+i18n("austria.kgm", "Graz");
+i18n("austria.kgm", "Graz is the capital of...");
+i18n("austria.kgm", "Carinthia");
+i18n("austria.kgm", "The capital of Carinthia is...");
+i18n("austria.kgm", "Please click on:\nCarinthia");
+i18n("austria.kgm", "Klagenfurt");
+i18n("austria.kgm", "Klagenfurt is the capital of...");
+i18n("austria.kgm", "Tyrol");
+i18n("austria.kgm", "The capital of Tyrol is...");
+i18n("austria.kgm", "Please click on:\nTyrol");
+i18n("austria.kgm", "Innsbruck");
+i18n("austria.kgm", "Innsbruck is the capital of...");
+i18n("austria.kgm", "Vorarlberg");
+i18n("austria.kgm", "The capital of Vorarlberg is...");
+i18n("austria.kgm", "Please click on:\nVorarlberg");
+i18n("austria.kgm", "Bregenz");
+i18n("austria.kgm", "Bregenz is the capital of...");
+i18n("austria.kgm", "Salzburg");
+i18n("austria.kgm", "The capital of Salzburg is...");
+i18n("austria.kgm", "Please click on:\nSalzburg");
+i18n("austria.kgm", "Salzburg");
+i18n("austria.kgm", "Salzburg is the capital of...");
+i18n("austria.kgm", "Upper Austria");
+i18n("austria.kgm", "The capital of Upper Austria is...");
+i18n("austria.kgm", "Please click on:\nUpper Austria");
+i18n("austria.kgm", "Linz");
+i18n("austria.kgm", "Linz is the capital of...");
+i18n("austria.kgm", "Lower Austria");
+i18n("austria.kgm", "The capital of Lower Austria is...");
+i18n("austria.kgm", "Please click on:\nLower Austria");
+i18n("austria.kgm", "St. Pölten");
+i18n("austria.kgm", "St. Pölten is the capital of...");
+i18n("brazil.kgm", "Brazil");
+i18n("brazil.kgm", "<qt>Current map:<br><b>Brazil</b></qt>");
+i18n("brazil.kgm", "Sergipe");
+i18n("brazil.kgm", "The capital of Sergipe is...");
+i18n("brazil.kgm", "Please click on:\nSergipe");
+i18n("brazil.kgm", "The flag of Sergipe is...");
+i18n("brazil.kgm", "Aracaju");
+i18n("brazil.kgm", "Aracaju is the capital of...");
+i18n("brazil.kgm", "Para");
+i18n("brazil.kgm", "The capital of Para is...");
+i18n("brazil.kgm", "Please click on:\nPara");
+i18n("brazil.kgm", "The flag of Para is...");
+i18n("brazil.kgm", "Belem");
+i18n("brazil.kgm", "Belem is the capital of...");
+i18n("brazil.kgm", "Minas Gerais");
+i18n("brazil.kgm", "The capital of Minas Gerais is...");
+i18n("brazil.kgm", "Please click on:\nMinas Gerais");
+i18n("brazil.kgm", "The flag of Minas Gerais is...");
+i18n("brazil.kgm", "Belo Horizonte");
+i18n("brazil.kgm", "Belo Horizonte is the capital of...");
+i18n("brazil.kgm", "Roraima");
+i18n("brazil.kgm", "The capital of Roraima is...");
+i18n("brazil.kgm", "Please click on:\nRoraima");
+i18n("brazil.kgm", "The flag of Roraima is...");
+i18n("brazil.kgm", "Boa Vista");
+i18n("brazil.kgm", "Boa Vista is the capital of...");
+i18n("brazil.kgm", "Federal District");
+i18n("brazil.kgm", "The capital of Federal District is...");
+i18n("brazil.kgm", "Please click on:\nFederal District");
+i18n("brazil.kgm", "The flag of Federal District is...");
+i18n("brazil.kgm", "Brasilia");
+i18n("brazil.kgm", "Brasilia is the capital of...");
+i18n("brazil.kgm", "Mato Grosso do Sul");
+i18n("brazil.kgm", "The capital of Mato Grosso do Sul is...");
+i18n("brazil.kgm", "Please click on:\nMato Grosso do Sul");
+i18n("brazil.kgm", "The flag of Mato Grosso do Sul is...");
+i18n("brazil.kgm", "Campo Grande");
+i18n("brazil.kgm", "Campo Grande is the capital of...");
+i18n("brazil.kgm", "Mato Grosso");
+i18n("brazil.kgm", "The capital of Mato Grosso is...");
+i18n("brazil.kgm", "Please click on:\nMato Grosso");
+i18n("brazil.kgm", "The flag of Mato Grosso is...");
+i18n("brazil.kgm", "Cuiaba");
+i18n("brazil.kgm", "Cuiaba is the capital of...");
+i18n("brazil.kgm", "Parana");
+i18n("brazil.kgm", "The capital of Parana is...");
+i18n("brazil.kgm", "Please click on:\nParana");
+i18n("brazil.kgm", "The flag of Parana is...");
+i18n("brazil.kgm", "Curitiba");
+i18n("brazil.kgm", "Curitiba is the capital of...");
+i18n("brazil.kgm", "Santa Catarina");
+i18n("brazil.kgm", "The capital of Santa Catarina is...");
+i18n("brazil.kgm", "Please click on:\nSanta Catarina");
+i18n("brazil.kgm", "The flag of Santa Catarina is...");
+i18n("brazil.kgm", "Florianopolis");
+i18n("brazil.kgm", "Florianopolis is the capital of...");
+i18n("brazil.kgm", "Ceara");
+i18n("brazil.kgm", "The capital of Ceara is...");
+i18n("brazil.kgm", "Please click on:\nCeara");
+i18n("brazil.kgm", "The flag of Ceara is...");
+i18n("brazil.kgm", "Fortaleza");
+i18n("brazil.kgm", "Fortaleza is the capital of...");
+i18n("brazil.kgm", "Goias");
+i18n("brazil.kgm", "The capital of Goias is...");
+i18n("brazil.kgm", "Please click on:\nGoias");
+i18n("brazil.kgm", "The flag of Goias is...");
+i18n("brazil.kgm", "Goiânia");
+i18n("brazil.kgm", "Goiânia is the capital of...");
+i18n("brazil.kgm", "Paraiba");
+i18n("brazil.kgm", "The capital of Paraiba is...");
+i18n("brazil.kgm", "Please click on:\nParaiba");
+i18n("brazil.kgm", "The flag of Paraiba is...");
+i18n("brazil.kgm", "Joao Pessoa");
+i18n("brazil.kgm", "Joao Pessoa is the capital of...");
+i18n("brazil.kgm", "Amapa");
+i18n("brazil.kgm", "The capital of Amapa is...");
+i18n("brazil.kgm", "Please click on:\nAmapa");
+i18n("brazil.kgm", "The flag of Amapa is...");
+i18n("brazil.kgm", "Macapa");
+i18n("brazil.kgm", "Macapa is the capital of...");
+i18n("brazil.kgm", "Alagoas");
+i18n("brazil.kgm", "The capital of Alagoas is...");
+i18n("brazil.kgm", "Please click on:\nAlagoas");
+i18n("brazil.kgm", "The flag of Alagoas is...");
+i18n("brazil.kgm", "Maceio");
+i18n("brazil.kgm", "Maceio is the capital of...");
+i18n("brazil.kgm", "Amazonas");
+i18n("brazil.kgm", "The capital of Amazonas is...");
+i18n("brazil.kgm", "Please click on:\nAmazonas");
+i18n("brazil.kgm", "The flag of Amazonas is...");
+i18n("brazil.kgm", "Manaus");
+i18n("brazil.kgm", "Manaus is the capital of...");
+i18n("brazil.kgm", "Rio Grande do Norte");
+i18n("brazil.kgm", "The capital of Rio Grande do Norte is...");
+i18n("brazil.kgm", "Please click on:\nRio Grande do Norte");
+i18n("brazil.kgm", "The flag of Rio Grande do Norte is...");
+i18n("brazil.kgm", "Natal");
+i18n("brazil.kgm", "Natal is the capital of...");
+i18n("brazil.kgm", "Tocantins");
+i18n("brazil.kgm", "The capital of Tocantins is...");
+i18n("brazil.kgm", "Please click on:\nTocantins");
+i18n("brazil.kgm", "The flag of Tocantins is...");
+i18n("brazil.kgm", "Palmas");
+i18n("brazil.kgm", "Palmas is the capital of...");
+i18n("brazil.kgm", "Rio Grande do Sul");
+i18n("brazil.kgm", "The capital of Rio Grande do Sul is...");
+i18n("brazil.kgm", "Please click on:\nRio Grande do Sul");
+i18n("brazil.kgm", "The flag of Rio Grande do Sul is...");
+i18n("brazil.kgm", "Porto Alegre");
+i18n("brazil.kgm", "Porto Alegre is the capital of...");
+i18n("brazil.kgm", "Rondonia");
+i18n("brazil.kgm", "The capital of Rondonia is...");
+i18n("brazil.kgm", "Please click on:\nRondonia");
+i18n("brazil.kgm", "The flag of Rondonia is...");
+i18n("brazil.kgm", "Porto Velho");
+i18n("brazil.kgm", "Porto Velho is the capital of...");
+i18n("brazil.kgm", "Pernambuco");
+i18n("brazil.kgm", "The capital of Pernambuco is...");
+i18n("brazil.kgm", "Please click on:\nPernambuco");
+i18n("brazil.kgm", "The flag of Pernambuco is...");
+i18n("brazil.kgm", "Recife");
+i18n("brazil.kgm", "Recife is the capital of...");
+i18n("brazil.kgm", "Acre");
+i18n("brazil.kgm", "The capital of Acre is...");
+i18n("brazil.kgm", "Please click on:\nAcre");
+i18n("brazil.kgm", "The flag of Acre is...");
+i18n("brazil.kgm", "Rio Branco");
+i18n("brazil.kgm", "Rio Branco is the capital of...");
+i18n("brazil.kgm", "Rio de Janeiro State");
+i18n("brazil.kgm", "The capital of Rio de Janeiro State is...");
+i18n("brazil.kgm", "Please click on:\nRio de Janeiro State");
+i18n("brazil.kgm", "The flag of Rio de Janeiro State is...");
+i18n("brazil.kgm", "Rio de Janeiro");
+i18n("brazil.kgm", "Rio de Janeiro is the capital of...");
+i18n("brazil.kgm", "Bahia");
+i18n("brazil.kgm", "The capital of Bahia is...");
+i18n("brazil.kgm", "Please click on:\nBahia");
+i18n("brazil.kgm", "The flag of Bahia is...");
+i18n("brazil.kgm", "Salvador");
+i18n("brazil.kgm", "Salvador is the capital of...");
+i18n("brazil.kgm", "Maranhao");
+i18n("brazil.kgm", "The capital of Maranhao is...");
+i18n("brazil.kgm", "Please click on:\nMaranhao");
+i18n("brazil.kgm", "The flag of Maranhao is...");
+i18n("brazil.kgm", "Sao Luis");
+i18n("brazil.kgm", "Sao Luis is the capital of...");
+i18n("brazil.kgm", "Sao Paulo State");
+i18n("brazil.kgm", "The capital of Sao Paulo State is...");
+i18n("brazil.kgm", "Please click on:\nSao Paulo State");
+i18n("brazil.kgm", "The flag of Sao Paulo State is...");
+i18n("brazil.kgm", "Sao Paulo (city)");
+i18n("brazil.kgm", "Sao Paulo (city) is the capital of...");
+i18n("brazil.kgm", "Piaui");
+i18n("brazil.kgm", "The capital of Piaui is...");
+i18n("brazil.kgm", "Please click on:\nPiaui");
+i18n("brazil.kgm", "The flag of Piaui is...");
+i18n("brazil.kgm", "Teresina");
+i18n("brazil.kgm", "Teresina is the capital of...");
+i18n("brazil.kgm", "Espirito Santo");
+i18n("brazil.kgm", "The capital of Espirito Santo is...");
+i18n("brazil.kgm", "Please click on:\nEspirito Santo");
+i18n("brazil.kgm", "The flag of Espirito Santo is...");
+i18n("brazil.kgm", "Vitoria");
+i18n("brazil.kgm", "Vitoria is the capital of...");
+i18n("brazil.kgm", "Frontier");
+i18n("brazil.kgm", "Out of Bounds");
+i18n("canada.kgm", "Canada");
+i18n("canada.kgm", "<qt>Current map:<br><b>Canada</b></qt>");
+i18n("canada.kgm", "Out of Bounds");
+i18n("canada.kgm", "Frontier");
+i18n("canada.kgm", "Prince Edward Island");
+i18n("canada.kgm", "The capital of Prince Edward Island is...");
+i18n("canada.kgm", "Please click on:\nPrince Edward Island");
+i18n("canada.kgm", "The flag of Prince Edward Island is...");
+i18n("canada.kgm", "Charlottetown");
+i18n("canada.kgm", "Charlottetown is the capital of...");
+i18n("canada.kgm", "British Columbia");
+i18n("canada.kgm", "The capital of British Columbia is...");
+i18n("canada.kgm", "Please click on:\nBritish Columbia");
+i18n("canada.kgm", "The flag of British Columbia is...");
+i18n("canada.kgm", "Victoria");
+i18n("canada.kgm", "Victoria is the capital of...");
+i18n("canada.kgm", "Ontario");
+i18n("canada.kgm", "The capital of Ontario is...");
+i18n("canada.kgm", "Please click on:\nOntario");
+i18n("canada.kgm", "The flag of Ontario is...");
+i18n("canada.kgm", "Toronto");
+i18n("canada.kgm", "Toronto is the capital of...");
+i18n("canada.kgm", "Newfoundland");
+i18n("canada.kgm", "The capital of Newfoundland is...");
+i18n("canada.kgm", "Please click on:\nNewfoundland");
+i18n("canada.kgm", "The flag of Newfoundland is...");
+i18n("canada.kgm", "St John's");
+i18n("canada.kgm", "St John's is the capital of...");
+i18n("canada.kgm", "Nunavut");
+i18n("canada.kgm", "The capital of Nunavut is...");
+i18n("canada.kgm", "Please click on:\nNunavut");
+i18n("canada.kgm", "The flag of Nunavut is...");
+i18n("canada.kgm", "Iqaluit");
+i18n("canada.kgm", "Iqaluit is the capital of...");
+i18n("canada.kgm", "Alberta");
+i18n("canada.kgm", "The capital of Alberta is...");
+i18n("canada.kgm", "Please click on:\nAlberta");
+i18n("canada.kgm", "The flag of Alberta is...");
+i18n("canada.kgm", "Edmonton");
+i18n("canada.kgm", "Edmonton is the capital of...");
+i18n("canada.kgm", "North West Territories");
+i18n("canada.kgm", "The capital of North West Territories is...");
+i18n("canada.kgm", "Please click on:\nNorth West Territories");
+i18n("canada.kgm", "The flag of North West Territories is...");
+i18n("canada.kgm", "Yellowknife");
+i18n("canada.kgm", "Yellowknife is the capital of...");
+i18n("canada.kgm", "Quebec");
+i18n("canada.kgm", "The capital of Quebec is...");
+i18n("canada.kgm", "Please click on:\nQuebec");
+i18n("canada.kgm", "The flag of Quebec is...");
+i18n("canada.kgm", "Quebec City");
+i18n("canada.kgm", "Quebec City is the capital of...");
+i18n("canada.kgm", "New Brunswick");
+i18n("canada.kgm", "The capital of New Brunswick is...");
+i18n("canada.kgm", "Please click on:\nNew Brunswick");
+i18n("canada.kgm", "The flag of New Brunswick is...");
+i18n("canada.kgm", "Fredericton");
+i18n("canada.kgm", "Fredericton is the capital of...");
+i18n("canada.kgm", "Manitoba");
+i18n("canada.kgm", "The capital of Manitoba is...");
+i18n("canada.kgm", "Please click on:\nManitoba");
+i18n("canada.kgm", "The flag of Manitoba is...");
+i18n("canada.kgm", "Winnipeg");
+i18n("canada.kgm", "Winnipeg is the capital of...");
+i18n("canada.kgm", "Nova Scotia");
+i18n("canada.kgm", "The capital of Nova Scotia is...");
+i18n("canada.kgm", "Please click on:\nNova Scotia");
+i18n("canada.kgm", "The flag of Nova Scotia is...");
+i18n("canada.kgm", "Halifax");
+i18n("canada.kgm", "Halifax is the capital of...");
+i18n("canada.kgm", "Yukon Territory");
+i18n("canada.kgm", "The capital of Yukon Territory is...");
+i18n("canada.kgm", "Please click on:\nYukon Territory");
+i18n("canada.kgm", "The flag of Yukon Territory is...");
+i18n("canada.kgm", "Whitehorse");
+i18n("canada.kgm", "Whitehorse is the capital of...");
+i18n("canada.kgm", "Saskatchewan");
+i18n("canada.kgm", "The capital of Saskatchewan is...");
+i18n("canada.kgm", "Please click on:\nSaskatchewan");
+i18n("canada.kgm", "The flag of Saskatchewan is...");
+i18n("canada.kgm", "Regina");
+i18n("canada.kgm", "Regina is the capital of...");
+i18n("china.kgm", "China");
+i18n("china.kgm", "<qt>Current map:<br><b>China</b></qt>");
+i18n("china.kgm", "Frontier");
+i18n("china.kgm", "Water");
+i18n("china.kgm", "Coast");
+i18n("china.kgm", "Russia");
+i18n("china.kgm", "Japan");
+i18n("china.kgm", "Mongolia");
+i18n("china.kgm", "North Korea");
+i18n("china.kgm", "South Korea");
+i18n("china.kgm", "Kazakhstan");
+i18n("china.kgm", "Kyrgyzstan");
+i18n("china.kgm", "Tajikistan");
+i18n("china.kgm", "Afghanistan");
+i18n("china.kgm", "Pakistan");
+i18n("china.kgm", "India");
+i18n("china.kgm", "Bhutan");
+i18n("china.kgm", "Bangladesh");
+i18n("china.kgm", "Myanmar");
+i18n("china.kgm", "Thailand");
+i18n("china.kgm", "Taiwan");
+i18n("china.kgm", "Vietnam");
+i18n("china.kgm", "Laos");
+i18n("china.kgm", "Nepal");
+i18n("china.kgm", "Anhui");
+i18n("china.kgm", "The capital of Anhui is...");
+i18n("china.kgm", "Please click on:\nAnhui");
+i18n("china.kgm", "Hefei");
+i18n("china.kgm", "Hefei is the capital of...");
+i18n("china.kgm", "Beijing");
+i18n("china.kgm", "Please click on:\nBeijing");
+i18n("china.kgm", "Chongqing");
+i18n("china.kgm", "Please click on:\nChongqing");
+i18n("china.kgm", "Fujian");
+i18n("china.kgm", "The capital of Fujian is...");
+i18n("china.kgm", "Please click on:\nFujian");
+i18n("china.kgm", "Fuzhou");
+i18n("china.kgm", "Fuzhou is the capital of...");
+i18n("china.kgm", "Gansu");
+i18n("china.kgm", "The capital of Gansu is...");
+i18n("china.kgm", "Please click on:\nGansu");
+i18n("china.kgm", "Lanzhou");
+i18n("china.kgm", "Lanzhou is the capital of...");
+i18n("china.kgm", "Guangdong");
+i18n("china.kgm", "The capital of Guangdong is...");
+i18n("china.kgm", "Please click on:\nGuangdong");
+i18n("china.kgm", "Guangzhou");
+i18n("china.kgm", "Guangzhou is the capital of...");
+i18n("china.kgm", "Guangxi Zhuang");
+i18n("china.kgm", "The capital of Guangxi Zhuang is...");
+i18n("china.kgm", "Please click on:\nGuangxi Zhuang");
+i18n("china.kgm", "Nanning");
+i18n("china.kgm", "Nanning is the capital of...");
+i18n("china.kgm", "Guizhou");
+i18n("china.kgm", "The capital of Guizhou is...");
+i18n("china.kgm", "Please click on:\nGuizhou");
+i18n("china.kgm", "Guiyang");
+i18n("china.kgm", "Guiyang is the capital of...");
+i18n("china.kgm", "Hainan");
+i18n("china.kgm", "The capital of Hainan is...");
+i18n("china.kgm", "Please click on:\nHainan");
+i18n("china.kgm", "Haikou");
+i18n("china.kgm", "Haikou is the capital of...");
+i18n("china.kgm", "Hebei");
+i18n("china.kgm", "The capital of Hebei is...");
+i18n("china.kgm", "Please click on:\nHebei");
+i18n("china.kgm", "Shijiazhuang");
+i18n("china.kgm", "Shijiazhuang is the capital of...");
+i18n("china.kgm", "Heilongjiang");
+i18n("china.kgm", "The capital of Heilongjiang is...");
+i18n("china.kgm", "Please click on:\nHeilongjiang");
+i18n("china.kgm", "Harbin");
+i18n("china.kgm", "Harbin is the capital of...");
+i18n("china.kgm", "Henan");
+i18n("china.kgm", "The capital of Henan is...");
+i18n("china.kgm", "Please click on:\nHenan");
+i18n("china.kgm", "Zhengzhou");
+i18n("china.kgm", "Zhengzhou is the capital of...");
+i18n("china.kgm", "Hubei");
+i18n("china.kgm", "The capital of Hubei is...");
+i18n("china.kgm", "Please click on:\nHubei");
+i18n("china.kgm", "Wuhan");
+i18n("china.kgm", "Wuhan is the capital of...");
+i18n("china.kgm", "Hunan");
+i18n("china.kgm", "The capital of Hunan is...");
+i18n("china.kgm", "Please click on:\nHunan");
+i18n("china.kgm", "Changsha");
+i18n("china.kgm", "Changsha is the capital of...");
+i18n("china.kgm", "Jiangsu");
+i18n("china.kgm", "The capital of Jiangsu is...");
+i18n("china.kgm", "Please click on:\nJiangsu");
+i18n("china.kgm", "Nanjing");
+i18n("china.kgm", "Nanjing is the capital of...");
+i18n("china.kgm", "Jiangxi");
+i18n("china.kgm", "The capital of Jiangxi is...");
+i18n("china.kgm", "Please click on:\nJiangxi");
+i18n("china.kgm", "Nanchang");
+i18n("china.kgm", "Nanchang is the capital of...");
+i18n("china.kgm", "Jilin");
+i18n("china.kgm", "The capital of Jilin is...");
+i18n("china.kgm", "Please click on:\nJilin");
+i18n("china.kgm", "Changchun");
+i18n("china.kgm", "Changchun is the capital of...");
+i18n("china.kgm", "Liaoning");
+i18n("china.kgm", "The capital of Liaoning is...");
+i18n("china.kgm", "Please click on:\nLiaoning");
+i18n("china.kgm", "Shenyang");
+i18n("china.kgm", "Shenyang is the capital of...");
+i18n("china.kgm", "Nei Mongol");
+i18n("china.kgm", "The capital of Nei Mongol is...");
+i18n("china.kgm", "Please click on:\nNei Mongol");
+i18n("china.kgm", "Hohhot");
+i18n("china.kgm", "Hohhot is the capital of...");
+i18n("china.kgm", "Ningxia Hui");
+i18n("china.kgm", "The capital of Ningxia Hui is...");
+i18n("china.kgm", "Please click on:\nNingxia Hui");
+i18n("china.kgm", "Yinchuan");
+i18n("china.kgm", "Yinchuan is the capital of...");
+i18n("china.kgm", "Qinghai");
+i18n("china.kgm", "The capital of Qinghai is...");
+i18n("china.kgm", "Please click on:\nQinghai");
+i18n("china.kgm", "Xining");
+i18n("china.kgm", "Xining is the capital of...");
+i18n("china.kgm", "Shanxi");
+i18n("china.kgm", "The capital of Shanxi is...");
+i18n("china.kgm", "Please click on:\nShanxi");
+i18n("china.kgm", "Taiyuan");
+i18n("china.kgm", "Taiyuan is the capital of...");
+i18n("china.kgm", "Shandong");
+i18n("china.kgm", "The capital of Shandong is...");
+i18n("china.kgm", "Please click on:\nShandong");
+i18n("china.kgm", "Jinan");
+i18n("china.kgm", "Jinan is the capital of...");
+i18n("china.kgm", "Shanghai");
+i18n("china.kgm", "Please click on:\nShanghai");
+i18n("china.kgm", "Shaanxi");
+i18n("china.kgm", "The capital of Shaanxi is...");
+i18n("china.kgm", "Please click on:\nShaanxi");
+i18n("china.kgm", "Xian");
+i18n("china.kgm", "Xian is the capital of...");
+i18n("china.kgm", "Sichuan");
+i18n("china.kgm", "The capital of Sichuan is...");
+i18n("china.kgm", "Please click on:\nSichuan");
+i18n("china.kgm", "Chengdu");
+i18n("china.kgm", "Chengdu is the capital of...");
+i18n("china.kgm", "Tianjin");
+i18n("china.kgm", "Please click on:\nTianjin");
+i18n("china.kgm", "Xinjiang Uygur");
+i18n("china.kgm", "The capital of Xinjiang Uygur is...");
+i18n("china.kgm", "Please click on:\nXinjiang Uygur");
+i18n("china.kgm", "Urumqi");
+i18n("china.kgm", "Urumqi is the capital of...");
+i18n("china.kgm", "Xizang");
+i18n("china.kgm", "The capital of Xizang is...");
+i18n("china.kgm", "Please click on:\nXizang");
+i18n("china.kgm", "Lhasa");
+i18n("china.kgm", "Lhasa is the capital of...");
+i18n("china.kgm", "Yunnan");
+i18n("china.kgm", "The capital of Yunnan is...");
+i18n("china.kgm", "Please click on:\nYunnan");
+i18n("china.kgm", "Kunming");
+i18n("china.kgm", "Kunming is the capital of...");
+i18n("china.kgm", "Zhejiang");
+i18n("china.kgm", "The capital of Zhejiang is...");
+i18n("china.kgm", "Please click on:\nZhejiang");
+i18n("china.kgm", "Hangzhou");
+i18n("china.kgm", "Hangzhou is the capital of...");
+i18n("china.kgm", "Hong Kong");
+i18n("china.kgm", "Please click on:\nHong Kong");
+i18n("china.kgm", "Macao");
+i18n("china.kgm", "Please click on:\nMacao");
+i18n("europe.kgm", "Europe");
+i18n("europe.kgm", "<qt>Current map:<br><b>Europe</b></qt>");
+i18n("europe.kgm", "Water");
+i18n("europe.kgm", "Coast");
+i18n("europe.kgm", "Frontier");
+i18n("europe.kgm", "Albania");
+i18n("europe.kgm", "The capital of Albania is...");
+i18n("europe.kgm", "Please click on:\nAlbania");
+i18n("europe.kgm", "The flag of Albania is...");
+i18n("europe.kgm", "Tirana");
+i18n("europe.kgm", "Tirana is the capital of...");
+i18n("europe.kgm", "Algeria");
+i18n("europe.kgm", "Austria");
+i18n("europe.kgm", "The capital of Austria is...");
+i18n("europe.kgm", "Please click on:\nAustria");
+i18n("europe.kgm", "The flag of Austria is...");
+i18n("europe.kgm", "Vienna");
+i18n("europe.kgm", "Vienna is the capital of...");
+i18n("europe.kgm", "Belarus");
+i18n("europe.kgm", "The capital of Belarus is...");
+i18n("europe.kgm", "Please click on:\nBelarus");
+i18n("europe.kgm", "The flag of Belarus is...");
+i18n("europe.kgm", "Minsk");
+i18n("europe.kgm", "Minsk is the capital of...");
+i18n("europe.kgm", "Belgium");
+i18n("europe.kgm", "The capital of Belgium is...");
+i18n("europe.kgm", "Please click on:\nBelgium");
+i18n("europe.kgm", "The flag of Belgium is...");
+i18n("europe.kgm", "Brussels");
+i18n("europe.kgm", "Brussels is the capital of...");
+i18n("europe.kgm", "Bosnia and Herzegovina");
+i18n("europe.kgm", "The capital of Bosnia and Herzegovina is...");
+i18n("europe.kgm", "Please click on:\nBosnia and Herzegovina");
+i18n("europe.kgm", "The flag of Bosnia and Herzegovina is...");
+i18n("europe.kgm", "Sarajevo");
+i18n("europe.kgm", "Sarajevo is the capital of...");
+i18n("europe.kgm", "Bulgaria");
+i18n("europe.kgm", "The capital of Bulgaria is...");
+i18n("europe.kgm", "Please click on:\nBulgaria");
+i18n("europe.kgm", "The flag of Bulgaria is...");
+i18n("europe.kgm", "Sofia");
+i18n("europe.kgm", "Sofia is the capital of...");
+i18n("europe.kgm", "Croatia");
+i18n("europe.kgm", "The capital of Croatia is...");
+i18n("europe.kgm", "Please click on:\nCroatia");
+i18n("europe.kgm", "The flag of Croatia is...");
+i18n("europe.kgm", "Zagreb");
+i18n("europe.kgm", "Zagreb is the capital of...");
+i18n("europe.kgm", "Czech Republic");
+i18n("europe.kgm", "The capital of Czech Republic is...");
+i18n("europe.kgm", "Please click on:\nCzech Republic");
+i18n("europe.kgm", "The flag of Czech Republic is...");
+i18n("europe.kgm", "Prague");
+i18n("europe.kgm", "Prague is the capital of...");
+i18n("europe.kgm", "Denmark");
+i18n("europe.kgm", "The capital of Denmark is...");
+i18n("europe.kgm", "Please click on:\nDenmark");
+i18n("europe.kgm", "The flag of Denmark is...");
+i18n("europe.kgm", "Copenhagen");
+i18n("europe.kgm", "Copenhagen is the capital of...");
+i18n("europe.kgm", "Estonia");
+i18n("europe.kgm", "The capital of Estonia is...");
+i18n("europe.kgm", "Please click on:\nEstonia");
+i18n("europe.kgm", "The flag of Estonia is...");
+i18n("europe.kgm", "Tallinn");
+i18n("europe.kgm", "Tallinn is the capital of...");
+i18n("europe.kgm", "Finland");
+i18n("europe.kgm", "The capital of Finland is...");
+i18n("europe.kgm", "Please click on:\nFinland");
+i18n("europe.kgm", "The flag of Finland is...");
+i18n("europe.kgm", "Helsinki");
+i18n("europe.kgm", "Helsinki is the capital of...");
+i18n("europe.kgm", "Macedonia");
+i18n("europe.kgm", "The capital of Macedonia is...");
+i18n("europe.kgm", "Please click on:\nMacedonia");
+i18n("europe.kgm", "The flag of Macedonia is...");
+i18n("europe.kgm", "Skopje");
+i18n("europe.kgm", "Skopje is the capital of...");
+i18n("europe.kgm", "France");
+i18n("europe.kgm", "The capital of France is...");
+i18n("europe.kgm", "Please click on:\nFrance");
+i18n("europe.kgm", "The flag of France is...");
+i18n("europe.kgm", "Paris");
+i18n("europe.kgm", "Paris is the capital of...");
+i18n("europe.kgm", "Germany");
+i18n("europe.kgm", "The capital of Germany is...");
+i18n("europe.kgm", "Please click on:\nGermany");
+i18n("europe.kgm", "The flag of Germany is...");
+i18n("europe.kgm", "Berlin");
+i18n("europe.kgm", "Berlin is the capital of...");
+i18n("europe.kgm", "Greece");
+i18n("europe.kgm", "The capital of Greece is...");
+i18n("europe.kgm", "Please click on:\nGreece");
+i18n("europe.kgm", "The flag of Greece is...");
+i18n("europe.kgm", "Athens");
+i18n("europe.kgm", "Athens is the capital of...");
+i18n("europe.kgm", "Hungary");
+i18n("europe.kgm", "The capital of Hungary is...");
+i18n("europe.kgm", "Please click on:\nHungary");
+i18n("europe.kgm", "The flag of Hungary is...");
+i18n("europe.kgm", "Budapest");
+i18n("europe.kgm", "Budapest is the capital of...");
+i18n("europe.kgm", "Iceland");
+i18n("europe.kgm", "The capital of Iceland is...");
+i18n("europe.kgm", "Please click on:\nIceland");
+i18n("europe.kgm", "The flag of Iceland is...");
+i18n("europe.kgm", "Reykjavik");
+i18n("europe.kgm", "Reykjavik is the capital of...");
+i18n("europe.kgm", "Ireland");
+i18n("europe.kgm", "The capital of Ireland is...");
+i18n("europe.kgm", "Please click on:\nIreland");
+i18n("europe.kgm", "The flag of Ireland is...");
+i18n("europe.kgm", "Dublin");
+i18n("europe.kgm", "Dublin is the capital of...");
+i18n("europe.kgm", "Italy");
+i18n("europe.kgm", "The capital of Italy is...");
+i18n("europe.kgm", "Please click on:\nItaly");
+i18n("europe.kgm", "The flag of Italy is...");
+i18n("europe.kgm", "Rome");
+i18n("europe.kgm", "Rome is the capital of...");
+i18n("europe.kgm", "Latvia");
+i18n("europe.kgm", "The capital of Latvia is...");
+i18n("europe.kgm", "Please click on:\nLatvia");
+i18n("europe.kgm", "The flag of Latvia is...");
+i18n("europe.kgm", "Riga");
+i18n("europe.kgm", "Riga is the capital of...");
+i18n("europe.kgm", "Lithuania");
+i18n("europe.kgm", "The capital of Lithuania is...");
+i18n("europe.kgm", "Please click on:\nLithuania");
+i18n("europe.kgm", "The flag of Lithuania is...");
+i18n("europe.kgm", "Vilnius");
+i18n("europe.kgm", "Vilnius is the capital of...");
+i18n("europe.kgm", "Luxembourg");
+i18n("europe.kgm", "The capital of Luxembourg is...");
+i18n("europe.kgm", "Please click on:\nLuxembourg");
+i18n("europe.kgm", "The flag of Luxembourg is...");
+i18n("europe.kgm", "Luxembourg");
+i18n("europe.kgm", "Luxembourg is the capital of...");
+i18n("europe.kgm", "Moldova");
+i18n("europe.kgm", "The capital of Moldova is...");
+i18n("europe.kgm", "Please click on:\nMoldova");
+i18n("europe.kgm", "The flag of Moldova is...");
+i18n("europe.kgm", "Chisinau");
+i18n("europe.kgm", "Chisinau is the capital of...");
+i18n("europe.kgm", "Morocco");
+i18n("europe.kgm", "Netherlands");
+i18n("europe.kgm", "The capital of Netherlands is...");
+i18n("europe.kgm", "Please click on:\nNetherlands");
+i18n("europe.kgm", "The flag of Netherlands is...");
+i18n("europe.kgm", "Amsterdam");
+i18n("europe.kgm", "Amsterdam is the capital of...");
+i18n("europe.kgm", "Norway");
+i18n("europe.kgm", "The capital of Norway is...");
+i18n("europe.kgm", "Please click on:\nNorway");
+i18n("europe.kgm", "The flag of Norway is...");
+i18n("europe.kgm", "Oslo");
+i18n("europe.kgm", "Oslo is the capital of...");
+i18n("europe.kgm", "Poland");
+i18n("europe.kgm", "The capital of Poland is...");
+i18n("europe.kgm", "Please click on:\nPoland");
+i18n("europe.kgm", "The flag of Poland is...");
+i18n("europe.kgm", "Warsaw");
+i18n("europe.kgm", "Warsaw is the capital of...");
+i18n("europe.kgm", "Portugal");
+i18n("europe.kgm", "The capital of Portugal is...");
+i18n("europe.kgm", "Please click on:\nPortugal");
+i18n("europe.kgm", "The flag of Portugal is...");
+i18n("europe.kgm", "Lisbon");
+i18n("europe.kgm", "Lisbon is the capital of...");
+i18n("europe.kgm", "Romania");
+i18n("europe.kgm", "The capital of Romania is...");
+i18n("europe.kgm", "Please click on:\nRomania");
+i18n("europe.kgm", "The flag of Romania is...");
+i18n("europe.kgm", "Bucharest");
+i18n("europe.kgm", "Bucharest is the capital of...");
+i18n("europe.kgm", "Russia");
+i18n("europe.kgm", "The capital of Russia is...");
+i18n("europe.kgm", "Please click on:\nRussia");
+i18n("europe.kgm", "The flag of Russia is...");
+i18n("europe.kgm", "Moscow");
+i18n("europe.kgm", "Moscow is the capital of...");
+i18n("europe.kgm", "San Marino");
+i18n("europe.kgm", "The capital of San Marino is...");
+i18n("europe.kgm", "Please click on:\nSan Marino");
+i18n("europe.kgm", "The flag of San Marino is...");
+i18n("europe.kgm", "San Marino");
+i18n("europe.kgm", "San Marino is the capital of...");
+i18n("europe.kgm", "Serbia");
+i18n("europe.kgm", "The capital of Serbia is...");
+i18n("europe.kgm", "Please click on:\nSerbia");
+i18n("europe.kgm", "The flag of Serbia is...");
+i18n("europe.kgm", "Belgrade");
+i18n("europe.kgm", "Belgrade is the capital of...");
+i18n("europe.kgm", "Montenegro");
+i18n("europe.kgm", "The capital of Montenegro is...");
+i18n("europe.kgm", "Please click on:\nMontenegro");
+i18n("europe.kgm", "The flag of Montenegro is...");
+i18n("europe.kgm", "Podgorica");
+i18n("europe.kgm", "Podgorica is the capital of...");
+i18n("europe.kgm", "Slovakia");
+i18n("europe.kgm", "The capital of Slovakia is...");
+i18n("europe.kgm", "Please click on:\nSlovakia");
+i18n("europe.kgm", "The flag of Slovakia is...");
+i18n("europe.kgm", "Bratislava");
+i18n("europe.kgm", "Bratislava is the capital of...");
+i18n("europe.kgm", "Slovenia");
+i18n("europe.kgm", "The capital of Slovenia is...");
+i18n("europe.kgm", "Please click on:\nSlovenia");
+i18n("europe.kgm", "The flag of Slovenia is...");
+i18n("europe.kgm", "Ljubljana");
+i18n("europe.kgm", "Ljubljana is the capital of...");
+i18n("europe.kgm", "Spain");
+i18n("europe.kgm", "The capital of Spain is...");
+i18n("europe.kgm", "Please click on:\nSpain");
+i18n("europe.kgm", "The flag of Spain is...");
+i18n("europe.kgm", "Madrid");
+i18n("europe.kgm", "Madrid is the capital of...");
+i18n("europe.kgm", "Sweden");
+i18n("europe.kgm", "The capital of Sweden is...");
+i18n("europe.kgm", "Please click on:\nSweden");
+i18n("europe.kgm", "The flag of Sweden is...");
+i18n("europe.kgm", "Stockholm");
+i18n("europe.kgm", "Stockholm is the capital of...");
+i18n("europe.kgm", "Switzerland");
+i18n("europe.kgm", "The capital of Switzerland is...");
+i18n("europe.kgm", "Please click on:\nSwitzerland");
+i18n("europe.kgm", "The flag of Switzerland is...");
+i18n("europe.kgm", "Bern");
+i18n("europe.kgm", "Bern is the capital of...");
+i18n("europe.kgm", "Syria");
+i18n("europe.kgm", "Tunisia");
+i18n("europe.kgm", "Turkey");
+i18n("europe.kgm", "The capital of Turkey is...");
+i18n("europe.kgm", "Please click on:\nTurkey");
+i18n("europe.kgm", "The flag of Turkey is...");
+i18n("europe.kgm", "Ankara");
+i18n("europe.kgm", "Ankara is the capital of...");
+i18n("europe.kgm", "Ukraine");
+i18n("europe.kgm", "The capital of Ukraine is...");
+i18n("europe.kgm", "Please click on:\nUkraine");
+i18n("europe.kgm", "The flag of Ukraine is...");
+i18n("europe.kgm", "Kiev");
+i18n("europe.kgm", "Kiev is the capital of...");
+i18n("europe.kgm", "United Kingdom");
+i18n("europe.kgm", "The capital of United Kingdom is...");
+i18n("europe.kgm", "Please click on:\nUnited Kingdom");
+i18n("europe.kgm", "The flag of United Kingdom is...");
+i18n("europe.kgm", "London");
+i18n("europe.kgm", "London is the capital of...");
+i18n("france.kgm", "France");
+i18n("france.kgm", "<qt>Current map:<br><b>France</b></qt>");
+i18n("france.kgm", "Not France");
+i18n("france.kgm", "Frontier");
+i18n("france.kgm", "Ain");
+i18n("france.kgm", "The capital of Ain is...");
+i18n("france.kgm", "Please click on:\nAin");
+i18n("france.kgm", "Bourg en Bresse");
+i18n("france.kgm", "Bourg en Bresse is the capital of...");
+i18n("france.kgm", "Aisne");
+i18n("france.kgm", "The capital of Aisne is...");
+i18n("france.kgm", "Please click on:\nAisne");
+i18n("france.kgm", "Laon");
+i18n("france.kgm", "Laon is the capital of...");
+i18n("france.kgm", "Allier");
+i18n("france.kgm", "The capital of Allier is...");
+i18n("france.kgm", "Please click on:\nAllier");
+i18n("france.kgm", "Moulins");
+i18n("france.kgm", "Moulins is the capital of...");
+i18n("france.kgm", "Alpes de Haute-Provence");
+i18n("france.kgm", "The capital of Alpes de Haute-Provence is...");
+i18n("france.kgm", "Please click on:\nAlpes de Haute-Provence");
+i18n("france.kgm", "Digne");
+i18n("france.kgm", "Digne is the capital of...");
+i18n("france.kgm", "Hautes-Alpes");
+i18n("france.kgm", "The capital of Hautes-Alpes is...");
+i18n("france.kgm", "Please click on:\nHautes-Alpes");
+i18n("france.kgm", "Gap");
+i18n("france.kgm", "Gap is the capital of...");
+i18n("france.kgm", "Alpes Maritimes");
+i18n("france.kgm", "The capital of Alpes Maritimes is...");
+i18n("france.kgm", "Please click on:\nAlpes Maritimes");
+i18n("france.kgm", "Nice");
+i18n("france.kgm", "Nice is the capital of...");
+i18n("france.kgm", "Ardèche");
+i18n("france.kgm", "The capital of Ardèche is...");
+i18n("france.kgm", "Please click on:\nArdèche");
+i18n("france.kgm", "Privas");
+i18n("france.kgm", "Privas is the capital of...");
+i18n("france.kgm", "Ardennes");
+i18n("france.kgm", "The capital of Ardennes is...");
+i18n("france.kgm", "Please click on:\nArdennes");
+i18n("france.kgm", "Charleville-Mézières");
+i18n("france.kgm", "Charleville-Mézières is the capital of...");
+i18n("france.kgm", "Ariège");
+i18n("france.kgm", "The capital of Ariège is...");
+i18n("france.kgm", "Please click on:\nAriège");
+i18n("france.kgm", "Foix");
+i18n("france.kgm", "Foix is the capital of...");
+i18n("france.kgm", "Aube");
+i18n("france.kgm", "The capital of Aube is...");
+i18n("france.kgm", "Please click on:\nAube");
+i18n("france.kgm", "Troyes");
+i18n("france.kgm", "Troyes is the capital of...");
+i18n("france.kgm", "Aude");
+i18n("france.kgm", "The capital of Aude is...");
+i18n("france.kgm", "Please click on:\nAude");
+i18n("france.kgm", "Carcassonne");
+i18n("france.kgm", "Carcassonne is the capital of...");
+i18n("france.kgm", "Aveyron");
+i18n("france.kgm", "The capital of Aveyron is...");
+i18n("france.kgm", "Please click on:\nAveyron");
+i18n("france.kgm", "Rodez");
+i18n("france.kgm", "Rodez is the capital of...");
+i18n("france.kgm", "Bouches-du-Rhône");
+i18n("france.kgm", "The capital of Bouches-du-Rhône is...");
+i18n("france.kgm", "Please click on:\nBouches-du-Rhône");
+i18n("france.kgm", "Marseille");
+i18n("france.kgm", "Marseille is the capital of...");
+i18n("france.kgm", "Calvados");
+i18n("france.kgm", "The capital of Calvados is...");
+i18n("france.kgm", "Please click on:\nCalvados");
+i18n("france.kgm", "Caen");
+i18n("france.kgm", "Caen is the capital of...");
+i18n("france.kgm", "Cantal");
+i18n("france.kgm", "The capital of Cantal is...");
+i18n("france.kgm", "Please click on:\nCantal");
+i18n("france.kgm", "Aurillac");
+i18n("france.kgm", "Aurillac is the capital of...");
+i18n("france.kgm", "Charente");
+i18n("france.kgm", "The capital of Charente is...");
+i18n("france.kgm", "Please click on:\nCharente");
+i18n("france.kgm", "Angoulème");
+i18n("france.kgm", "Angoulème is the capital of...");
+i18n("france.kgm", "Charente-Maritime");
+i18n("france.kgm", "The capital of Charente-Maritime is...");
+i18n("france.kgm", "Please click on:\nCharente-Maritime");
+i18n("france.kgm", "La Rochelle");
+i18n("france.kgm", "La Rochelle is the capital of...");
+i18n("france.kgm", "Cher");
+i18n("france.kgm", "The capital of Cher is...");
+i18n("france.kgm", "Please click on:\nCher");
+i18n("france.kgm", "Bourges");
+i18n("france.kgm", "Bourges is the capital of...");
+i18n("france.kgm", "Corrèze");
+i18n("france.kgm", "The capital of Corrèze is...");
+i18n("france.kgm", "Please click on:\nCorrèze");
+i18n("france.kgm", "Tulle");
+i18n("france.kgm", "Tulle is the capital of...");
+i18n("france.kgm", "Corse du Sud");
+i18n("france.kgm", "The capital of Corse du Sud is...");
+i18n("france.kgm", "Please click on:\nCorse du Sud");
+i18n("france.kgm", "Ajaccio");
+i18n("france.kgm", "Ajaccio is the capital of...");
+i18n("france.kgm", "Haute-Corse");
+i18n("france.kgm", "The capital of Haute-Corse is...");
+i18n("france.kgm", "Please click on:\nHaute-Corse");
+i18n("france.kgm", "Bastia");
+i18n("france.kgm", "Bastia is the capital of...");
+i18n("france.kgm", "Côte d'Or");
+i18n("france.kgm", "The capital of Côte d'Or is...");
+i18n("france.kgm", "Please click on:\nCôte d'Or");
+i18n("france.kgm", "Dijon");
+i18n("france.kgm", "Dijon is the capital of...");
+i18n("france.kgm", "Côtes d'Armor");
+i18n("france.kgm", "The capital of Côtes d'Armor is...");
+i18n("france.kgm", "Please click on:\nCôtes d'Armor");
+i18n("france.kgm", "Saint Brieuc");
+i18n("france.kgm", "Saint Brieuc is the capital of...");
+i18n("france.kgm", "Creuse");
+i18n("france.kgm", "The capital of Creuse is...");
+i18n("france.kgm", "Please click on:\nCreuse");
+i18n("france.kgm", "Guéret");
+i18n("france.kgm", "Guéret is the capital of...");
+i18n("france.kgm", "Dordogne");
+i18n("france.kgm", "The capital of Dordogne is...");
+i18n("france.kgm", "Please click on:\nDordogne");
+i18n("france.kgm", "Périgueux");
+i18n("france.kgm", "Périgueux is the capital of...");
+i18n("france.kgm", "Doubs");
+i18n("france.kgm", "The capital of Doubs is...");
+i18n("france.kgm", "Please click on:\nDoubs");
+i18n("france.kgm", "Besançon");
+i18n("france.kgm", "Besançon is the capital of...");
+i18n("france.kgm", "Drôme");
+i18n("france.kgm", "The capital of Drôme is...");
+i18n("france.kgm", "Please click on:\nDrôme");
+i18n("france.kgm", "Valence");
+i18n("france.kgm", "Valence is the capital of...");
+i18n("france.kgm", "Eure");
+i18n("france.kgm", "The capital of Eure is...");
+i18n("france.kgm", "Please click on:\nEure");
+i18n("france.kgm", "Evreux");
+i18n("france.kgm", "Evreux is the capital of...");
+i18n("france.kgm", "Eure et Loir");
+i18n("france.kgm", "The capital of Eure et Loir is...");
+i18n("france.kgm", "Please click on:\nEure et Loir");
+i18n("france.kgm", "Chartres");
+i18n("france.kgm", "Chartres is the capital of...");
+i18n("france.kgm", "Finistère");
+i18n("france.kgm", "The capital of Finistère is...");
+i18n("france.kgm", "Please click on:\nFinistère");
+i18n("france.kgm", "Quimper");
+i18n("france.kgm", "Quimper is the capital of...");
+i18n("france.kgm", "Gard");
+i18n("france.kgm", "The capital of Gard is...");
+i18n("france.kgm", "Please click on:\nGard");
+i18n("france.kgm", "Nîmes");
+i18n("france.kgm", "Nîmes is the capital of...");
+i18n("france.kgm", "Haute-Garonne");
+i18n("france.kgm", "The capital of Haute-Garonne is...");
+i18n("france.kgm", "Please click on:\nHaute-Garonne");
+i18n("france.kgm", "Toulouse");
+i18n("france.kgm", "Toulouse is the capital of...");
+i18n("france.kgm", "Gers");
+i18n("france.kgm", "The capital of Gers is...");
+i18n("france.kgm", "Please click on:\nGers");
+i18n("france.kgm", "Auch");
+i18n("france.kgm", "Auch is the capital of...");
+i18n("france.kgm", "Gironde");
+i18n("france.kgm", "The capital of Gironde is...");
+i18n("france.kgm", "Please click on:\nGironde");
+i18n("france.kgm", "Bordeaux");
+i18n("france.kgm", "Bordeaux is the capital of...");
+i18n("france.kgm", "Hérault");
+i18n("france.kgm", "The capital of Hérault is...");
+i18n("france.kgm", "Please click on:\nHérault");
+i18n("france.kgm", "Montpellier");
+i18n("france.kgm", "Montpellier is the capital of...");
+i18n("france.kgm", "Ille et Vilaine");
+i18n("france.kgm", "The capital of Ille et Vilaine is...");
+i18n("france.kgm", "Please click on:\nIlle et Vilaine");
+i18n("france.kgm", "Rennes");
+i18n("france.kgm", "Rennes is the capital of...");
+i18n("france.kgm", "Indre");
+i18n("france.kgm", "The capital of Indre is...");
+i18n("france.kgm", "Please click on:\nIndre");
+i18n("france.kgm", "Châteauroux");
+i18n("france.kgm", "Châteauroux is the capital of...");
+i18n("france.kgm", "Indre et Loire");
+i18n("france.kgm", "The capital of Indre et Loire is...");
+i18n("france.kgm", "Please click on:\nIndre et Loire");
+i18n("france.kgm", "Tours");
+i18n("france.kgm", "Tours is the capital of...");
+i18n("france.kgm", "Isère");
+i18n("france.kgm", "The capital of Isère is...");
+i18n("france.kgm", "Please click on:\nIsère");
+i18n("france.kgm", "Grenoble");
+i18n("france.kgm", "Grenoble is the capital of...");
+i18n("france.kgm", "Jura");
+i18n("france.kgm", "The capital of Jura is...");
+i18n("france.kgm", "Please click on:\nJura");
+i18n("france.kgm", "Lons le Saunier");
+i18n("france.kgm", "Lons le Saunier is the capital of...");
+i18n("france.kgm", "Landes");
+i18n("france.kgm", "The capital of Landes is...");
+i18n("france.kgm", "Please click on:\nLandes");
+i18n("france.kgm", "Mont de Marsan");
+i18n("france.kgm", "Mont de Marsan is the capital of...");
+i18n("france.kgm", "Loir et Cher");
+i18n("france.kgm", "The capital of Loir et Cher is...");
+i18n("france.kgm", "Please click on:\nLoir et Cher");
+i18n("france.kgm", "Blois");
+i18n("france.kgm", "Blois is the capital of...");
+i18n("france.kgm", "Loire");
+i18n("france.kgm", "The capital of Loire is...");
+i18n("france.kgm", "Please click on:\nLoire");
+i18n("france.kgm", "Saint Etienne");
+i18n("france.kgm", "Saint Etienne is the capital of...");
+i18n("france.kgm", "Haute-Loire");
+i18n("france.kgm", "The capital of Haute-Loire is...");
+i18n("france.kgm", "Please click on:\nHaute-Loire");
+i18n("france.kgm", "Le Puy");
+i18n("france.kgm", "Le Puy is the capital of...");
+i18n("france.kgm", "Loire-Atlantique");
+i18n("france.kgm", "The capital of Loire-Atlantique is...");
+i18n("france.kgm", "Please click on:\nLoire-Atlantique");
+i18n("france.kgm", "Nantes");
+i18n("france.kgm", "Nantes is the capital of...");
+i18n("france.kgm", "Loiret");
+i18n("france.kgm", "The capital of Loiret is...");
+i18n("france.kgm", "Please click on:\nLoiret");
+i18n("france.kgm", "Orléans");
+i18n("france.kgm", "Orléans is the capital of...");
+i18n("france.kgm", "Lot");
+i18n("france.kgm", "The capital of Lot is...");
+i18n("france.kgm", "Please click on:\nLot");
+i18n("france.kgm", "Cahors");
+i18n("france.kgm", "Cahors is the capital of...");
+i18n("france.kgm", "Lot et Garonne");
+i18n("france.kgm", "The capital of Lot et Garonne is...");
+i18n("france.kgm", "Please click on:\nLot et Garonne");
+i18n("france.kgm", "Agen");
+i18n("france.kgm", "Agen is the capital of...");
+i18n("france.kgm", "Lozère");
+i18n("france.kgm", "The capital of Lozère is...");
+i18n("france.kgm", "Please click on:\nLozère");
+i18n("france.kgm", "Mende");
+i18n("france.kgm", "Mende is the capital of...");
+i18n("france.kgm", "Maine et Loire");
+i18n("france.kgm", "The capital of Maine et Loire is...");
+i18n("france.kgm", "Please click on:\nMaine et Loire");
+i18n("france.kgm", "Angers");
+i18n("france.kgm", "Angers is the capital of...");
+i18n("france.kgm", "Manche");
+i18n("france.kgm", "The capital of Manche is...");
+i18n("france.kgm", "Please click on:\nManche");
+i18n("france.kgm", "Saint Lô");
+i18n("france.kgm", "Saint Lô is the capital of...");
+i18n("france.kgm", "Marne");
+i18n("france.kgm", "The capital of Marne is...");
+i18n("france.kgm", "Please click on:\nMarne");
+i18n("france.kgm", "Châlon en Champagne");
+i18n("france.kgm", "Châlon en Champagne is the capital of...");
+i18n("france.kgm", "Haute-Marne");
+i18n("france.kgm", "The capital of Haute-Marne is...");
+i18n("france.kgm", "Please click on:\nHaute-Marne");
+i18n("france.kgm", "Chaumont");
+i18n("france.kgm", "Chaumont is the capital of...");
+i18n("france.kgm", "Mayenne");
+i18n("france.kgm", "The capital of Mayenne is...");
+i18n("france.kgm", "Please click on:\nMayenne");
+i18n("france.kgm", "Laval");
+i18n("france.kgm", "Laval is the capital of...");
+i18n("france.kgm", "Meurthe et Moselle");
+i18n("france.kgm", "The capital of Meurthe et Moselle is...");
+i18n("france.kgm", "Please click on:\nMeurthe et Moselle");
+i18n("france.kgm", "Nancy");
+i18n("france.kgm", "Nancy is the capital of...");
+i18n("france.kgm", "Meuse");
+i18n("france.kgm", "The capital of Meuse is...");
+i18n("france.kgm", "Please click on:\nMeuse");
+i18n("france.kgm", "Bar le Duc");
+i18n("france.kgm", "Bar le Duc is the capital of...");
+i18n("france.kgm", "Morbihan");
+i18n("france.kgm", "The capital of Morbihan is...");
+i18n("france.kgm", "Please click on:\nMorbihan");
+i18n("france.kgm", "Vannes");
+i18n("france.kgm", "Vannes is the capital of...");
+i18n("france.kgm", "Moselle");
+i18n("france.kgm", "The capital of Moselle is...");
+i18n("france.kgm", "Please click on:\nMoselle");
+i18n("france.kgm", "Metz");
+i18n("france.kgm", "Metz is the capital of...");
+i18n("france.kgm", "Nièvre");
+i18n("france.kgm", "The capital of Nièvre is...");
+i18n("france.kgm", "Please click on:\nNièvre");
+i18n("france.kgm", "Nevers");
+i18n("france.kgm", "Nevers is the capital of...");
+i18n("france.kgm", "Nord");
+i18n("france.kgm", "The capital of Nord is...");
+i18n("france.kgm", "Please click on:\nNord");
+i18n("france.kgm", "Lille");
+i18n("france.kgm", "Lille is the capital of...");
+i18n("france.kgm", "Oise");
+i18n("france.kgm", "The capital of Oise is...");
+i18n("france.kgm", "Please click on:\nOise");
+i18n("france.kgm", "Beauvais");
+i18n("france.kgm", "Beauvais is the capital of...");
+i18n("france.kgm", "Orne");
+i18n("france.kgm", "The capital of Orne is...");
+i18n("france.kgm", "Please click on:\nOrne");
+i18n("france.kgm", "Alençon");
+i18n("france.kgm", "Alençon is the capital of...");
+i18n("france.kgm", "Pas-de-Calais");
+i18n("france.kgm", "The capital of Pas-de-Calais is...");
+i18n("france.kgm", "Please click on:\nPas-de-Calais");
+i18n("france.kgm", "Arras");
+i18n("france.kgm", "Arras is the capital of...");
+i18n("france.kgm", "Puy-de-Dôme");
+i18n("france.kgm", "The capital of Puy-de-Dôme is...");
+i18n("france.kgm", "Please click on:\nPuy-de-Dôme");
+i18n("france.kgm", "Clermont Ferrand");
+i18n("france.kgm", "Clermont Ferrand is the capital of...");
+i18n("france.kgm", "Pyrénées-Atlantiques");
+i18n("france.kgm", "The capital of Pyrénées-Atlantiques is...");
+i18n("france.kgm", "Please click on:\nPyrénées-Atlantiques");
+i18n("france.kgm", "Pau");
+i18n("france.kgm", "Pau is the capital of...");
+i18n("france.kgm", "Hautes-Pyrénées");
+i18n("france.kgm", "The capital of Hautes-Pyrénées is...");
+i18n("france.kgm", "Please click on:\nHautes-Pyrénées");
+i18n("france.kgm", "Tarbes");
+i18n("france.kgm", "Tarbes is the capital of...");
+i18n("france.kgm", "Pyrénées-Orientales");
+i18n("france.kgm", "The capital of Pyrénées-Orientales is...");
+i18n("france.kgm", "Please click on:\nPyrénées-Orientales");
+i18n("france.kgm", "Perpignan");
+i18n("france.kgm", "Perpignan is the capital of...");
+i18n("france.kgm", "Bas-Rhin");
+i18n("france.kgm", "The capital of Bas-Rhin is...");
+i18n("france.kgm", "Please click on:\nBas-Rhin");
+i18n("france.kgm", "Strasbourg");
+i18n("france.kgm", "Strasbourg is the capital of...");
+i18n("france.kgm", "Haut-Rhin");
+i18n("france.kgm", "The capital of Haut-Rhin is...");
+i18n("france.kgm", "Please click on:\nHaut-Rhin");
+i18n("france.kgm", "Colmar");
+i18n("france.kgm", "Colmar is the capital of...");
+i18n("france.kgm", "Rhône");
+i18n("france.kgm", "The capital of Rhône is...");
+i18n("france.kgm", "Please click on:\nRhône");
+i18n("france.kgm", "Lyon");
+i18n("france.kgm", "Lyon is the capital of...");
+i18n("france.kgm", "Haute-Saône");
+i18n("france.kgm", "The capital of Haute-Saône is...");
+i18n("france.kgm", "Please click on:\nHaute-Saône");
+i18n("france.kgm", "Vesoul");
+i18n("france.kgm", "Vesoul is the capital of...");
+i18n("france.kgm", "Saône et Loire");
+i18n("france.kgm", "The capital of Saône et Loire is...");
+i18n("france.kgm", "Please click on:\nSaône et Loire");
+i18n("france.kgm", "Mâcon");
+i18n("france.kgm", "Mâcon is the capital of...");
+i18n("france.kgm", "Sarthe");
+i18n("france.kgm", "The capital of Sarthe is...");
+i18n("france.kgm", "Please click on:\nSarthe");
+i18n("france.kgm", "Le Mans");
+i18n("france.kgm", "Le Mans is the capital of...");
+i18n("france.kgm", "Savoie");
+i18n("france.kgm", "The capital of Savoie is...");
+i18n("france.kgm", "Please click on:\nSavoie");
+i18n("france.kgm", "Chambéry");
+i18n("france.kgm", "Chambéry is the capital of...");
+i18n("france.kgm", "Haute-Savoie");
+i18n("france.kgm", "The capital of Haute-Savoie is...");
+i18n("france.kgm", "Please click on:\nHaute-Savoie");
+i18n("france.kgm", "Annecy");
+i18n("france.kgm", "Annecy is the capital of...");
+i18n("france.kgm", "Paris");
+i18n("france.kgm", "The capital of Paris is...");
+i18n("france.kgm", "Please click on:\nParis");
+i18n("france.kgm", "Paris");
+i18n("france.kgm", "Paris is the capital of...");
+i18n("france.kgm", "Seine-Maritime");
+i18n("france.kgm", "The capital of Seine-Maritime is...");
+i18n("france.kgm", "Please click on:\nSeine-Maritime");
+i18n("france.kgm", "Rouen");
+i18n("france.kgm", "Rouen is the capital of...");
+i18n("france.kgm", "Seine et Marne");
+i18n("france.kgm", "The capital of Seine et Marne is...");
+i18n("france.kgm", "Please click on:\nSeine et Marne");
+i18n("france.kgm", "Melun");
+i18n("france.kgm", "Melun is the capital of...");
+i18n("france.kgm", "Yvelines");
+i18n("france.kgm", "The capital of Yvelines is...");
+i18n("france.kgm", "Please click on:\nYvelines");
+i18n("france.kgm", "Versailles");
+i18n("france.kgm", "Versailles is the capital of...");
+i18n("france.kgm", "Deux-Sèvres");
+i18n("france.kgm", "The capital of Deux-Sèvres is...");
+i18n("france.kgm", "Please click on:\nDeux-Sèvres");
+i18n("france.kgm", "Niort");
+i18n("france.kgm", "Niort is the capital of...");
+i18n("france.kgm", "Somme");
+i18n("france.kgm", "The capital of Somme is...");
+i18n("france.kgm", "Please click on:\nSomme");
+i18n("france.kgm", "Amiens");
+i18n("france.kgm", "Amiens is the capital of...");
+i18n("france.kgm", "Tarn");
+i18n("france.kgm", "The capital of Tarn is...");
+i18n("france.kgm", "Please click on:\nTarn");
+i18n("france.kgm", "Albi");
+i18n("france.kgm", "Albi is the capital of...");
+i18n("france.kgm", "Tarn et Garonne");
+i18n("france.kgm", "The capital of Tarn et Garonne is...");
+i18n("france.kgm", "Please click on:\nTarn et Garonne");
+i18n("france.kgm", "Montauban");
+i18n("france.kgm", "Montauban is the capital of...");
+i18n("france.kgm", "Var");
+i18n("france.kgm", "The capital of Var is...");
+i18n("france.kgm", "Please click on:\nVar");
+i18n("france.kgm", "Toulon");
+i18n("france.kgm", "Toulon is the capital of...");
+i18n("france.kgm", "Vaucluse");
+i18n("france.kgm", "The capital of Vaucluse is...");
+i18n("france.kgm", "Please click on:\nVaucluse");
+i18n("france.kgm", "Avignon");
+i18n("france.kgm", "Avignon is the capital of...");
+i18n("france.kgm", "Vendée");
+i18n("france.kgm", "The capital of Vendée is...");
+i18n("france.kgm", "Please click on:\nVendée");
+i18n("france.kgm", "La Roche sur Yon");
+i18n("france.kgm", "La Roche sur Yon is the capital of...");
+i18n("france.kgm", "Vienne");
+i18n("france.kgm", "The capital of Vienne is...");
+i18n("france.kgm", "Please click on:\nVienne");
+i18n("france.kgm", "Poitiers");
+i18n("france.kgm", "Poitiers is the capital of...");
+i18n("france.kgm", "Haute-Vienne");
+i18n("france.kgm", "The capital of Haute-Vienne is...");
+i18n("france.kgm", "Please click on:\nHaute-Vienne");
+i18n("france.kgm", "Limoges");
+i18n("france.kgm", "Limoges is the capital of...");
+i18n("france.kgm", "Vosges");
+i18n("france.kgm", "The capital of Vosges is...");
+i18n("france.kgm", "Please click on:\nVosges");
+i18n("france.kgm", "Epinal");
+i18n("france.kgm", "Epinal is the capital of...");
+i18n("france.kgm", "Yonne");
+i18n("france.kgm", "The capital of Yonne is...");
+i18n("france.kgm", "Please click on:\nYonne");
+i18n("france.kgm", "Auxerre");
+i18n("france.kgm", "Auxerre is the capital of...");
+i18n("france.kgm", "Territoire de Belfort");
+i18n("france.kgm", "The capital of Territoire de Belfort is...");
+i18n("france.kgm", "Please click on:\nTerritoire de Belfort");
+i18n("france.kgm", "Belfort");
+i18n("france.kgm", "Belfort is the capital of...");
+i18n("france.kgm", "Essonne");
+i18n("france.kgm", "The capital of Essonne is...");
+i18n("france.kgm", "Please click on:\nEssonne");
+i18n("france.kgm", "Evry");
+i18n("france.kgm", "Evry is the capital of...");
+i18n("france.kgm", "Hauts-de-Seine");
+i18n("france.kgm", "The capital of Hauts-de-Seine is...");
+i18n("france.kgm", "Please click on:\nHauts-de-Seine");
+i18n("france.kgm", "Nanterre");
+i18n("france.kgm", "Nanterre is the capital of...");
+i18n("france.kgm", "Seine-Saint-Denis");
+i18n("france.kgm", "The capital of Seine-Saint-Denis is...");
+i18n("france.kgm", "Please click on:\nSeine-Saint-Denis");
+i18n("france.kgm", "Bobigny");
+i18n("france.kgm", "Bobigny is the capital of...");
+i18n("france.kgm", "Val-de-Marne");
+i18n("france.kgm", "The capital of Val-de-Marne is...");
+i18n("france.kgm", "Please click on:\nVal-de-Marne");
+i18n("france.kgm", "Créteil");
+i18n("france.kgm", "Créteil is the capital of...");
+i18n("france.kgm", "Val d'Oise");
+i18n("france.kgm", "The capital of Val d'Oise is...");
+i18n("france.kgm", "Please click on:\nVal d'Oise");
+i18n("france.kgm", "Cergy-Pontoise");
+i18n("france.kgm", "Cergy-Pontoise is the capital of...");
+i18n("germany.kgm", "Germany");
+i18n("germany.kgm", "<qt>Current map:<br><b>Germany</b></qt>");
+i18n("germany.kgm", "Frontier");
+i18n("germany.kgm", "Not Germany");
+i18n("germany.kgm", "Baden-Württemberg");
+i18n("germany.kgm", "The capital of Baden-Württemberg is...");
+i18n("germany.kgm", "Please click on:\nBaden-Württemberg");
+i18n("germany.kgm", "The flag of Baden-Württemberg is...");
+i18n("germany.kgm", "Stuttgart");
+i18n("germany.kgm", "Stuttgart is the capital of...");
+i18n("germany.kgm", "Bavaria");
+i18n("germany.kgm", "The capital of Bavaria is...");
+i18n("germany.kgm", "Please click on:\nBavaria");
+i18n("germany.kgm", "The flag of Bavaria is...");
+i18n("germany.kgm", "Munich");
+i18n("germany.kgm", "Munich is the capital of...");
+i18n("germany.kgm", "Berlin");
+i18n("germany.kgm", "The capital of Berlin is...");
+i18n("germany.kgm", "Please click on:\nBerlin");
+i18n("germany.kgm", "The flag of Berlin is...");
+i18n("germany.kgm", "Berlin");
+i18n("germany.kgm", "Berlin is the capital of...");
+i18n("germany.kgm", "Brandenburg");
+i18n("germany.kgm", "The capital of Brandenburg is...");
+i18n("germany.kgm", "Please click on:\nBrandenburg");
+i18n("germany.kgm", "The flag of Brandenburg is...");
+i18n("germany.kgm", "Potsdam");
+i18n("germany.kgm", "Potsdam is the capital of...");
+i18n("germany.kgm", "Bremen");
+i18n("germany.kgm", "The capital of Bremen is...");
+i18n("germany.kgm", "Please click on:\nBremen");
+i18n("germany.kgm", "The flag of Bremen is...");
+i18n("germany.kgm", "Bremen");
+i18n("germany.kgm", "Bremen is the capital of...");
+i18n("germany.kgm", "Hamburg");
+i18n("germany.kgm", "The capital of Hamburg is...");
+i18n("germany.kgm", "Please click on:\nHamburg");
+i18n("germany.kgm", "The flag of Hamburg is...");
+i18n("germany.kgm", "Hamburg");
+i18n("germany.kgm", "Hamburg is the capital of...");
+i18n("germany.kgm", "Hesse");
+i18n("germany.kgm", "The capital of Hesse is...");
+i18n("germany.kgm", "Please click on:\nHesse");
+i18n("germany.kgm", "The flag of Hesse is...");
+i18n("germany.kgm", "Wiesbaden");
+i18n("germany.kgm", "Wiesbaden is the capital of...");
+i18n("germany.kgm", "Mecklenburg-Western Pomerania");
+i18n("germany.kgm", "The capital of Mecklenburg-Western Pomerania is...");
+i18n("germany.kgm", "Please click on:\nMecklenburg-Western Pomerania");
+i18n("germany.kgm", "The flag of Mecklenburg-Western Pomerania is...");
+i18n("germany.kgm", "Schwerin");
+i18n("germany.kgm", "Schwerin is the capital of...");
+i18n("germany.kgm", "Lower Saxony");
+i18n("germany.kgm", "The capital of Lower Saxony is...");
+i18n("germany.kgm", "Please click on:\nLower Saxony");
+i18n("germany.kgm", "The flag of Lower Saxony is...");
+i18n("germany.kgm", "Hanover");
+i18n("germany.kgm", "Hanover is the capital of...");
+i18n("germany.kgm", "North Rhine-Westphalia");
+i18n("germany.kgm", "The capital of North Rhine-Westphalia is...");
+i18n("germany.kgm", "Please click on:\nNorth Rhine-Westphalia");
+i18n("germany.kgm", "The flag of North Rhine-Westphalia is...");
+i18n("germany.kgm", "Düsseldorf");
+i18n("germany.kgm", "Düsseldorf is the capital of...");
+i18n("germany.kgm", "Rhineland-Palatinate");
+i18n("germany.kgm", "The capital of Rhineland-Palatinate is...");
+i18n("germany.kgm", "Please click on:\nRhineland-Palatinate");
+i18n("germany.kgm", "The flag of Rhineland-Palatinate is...");
+i18n("germany.kgm", "Mainz");
+i18n("germany.kgm", "Mainz is the capital of...");
+i18n("germany.kgm", "Saarland");
+i18n("germany.kgm", "The capital of Saarland is...");
+i18n("germany.kgm", "Please click on:\nSaarland");
+i18n("germany.kgm", "The flag of Saarland is...");
+i18n("germany.kgm", "Saarbrücken");
+i18n("germany.kgm", "Saarbrücken is the capital of...");
+i18n("germany.kgm", "Saxony");
+i18n("germany.kgm", "The capital of Saxony is...");
+i18n("germany.kgm", "Please click on:\nSaxony");
+i18n("germany.kgm", "The flag of Saxony is...");
+i18n("germany.kgm", "Dresden");
+i18n("germany.kgm", "Dresden is the capital of...");
+i18n("germany.kgm", "Saxony-Anhalt");
+i18n("germany.kgm", "The capital of Saxony-Anhalt is...");
+i18n("germany.kgm", "Please click on:\nSaxony-Anhalt");
+i18n("germany.kgm", "The flag of Saxony-Anhalt is...");
+i18n("germany.kgm", "Magdeburg");
+i18n("germany.kgm", "Magdeburg is the capital of...");
+i18n("germany.kgm", "Schleswig-Holstein");
+i18n("germany.kgm", "The capital of Schleswig-Holstein is...");
+i18n("germany.kgm", "Please click on:\nSchleswig-Holstein");
+i18n("germany.kgm", "The flag of Schleswig-Holstein is...");
+i18n("germany.kgm", "Kiel");
+i18n("germany.kgm", "Kiel is the capital of...");
+i18n("germany.kgm", "Thuringia");
+i18n("germany.kgm", "The capital of Thuringia is...");
+i18n("germany.kgm", "Please click on:\nThuringia");
+i18n("germany.kgm", "The flag of Thuringia is...");
+i18n("germany.kgm", "Erfurt");
+i18n("germany.kgm", "Erfurt is the capital of...");
+i18n("italy.kgm", "Italy");
+i18n("italy.kgm", "<qt>Current map:<br><b>Italy</b></qt>");
+i18n("italy.kgm", "Not Italy");
+i18n("italy.kgm", "Frontier");
+i18n("italy.kgm", "Sicily");
+i18n("italy.kgm", "The capital of Sicily is...");
+i18n("italy.kgm", "Please click on:\nSicily");
+i18n("italy.kgm", "The flag of Sicily is...");
+i18n("italy.kgm", "Palermo");
+i18n("italy.kgm", "Palermo is the capital of...");
+i18n("italy.kgm", "Friuli Venezia Giulia");
+i18n("italy.kgm", "The capital of Friuli Venezia Giulia is...");
+i18n("italy.kgm", "Please click on:\nFriuli Venezia Giulia");
+i18n("italy.kgm", "The flag of Friuli Venezia Giulia is...");
+i18n("italy.kgm", "Trieste");
+i18n("italy.kgm", "Trieste is the capital of...");
+i18n("italy.kgm", "Abruzzo");
+i18n("italy.kgm", "The capital of Abruzzo is...");
+i18n("italy.kgm", "Please click on:\nAbruzzo");
+i18n("italy.kgm", "The flag of Abruzzo is...");
+i18n("italy.kgm", "L'Aquila");
+i18n("italy.kgm", "L'Aquila is the capital of...");
+i18n("italy.kgm", "Latium");
+i18n("italy.kgm", "The capital of Latium is...");
+i18n("italy.kgm", "Please click on:\nLatium");
+i18n("italy.kgm", "The flag of Latium is...");
+i18n("italy.kgm", "Rome");
+i18n("italy.kgm", "Rome is the capital of...");
+i18n("italy.kgm", "Calabria");
+i18n("italy.kgm", "The capital of Calabria is...");
+i18n("italy.kgm", "Please click on:\nCalabria");
+i18n("italy.kgm", "The flag of Calabria is...");
+i18n("italy.kgm", "Catanzaro");
+i18n("italy.kgm", "Catanzaro is the capital of...");
+i18n("italy.kgm", "Piedmont");
+i18n("italy.kgm", "The capital of Piedmont is...");
+i18n("italy.kgm", "Please click on:\nPiedmont");
+i18n("italy.kgm", "The flag of Piedmont is...");
+i18n("italy.kgm", "Turin");
+i18n("italy.kgm", "Turin is the capital of...");
+i18n("italy.kgm", "Apulia");
+i18n("italy.kgm", "The capital of Apulia is...");
+i18n("italy.kgm", "Please click on:\nApulia");
+i18n("italy.kgm", "The flag of Apulia is...");
+i18n("italy.kgm", "Bari");
+i18n("italy.kgm", "Bari is the capital of...");
+i18n("italy.kgm", "Lombardy");
+i18n("italy.kgm", "The capital of Lombardy is...");
+i18n("italy.kgm", "Please click on:\nLombardy");
+i18n("italy.kgm", "The flag of Lombardy is...");
+i18n("italy.kgm", "Milan");
+i18n("italy.kgm", "Milan is the capital of...");
+i18n("italy.kgm", "Umbria");
+i18n("italy.kgm", "The capital of Umbria is...");
+i18n("italy.kgm", "Please click on:\nUmbria");
+i18n("italy.kgm", "The flag of Umbria is...");
+i18n("italy.kgm", "Perugia");
+i18n("italy.kgm", "Perugia is the capital of...");
+i18n("italy.kgm", "Trentino Alto Adige");
+i18n("italy.kgm", "The capital of Trentino Alto Adige is...");
+i18n("italy.kgm", "Please click on:\nTrentino Alto Adige");
+i18n("italy.kgm", "The flag of Trentino Alto Adige is...");
+i18n("italy.kgm", "Trento");
+i18n("italy.kgm", "Trento is the capital of...");
+i18n("italy.kgm", "Molise");
+i18n("italy.kgm", "The capital of Molise is...");
+i18n("italy.kgm", "Please click on:\nMolise");
+i18n("italy.kgm", "The flag of Molise is...");
+i18n("italy.kgm", "Campobasso");
+i18n("italy.kgm", "Campobasso is the capital of...");
+i18n("italy.kgm", "Tuscany");
+i18n("italy.kgm", "The capital of Tuscany is...");
+i18n("italy.kgm", "Please click on:\nTuscany");
+i18n("italy.kgm", "The flag of Tuscany is...");
+i18n("italy.kgm", "Florence");
+i18n("italy.kgm", "Florence is the capital of...");
+i18n("italy.kgm", "Emilia Romagna");
+i18n("italy.kgm", "The capital of Emilia Romagna is...");
+i18n("italy.kgm", "Please click on:\nEmilia Romagna");
+i18n("italy.kgm", "The flag of Emilia Romagna is...");
+i18n("italy.kgm", "Bologna");
+i18n("italy.kgm", "Bologna is the capital of...");
+i18n("italy.kgm", "Val d'Aosta");
+i18n("italy.kgm", "The capital of Val d'Aosta is...");
+i18n("italy.kgm", "Please click on:\nVal d'Aosta");
+i18n("italy.kgm", "The flag of Val d'Aosta is...");
+i18n("italy.kgm", "Aosta");
+i18n("italy.kgm", "Aosta is the capital of...");
+i18n("italy.kgm", "Campania");
+i18n("italy.kgm", "The capital of Campania is...");
+i18n("italy.kgm", "Please click on:\nCampania");
+i18n("italy.kgm", "The flag of Campania is...");
+i18n("italy.kgm", "Naples");
+i18n("italy.kgm", "Naples is the capital of...");
+i18n("italy.kgm", "Basilicata");
+i18n("italy.kgm", "The capital of Basilicata is...");
+i18n("italy.kgm", "Please click on:\nBasilicata");
+i18n("italy.kgm", "The flag of Basilicata is...");
+i18n("italy.kgm", "Potenza");
+i18n("italy.kgm", "Potenza is the capital of...");
+i18n("italy.kgm", "Liguria");
+i18n("italy.kgm", "The capital of Liguria is...");
+i18n("italy.kgm", "Please click on:\nLiguria");
+i18n("italy.kgm", "The flag of Liguria is...");
+i18n("italy.kgm", "Genoa");
+i18n("italy.kgm", "Genoa is the capital of...");
+i18n("italy.kgm", "Sardinia");
+i18n("italy.kgm", "The capital of Sardinia is...");
+i18n("italy.kgm", "Please click on:\nSardinia");
+i18n("italy.kgm", "The flag of Sardinia is...");
+i18n("italy.kgm", "Cagliari");
+i18n("italy.kgm", "Cagliari is the capital of...");
+i18n("italy.kgm", "Marches");
+i18n("italy.kgm", "The capital of Marches is...");
+i18n("italy.kgm", "Please click on:\nMarches");
+i18n("italy.kgm", "The flag of Marches is...");
+i18n("italy.kgm", "Ancona");
+i18n("italy.kgm", "Ancona is the capital of...");
+i18n("italy.kgm", "Veneto");
+i18n("italy.kgm", "The capital of Veneto is...");
+i18n("italy.kgm", "Please click on:\nVeneto");
+i18n("italy.kgm", "The flag of Veneto is...");
+i18n("italy.kgm", "Venice");
+i18n("italy.kgm", "Venice is the capital of...");
+i18n("italyprovince.kgm", "Italy by Provinces");
+i18n("italyprovince.kgm", "<qt>Current map:<br><b>Italy by Provinces</b></qt>");
+i18n("italyprovince.kgm", "Frontier");
+i18n("italyprovince.kgm", "Not Italy");
+i18n("italyprovince.kgm", "Alessandria");
+i18n("italyprovince.kgm", "The capital of Alessandria is...");
+i18n("italyprovince.kgm", "Please click on:\nAlessandria");
+i18n("italyprovince.kgm", "Alessandria");
+i18n("italyprovince.kgm", "Alessandria is the capital of...");
+i18n("italyprovince.kgm", "Asti");
+i18n("italyprovince.kgm", "The capital of Asti is...");
+i18n("italyprovince.kgm", "Please click on:\nAsti");
+i18n("italyprovince.kgm", "Asti");
+i18n("italyprovince.kgm", "Asti is the capital of...");
+i18n("italyprovince.kgm", "Biella");
+i18n("italyprovince.kgm", "The capital of Biella is...");
+i18n("italyprovince.kgm", "Please click on:\nBiella");
+i18n("italyprovince.kgm", "Biella");
+i18n("italyprovince.kgm", "Biella is the capital of...");
+i18n("italyprovince.kgm", "Cuneo");
+i18n("italyprovince.kgm", "The capital of Cuneo is...");
+i18n("italyprovince.kgm", "Please click on:\nCuneo");
+i18n("italyprovince.kgm", "Cuneo");
+i18n("italyprovince.kgm", "Cuneo is the capital of...");
+i18n("italyprovince.kgm", "Novara");
+i18n("italyprovince.kgm", "The capital of Novara is...");
+i18n("italyprovince.kgm", "Please click on:\nNovara");
+i18n("italyprovince.kgm", "Novara");
+i18n("italyprovince.kgm", "Novara is the capital of...");
+i18n("italyprovince.kgm", "Turin");
+i18n("italyprovince.kgm", "The capital of Turin is...");
+i18n("italyprovince.kgm", "Please click on:\nTurin");
+i18n("italyprovince.kgm", "Turin");
+i18n("italyprovince.kgm", "Turin is the capital of...");
+i18n("italyprovince.kgm", "Verbano-Cusio-Ossola");
+i18n("italyprovince.kgm", "The capital of Verbano-Cusio-Ossola is...");
+i18n("italyprovince.kgm", "Please click on:\nVerbano-Cusio-Ossola");
+i18n("italyprovince.kgm", "Verbania");
+i18n("italyprovince.kgm", "Verbania is the capital of...");
+i18n("italyprovince.kgm", "Vercelli");
+i18n("italyprovince.kgm", "The capital of Vercelli is...");
+i18n("italyprovince.kgm", "Please click on:\nVercelli");
+i18n("italyprovince.kgm", "Vercelli");
+i18n("italyprovince.kgm", "Vercelli is the capital of...");
+i18n("italyprovince.kgm", "Bergamo");
+i18n("italyprovince.kgm", "The capital of Bergamo is...");
+i18n("italyprovince.kgm", "Please click on:\nBergamo");
+i18n("italyprovince.kgm", "Bergamo");
+i18n("italyprovince.kgm", "Bergamo is the capital of...");
+i18n("italyprovince.kgm", "Brescia");
+i18n("italyprovince.kgm", "The capital of Brescia is...");
+i18n("italyprovince.kgm", "Please click on:\nBrescia");
+i18n("italyprovince.kgm", "Brescia");
+i18n("italyprovince.kgm", "Brescia is the capital of...");
+i18n("italyprovince.kgm", "Como");
+i18n("italyprovince.kgm", "The capital of Como is...");
+i18n("italyprovince.kgm", "Please click on:\nComo");
+i18n("italyprovince.kgm", "Como");
+i18n("italyprovince.kgm", "Como is the capital of...");
+i18n("italyprovince.kgm", "Cremona");
+i18n("italyprovince.kgm", "The capital of Cremona is...");
+i18n("italyprovince.kgm", "Please click on:\nCremona");
+i18n("italyprovince.kgm", "Cremona");
+i18n("italyprovince.kgm", "Cremona is the capital of...");
+i18n("italyprovince.kgm", "Lecco");
+i18n("italyprovince.kgm", "The capital of Lecco is...");
+i18n("italyprovince.kgm", "Please click on:\nLecco");
+i18n("italyprovince.kgm", "Lecco");
+i18n("italyprovince.kgm", "Lecco is the capital of...");
+i18n("italyprovince.kgm", "Lodi");
+i18n("italyprovince.kgm", "The capital of Lodi is...");
+i18n("italyprovince.kgm", "Please click on:\nLodi");
+i18n("italyprovince.kgm", "Lodi");
+i18n("italyprovince.kgm", "Lodi is the capital of...");
+i18n("italyprovince.kgm", "Mantova");
+i18n("italyprovince.kgm", "The capital of Mantova is...");
+i18n("italyprovince.kgm", "Please click on:\nMantova");
+i18n("italyprovince.kgm", "Mantova");
+i18n("italyprovince.kgm", "Mantova is the capital of...");
+i18n("italyprovince.kgm", "Milan");
+i18n("italyprovince.kgm", "The capital of Milan is...");
+i18n("italyprovince.kgm", "Please click on:\nMilan");
+i18n("italyprovince.kgm", "Milan");
+i18n("italyprovince.kgm", "Milan is the capital of...");
+i18n("italyprovince.kgm", "Pavia");
+i18n("italyprovince.kgm", "The capital of Pavia is...");
+i18n("italyprovince.kgm", "Please click on:\nPavia");
+i18n("italyprovince.kgm", "Pavia");
+i18n("italyprovince.kgm", "Pavia is the capital of...");
+i18n("italyprovince.kgm", "Sondrio");
+i18n("italyprovince.kgm", "The capital of Sondrio is...");
+i18n("italyprovince.kgm", "Please click on:\nSondrio");
+i18n("italyprovince.kgm", "Sondrio");
+i18n("italyprovince.kgm", "Sondrio is the capital of...");
+i18n("italyprovince.kgm", "Varese");
+i18n("italyprovince.kgm", "The capital of Varese is...");
+i18n("italyprovince.kgm", "Please click on:\nVarese");
+i18n("italyprovince.kgm", "Varese");
+i18n("italyprovince.kgm", "Varese is the capital of...");
+i18n("italyprovince.kgm", "Aosta");
+i18n("italyprovince.kgm", "The capital of Aosta is...");
+i18n("italyprovince.kgm", "Please click on:\nAosta");
+i18n("italyprovince.kgm", "Aosta");
+i18n("italyprovince.kgm", "Aosta is the capital of...");
+i18n("italyprovince.kgm", "Bolzano");
+i18n("italyprovince.kgm", "The capital of Bolzano is...");
+i18n("italyprovince.kgm", "Please click on:\nBolzano");
+i18n("italyprovince.kgm", "Bolzano");
+i18n("italyprovince.kgm", "Bolzano is the capital of...");
+i18n("italyprovince.kgm", "Trento");
+i18n("italyprovince.kgm", "The capital of Trento is...");
+i18n("italyprovince.kgm", "Please click on:\nTrento");
+i18n("italyprovince.kgm", "Trento");
+i18n("italyprovince.kgm", "Trento is the capital of...");
+i18n("italyprovince.kgm", "Belluno");
+i18n("italyprovince.kgm", "The capital of Belluno is...");
+i18n("italyprovince.kgm", "Please click on:\nBelluno");
+i18n("italyprovince.kgm", "Belluno");
+i18n("italyprovince.kgm", "Belluno is the capital of...");
+i18n("italyprovince.kgm", "Padova");
+i18n("italyprovince.kgm", "The capital of Padova is...");
+i18n("italyprovince.kgm", "Please click on:\nPadova");
+i18n("italyprovince.kgm", "Padova");
+i18n("italyprovince.kgm", "Padova is the capital of...");
+i18n("italyprovince.kgm", "Rovigo");
+i18n("italyprovince.kgm", "The capital of Rovigo is...");
+i18n("italyprovince.kgm", "Please click on:\nRovigo");
+i18n("italyprovince.kgm", "Rovigo");
+i18n("italyprovince.kgm", "Rovigo is the capital of...");
+i18n("italyprovince.kgm", "Treviso");
+i18n("italyprovince.kgm", "The capital of Treviso is...");
+i18n("italyprovince.kgm", "Please click on:\nTreviso");
+i18n("italyprovince.kgm", "Treviso");
+i18n("italyprovince.kgm", "Treviso is the capital of...");
+i18n("italyprovince.kgm", "Venice");
+i18n("italyprovince.kgm", "The capital of Venice is...");
+i18n("italyprovince.kgm", "Please click on:\nVenice");
+i18n("italyprovince.kgm", "Venice");
+i18n("italyprovince.kgm", "Venice is the capital of...");
+i18n("italyprovince.kgm", "Verona");
+i18n("italyprovince.kgm", "The capital of Verona is...");
+i18n("italyprovince.kgm", "Please click on:\nVerona");
+i18n("italyprovince.kgm", "Verona");
+i18n("italyprovince.kgm", "Verona is the capital of...");
+i18n("italyprovince.kgm", "Vicenza");
+i18n("italyprovince.kgm", "The capital of Vicenza is...");
+i18n("italyprovince.kgm", "Please click on:\nVicenza");
+i18n("italyprovince.kgm", "Vicenza");
+i18n("italyprovince.kgm", "Vicenza is the capital of...");
+i18n("italyprovince.kgm", "Gorizia");
+i18n("italyprovince.kgm", "The capital of Gorizia is...");
+i18n("italyprovince.kgm", "Please click on:\nGorizia");
+i18n("italyprovince.kgm", "Gorizia");
+i18n("italyprovince.kgm", "Gorizia is the capital of...");
+i18n("italyprovince.kgm", "Pordenone");
+i18n("italyprovince.kgm", "The capital of Pordenone is...");
+i18n("italyprovince.kgm", "Please click on:\nPordenone");
+i18n("italyprovince.kgm", "Pordenone");
+i18n("italyprovince.kgm", "Pordenone is the capital of...");
+i18n("italyprovince.kgm", "Trieste");
+i18n("italyprovince.kgm", "The capital of Trieste is...");
+i18n("italyprovince.kgm", "Please click on:\nTrieste");
+i18n("italyprovince.kgm", "Trieste");
+i18n("italyprovince.kgm", "Trieste is the capital of...");
+i18n("italyprovince.kgm", "Udine");
+i18n("italyprovince.kgm", "The capital of Udine is...");
+i18n("italyprovince.kgm", "Please click on:\nUdine");
+i18n("italyprovince.kgm", "Udine");
+i18n("italyprovince.kgm", "Udine is the capital of...");
+i18n("italyprovince.kgm", "Genoa");
+i18n("italyprovince.kgm", "The capital of Genoa is...");
+i18n("italyprovince.kgm", "Please click on:\nGenoa");
+i18n("italyprovince.kgm", "Genoa");
+i18n("italyprovince.kgm", "Genoa is the capital of...");
+i18n("italyprovince.kgm", "Imperia");
+i18n("italyprovince.kgm", "The capital of Imperia is...");
+i18n("italyprovince.kgm", "Please click on:\nImperia");
+i18n("italyprovince.kgm", "Imperia");
+i18n("italyprovince.kgm", "Imperia is the capital of...");
+i18n("italyprovince.kgm", "La Spezia");
+i18n("italyprovince.kgm", "The capital of La Spezia is...");
+i18n("italyprovince.kgm", "Please click on:\nLa Spezia");
+i18n("italyprovince.kgm", "La Spezia");
+i18n("italyprovince.kgm", "La Spezia is the capital of...");
+i18n("italyprovince.kgm", "Savona");
+i18n("italyprovince.kgm", "The capital of Savona is...");
+i18n("italyprovince.kgm", "Please click on:\nSavona");
+i18n("italyprovince.kgm", "Savona");
+i18n("italyprovince.kgm", "Savona is the capital of...");
+i18n("italyprovince.kgm", "Bologna");
+i18n("italyprovince.kgm", "The capital of Bologna is...");
+i18n("italyprovince.kgm", "Please click on:\nBologna");
+i18n("italyprovince.kgm", "Bologna");
+i18n("italyprovince.kgm", "Bologna is the capital of...");
+i18n("italyprovince.kgm", "Ferrara");
+i18n("italyprovince.kgm", "The capital of Ferrara is...");
+i18n("italyprovince.kgm", "Please click on:\nFerrara");
+i18n("italyprovince.kgm", "Ferrara");
+i18n("italyprovince.kgm", "Ferrara is the capital of...");
+i18n("italyprovince.kgm", "Forlì-Cesena");
+i18n("italyprovince.kgm", "The capital of Forlì-Cesena is...");
+i18n("italyprovince.kgm", "Please click on:\nForlì-Cesena");
+i18n("italyprovince.kgm", "Forlì");
+i18n("italyprovince.kgm", "Forlì is the capital of...");
+i18n("italyprovince.kgm", "Modena");
+i18n("italyprovince.kgm", "The capital of Modena is...");
+i18n("italyprovince.kgm", "Please click on:\nModena");
+i18n("italyprovince.kgm", "Modena");
+i18n("italyprovince.kgm", "Modena is the capital of...");
+i18n("italyprovince.kgm", "Parma");
+i18n("italyprovince.kgm", "The capital of Parma is...");
+i18n("italyprovince.kgm", "Please click on:\nParma");
+i18n("italyprovince.kgm", "Parma");
+i18n("italyprovince.kgm", "Parma is the capital of...");
+i18n("italyprovince.kgm", "Piacenza");
+i18n("italyprovince.kgm", "The capital of Piacenza is...");
+i18n("italyprovince.kgm", "Please click on:\nPiacenza");
+i18n("italyprovince.kgm", "Piacenza");
+i18n("italyprovince.kgm", "Piacenza is the capital of...");
+i18n("italyprovince.kgm", "Ravenna");
+i18n("italyprovince.kgm", "The capital of Ravenna is...");
+i18n("italyprovince.kgm", "Please click on:\nRavenna");
+i18n("italyprovince.kgm", "Ravenna");
+i18n("italyprovince.kgm", "Ravenna is the capital of...");
+i18n("italyprovince.kgm", "Reggio nell'Emilia");
+i18n("italyprovince.kgm", "The capital of Reggio nell'Emilia is...");
+i18n("italyprovince.kgm", "Please click on:\nReggio nell'Emilia");
+i18n("italyprovince.kgm", "Reggio nell'Emilia");
+i18n("italyprovince.kgm", "Reggio nell'Emilia is the capital of...");
+i18n("italyprovince.kgm", "Rimini");
+i18n("italyprovince.kgm", "The capital of Rimini is...");
+i18n("italyprovince.kgm", "Please click on:\nRimini");
+i18n("italyprovince.kgm", "Rimini");
+i18n("italyprovince.kgm", "Rimini is the capital of...");
+i18n("italyprovince.kgm", "Arezzo");
+i18n("italyprovince.kgm", "The capital of Arezzo is...");
+i18n("italyprovince.kgm", "Please click on:\nArezzo");
+i18n("italyprovince.kgm", "Arezzo");
+i18n("italyprovince.kgm", "Arezzo is the capital of...");
+i18n("italyprovince.kgm", "Florence");
+i18n("italyprovince.kgm", "The capital of Florence is...");
+i18n("italyprovince.kgm", "Please click on:\nFlorence");
+i18n("italyprovince.kgm", "Florence");
+i18n("italyprovince.kgm", "Florence is the capital of...");
+i18n("italyprovince.kgm", "Grosseto");
+i18n("italyprovince.kgm", "The capital of Grosseto is...");
+i18n("italyprovince.kgm", "Please click on:\nGrosseto");
+i18n("italyprovince.kgm", "Grosseto");
+i18n("italyprovince.kgm", "Grosseto is the capital of...");
+i18n("italyprovince.kgm", "Livorno");
+i18n("italyprovince.kgm", "The capital of Livorno is...");
+i18n("italyprovince.kgm", "Please click on:\nLivorno");
+i18n("italyprovince.kgm", "Livorno");
+i18n("italyprovince.kgm", "Livorno is the capital of...");
+i18n("italyprovince.kgm", "Lucca");
+i18n("italyprovince.kgm", "The capital of Lucca is...");
+i18n("italyprovince.kgm", "Please click on:\nLucca");
+i18n("italyprovince.kgm", "Lucca");
+i18n("italyprovince.kgm", "Lucca is the capital of...");
+i18n("italyprovince.kgm", "Massa-Carrara");
+i18n("italyprovince.kgm", "The capital of Massa-Carrara is...");
+i18n("italyprovince.kgm", "Please click on:\nMassa-Carrara");
+i18n("italyprovince.kgm", "Massa");
+i18n("italyprovince.kgm", "Massa is the capital of...");
+i18n("italyprovince.kgm", "Pisa");
+i18n("italyprovince.kgm", "The capital of Pisa is...");
+i18n("italyprovince.kgm", "Please click on:\nPisa");
+i18n("italyprovince.kgm", "Pisa");
+i18n("italyprovince.kgm", "Pisa is the capital of...");
+i18n("italyprovince.kgm", "Pistoia");
+i18n("italyprovince.kgm", "The capital of Pistoia is...");
+i18n("italyprovince.kgm", "Please click on:\nPistoia");
+i18n("italyprovince.kgm", "Pistoia");
+i18n("italyprovince.kgm", "Pistoia is the capital of...");
+i18n("italyprovince.kgm", "Prato");
+i18n("italyprovince.kgm", "The capital of Prato is...");
+i18n("italyprovince.kgm", "Please click on:\nPrato");
+i18n("italyprovince.kgm", "Prato");
+i18n("italyprovince.kgm", "Prato is the capital of...");
+i18n("italyprovince.kgm", "Siena");
+i18n("italyprovince.kgm", "The capital of Siena is...");
+i18n("italyprovince.kgm", "Please click on:\nSiena");
+i18n("italyprovince.kgm", "Siena");
+i18n("italyprovince.kgm", "Siena is the capital of...");
+i18n("italyprovince.kgm", "Perugia");
+i18n("italyprovince.kgm", "The capital of Perugia is...");
+i18n("italyprovince.kgm", "Please click on:\nPerugia");
+i18n("italyprovince.kgm", "Perugia");
+i18n("italyprovince.kgm", "Perugia is the capital of...");
+i18n("italyprovince.kgm", "Terni");
+i18n("italyprovince.kgm", "The capital of Terni is...");
+i18n("italyprovince.kgm", "Please click on:\nTerni");
+i18n("italyprovince.kgm", "Terni");
+i18n("italyprovince.kgm", "Terni is the capital of...");
+i18n("italyprovince.kgm", "Ancona");
+i18n("italyprovince.kgm", "The capital of Ancona is...");
+i18n("italyprovince.kgm", "Please click on:\nAncona");
+i18n("italyprovince.kgm", "Ancona");
+i18n("italyprovince.kgm", "Ancona is the capital of...");
+i18n("italyprovince.kgm", "Ascoli Piceno");
+i18n("italyprovince.kgm", "The capital of Ascoli Piceno is...");
+i18n("italyprovince.kgm", "Please click on:\nAscoli Piceno");
+i18n("italyprovince.kgm", "Ascoli Piceno");
+i18n("italyprovince.kgm", "Ascoli Piceno is the capital of...");
+i18n("italyprovince.kgm", "Macerata");
+i18n("italyprovince.kgm", "The capital of Macerata is...");
+i18n("italyprovince.kgm", "Please click on:\nMacerata");
+i18n("italyprovince.kgm", "Macerata");
+i18n("italyprovince.kgm", "Macerata is the capital of...");
+i18n("italyprovince.kgm", "Pesaro and Urbino");
+i18n("italyprovince.kgm", "The capital of Pesaro and Urbino is...");
+i18n("italyprovince.kgm", "Please click on:\nPesaro and Urbino");
+i18n("italyprovince.kgm", "Pesaro");
+i18n("italyprovince.kgm", "Pesaro is the capital of...");
+i18n("italyprovince.kgm", "Frosinone");
+i18n("italyprovince.kgm", "The capital of Frosinone is...");
+i18n("italyprovince.kgm", "Please click on:\nFrosinone");
+i18n("italyprovince.kgm", "Frosinone");
+i18n("italyprovince.kgm", "Frosinone is the capital of...");
+i18n("italyprovince.kgm", "Latina");
+i18n("italyprovince.kgm", "The capital of Latina is...");
+i18n("italyprovince.kgm", "Please click on:\nLatina");
+i18n("italyprovince.kgm", "Latina");
+i18n("italyprovince.kgm", "Latina is the capital of...");
+i18n("italyprovince.kgm", "Rieti");
+i18n("italyprovince.kgm", "The capital of Rieti is...");
+i18n("italyprovince.kgm", "Please click on:\nRieti");
+i18n("italyprovince.kgm", "Rieti");
+i18n("italyprovince.kgm", "Rieti is the capital of...");
+i18n("italyprovince.kgm", "Rome");
+i18n("italyprovince.kgm", "The capital of Rome is...");
+i18n("italyprovince.kgm", "Please click on:\nRome");
+i18n("italyprovince.kgm", "Rome");
+i18n("italyprovince.kgm", "Rome is the capital of...");
+i18n("italyprovince.kgm", "Viterbo");
+i18n("italyprovince.kgm", "The capital of Viterbo is...");
+i18n("italyprovince.kgm", "Please click on:\nViterbo");
+i18n("italyprovince.kgm", "Viterbo");
+i18n("italyprovince.kgm", "Viterbo is the capital of...");
+i18n("italyprovince.kgm", "Chieti");
+i18n("italyprovince.kgm", "The capital of Chieti is...");
+i18n("italyprovince.kgm", "Please click on:\nChieti");
+i18n("italyprovince.kgm", "Chieti");
+i18n("italyprovince.kgm", "Chieti is the capital of...");
+i18n("italyprovince.kgm", "L'Aquila");
+i18n("italyprovince.kgm", "The capital of L'Aquila is...");
+i18n("italyprovince.kgm", "Please click on:\nL'Aquila");
+i18n("italyprovince.kgm", "L'Aquila");
+i18n("italyprovince.kgm", "L'Aquila is the capital of...");
+i18n("italyprovince.kgm", "Pescara");
+i18n("italyprovince.kgm", "The capital of Pescara is...");
+i18n("italyprovince.kgm", "Please click on:\nPescara");
+i18n("italyprovince.kgm", "Pescara");
+i18n("italyprovince.kgm", "Pescara is the capital of...");
+i18n("italyprovince.kgm", "Teramo");
+i18n("italyprovince.kgm", "The capital of Teramo is...");
+i18n("italyprovince.kgm", "Please click on:\nTeramo");
+i18n("italyprovince.kgm", "Teramo");
+i18n("italyprovince.kgm", "Teramo is the capital of...");
+i18n("italyprovince.kgm", "Campobasso");
+i18n("italyprovince.kgm", "The capital of Campobasso is...");
+i18n("italyprovince.kgm", "Please click on:\nCampobasso");
+i18n("italyprovince.kgm", "Campobasso");
+i18n("italyprovince.kgm", "Campobasso is the capital of...");
+i18n("italyprovince.kgm", "Isernia");
+i18n("italyprovince.kgm", "The capital of Isernia is...");
+i18n("italyprovince.kgm", "Please click on:\nIsernia");
+i18n("italyprovince.kgm", "Isernia");
+i18n("italyprovince.kgm", "Isernia is the capital of...");
+i18n("italyprovince.kgm", "Avellino");
+i18n("italyprovince.kgm", "The capital of Avellino is...");
+i18n("italyprovince.kgm", "Please click on:\nAvellino");
+i18n("italyprovince.kgm", "Avellino");
+i18n("italyprovince.kgm", "Avellino is the capital of...");
+i18n("italyprovince.kgm", "Benevento");
+i18n("italyprovince.kgm", "The capital of Benevento is...");
+i18n("italyprovince.kgm", "Please click on:\nBenevento");
+i18n("italyprovince.kgm", "Benevento");
+i18n("italyprovince.kgm", "Benevento is the capital of...");
+i18n("italyprovince.kgm", "Caserta");
+i18n("italyprovince.kgm", "The capital of Caserta is...");
+i18n("italyprovince.kgm", "Please click on:\nCaserta");
+i18n("italyprovince.kgm", "Caserta");
+i18n("italyprovince.kgm", "Caserta is the capital of...");
+i18n("italyprovince.kgm", "Naples");
+i18n("italyprovince.kgm", "The capital of Naples is...");
+i18n("italyprovince.kgm", "Please click on:\nNaples");
+i18n("italyprovince.kgm", "Naples");
+i18n("italyprovince.kgm", "Naples is the capital of...");
+i18n("italyprovince.kgm", "Salerno");
+i18n("italyprovince.kgm", "The capital of Salerno is...");
+i18n("italyprovince.kgm", "Please click on:\nSalerno");
+i18n("italyprovince.kgm", "Salerno");
+i18n("italyprovince.kgm", "Salerno is the capital of...");
+i18n("italyprovince.kgm", "Bari");
+i18n("italyprovince.kgm", "The capital of Bari is...");
+i18n("italyprovince.kgm", "Please click on:\nBari");
+i18n("italyprovince.kgm", "Bari");
+i18n("italyprovince.kgm", "Bari is the capital of...");
+i18n("italyprovince.kgm", "Brindisi");
+i18n("italyprovince.kgm", "The capital of Brindisi is...");
+i18n("italyprovince.kgm", "Please click on:\nBrindisi");
+i18n("italyprovince.kgm", "Brindisi");
+i18n("italyprovince.kgm", "Brindisi is the capital of...");
+i18n("italyprovince.kgm", "Foggia");
+i18n("italyprovince.kgm", "The capital of Foggia is...");
+i18n("italyprovince.kgm", "Please click on:\nFoggia");
+i18n("italyprovince.kgm", "Foggia");
+i18n("italyprovince.kgm", "Foggia is the capital of...");
+i18n("italyprovince.kgm", "Lecce");
+i18n("italyprovince.kgm", "The capital of Lecce is...");
+i18n("italyprovince.kgm", "Please click on:\nLecce");
+i18n("italyprovince.kgm", "Lecce");
+i18n("italyprovince.kgm", "Lecce is the capital of...");
+i18n("italyprovince.kgm", "Taranto");
+i18n("italyprovince.kgm", "The capital of Taranto is...");
+i18n("italyprovince.kgm", "Please click on:\nTaranto");
+i18n("italyprovince.kgm", "Taranto");
+i18n("italyprovince.kgm", "Taranto is the capital of...");
+i18n("italyprovince.kgm", "Matera");
+i18n("italyprovince.kgm", "The capital of Matera is...");
+i18n("italyprovince.kgm", "Please click on:\nMatera");
+i18n("italyprovince.kgm", "Matera");
+i18n("italyprovince.kgm", "Matera is the capital of...");
+i18n("italyprovince.kgm", "Potenza");
+i18n("italyprovince.kgm", "The capital of Potenza is...");
+i18n("italyprovince.kgm", "Please click on:\nPotenza");
+i18n("italyprovince.kgm", "Potenza");
+i18n("italyprovince.kgm", "Potenza is the capital of...");
+i18n("italyprovince.kgm", "Catanzaro");
+i18n("italyprovince.kgm", "The capital of Catanzaro is...");
+i18n("italyprovince.kgm", "Please click on:\nCatanzaro");
+i18n("italyprovince.kgm", "Catanzaro");
+i18n("italyprovince.kgm", "Catanzaro is the capital of...");
+i18n("italyprovince.kgm", "Cosenza");
+i18n("italyprovince.kgm", "The capital of Cosenza is...");
+i18n("italyprovince.kgm", "Please click on:\nCosenza");
+i18n("italyprovince.kgm", "Cosenza");
+i18n("italyprovince.kgm", "Cosenza is the capital of...");
+i18n("italyprovince.kgm", "Crotone");
+i18n("italyprovince.kgm", "The capital of Crotone is...");
+i18n("italyprovince.kgm", "Please click on:\nCrotone");
+i18n("italyprovince.kgm", "Crotone");
+i18n("italyprovince.kgm", "Crotone is the capital of...");
+i18n("italyprovince.kgm", "Reggio di Calabria");
+i18n("italyprovince.kgm", "The capital of Reggio di Calabria is...");
+i18n("italyprovince.kgm", "Please click on:\nReggio di Calabria");
+i18n("italyprovince.kgm", "Reggio di Calabria");
+i18n("italyprovince.kgm", "Reggio di Calabria is the capital of...");
+i18n("italyprovince.kgm", "Vibo Valentia");
+i18n("italyprovince.kgm", "The capital of Vibo Valentia is...");
+i18n("italyprovince.kgm", "Please click on:\nVibo Valentia");
+i18n("italyprovince.kgm", "Vibo Valentia");
+i18n("italyprovince.kgm", "Vibo Valentia is the capital of...");
+i18n("italyprovince.kgm", "Agrigento");
+i18n("italyprovince.kgm", "The capital of Agrigento is...");
+i18n("italyprovince.kgm", "Please click on:\nAgrigento");
+i18n("italyprovince.kgm", "Agrigento");
+i18n("italyprovince.kgm", "Agrigento is the capital of...");
+i18n("italyprovince.kgm", "Caltanissetta");
+i18n("italyprovince.kgm", "The capital of Caltanissetta is...");
+i18n("italyprovince.kgm", "Please click on:\nCaltanissetta");
+i18n("italyprovince.kgm", "Caltanissetta");
+i18n("italyprovince.kgm", "Caltanissetta is the capital of...");
+i18n("italyprovince.kgm", "Catania");
+i18n("italyprovince.kgm", "The capital of Catania is...");
+i18n("italyprovince.kgm", "Please click on:\nCatania");
+i18n("italyprovince.kgm", "Catania");
+i18n("italyprovince.kgm", "Catania is the capital of...");
+i18n("italyprovince.kgm", "Enna");
+i18n("italyprovince.kgm", "The capital of Enna is...");
+i18n("italyprovince.kgm", "Please click on:\nEnna");
+i18n("italyprovince.kgm", "Enna");
+i18n("italyprovince.kgm", "Enna is the capital of...");
+i18n("italyprovince.kgm", "Messina");
+i18n("italyprovince.kgm", "The capital of Messina is...");
+i18n("italyprovince.kgm", "Please click on:\nMessina");
+i18n("italyprovince.kgm", "Messina");
+i18n("italyprovince.kgm", "Messina is the capital of...");
+i18n("italyprovince.kgm", "Palermo");
+i18n("italyprovince.kgm", "The capital of Palermo is...");
+i18n("italyprovince.kgm", "Please click on:\nPalermo");
+i18n("italyprovince.kgm", "Palermo");
+i18n("italyprovince.kgm", "Palermo is the capital of...");
+i18n("italyprovince.kgm", "Ragusa");
+i18n("italyprovince.kgm", "The capital of Ragusa is...");
+i18n("italyprovince.kgm", "Please click on:\nRagusa");
+i18n("italyprovince.kgm", "Ragusa");
+i18n("italyprovince.kgm", "Ragusa is the capital of...");
+i18n("italyprovince.kgm", "Syracuse");
+i18n("italyprovince.kgm", "The capital of Syracuse is...");
+i18n("italyprovince.kgm", "Please click on:\nSyracuse");
+i18n("italyprovince.kgm", "Syracuse");
+i18n("italyprovince.kgm", "Syracuse is the capital of...");
+i18n("italyprovince.kgm", "Trapani");
+i18n("italyprovince.kgm", "The capital of Trapani is...");
+i18n("italyprovince.kgm", "Please click on:\nTrapani");
+i18n("italyprovince.kgm", "Trapani");
+i18n("italyprovince.kgm", "Trapani is the capital of...");
+i18n("italyprovince.kgm", "Cagliari");
+i18n("italyprovince.kgm", "The capital of Cagliari is...");
+i18n("italyprovince.kgm", "Please click on:\nCagliari");
+i18n("italyprovince.kgm", "Cagliari");
+i18n("italyprovince.kgm", "Cagliari is the capital of...");
+i18n("italyprovince.kgm", "Nuoro");
+i18n("italyprovince.kgm", "The capital of Nuoro is...");
+i18n("italyprovince.kgm", "Please click on:\nNuoro");
+i18n("italyprovince.kgm", "Nuoro");
+i18n("italyprovince.kgm", "Nuoro is the capital of...");
+i18n("italyprovince.kgm", "Oristano");
+i18n("italyprovince.kgm", "The capital of Oristano is...");
+i18n("italyprovince.kgm", "Please click on:\nOristano");
+i18n("italyprovince.kgm", "Oristano");
+i18n("italyprovince.kgm", "Oristano is the capital of...");
+i18n("italyprovince.kgm", "Sassari");
+i18n("italyprovince.kgm", "The capital of Sassari is...");
+i18n("italyprovince.kgm", "Please click on:\nSassari");
+i18n("italyprovince.kgm", "Sassari");
+i18n("italyprovince.kgm", "Sassari is the capital of...");
+i18n("ncamerica.kgm", "North and Central America");
+i18n("ncamerica.kgm", "<qt>Current map:<br><b>North and Central America</b></qt>");
+i18n("ncamerica.kgm", "Water");
+i18n("ncamerica.kgm", "Not North and Central America");
+i18n("ncamerica.kgm", "Frontier");
+i18n("ncamerica.kgm", "Canada");
+i18n("ncamerica.kgm", "The capital of Canada is...");
+i18n("ncamerica.kgm", "Please click on:\nCanada");
+i18n("ncamerica.kgm", "The flag of Canada is...");
+i18n("ncamerica.kgm", "Ottawa");
+i18n("ncamerica.kgm", "Ottawa is the capital of...");
+i18n("ncamerica.kgm", "El Salvador");
+i18n("ncamerica.kgm", "The capital of El Salvador is...");
+i18n("ncamerica.kgm", "Please click on:\nEl Salvador");
+i18n("ncamerica.kgm", "The flag of El Salvador is...");
+i18n("ncamerica.kgm", "San Salvador");
+i18n("ncamerica.kgm", "San Salvador is the capital of...");
+i18n("ncamerica.kgm", "The United States of America");
+i18n("ncamerica.kgm", "The capital of The United States of America is...");
+i18n("ncamerica.kgm", "Please click on:\nThe United States of America");
+i18n("ncamerica.kgm", "The flag of The United States of America is...");
+i18n("ncamerica.kgm", "Washington D.C.");
+i18n("ncamerica.kgm", "Washington D.C. is the capital of...");
+i18n("ncamerica.kgm", "The Bahamas");
+i18n("ncamerica.kgm", "The capital of The Bahamas is...");
+i18n("ncamerica.kgm", "Please click on:\nThe Bahamas");
+i18n("ncamerica.kgm", "The flag of The Bahamas is...");
+i18n("ncamerica.kgm", "Nassau");
+i18n("ncamerica.kgm", "Nassau is the capital of...");
+i18n("ncamerica.kgm", "The Dominican Republic");
+i18n("ncamerica.kgm", "The capital of The Dominican Republic is...");
+i18n("ncamerica.kgm", "Please click on:\nThe Dominican Republic");
+i18n("ncamerica.kgm", "The flag of The Dominican Republic is...");
+i18n("ncamerica.kgm", "Santo Domingo");
+i18n("ncamerica.kgm", "Santo Domingo is the capital of...");
+i18n("ncamerica.kgm", "Haiti");
+i18n("ncamerica.kgm", "The capital of Haiti is...");
+i18n("ncamerica.kgm", "Please click on:\nHaiti");
+i18n("ncamerica.kgm", "The flag of Haiti is...");
+i18n("ncamerica.kgm", "Port-au-Prince");
+i18n("ncamerica.kgm", "Port-au-Prince is the capital of...");
+i18n("ncamerica.kgm", "Cuba");
+i18n("ncamerica.kgm", "The capital of Cuba is...");
+i18n("ncamerica.kgm", "Please click on:\nCuba");
+i18n("ncamerica.kgm", "The flag of Cuba is...");
+i18n("ncamerica.kgm", "Havana");
+i18n("ncamerica.kgm", "Havana is the capital of...");
+i18n("ncamerica.kgm", "Jamaica");
+i18n("ncamerica.kgm", "The capital of Jamaica is...");
+i18n("ncamerica.kgm", "Please click on:\nJamaica");
+i18n("ncamerica.kgm", "The flag of Jamaica is...");
+i18n("ncamerica.kgm", "Kingston");
+i18n("ncamerica.kgm", "Kingston is the capital of...");
+i18n("ncamerica.kgm", "Dominica");
+i18n("ncamerica.kgm", "The capital of Dominica is...");
+i18n("ncamerica.kgm", "Please click on:\nDominica");
+i18n("ncamerica.kgm", "The flag of Dominica is...");
+i18n("ncamerica.kgm", "Roseau");
+i18n("ncamerica.kgm", "Roseau is the capital of...");
+i18n("ncamerica.kgm", "Antigua and Barbuda");
+i18n("ncamerica.kgm", "The capital of Antigua and Barbuda is...");
+i18n("ncamerica.kgm", "Please click on:\nAntigua and Barbuda");
+i18n("ncamerica.kgm", "The flag of Antigua and Barbuda is...");
+i18n("ncamerica.kgm", "St. John's");
+i18n("ncamerica.kgm", "St. John's is the capital of...");
+i18n("ncamerica.kgm", "Barbados");
+i18n("ncamerica.kgm", "The capital of Barbados is...");
+i18n("ncamerica.kgm", "Please click on:\nBarbados");
+i18n("ncamerica.kgm", "The flag of Barbados is...");
+i18n("ncamerica.kgm", "Bridgetown");
+i18n("ncamerica.kgm", "Bridgetown is the capital of...");
+i18n("ncamerica.kgm", "Trinidad and Tobago");
+i18n("ncamerica.kgm", "The capital of Trinidad and Tobago is...");
+i18n("ncamerica.kgm", "Please click on:\nTrinidad and Tobago");
+i18n("ncamerica.kgm", "The flag of Trinidad and Tobago is...");
+i18n("ncamerica.kgm", "Port of Spain");
+i18n("ncamerica.kgm", "Port of Spain is the capital of...");
+i18n("ncamerica.kgm", "Mexico");
+i18n("ncamerica.kgm", "The capital of Mexico is...");
+i18n("ncamerica.kgm", "Please click on:\nMexico");
+i18n("ncamerica.kgm", "The flag of Mexico is...");
+i18n("ncamerica.kgm", "Mexico City");
+i18n("ncamerica.kgm", "Mexico City is the capital of...");
+i18n("ncamerica.kgm", "Guatemala");
+i18n("ncamerica.kgm", "The capital of Guatemala is...");
+i18n("ncamerica.kgm", "Please click on:\nGuatemala");
+i18n("ncamerica.kgm", "The flag of Guatemala is...");
+i18n("ncamerica.kgm", "Guatemala City");
+i18n("ncamerica.kgm", "Guatemala City is the capital of...");
+i18n("ncamerica.kgm", "Belize");
+i18n("ncamerica.kgm", "The capital of Belize is...");
+i18n("ncamerica.kgm", "Please click on:\nBelize");
+i18n("ncamerica.kgm", "The flag of Belize is...");
+i18n("ncamerica.kgm", "Belmopan");
+i18n("ncamerica.kgm", "Belmopan is the capital of...");
+i18n("ncamerica.kgm", "Honduras");
+i18n("ncamerica.kgm", "The capital of Honduras is...");
+i18n("ncamerica.kgm", "Please click on:\nHonduras");
+i18n("ncamerica.kgm", "The flag of Honduras is...");
+i18n("ncamerica.kgm", "Tegucigalpa");
+i18n("ncamerica.kgm", "Tegucigalpa is the capital of...");
+i18n("ncamerica.kgm", "Nicaragua");
+i18n("ncamerica.kgm", "The capital of Nicaragua is...");
+i18n("ncamerica.kgm", "Please click on:\nNicaragua");
+i18n("ncamerica.kgm", "The flag of Nicaragua is...");
+i18n("ncamerica.kgm", "Managua");
+i18n("ncamerica.kgm", "Managua is the capital of...");
+i18n("ncamerica.kgm", "Costa Rica");
+i18n("ncamerica.kgm", "The capital of Costa Rica is...");
+i18n("ncamerica.kgm", "Please click on:\nCosta Rica");
+i18n("ncamerica.kgm", "The flag of Costa Rica is...");
+i18n("ncamerica.kgm", "San José");
+i18n("ncamerica.kgm", "San José is the capital of...");
+i18n("ncamerica.kgm", "Panama");
+i18n("ncamerica.kgm", "The capital of Panama is...");
+i18n("ncamerica.kgm", "Please click on:\nPanama");
+i18n("ncamerica.kgm", "The flag of Panama is...");
+i18n("ncamerica.kgm", "Panama City");
+i18n("ncamerica.kgm", "Panama City is the capital of...");
+i18n("ncamerica.kgm", "Greenland [Denmark]");
+i18n("ncamerica.kgm", "Guyana");
+i18n("ncamerica.kgm", "Venezuela");
+i18n("ncamerica.kgm", "Colombia");
+i18n("netherlands.kgm", "The Netherlands");
+i18n("netherlands.kgm", "<qt>Current map:<br><b>The Netherlands</b></qt>");
+i18n("netherlands.kgm", "Frontier");
+i18n("netherlands.kgm", "Not The Netherlands");
+i18n("netherlands.kgm", "Water");
+i18n("netherlands.kgm", "Friesland");
+i18n("netherlands.kgm", "The capital of Friesland is...");
+i18n("netherlands.kgm", "Please click on:\nFriesland");
+i18n("netherlands.kgm", "Leeuwarden");
+i18n("netherlands.kgm", "Leeuwarden is the capital of...");
+i18n("netherlands.kgm", "Groningen");
+i18n("netherlands.kgm", "The capital of Groningen is...");
+i18n("netherlands.kgm", "Please click on:\nGroningen");
+i18n("netherlands.kgm", "Groningen");
+i18n("netherlands.kgm", "Groningen is the capital of...");
+i18n("netherlands.kgm", "Drenthe");
+i18n("netherlands.kgm", "The capital of Drenthe is...");
+i18n("netherlands.kgm", "Please click on:\nDrenthe");
+i18n("netherlands.kgm", "Assen");
+i18n("netherlands.kgm", "Assen is the capital of...");
+i18n("netherlands.kgm", "Overijssel");
+i18n("netherlands.kgm", "The capital of Overijssel is...");
+i18n("netherlands.kgm", "Please click on:\nOverijssel");
+i18n("netherlands.kgm", "Zwolle");
+i18n("netherlands.kgm", "Zwolle is the capital of...");
+i18n("netherlands.kgm", "Gelderland");
+i18n("netherlands.kgm", "The capital of Gelderland is...");
+i18n("netherlands.kgm", "Please click on:\nGelderland");
+i18n("netherlands.kgm", "Arnhem");
+i18n("netherlands.kgm", "Arnhem is the capital of...");
+i18n("netherlands.kgm", "North Brabant");
+i18n("netherlands.kgm", "The capital of North Brabant is...");
+i18n("netherlands.kgm", "Please click on:\nNorth Brabant");
+i18n("netherlands.kgm", "'s Hertogenbosch");
+i18n("netherlands.kgm", "'s Hertogenbosch is the capital of...");
+i18n("netherlands.kgm", "Limburg");
+i18n("netherlands.kgm", "The capital of Limburg is...");
+i18n("netherlands.kgm", "Please click on:\nLimburg");
+i18n("netherlands.kgm", "Maastricht");
+i18n("netherlands.kgm", "Maastricht is the capital of...");
+i18n("netherlands.kgm", "Flevoland");
+i18n("netherlands.kgm", "The capital of Flevoland is...");
+i18n("netherlands.kgm", "Please click on:\nFlevoland");
+i18n("netherlands.kgm", "Lelystad");
+i18n("netherlands.kgm", "Lelystad is the capital of...");
+i18n("netherlands.kgm", "Utrecht");
+i18n("netherlands.kgm", "The capital of Utrecht is...");
+i18n("netherlands.kgm", "Please click on:\nUtrecht");
+i18n("netherlands.kgm", "Utrecht");
+i18n("netherlands.kgm", "Utrecht is the capital of...");
+i18n("netherlands.kgm", "Zeeland");
+i18n("netherlands.kgm", "The capital of Zeeland is...");
+i18n("netherlands.kgm", "Please click on:\nZeeland");
+i18n("netherlands.kgm", "Middelburg");
+i18n("netherlands.kgm", "Middelburg is the capital of...");
+i18n("netherlands.kgm", "North Holland");
+i18n("netherlands.kgm", "The capital of North Holland is...");
+i18n("netherlands.kgm", "Please click on:\nNorth Holland");
+i18n("netherlands.kgm", "Haarlem");
+i18n("netherlands.kgm", "Haarlem is the capital of...");
+i18n("netherlands.kgm", "South Holland");
+i18n("netherlands.kgm", "The capital of South Holland is...");
+i18n("netherlands.kgm", "Please click on:\nSouth Holland");
+i18n("netherlands.kgm", "The Hague");
+i18n("netherlands.kgm", "The Hague is the capital of...");
+i18n("norway.kgm", "Norway");
+i18n("norway.kgm", "<qt>Current map:<br><b>Norway</b></qt>");
+i18n("norway.kgm", "Frontier");
+i18n("norway.kgm", "Not Norway");
+i18n("norway.kgm", "Finnmark");
+i18n("norway.kgm", "The capital of Finnmark is...");
+i18n("norway.kgm", "Please click on:\nFinnmark");
+i18n("norway.kgm", "Vadsø");
+i18n("norway.kgm", "Vadsø is the capital of...");
+i18n("norway.kgm", "Troms");
+i18n("norway.kgm", "The capital of Troms is...");
+i18n("norway.kgm", "Please click on:\nTroms");
+i18n("norway.kgm", "Tromsø");
+i18n("norway.kgm", "Tromsø is the capital of...");
+i18n("norway.kgm", "Nordland");
+i18n("norway.kgm", "The capital of Nordland is...");
+i18n("norway.kgm", "Please click on:\nNordland");
+i18n("norway.kgm", "Bodø");
+i18n("norway.kgm", "Bodø is the capital of...");
+i18n("norway.kgm", "Nord-Trøndelag");
+i18n("norway.kgm", "The capital of Nord-Trøndelag is...");
+i18n("norway.kgm", "Please click on:\nNord-Trøndelag");
+i18n("norway.kgm", "Steinkjer");
+i18n("norway.kgm", "Steinkjer is the capital of...");
+i18n("norway.kgm", "Sør-Trøndelag");
+i18n("norway.kgm", "The capital of Sør-Trøndelag is...");
+i18n("norway.kgm", "Please click on:\nSør-Trøndelag");
+i18n("norway.kgm", "Trondheim");
+i18n("norway.kgm", "Trondheim is the capital of...");
+i18n("norway.kgm", "Møre Og Romsdal");
+i18n("norway.kgm", "The capital of Møre Og Romsdal is...");
+i18n("norway.kgm", "Please click on:\nMøre Og Romsdal");
+i18n("norway.kgm", "Molde");
+i18n("norway.kgm", "Molde is the capital of...");
+i18n("norway.kgm", "Oppland");
+i18n("norway.kgm", "The capital of Oppland is...");
+i18n("norway.kgm", "Please click on:\nOppland");
+i18n("norway.kgm", "Lillehammer");
+i18n("norway.kgm", "Lillehammer is the capital of...");
+i18n("norway.kgm", "Hedmark");
+i18n("norway.kgm", "The capital of Hedmark is...");
+i18n("norway.kgm", "Please click on:\nHedmark");
+i18n("norway.kgm", "Hamar");
+i18n("norway.kgm", "Hamar is the capital of...");
+i18n("norway.kgm", "Sogn Og Fjordane");
+i18n("norway.kgm", "The capital of Sogn Og Fjordane is...");
+i18n("norway.kgm", "Please click on:\nSogn Og Fjordane");
+i18n("norway.kgm", "Hermansverk");
+i18n("norway.kgm", "Hermansverk is the capital of...");
+i18n("norway.kgm", "Hordaland");
+i18n("norway.kgm", "The capital of Hordaland is...");
+i18n("norway.kgm", "Please click on:\nHordaland");
+i18n("norway.kgm", "Bergen");
+i18n("norway.kgm", "Bergen is the capital of...");
+i18n("norway.kgm", "Rogaland");
+i18n("norway.kgm", "The capital of Rogaland is...");
+i18n("norway.kgm", "Please click on:\nRogaland");
+i18n("norway.kgm", "Stavanger");
+i18n("norway.kgm", "Stavanger is the capital of...");
+i18n("norway.kgm", "Vest-Agder");
+i18n("norway.kgm", "The capital of Vest-Agder is...");
+i18n("norway.kgm", "Please click on:\nVest-Agder");
+i18n("norway.kgm", "Kristiansand");
+i18n("norway.kgm", "Kristiansand is the capital of...");
+i18n("norway.kgm", "Aust-Agder");
+i18n("norway.kgm", "The capital of Aust-Agder is...");
+i18n("norway.kgm", "Please click on:\nAust-Agder");
+i18n("norway.kgm", "Arendal");
+i18n("norway.kgm", "Arendal is the capital of...");
+i18n("norway.kgm", "Telemark");
+i18n("norway.kgm", "The capital of Telemark is...");
+i18n("norway.kgm", "Please click on:\nTelemark");
+i18n("norway.kgm", "Skien");
+i18n("norway.kgm", "Skien is the capital of...");
+i18n("norway.kgm", "Buskerud");
+i18n("norway.kgm", "The capital of Buskerud is...");
+i18n("norway.kgm", "Please click on:\nBuskerud");
+i18n("norway.kgm", "Drammen");
+i18n("norway.kgm", "Drammen is the capital of...");
+i18n("norway.kgm", "Vestfold");
+i18n("norway.kgm", "The capital of Vestfold is...");
+i18n("norway.kgm", "Please click on:\nVestfold");
+i18n("norway.kgm", "Tønsberg");
+i18n("norway.kgm", "Tønsberg is the capital of...");
+i18n("norway.kgm", "Oslo");
+i18n("norway.kgm", "The capital of Oslo is...");
+i18n("norway.kgm", "Please click on:\nOslo");
+i18n("norway.kgm", "Oslo");
+i18n("norway.kgm", "Oslo is the capital of...");
+i18n("norway.kgm", "Akershus");
+i18n("norway.kgm", "The capital of Akershus is...");
+i18n("norway.kgm", "Please click on:\nAkershus");
+i18n("norway.kgm", "Oslo");
+i18n("norway.kgm", "Oslo is the capital of...");
+i18n("norway.kgm", "Østfold");
+i18n("norway.kgm", "The capital of Østfold is...");
+i18n("norway.kgm", "Please click on:\nØstfold");
+i18n("norway.kgm", "Sarpsborg");
+i18n("norway.kgm", "Sarpsborg is the capital of...");
+i18n("poland.kgm", "Poland");
+i18n("poland.kgm", "<qt>Current map:<br><b>Poland</b></qt>");
+i18n("poland.kgm", "Frontier");
+i18n("poland.kgm", "Not Poland");
+i18n("poland.kgm", "Masovia");
+i18n("poland.kgm", "The capital of Masovia is...");
+i18n("poland.kgm", "Please click on:\nMasovia");
+i18n("poland.kgm", "Warsaw");
+i18n("poland.kgm", "Warsaw is the capital of...");
+i18n("poland.kgm", "Warmia and Masuria");
+i18n("poland.kgm", "The capital of Warmia and Masuria is...");
+i18n("poland.kgm", "Please click on:\nWarmia and Masuria");
+i18n("poland.kgm", "Olsztyn");
+i18n("poland.kgm", "Olsztyn is the capital of...");
+i18n("poland.kgm", "Podlachia");
+i18n("poland.kgm", "The capital of Podlachia is...");
+i18n("poland.kgm", "Please click on:\nPodlachia");
+i18n("poland.kgm", "Białystok");
+i18n("poland.kgm", "Białystok is the capital of...");
+i18n("poland.kgm", "Lublin");
+i18n("poland.kgm", "The capital of Lublin is...");
+i18n("poland.kgm", "Please click on:\nLublin");
+i18n("poland.kgm", "Lublin");
+i18n("poland.kgm", "Lublin is the capital of...");
+i18n("poland.kgm", "Subcarpathia");
+i18n("poland.kgm", "The capital of Subcarpathia is...");
+i18n("poland.kgm", "Please click on:\nSubcarpathia");
+i18n("poland.kgm", "Rzeszów");
+i18n("poland.kgm", "Rzeszów is the capital of...");
+i18n("poland.kgm", "Świętokrzyskie");
+i18n("poland.kgm", "The capital of Świętokrzyskie is...");
+i18n("poland.kgm", "Please click on:\nŚwiętokrzyskie");
+i18n("poland.kgm", "Kielce");
+i18n("poland.kgm", "Kielce is the capital of...");
+i18n("poland.kgm", "Lesser Poland");
+i18n("poland.kgm", "The capital of Lesser Poland is...");
+i18n("poland.kgm", "Please click on:\nLesser Poland");
+i18n("poland.kgm", "Kraków");
+i18n("poland.kgm", "Kraków is the capital of...");
+i18n("poland.kgm", "Åódź");
+i18n("poland.kgm", "The capital of Åódź is...");
+i18n("poland.kgm", "Please click on:\nÅódź");
+i18n("poland.kgm", "Åódź");
+i18n("poland.kgm", "Åódź is the capital of...");
+i18n("poland.kgm", "Silesia");
+i18n("poland.kgm", "The capital of Silesia is...");
+i18n("poland.kgm", "Please click on:\nSilesia");
+i18n("poland.kgm", "Katowice");
+i18n("poland.kgm", "Katowice is the capital of...");
+i18n("poland.kgm", "Opole");
+i18n("poland.kgm", "The capital of Opole is...");
+i18n("poland.kgm", "Please click on:\nOpole");
+i18n("poland.kgm", "Opole");
+i18n("poland.kgm", "Opole is the capital of...");
+i18n("poland.kgm", "Pomerania");
+i18n("poland.kgm", "The capital of Pomerania is...");
+i18n("poland.kgm", "Please click on:\nPomerania");
+i18n("poland.kgm", "Gdańsk");
+i18n("poland.kgm", "Gdańsk is the capital of...");
+i18n("poland.kgm", "West Pomerania");
+i18n("poland.kgm", "The capital of West Pomerania is...");
+i18n("poland.kgm", "Please click on:\nWest Pomerania");
+i18n("poland.kgm", "Szczecin");
+i18n("poland.kgm", "Szczecin is the capital of...");
+i18n("poland.kgm", "Greater Poland");
+i18n("poland.kgm", "The capital of Greater Poland is...");
+i18n("poland.kgm", "Please click on:\nGreater Poland");
+i18n("poland.kgm", "Poznań");
+i18n("poland.kgm", "Poznań is the capital of...");
+i18n("poland.kgm", "Lower Silesia");
+i18n("poland.kgm", "The capital of Lower Silesia is...");
+i18n("poland.kgm", "Please click on:\nLower Silesia");
+i18n("poland.kgm", "Wrocław");
+i18n("poland.kgm", "Wrocław is the capital of...");
+i18n("poland.kgm", "Lubusz");
+i18n("poland.kgm", "The capital of Lubusz is...");
+i18n("poland.kgm", "Please click on:\nLubusz");
+i18n("poland.kgm", "Zielona Góra, Gorzów Wielkopolski");
+i18n("poland.kgm", "Zielona Góra, Gorzów Wielkopolski is the capital of...");
+i18n("poland.kgm", "Kuyavia-Pomerania");
+i18n("poland.kgm", "The capital of Kuyavia-Pomerania is...");
+i18n("poland.kgm", "Please click on:\nKuyavia-Pomerania");
+i18n("poland.kgm", "Bydgoszcz, Toruń");
+i18n("poland.kgm", "Bydgoszcz, Toruń is the capital of...");
+i18n("southamerica.kgm", "South America");
+i18n("southamerica.kgm", "<qt>Current map:<br><b>South America</b></qt>");
+i18n("southamerica.kgm", "Frontier");
+i18n("southamerica.kgm", "Water");
+i18n("southamerica.kgm", "Coast");
+i18n("southamerica.kgm", "Panama");
+i18n("southamerica.kgm", "Colombia");
+i18n("southamerica.kgm", "The capital of Colombia is...");
+i18n("southamerica.kgm", "Please click on:\nColombia");
+i18n("southamerica.kgm", "The flag of Colombia is...");
+i18n("southamerica.kgm", "Bogotá");
+i18n("southamerica.kgm", "Bogotá is the capital of...");
+i18n("southamerica.kgm", "Venezuela");
+i18n("southamerica.kgm", "The capital of Venezuela is...");
+i18n("southamerica.kgm", "Please click on:\nVenezuela");
+i18n("southamerica.kgm", "The flag of Venezuela is...");
+i18n("southamerica.kgm", "Caracas");
+i18n("southamerica.kgm", "Caracas is the capital of...");
+i18n("southamerica.kgm", "Guyana");
+i18n("southamerica.kgm", "The capital of Guyana is...");
+i18n("southamerica.kgm", "Please click on:\nGuyana");
+i18n("southamerica.kgm", "The flag of Guyana is...");
+i18n("southamerica.kgm", "Georgetown");
+i18n("southamerica.kgm", "Georgetown is the capital of...");
+i18n("southamerica.kgm", "Suriname");
+i18n("southamerica.kgm", "The capital of Suriname is...");
+i18n("southamerica.kgm", "Please click on:\nSuriname");
+i18n("southamerica.kgm", "The flag of Suriname is...");
+i18n("southamerica.kgm", "Paramaribo");
+i18n("southamerica.kgm", "Paramaribo is the capital of...");
+i18n("southamerica.kgm", "French Guiana");
+i18n("southamerica.kgm", "The capital of French Guiana is...");
+i18n("southamerica.kgm", "Please click on:\nFrench Guiana");
+i18n("southamerica.kgm", "The flag of French Guiana is...");
+i18n("southamerica.kgm", "Cayenne");
+i18n("southamerica.kgm", "Cayenne is the capital of...");
+i18n("southamerica.kgm", "Ecuador");
+i18n("southamerica.kgm", "The capital of Ecuador is...");
+i18n("southamerica.kgm", "Please click on:\nEcuador");
+i18n("southamerica.kgm", "The flag of Ecuador is...");
+i18n("southamerica.kgm", "Quito");
+i18n("southamerica.kgm", "Quito is the capital of...");
+i18n("southamerica.kgm", "Peru");
+i18n("southamerica.kgm", "The capital of Peru is...");
+i18n("southamerica.kgm", "Please click on:\nPeru");
+i18n("southamerica.kgm", "The flag of Peru is...");
+i18n("southamerica.kgm", "Lima");
+i18n("southamerica.kgm", "Lima is the capital of...");
+i18n("southamerica.kgm", "Brazil");
+i18n("southamerica.kgm", "The capital of Brazil is...");
+i18n("southamerica.kgm", "Please click on:\nBrazil");
+i18n("southamerica.kgm", "The flag of Brazil is...");
+i18n("southamerica.kgm", "Brasilia");
+i18n("southamerica.kgm", "Brasilia is the capital of...");
+i18n("southamerica.kgm", "Bolivia");
+i18n("southamerica.kgm", "The capital of Bolivia is...");
+i18n("southamerica.kgm", "Please click on:\nBolivia");
+i18n("southamerica.kgm", "The flag of Bolivia is...");
+i18n("southamerica.kgm", "La Paz");
+i18n("southamerica.kgm", "La Paz is the capital of...");
+i18n("southamerica.kgm", "Chile");
+i18n("southamerica.kgm", "The capital of Chile is...");
+i18n("southamerica.kgm", "Please click on:\nChile");
+i18n("southamerica.kgm", "The flag of Chile is...");
+i18n("southamerica.kgm", "Santiago");
+i18n("southamerica.kgm", "Santiago is the capital of...");
+i18n("southamerica.kgm", "Paraguay");
+i18n("southamerica.kgm", "The capital of Paraguay is...");
+i18n("southamerica.kgm", "Please click on:\nParaguay");
+i18n("southamerica.kgm", "The flag of Paraguay is...");
+i18n("southamerica.kgm", "Asunción");
+i18n("southamerica.kgm", "Asunción is the capital of...");
+i18n("southamerica.kgm", "Argentina");
+i18n("southamerica.kgm", "The capital of Argentina is...");
+i18n("southamerica.kgm", "Please click on:\nArgentina");
+i18n("southamerica.kgm", "The flag of Argentina is...");
+i18n("southamerica.kgm", "Buenos Aires");
+i18n("southamerica.kgm", "Buenos Aires is the capital of...");
+i18n("southamerica.kgm", "Uruguay");
+i18n("southamerica.kgm", "The capital of Uruguay is...");
+i18n("southamerica.kgm", "Please click on:\nUruguay");
+i18n("southamerica.kgm", "The flag of Uruguay is...");
+i18n("southamerica.kgm", "Montevideo");
+i18n("southamerica.kgm", "Montevideo is the capital of...");
+i18n("spain.kgm", "Spain");
+i18n("spain.kgm", "<qt>Current map:<br><b>Spain</b></qt>");
+i18n("spain.kgm", "Not Spain");
+i18n("spain.kgm", "Frontier");
+i18n("spain.kgm", "Andalucia");
+i18n("spain.kgm", "The capital of Andalucia is...");
+i18n("spain.kgm", "Please click on:\nAndalucia");
+i18n("spain.kgm", "Seville");
+i18n("spain.kgm", "Seville is the capital of...");
+i18n("spain.kgm", "Aragon");
+i18n("spain.kgm", "The capital of Aragon is...");
+i18n("spain.kgm", "Please click on:\nAragon");
+i18n("spain.kgm", "Zaragoza");
+i18n("spain.kgm", "Zaragoza is the capital of...");
+i18n("spain.kgm", "Asturias");
+i18n("spain.kgm", "The capital of Asturias is...");
+i18n("spain.kgm", "Please click on:\nAsturias");
+i18n("spain.kgm", "Oviedo");
+i18n("spain.kgm", "Oviedo is the capital of...");
+i18n("spain.kgm", "Balearic Islands");
+i18n("spain.kgm", "The capital of Balearic Islands is...");
+i18n("spain.kgm", "Please click on:\nBalearic Islands");
+i18n("spain.kgm", "Palma de Mallorca");
+i18n("spain.kgm", "Palma de Mallorca is the capital of...");
+i18n("spain.kgm", "Basque Country");
+i18n("spain.kgm", "The capital of Basque Country is...");
+i18n("spain.kgm", "Please click on:\nBasque Country");
+i18n("spain.kgm", "Vitoria");
+i18n("spain.kgm", "Vitoria is the capital of...");
+i18n("spain.kgm", "Canary Islands");
+i18n("spain.kgm", "The capital of Canary Islands is...");
+i18n("spain.kgm", "Please click on:\nCanary Islands");
+i18n("spain.kgm", "Las Palmas de Gran Canaria and Santa Cruz de Tenerife");
+i18n("spain.kgm", "Las Palmas de Gran Canaria and Santa Cruz de Tenerife is the capital of...");
+i18n("spain.kgm", "Cantabria");
+i18n("spain.kgm", "The capital of Cantabria is...");
+i18n("spain.kgm", "Please click on:\nCantabria");
+i18n("spain.kgm", "Santander");
+i18n("spain.kgm", "Santander is the capital of...");
+i18n("spain.kgm", "Castile-La Mancha");
+i18n("spain.kgm", "The capital of Castile-La Mancha is...");
+i18n("spain.kgm", "Please click on:\nCastile-La Mancha");
+i18n("spain.kgm", "Toledo");
+i18n("spain.kgm", "Toledo is the capital of...");
+i18n("spain.kgm", "Castile and Leon");
+i18n("spain.kgm", "The capital of Castile and Leon is...");
+i18n("spain.kgm", "Please click on:\nCastile and Leon");
+i18n("spain.kgm", "Valladolid");
+i18n("spain.kgm", "Valladolid is the capital of...");
+i18n("spain.kgm", "Catalonia");
+i18n("spain.kgm", "The capital of Catalonia is...");
+i18n("spain.kgm", "Please click on:\nCatalonia");
+i18n("spain.kgm", "Barcelona");
+i18n("spain.kgm", "Barcelona is the capital of...");
+i18n("spain.kgm", "Extremadura");
+i18n("spain.kgm", "The capital of Extremadura is...");
+i18n("spain.kgm", "Please click on:\nExtremadura");
+i18n("spain.kgm", "Mérida");
+i18n("spain.kgm", "Mérida is the capital of...");
+i18n("spain.kgm", "Galicia");
+i18n("spain.kgm", "The capital of Galicia is...");
+i18n("spain.kgm", "Please click on:\nGalicia");
+i18n("spain.kgm", "Santiago de Compostela");
+i18n("spain.kgm", "Santiago de Compostela is the capital of...");
+i18n("spain.kgm", "La Rioja");
+i18n("spain.kgm", "The capital of La Rioja is...");
+i18n("spain.kgm", "Please click on:\nLa Rioja");
+i18n("spain.kgm", "Logroño");
+i18n("spain.kgm", "Logroño is the capital of...");
+i18n("spain.kgm", "Madrid");
+i18n("spain.kgm", "The capital of Madrid is...");
+i18n("spain.kgm", "Please click on:\nMadrid");
+i18n("spain.kgm", "Madrid");
+i18n("spain.kgm", "Madrid is the capital of...");
+i18n("spain.kgm", "Murcia");
+i18n("spain.kgm", "The capital of Murcia is...");
+i18n("spain.kgm", "Please click on:\nMurcia");
+i18n("spain.kgm", "Murcia");
+i18n("spain.kgm", "Murcia is the capital of...");
+i18n("spain.kgm", "Navarre");
+i18n("spain.kgm", "The capital of Navarre is...");
+i18n("spain.kgm", "Please click on:\nNavarre");
+i18n("spain.kgm", "Pamplona");
+i18n("spain.kgm", "Pamplona is the capital of...");
+i18n("spain.kgm", "Valencian Community");
+i18n("spain.kgm", "The capital of Valencian Community is...");
+i18n("spain.kgm", "Please click on:\nValencian Community");
+i18n("spain.kgm", "Valencia");
+i18n("spain.kgm", "Valencia is the capital of...");
+i18n("usa.kgm", "USA");
+i18n("usa.kgm", "<qt>Current map:<br><b>USA</b></qt>");
+i18n("usa.kgm", "Frontier");
+i18n("usa.kgm", "Coast");
+i18n("usa.kgm", "Water");
+i18n("usa.kgm", "Lake Superior");
+i18n("usa.kgm", "Lake Michigan");
+i18n("usa.kgm", "Lake Huron");
+i18n("usa.kgm", "Lake Erie");
+i18n("usa.kgm", "Lake Ontario");
+i18n("usa.kgm", "The Bahamas");
+i18n("usa.kgm", "Cuba");
+i18n("usa.kgm", "Canada");
+i18n("usa.kgm", "Mexico");
+i18n("usa.kgm", "Russia");
+i18n("usa.kgm", "Washington DC");
+i18n("usa.kgm", "Alabama");
+i18n("usa.kgm", "The capital of Alabama is...");
+i18n("usa.kgm", "Please click on:\nAlabama");
+i18n("usa.kgm", "Montgomery");
+i18n("usa.kgm", "Montgomery is the capital of...");
+i18n("usa.kgm", "Alaska");
+i18n("usa.kgm", "The capital of Alaska is...");
+i18n("usa.kgm", "Please click on:\nAlaska");
+i18n("usa.kgm", "Juneau");
+i18n("usa.kgm", "Juneau is the capital of...");
+i18n("usa.kgm", "Arizona");
+i18n("usa.kgm", "The capital of Arizona is...");
+i18n("usa.kgm", "Please click on:\nArizona");
+i18n("usa.kgm", "Phoenix");
+i18n("usa.kgm", "Phoenix is the capital of...");
+i18n("usa.kgm", "Arkansas");
+i18n("usa.kgm", "The capital of Arkansas is...");
+i18n("usa.kgm", "Please click on:\nArkansas");
+i18n("usa.kgm", "Little Rock");
+i18n("usa.kgm", "Little Rock is the capital of...");
+i18n("usa.kgm", "California");
+i18n("usa.kgm", "The capital of California is...");
+i18n("usa.kgm", "Please click on:\nCalifornia");
+i18n("usa.kgm", "Sacramento");
+i18n("usa.kgm", "Sacramento is the capital of...");
+i18n("usa.kgm", "Colorado");
+i18n("usa.kgm", "The capital of Colorado is...");
+i18n("usa.kgm", "Please click on:\nColorado");
+i18n("usa.kgm", "Denver");
+i18n("usa.kgm", "Denver is the capital of...");
+i18n("usa.kgm", "Connecticut");
+i18n("usa.kgm", "The capital of Connecticut is...");
+i18n("usa.kgm", "Please click on:\nConnecticut");
+i18n("usa.kgm", "Hartford");
+i18n("usa.kgm", "Hartford is the capital of...");
+i18n("usa.kgm", "Delaware");
+i18n("usa.kgm", "The capital of Delaware is...");
+i18n("usa.kgm", "Please click on:\nDelaware");
+i18n("usa.kgm", "Dover");
+i18n("usa.kgm", "Dover is the capital of...");
+i18n("usa.kgm", "Florida");
+i18n("usa.kgm", "The capital of Florida is...");
+i18n("usa.kgm", "Please click on:\nFlorida");
+i18n("usa.kgm", "Tallahassee");
+i18n("usa.kgm", "Tallahassee is the capital of...");
+i18n("usa.kgm", "Georgia");
+i18n("usa.kgm", "The capital of Georgia is...");
+i18n("usa.kgm", "Please click on:\nGeorgia");
+i18n("usa.kgm", "Atlanta");
+i18n("usa.kgm", "Atlanta is the capital of...");
+i18n("usa.kgm", "Hawaii");
+i18n("usa.kgm", "The capital of Hawaii is...");
+i18n("usa.kgm", "Please click on:\nHawaii");
+i18n("usa.kgm", "Honolulu");
+i18n("usa.kgm", "Honolulu is the capital of...");
+i18n("usa.kgm", "Idaho");
+i18n("usa.kgm", "The capital of Idaho is...");
+i18n("usa.kgm", "Please click on:\nIdaho");
+i18n("usa.kgm", "Boise");
+i18n("usa.kgm", "Boise is the capital of...");
+i18n("usa.kgm", "Illinois");
+i18n("usa.kgm", "The capital of Illinois is...");
+i18n("usa.kgm", "Please click on:\nIllinois");
+i18n("usa.kgm", "Springfield");
+i18n("usa.kgm", "Springfield is the capital of...");
+i18n("usa.kgm", "Indiana");
+i18n("usa.kgm", "The capital of Indiana is...");
+i18n("usa.kgm", "Please click on:\nIndiana");
+i18n("usa.kgm", "Indianapolis");
+i18n("usa.kgm", "Indianapolis is the capital of...");
+i18n("usa.kgm", "Iowa");
+i18n("usa.kgm", "The capital of Iowa is...");
+i18n("usa.kgm", "Please click on:\nIowa");
+i18n("usa.kgm", "Des Moines");
+i18n("usa.kgm", "Des Moines is the capital of...");
+i18n("usa.kgm", "Kansas");
+i18n("usa.kgm", "The capital of Kansas is...");
+i18n("usa.kgm", "Please click on:\nKansas");
+i18n("usa.kgm", "Topeka");
+i18n("usa.kgm", "Topeka is the capital of...");
+i18n("usa.kgm", "Kentucky");
+i18n("usa.kgm", "The capital of Kentucky is...");
+i18n("usa.kgm", "Please click on:\nKentucky");
+i18n("usa.kgm", "Frankfort");
+i18n("usa.kgm", "Frankfort is the capital of...");
+i18n("usa.kgm", "Louisiana");
+i18n("usa.kgm", "The capital of Louisiana is...");
+i18n("usa.kgm", "Please click on:\nLouisiana");
+i18n("usa.kgm", "Baton Rouge");
+i18n("usa.kgm", "Baton Rouge is the capital of...");
+i18n("usa.kgm", "Maine");
+i18n("usa.kgm", "The capital of Maine is...");
+i18n("usa.kgm", "Please click on:\nMaine");
+i18n("usa.kgm", "Augusta");
+i18n("usa.kgm", "Augusta is the capital of...");
+i18n("usa.kgm", "Maryland");
+i18n("usa.kgm", "The capital of Maryland is...");
+i18n("usa.kgm", "Please click on:\nMaryland");
+i18n("usa.kgm", "Annapolis");
+i18n("usa.kgm", "Annapolis is the capital of...");
+i18n("usa.kgm", "Massachusetts");
+i18n("usa.kgm", "The capital of Massachusetts is...");
+i18n("usa.kgm", "Please click on:\nMassachusetts");
+i18n("usa.kgm", "Boston");
+i18n("usa.kgm", "Boston is the capital of...");
+i18n("usa.kgm", "Michigan");
+i18n("usa.kgm", "The capital of Michigan is...");
+i18n("usa.kgm", "Please click on:\nMichigan");
+i18n("usa.kgm", "Lansing");
+i18n("usa.kgm", "Lansing is the capital of...");
+i18n("usa.kgm", "Minnesota");
+i18n("usa.kgm", "The capital of Minnesota is...");
+i18n("usa.kgm", "Please click on:\nMinnesota");
+i18n("usa.kgm", "Saint Paul");
+i18n("usa.kgm", "Saint Paul is the capital of...");
+i18n("usa.kgm", "Mississippi");
+i18n("usa.kgm", "The capital of Mississippi is...");
+i18n("usa.kgm", "Please click on:\nMississippi");
+i18n("usa.kgm", "Jackson");
+i18n("usa.kgm", "Jackson is the capital of...");
+i18n("usa.kgm", "Missouri");
+i18n("usa.kgm", "The capital of Missouri is...");
+i18n("usa.kgm", "Please click on:\nMissouri");
+i18n("usa.kgm", "Jefferson City");
+i18n("usa.kgm", "Jefferson City is the capital of...");
+i18n("usa.kgm", "Montana");
+i18n("usa.kgm", "The capital of Montana is...");
+i18n("usa.kgm", "Please click on:\nMontana");
+i18n("usa.kgm", "Helena");
+i18n("usa.kgm", "Helena is the capital of...");
+i18n("usa.kgm", "Nebraska");
+i18n("usa.kgm", "The capital of Nebraska is...");
+i18n("usa.kgm", "Please click on:\nNebraska");
+i18n("usa.kgm", "Lincoln");
+i18n("usa.kgm", "Lincoln is the capital of...");
+i18n("usa.kgm", "Nevada");
+i18n("usa.kgm", "The capital of Nevada is...");
+i18n("usa.kgm", "Please click on:\nNevada");
+i18n("usa.kgm", "Carson City");
+i18n("usa.kgm", "Carson City is the capital of...");
+i18n("usa.kgm", "New Hampshire");
+i18n("usa.kgm", "The capital of New Hampshire is...");
+i18n("usa.kgm", "Please click on:\nNew Hampshire");
+i18n("usa.kgm", "Concord");
+i18n("usa.kgm", "Concord is the capital of...");
+i18n("usa.kgm", "New Jersey");
+i18n("usa.kgm", "The capital of New Jersey is...");
+i18n("usa.kgm", "Please click on:\nNew Jersey");
+i18n("usa.kgm", "Trenton");
+i18n("usa.kgm", "Trenton is the capital of...");
+i18n("usa.kgm", "New Mexico");
+i18n("usa.kgm", "The capital of New Mexico is...");
+i18n("usa.kgm", "Please click on:\nNew Mexico");
+i18n("usa.kgm", "Santa Fe");
+i18n("usa.kgm", "Santa Fe is the capital of...");
+i18n("usa.kgm", "New York");
+i18n("usa.kgm", "The capital of New York is...");
+i18n("usa.kgm", "Please click on:\nNew York");
+i18n("usa.kgm", "Albany");
+i18n("usa.kgm", "Albany is the capital of...");
+i18n("usa.kgm", "North Carolina");
+i18n("usa.kgm", "The capital of North Carolina is...");
+i18n("usa.kgm", "Please click on:\nNorth Carolina");
+i18n("usa.kgm", "Raleigh");
+i18n("usa.kgm", "Raleigh is the capital of...");
+i18n("usa.kgm", "North Dakota");
+i18n("usa.kgm", "The capital of North Dakota is...");
+i18n("usa.kgm", "Please click on:\nNorth Dakota");
+i18n("usa.kgm", "Bismarck");
+i18n("usa.kgm", "Bismarck is the capital of...");
+i18n("usa.kgm", "Ohio");
+i18n("usa.kgm", "The capital of Ohio is...");
+i18n("usa.kgm", "Please click on:\nOhio");
+i18n("usa.kgm", "Columbus");
+i18n("usa.kgm", "Columbus is the capital of...");
+i18n("usa.kgm", "Oklahoma");
+i18n("usa.kgm", "The capital of Oklahoma is...");
+i18n("usa.kgm", "Please click on:\nOklahoma");
+i18n("usa.kgm", "Oklahoma City");
+i18n("usa.kgm", "Oklahoma City is the capital of...");
+i18n("usa.kgm", "Oregon");
+i18n("usa.kgm", "The capital of Oregon is...");
+i18n("usa.kgm", "Please click on:\nOregon");
+i18n("usa.kgm", "Salem");
+i18n("usa.kgm", "Salem is the capital of...");
+i18n("usa.kgm", "Pennsylvania");
+i18n("usa.kgm", "The capital of Pennsylvania is...");
+i18n("usa.kgm", "Please click on:\nPennsylvania");
+i18n("usa.kgm", "Harrisburg");
+i18n("usa.kgm", "Harrisburg is the capital of...");
+i18n("usa.kgm", "Rhode Island");
+i18n("usa.kgm", "The capital of Rhode Island is...");
+i18n("usa.kgm", "Please click on:\nRhode Island");
+i18n("usa.kgm", "Providence");
+i18n("usa.kgm", "Providence is the capital of...");
+i18n("usa.kgm", "South Carolina");
+i18n("usa.kgm", "The capital of South Carolina is...");
+i18n("usa.kgm", "Please click on:\nSouth Carolina");
+i18n("usa.kgm", "Columbia");
+i18n("usa.kgm", "Columbia is the capital of...");
+i18n("usa.kgm", "South Dakota");
+i18n("usa.kgm", "The capital of South Dakota is...");
+i18n("usa.kgm", "Please click on:\nSouth Dakota");
+i18n("usa.kgm", "Pierre");
+i18n("usa.kgm", "Pierre is the capital of...");
+i18n("usa.kgm", "Tennessee");
+i18n("usa.kgm", "The capital of Tennessee is...");
+i18n("usa.kgm", "Please click on:\nTennessee");
+i18n("usa.kgm", "Nashville");
+i18n("usa.kgm", "Nashville is the capital of...");
+i18n("usa.kgm", "Texas");
+i18n("usa.kgm", "The capital of Texas is...");
+i18n("usa.kgm", "Please click on:\nTexas");
+i18n("usa.kgm", "Austin");
+i18n("usa.kgm", "Austin is the capital of...");
+i18n("usa.kgm", "Utah");
+i18n("usa.kgm", "The capital of Utah is...");
+i18n("usa.kgm", "Please click on:\nUtah");
+i18n("usa.kgm", "Salt Lake City");
+i18n("usa.kgm", "Salt Lake City is the capital of...");
+i18n("usa.kgm", "Vermont");
+i18n("usa.kgm", "The capital of Vermont is...");
+i18n("usa.kgm", "Please click on:\nVermont");
+i18n("usa.kgm", "Montpelier");
+i18n("usa.kgm", "Montpelier is the capital of...");
+i18n("usa.kgm", "Virginia");
+i18n("usa.kgm", "The capital of Virginia is...");
+i18n("usa.kgm", "Please click on:\nVirginia");
+i18n("usa.kgm", "Richmond");
+i18n("usa.kgm", "Richmond is the capital of...");
+i18n("usa.kgm", "Washington");
+i18n("usa.kgm", "The capital of Washington is...");
+i18n("usa.kgm", "Please click on:\nWashington");
+i18n("usa.kgm", "Olympia");
+i18n("usa.kgm", "Olympia is the capital of...");
+i18n("usa.kgm", "West Virginia");
+i18n("usa.kgm", "The capital of West Virginia is...");
+i18n("usa.kgm", "Please click on:\nWest Virginia");
+i18n("usa.kgm", "Charleston");
+i18n("usa.kgm", "Charleston is the capital of...");
+i18n("usa.kgm", "Wisconsin");
+i18n("usa.kgm", "The capital of Wisconsin is...");
+i18n("usa.kgm", "Please click on:\nWisconsin");
+i18n("usa.kgm", "Madison");
+i18n("usa.kgm", "Madison is the capital of...");
+i18n("usa.kgm", "Wyoming");
+i18n("usa.kgm", "The capital of Wyoming is...");
+i18n("usa.kgm", "Please click on:\nWyoming");
+i18n("usa.kgm", "Cheyenne");
+i18n("usa.kgm", "Cheyenne is the capital of...");
+i18n("world.kgm", "World");
+i18n("world.kgm", "<qt>Current map:<br><b>World</b></qt>");
+i18n("world.kgm", "Not a Nation");
+i18n("world.kgm", "Algeria");
+i18n("world.kgm", "The capital of Algeria is...");
+i18n("world.kgm", "Please click on:\nAlgeria");
+i18n("world.kgm", "The flag of Algeria is...");
+i18n("world.kgm", "Algiers");
+i18n("world.kgm", "Algiers is the capital of...");
+i18n("world.kgm", "Angola");
+i18n("world.kgm", "The capital of Angola is...");
+i18n("world.kgm", "Please click on:\nAngola");
+i18n("world.kgm", "The flag of Angola is...");
+i18n("world.kgm", "Luanda");
+i18n("world.kgm", "Luanda is the capital of...");
+i18n("world.kgm", "Benin");
+i18n("world.kgm", "The capital of Benin is...");
+i18n("world.kgm", "Please click on:\nBenin");
+i18n("world.kgm", "The flag of Benin is...");
+i18n("world.kgm", "Porto Novo");
+i18n("world.kgm", "Porto Novo is the capital of...");
+i18n("world.kgm", "Botswana");
+i18n("world.kgm", "The capital of Botswana is...");
+i18n("world.kgm", "Please click on:\nBotswana");
+i18n("world.kgm", "The flag of Botswana is...");
+i18n("world.kgm", "Gaborone");
+i18n("world.kgm", "Gaborone is the capital of...");
+i18n("world.kgm", "Burkina Faso");
+i18n("world.kgm", "The capital of Burkina Faso is...");
+i18n("world.kgm", "Please click on:\nBurkina Faso");
+i18n("world.kgm", "The flag of Burkina Faso is...");
+i18n("world.kgm", "Ouagadougou");
+i18n("world.kgm", "Ouagadougou is the capital of...");
+i18n("world.kgm", "Burundi");
+i18n("world.kgm", "The capital of Burundi is...");
+i18n("world.kgm", "Please click on:\nBurundi");
+i18n("world.kgm", "The flag of Burundi is...");
+i18n("world.kgm", "Bujumbura");
+i18n("world.kgm", "Bujumbura is the capital of...");
+i18n("world.kgm", "Cameroon");
+i18n("world.kgm", "The capital of Cameroon is...");
+i18n("world.kgm", "Please click on:\nCameroon");
+i18n("world.kgm", "The flag of Cameroon is...");
+i18n("world.kgm", "Yaoundé");
+i18n("world.kgm", "Yaoundé is the capital of...");
+i18n("world.kgm", "Central African Republic");
+i18n("world.kgm", "The capital of Central African Republic is...");
+i18n("world.kgm", "Please click on:\nCentral African Republic");
+i18n("world.kgm", "The flag of Central African Republic is...");
+i18n("world.kgm", "Bangui");
+i18n("world.kgm", "Bangui is the capital of...");
+i18n("world.kgm", "Chad");
+i18n("world.kgm", "The capital of Chad is...");
+i18n("world.kgm", "Please click on:\nChad");
+i18n("world.kgm", "The flag of Chad is...");
+i18n("world.kgm", "N'Djamena");
+i18n("world.kgm", "N'Djamena is the capital of...");
+i18n("world.kgm", "Côte d'Ivoire");
+i18n("world.kgm", "The capital of Côte d'Ivoire is...");
+i18n("world.kgm", "Please click on:\nCôte d'Ivoire");
+i18n("world.kgm", "The flag of Côte d'Ivoire is...");
+i18n("world.kgm", "Yamoussoukro");
+i18n("world.kgm", "Yamoussoukro is the capital of...");
+i18n("world.kgm", "Democratic Republic of the Congo");
+i18n("world.kgm", "The capital of Democratic Republic of the Congo is...");
+i18n("world.kgm", "Please click on:\nDemocratic Republic of the Congo");
+i18n("world.kgm", "The flag of Democratic Republic of the Congo is...");
+i18n("world.kgm", "Kinshasa");
+i18n("world.kgm", "Kinshasa is the capital of...");
+i18n("world.kgm", "Djibouti");
+i18n("world.kgm", "The capital of Djibouti is...");
+i18n("world.kgm", "Please click on:\nDjibouti");
+i18n("world.kgm", "The flag of Djibouti is...");
+i18n("world.kgm", "Djibouti");
+i18n("world.kgm", "Djibouti is the capital of...");
+i18n("world.kgm", "Egypt");
+i18n("world.kgm", "The capital of Egypt is...");
+i18n("world.kgm", "Please click on:\nEgypt");
+i18n("world.kgm", "The flag of Egypt is...");
+i18n("world.kgm", "Cairo");
+i18n("world.kgm", "Cairo is the capital of...");
+i18n("world.kgm", "Equatorial Guinea");
+i18n("world.kgm", "The capital of Equatorial Guinea is...");
+i18n("world.kgm", "Please click on:\nEquatorial Guinea");
+i18n("world.kgm", "The flag of Equatorial Guinea is...");
+i18n("world.kgm", "Malabo");
+i18n("world.kgm", "Malabo is the capital of...");
+i18n("world.kgm", "Eritrea");
+i18n("world.kgm", "The capital of Eritrea is...");
+i18n("world.kgm", "Please click on:\nEritrea");
+i18n("world.kgm", "The flag of Eritrea is...");
+i18n("world.kgm", "Asmara");
+i18n("world.kgm", "Asmara is the capital of...");
+i18n("world.kgm", "Ethiopia");
+i18n("world.kgm", "The capital of Ethiopia is...");
+i18n("world.kgm", "Please click on:\nEthiopia");
+i18n("world.kgm", "The flag of Ethiopia is...");
+i18n("world.kgm", "Addis Ababa");
+i18n("world.kgm", "Addis Ababa is the capital of...");
+i18n("world.kgm", "Gabon");
+i18n("world.kgm", "The capital of Gabon is...");
+i18n("world.kgm", "Please click on:\nGabon");
+i18n("world.kgm", "The flag of Gabon is...");
+i18n("world.kgm", "Libreville");
+i18n("world.kgm", "Libreville is the capital of...");
+i18n("world.kgm", "Ghana");
+i18n("world.kgm", "The capital of Ghana is...");
+i18n("world.kgm", "Please click on:\nGhana");
+i18n("world.kgm", "The flag of Ghana is...");
+i18n("world.kgm", "Accra");
+i18n("world.kgm", "Accra is the capital of...");
+i18n("world.kgm", "Guinea");
+i18n("world.kgm", "The capital of Guinea is...");
+i18n("world.kgm", "Please click on:\nGuinea");
+i18n("world.kgm", "The flag of Guinea is...");
+i18n("world.kgm", "Conakry");
+i18n("world.kgm", "Conakry is the capital of...");
+i18n("world.kgm", "Guinea-Bissau");
+i18n("world.kgm", "The capital of Guinea-Bissau is...");
+i18n("world.kgm", "Please click on:\nGuinea-Bissau");
+i18n("world.kgm", "The flag of Guinea-Bissau is...");
+i18n("world.kgm", "Bissau");
+i18n("world.kgm", "Bissau is the capital of...");
+i18n("world.kgm", "Iran");
+i18n("world.kgm", "The capital of Iran is...");
+i18n("world.kgm", "Please click on:\nIran");
+i18n("world.kgm", "The flag of Iran is...");
+i18n("world.kgm", "Tehran");
+i18n("world.kgm", "Tehran is the capital of...");
+i18n("world.kgm", "Iraq");
+i18n("world.kgm", "The capital of Iraq is...");
+i18n("world.kgm", "Please click on:\nIraq");
+i18n("world.kgm", "The flag of Iraq is...");
+i18n("world.kgm", "Baghdad");
+i18n("world.kgm", "Baghdad is the capital of...");
+i18n("world.kgm", "Israel");
+i18n("world.kgm", "The capital of Israel is...");
+i18n("world.kgm", "Please click on:\nIsrael");
+i18n("world.kgm", "The flag of Israel is...");
+i18n("world.kgm", "Jerusalem");
+i18n("world.kgm", "Jerusalem is the capital of...");
+i18n("world.kgm", "Jordan");
+i18n("world.kgm", "The capital of Jordan is...");
+i18n("world.kgm", "Please click on:\nJordan");
+i18n("world.kgm", "The flag of Jordan is...");
+i18n("world.kgm", "Amman");
+i18n("world.kgm", "Amman is the capital of...");
+i18n("world.kgm", "Kenya");
+i18n("world.kgm", "The capital of Kenya is...");
+i18n("world.kgm", "Please click on:\nKenya");
+i18n("world.kgm", "The flag of Kenya is...");
+i18n("world.kgm", "Nairobi");
+i18n("world.kgm", "Nairobi is the capital of...");
+i18n("world.kgm", "Kuwait");
+i18n("world.kgm", "The capital of Kuwait is...");
+i18n("world.kgm", "Please click on:\nKuwait");
+i18n("world.kgm", "The flag of Kuwait is...");
+i18n("world.kgm", "Kuwait City");
+i18n("world.kgm", "Kuwait City is the capital of...");
+i18n("world.kgm", "Lebanon");
+i18n("world.kgm", "The capital of Lebanon is...");
+i18n("world.kgm", "Please click on:\nLebanon");
+i18n("world.kgm", "The flag of Lebanon is...");
+i18n("world.kgm", "Beirut");
+i18n("world.kgm", "Beirut is the capital of...");
+i18n("world.kgm", "Lesotho");
+i18n("world.kgm", "The capital of Lesotho is...");
+i18n("world.kgm", "Please click on:\nLesotho");
+i18n("world.kgm", "The flag of Lesotho is...");
+i18n("world.kgm", "Maseru");
+i18n("world.kgm", "Maseru is the capital of...");
+i18n("world.kgm", "Liberia");
+i18n("world.kgm", "The capital of Liberia is...");
+i18n("world.kgm", "Please click on:\nLiberia");
+i18n("world.kgm", "The flag of Liberia is...");
+i18n("world.kgm", "Monrovia");
+i18n("world.kgm", "Monrovia is the capital of...");
+i18n("world.kgm", "Libya");
+i18n("world.kgm", "The capital of Libya is...");
+i18n("world.kgm", "Please click on:\nLibya");
+i18n("world.kgm", "The flag of Libya is...");
+i18n("world.kgm", "Tripoli");
+i18n("world.kgm", "Tripoli is the capital of...");
+i18n("world.kgm", "Liechtenstein");
+i18n("world.kgm", "The capital of Liechtenstein is...");
+i18n("world.kgm", "Please click on:\nLiechtenstein");
+i18n("world.kgm", "The flag of Liechtenstein is...");
+i18n("world.kgm", "Vaduz");
+i18n("world.kgm", "Vaduz is the capital of...");
+i18n("world.kgm", "Madagascar");
+i18n("world.kgm", "The capital of Madagascar is...");
+i18n("world.kgm", "Please click on:\nMadagascar");
+i18n("world.kgm", "The flag of Madagascar is...");
+i18n("world.kgm", "Antananarivo");
+i18n("world.kgm", "Antananarivo is the capital of...");
+i18n("world.kgm", "Malawi");
+i18n("world.kgm", "The capital of Malawi is...");
+i18n("world.kgm", "Please click on:\nMalawi");
+i18n("world.kgm", "The flag of Malawi is...");
+i18n("world.kgm", "Lilongwe");
+i18n("world.kgm", "Lilongwe is the capital of...");
+i18n("world.kgm", "Mali");
+i18n("world.kgm", "The capital of Mali is...");
+i18n("world.kgm", "Please click on:\nMali");
+i18n("world.kgm", "The flag of Mali is...");
+i18n("world.kgm", "Bamako");
+i18n("world.kgm", "Bamako is the capital of...");
+i18n("world.kgm", "Mauritania");
+i18n("world.kgm", "The capital of Mauritania is...");
+i18n("world.kgm", "Please click on:\nMauritania");
+i18n("world.kgm", "The flag of Mauritania is...");
+i18n("world.kgm", "Nouakchott");
+i18n("world.kgm", "Nouakchott is the capital of...");
+i18n("world.kgm", "Morocco");
+i18n("world.kgm", "The capital of Morocco is...");
+i18n("world.kgm", "Please click on:\nMorocco");
+i18n("world.kgm", "The flag of Morocco is...");
+i18n("world.kgm", "Rabat");
+i18n("world.kgm", "Rabat is the capital of...");
+i18n("world.kgm", "Mozambique");
+i18n("world.kgm", "The capital of Mozambique is...");
+i18n("world.kgm", "Please click on:\nMozambique");
+i18n("world.kgm", "The flag of Mozambique is...");
+i18n("world.kgm", "Maputo");
+i18n("world.kgm", "Maputo is the capital of...");
+i18n("world.kgm", "Namibia");
+i18n("world.kgm", "The capital of Namibia is...");
+i18n("world.kgm", "Please click on:\nNamibia");
+i18n("world.kgm", "The flag of Namibia is...");
+i18n("world.kgm", "Windhoek");
+i18n("world.kgm", "Windhoek is the capital of...");
+i18n("world.kgm", "Niger");
+i18n("world.kgm", "The capital of Niger is...");
+i18n("world.kgm", "Please click on:\nNiger");
+i18n("world.kgm", "The flag of Niger is...");
+i18n("world.kgm", "Niamey");
+i18n("world.kgm", "Niamey is the capital of...");
+i18n("world.kgm", "Nigeria");
+i18n("world.kgm", "The capital of Nigeria is...");
+i18n("world.kgm", "Please click on:\nNigeria");
+i18n("world.kgm", "The flag of Nigeria is...");
+i18n("world.kgm", "Abuja");
+i18n("world.kgm", "Abuja is the capital of...");
+i18n("world.kgm", "Qatar");
+i18n("world.kgm", "The capital of Qatar is...");
+i18n("world.kgm", "Please click on:\nQatar");
+i18n("world.kgm", "The flag of Qatar is...");
+i18n("world.kgm", "Doha");
+i18n("world.kgm", "Doha is the capital of...");
+i18n("world.kgm", "Republic of the Congo");
+i18n("world.kgm", "The capital of Republic of the Congo is...");
+i18n("world.kgm", "Please click on:\nRepublic of the Congo");
+i18n("world.kgm", "The flag of Republic of the Congo is...");
+i18n("world.kgm", "Brazzaville");
+i18n("world.kgm", "Brazzaville is the capital of...");
+i18n("world.kgm", "Rwanda");
+i18n("world.kgm", "The capital of Rwanda is...");
+i18n("world.kgm", "Please click on:\nRwanda");
+i18n("world.kgm", "The flag of Rwanda is...");
+i18n("world.kgm", "Kigali");
+i18n("world.kgm", "Kigali is the capital of...");
+i18n("world.kgm", "Saudi Arabia");
+i18n("world.kgm", "The capital of Saudi Arabia is...");
+i18n("world.kgm", "Please click on:\nSaudi Arabia");
+i18n("world.kgm", "The flag of Saudi Arabia is...");
+i18n("world.kgm", "Riyadh");
+i18n("world.kgm", "Riyadh is the capital of...");
+i18n("world.kgm", "Senegal");
+i18n("world.kgm", "The capital of Senegal is...");
+i18n("world.kgm", "Please click on:\nSenegal");
+i18n("world.kgm", "The flag of Senegal is...");
+i18n("world.kgm", "Dakar");
+i18n("world.kgm", "Dakar is the capital of...");
+i18n("world.kgm", "Sierra Leone");
+i18n("world.kgm", "The capital of Sierra Leone is...");
+i18n("world.kgm", "Please click on:\nSierra Leone");
+i18n("world.kgm", "The flag of Sierra Leone is...");
+i18n("world.kgm", "Freetown");
+i18n("world.kgm", "Freetown is the capital of...");
+i18n("world.kgm", "Somalia");
+i18n("world.kgm", "The capital of Somalia is...");
+i18n("world.kgm", "Please click on:\nSomalia");
+i18n("world.kgm", "The flag of Somalia is...");
+i18n("world.kgm", "Mogadishu");
+i18n("world.kgm", "Mogadishu is the capital of...");
+i18n("world.kgm", "South Africa");
+i18n("world.kgm", "The capital of South Africa is...");
+i18n("world.kgm", "Please click on:\nSouth Africa");
+i18n("world.kgm", "The flag of South Africa is...");
+i18n("world.kgm", "Pretoria, Bloemfontein and Cape Town");
+i18n("world.kgm", "Pretoria, Bloemfontein and Cape Town is the capital of...");
+i18n("world.kgm", "Sudan");
+i18n("world.kgm", "The capital of Sudan is...");
+i18n("world.kgm", "Please click on:\nSudan");
+i18n("world.kgm", "The flag of Sudan is...");
+i18n("world.kgm", "Khartoum");
+i18n("world.kgm", "Khartoum is the capital of...");
+i18n("world.kgm", "Swaziland");
+i18n("world.kgm", "The capital of Swaziland is...");
+i18n("world.kgm", "Please click on:\nSwaziland");
+i18n("world.kgm", "The flag of Swaziland is...");
+i18n("world.kgm", "Mbabane");
+i18n("world.kgm", "Mbabane is the capital of...");
+i18n("world.kgm", "Syria");
+i18n("world.kgm", "The capital of Syria is...");
+i18n("world.kgm", "Please click on:\nSyria");
+i18n("world.kgm", "The flag of Syria is...");
+i18n("world.kgm", "Damascus");
+i18n("world.kgm", "Damascus is the capital of...");
+i18n("world.kgm", "Tanzania");
+i18n("world.kgm", "The capital of Tanzania is...");
+i18n("world.kgm", "Please click on:\nTanzania");
+i18n("world.kgm", "The flag of Tanzania is...");
+i18n("world.kgm", "Dodoma");
+i18n("world.kgm", "Dodoma is the capital of...");
+i18n("world.kgm", "The Gambia");
+i18n("world.kgm", "The capital of The Gambia is...");
+i18n("world.kgm", "Please click on:\nThe Gambia");
+i18n("world.kgm", "The flag of The Gambia is...");
+i18n("world.kgm", "Banjul");
+i18n("world.kgm", "Banjul is the capital of...");
+i18n("world.kgm", "Togo");
+i18n("world.kgm", "The capital of Togo is...");
+i18n("world.kgm", "Please click on:\nTogo");
+i18n("world.kgm", "The flag of Togo is...");
+i18n("world.kgm", "Lomé");
+i18n("world.kgm", "Lomé is the capital of...");
+i18n("world.kgm", "Tunisia");
+i18n("world.kgm", "The capital of Tunisia is...");
+i18n("world.kgm", "Please click on:\nTunisia");
+i18n("world.kgm", "The flag of Tunisia is...");
+i18n("world.kgm", "Tunis");
+i18n("world.kgm", "Tunis is the capital of...");
+i18n("world.kgm", "Uganda");
+i18n("world.kgm", "The capital of Uganda is...");
+i18n("world.kgm", "Please click on:\nUganda");
+i18n("world.kgm", "The flag of Uganda is...");
+i18n("world.kgm", "Kampala");
+i18n("world.kgm", "Kampala is the capital of...");
+i18n("world.kgm", "United Arab Emirates");
+i18n("world.kgm", "The capital of United Arab Emirates is...");
+i18n("world.kgm", "Please click on:\nUnited Arab Emirates");
+i18n("world.kgm", "The flag of United Arab Emirates is...");
+i18n("world.kgm", "Abu Dhabi City");
+i18n("world.kgm", "Abu Dhabi City is the capital of...");
+i18n("world.kgm", "Oman");
+i18n("world.kgm", "The capital of Oman is...");
+i18n("world.kgm", "Please click on:\nOman");
+i18n("world.kgm", "The flag of Oman is...");
+i18n("world.kgm", "Muscat");
+i18n("world.kgm", "Muscat is the capital of...");
+i18n("world.kgm", "West Bank");
+i18n("world.kgm", "Western Sahara");
+i18n("world.kgm", "The capital of Western Sahara is...");
+i18n("world.kgm", "Please click on:\nWestern Sahara");
+i18n("world.kgm", "The flag of Western Sahara is...");
+i18n("world.kgm", "Laayoune");
+i18n("world.kgm", "Laayoune is the capital of...");
+i18n("world.kgm", "Yemen");
+i18n("world.kgm", "The capital of Yemen is...");
+i18n("world.kgm", "Please click on:\nYemen");
+i18n("world.kgm", "The flag of Yemen is...");
+i18n("world.kgm", "Sana'a");
+i18n("world.kgm", "Sana'a is the capital of...");
+i18n("world.kgm", "Zambia");
+i18n("world.kgm", "The capital of Zambia is...");
+i18n("world.kgm", "Please click on:\nZambia");
+i18n("world.kgm", "The flag of Zambia is...");
+i18n("world.kgm", "Lusaka");
+i18n("world.kgm", "Lusaka is the capital of...");
+i18n("world.kgm", "Zimbabwe");
+i18n("world.kgm", "The capital of Zimbabwe is...");
+i18n("world.kgm", "Please click on:\nZimbabwe");
+i18n("world.kgm", "The flag of Zimbabwe is...");
+i18n("world.kgm", "Harare");
+i18n("world.kgm", "Harare is the capital of...");
+i18n("world.kgm", "Albania");
+i18n("world.kgm", "The capital of Albania is...");
+i18n("world.kgm", "Please click on:\nAlbania");
+i18n("world.kgm", "The flag of Albania is...");
+i18n("world.kgm", "Tirana");
+i18n("world.kgm", "Tirana is the capital of...");
+i18n("world.kgm", "Austria");
+i18n("world.kgm", "The capital of Austria is...");
+i18n("world.kgm", "Please click on:\nAustria");
+i18n("world.kgm", "The flag of Austria is...");
+i18n("world.kgm", "Vienna");
+i18n("world.kgm", "Vienna is the capital of...");
+i18n("world.kgm", "Belarus");
+i18n("world.kgm", "The capital of Belarus is...");
+i18n("world.kgm", "Please click on:\nBelarus");
+i18n("world.kgm", "The flag of Belarus is...");
+i18n("world.kgm", "Minsk");
+i18n("world.kgm", "Minsk is the capital of...");
+i18n("world.kgm", "Belgium");
+i18n("world.kgm", "The capital of Belgium is...");
+i18n("world.kgm", "Please click on:\nBelgium");
+i18n("world.kgm", "The flag of Belgium is...");
+i18n("world.kgm", "Brussels");
+i18n("world.kgm", "Brussels is the capital of...");
+i18n("world.kgm", "Bosnia and Herzegovina");
+i18n("world.kgm", "The capital of Bosnia and Herzegovina is...");
+i18n("world.kgm", "Please click on:\nBosnia and Herzegovina");
+i18n("world.kgm", "The flag of Bosnia and Herzegovina is...");
+i18n("world.kgm", "Sarajevo");
+i18n("world.kgm", "Sarajevo is the capital of...");
+i18n("world.kgm", "Bulgaria");
+i18n("world.kgm", "The capital of Bulgaria is...");
+i18n("world.kgm", "Please click on:\nBulgaria");
+i18n("world.kgm", "The flag of Bulgaria is...");
+i18n("world.kgm", "Sofia");
+i18n("world.kgm", "Sofia is the capital of...");
+i18n("world.kgm", "Croatia");
+i18n("world.kgm", "The capital of Croatia is...");
+i18n("world.kgm", "Please click on:\nCroatia");
+i18n("world.kgm", "The flag of Croatia is...");
+i18n("world.kgm", "Zagreb");
+i18n("world.kgm", "Zagreb is the capital of...");
+i18n("world.kgm", "Czech Republic");
+i18n("world.kgm", "The capital of Czech Republic is...");
+i18n("world.kgm", "Please click on:\nCzech Republic");
+i18n("world.kgm", "The flag of Czech Republic is...");
+i18n("world.kgm", "Prague");
+i18n("world.kgm", "Prague is the capital of...");
+i18n("world.kgm", "Denmark");
+i18n("world.kgm", "The capital of Denmark is...");
+i18n("world.kgm", "Please click on:\nDenmark");
+i18n("world.kgm", "The flag of Denmark is...");
+i18n("world.kgm", "Copenhagen");
+i18n("world.kgm", "Copenhagen is the capital of...");
+i18n("world.kgm", "Estonia");
+i18n("world.kgm", "The capital of Estonia is...");
+i18n("world.kgm", "Please click on:\nEstonia");
+i18n("world.kgm", "The flag of Estonia is...");
+i18n("world.kgm", "Tallinn");
+i18n("world.kgm", "Tallinn is the capital of...");
+i18n("world.kgm", "Finland");
+i18n("world.kgm", "The capital of Finland is...");
+i18n("world.kgm", "Please click on:\nFinland");
+i18n("world.kgm", "The flag of Finland is...");
+i18n("world.kgm", "Helsinki");
+i18n("world.kgm", "Helsinki is the capital of...");
+i18n("world.kgm", "Macedonia");
+i18n("world.kgm", "The capital of Macedonia is...");
+i18n("world.kgm", "Please click on:\nMacedonia");
+i18n("world.kgm", "The flag of Macedonia is...");
+i18n("world.kgm", "Skopje");
+i18n("world.kgm", "Skopje is the capital of...");
+i18n("world.kgm", "France");
+i18n("world.kgm", "The capital of France is...");
+i18n("world.kgm", "Please click on:\nFrance");
+i18n("world.kgm", "The flag of France is...");
+i18n("world.kgm", "Paris");
+i18n("world.kgm", "Paris is the capital of...");
+i18n("world.kgm", "Germany");
+i18n("world.kgm", "The capital of Germany is...");
+i18n("world.kgm", "Please click on:\nGermany");
+i18n("world.kgm", "The flag of Germany is...");
+i18n("world.kgm", "Berlin");
+i18n("world.kgm", "Berlin is the capital of...");
+i18n("world.kgm", "Greece");
+i18n("world.kgm", "The capital of Greece is...");
+i18n("world.kgm", "Please click on:\nGreece");
+i18n("world.kgm", "The flag of Greece is...");
+i18n("world.kgm", "Athens");
+i18n("world.kgm", "Athens is the capital of...");
+i18n("world.kgm", "Hungary");
+i18n("world.kgm", "The capital of Hungary is...");
+i18n("world.kgm", "Please click on:\nHungary");
+i18n("world.kgm", "The flag of Hungary is...");
+i18n("world.kgm", "Budapest");
+i18n("world.kgm", "Budapest is the capital of...");
+i18n("world.kgm", "Iceland");
+i18n("world.kgm", "The capital of Iceland is...");
+i18n("world.kgm", "Please click on:\nIceland");
+i18n("world.kgm", "The flag of Iceland is...");
+i18n("world.kgm", "Reykjavik");
+i18n("world.kgm", "Reykjavik is the capital of...");
+i18n("world.kgm", "Ireland");
+i18n("world.kgm", "The capital of Ireland is...");
+i18n("world.kgm", "Please click on:\nIreland");
+i18n("world.kgm", "The flag of Ireland is...");
+i18n("world.kgm", "Dublin");
+i18n("world.kgm", "Dublin is the capital of...");
+i18n("world.kgm", "Italy");
+i18n("world.kgm", "The capital of Italy is...");
+i18n("world.kgm", "Please click on:\nItaly");
+i18n("world.kgm", "The flag of Italy is...");
+i18n("world.kgm", "Rome");
+i18n("world.kgm", "Rome is the capital of...");
+i18n("world.kgm", "Latvia");
+i18n("world.kgm", "The capital of Latvia is...");
+i18n("world.kgm", "Please click on:\nLatvia");
+i18n("world.kgm", "The flag of Latvia is...");
+i18n("world.kgm", "Riga");
+i18n("world.kgm", "Riga is the capital of...");
+i18n("world.kgm", "Lithuania");
+i18n("world.kgm", "The capital of Lithuania is...");
+i18n("world.kgm", "Please click on:\nLithuania");
+i18n("world.kgm", "The flag of Lithuania is...");
+i18n("world.kgm", "Vilnius");
+i18n("world.kgm", "Vilnius is the capital of...");
+i18n("world.kgm", "Luxembourg");
+i18n("world.kgm", "The capital of Luxembourg is...");
+i18n("world.kgm", "Please click on:\nLuxembourg");
+i18n("world.kgm", "The flag of Luxembourg is...");
+i18n("world.kgm", "Luxembourg");
+i18n("world.kgm", "Luxembourg is the capital of...");
+i18n("world.kgm", "Moldova");
+i18n("world.kgm", "The capital of Moldova is...");
+i18n("world.kgm", "Please click on:\nMoldova");
+i18n("world.kgm", "The flag of Moldova is...");
+i18n("world.kgm", "Chisinau");
+i18n("world.kgm", "Chisinau is the capital of...");
+i18n("world.kgm", "Netherlands");
+i18n("world.kgm", "The capital of Netherlands is...");
+i18n("world.kgm", "Please click on:\nNetherlands");
+i18n("world.kgm", "The flag of Netherlands is...");
+i18n("world.kgm", "Amsterdam");
+i18n("world.kgm", "Amsterdam is the capital of...");
+i18n("world.kgm", "Norway");
+i18n("world.kgm", "The capital of Norway is...");
+i18n("world.kgm", "Please click on:\nNorway");
+i18n("world.kgm", "The flag of Norway is...");
+i18n("world.kgm", "Oslo");
+i18n("world.kgm", "Oslo is the capital of...");
+i18n("world.kgm", "Poland");
+i18n("world.kgm", "The capital of Poland is...");
+i18n("world.kgm", "Please click on:\nPoland");
+i18n("world.kgm", "The flag of Poland is...");
+i18n("world.kgm", "Warsaw");
+i18n("world.kgm", "Warsaw is the capital of...");
+i18n("world.kgm", "Portugal");
+i18n("world.kgm", "The capital of Portugal is...");
+i18n("world.kgm", "Please click on:\nPortugal");
+i18n("world.kgm", "The flag of Portugal is...");
+i18n("world.kgm", "Lisbon");
+i18n("world.kgm", "Lisbon is the capital of...");
+i18n("world.kgm", "Romania");
+i18n("world.kgm", "The capital of Romania is...");
+i18n("world.kgm", "Please click on:\nRomania");
+i18n("world.kgm", "The flag of Romania is...");
+i18n("world.kgm", "Bucharest");
+i18n("world.kgm", "Bucharest is the capital of...");
+i18n("world.kgm", "Russia");
+i18n("world.kgm", "The capital of Russia is...");
+i18n("world.kgm", "Please click on:\nRussia");
+i18n("world.kgm", "The flag of Russia is...");
+i18n("world.kgm", "Moscow");
+i18n("world.kgm", "Moscow is the capital of...");
+i18n("world.kgm", "San Marino");
+i18n("world.kgm", "The capital of San Marino is...");
+i18n("world.kgm", "Please click on:\nSan Marino");
+i18n("world.kgm", "The flag of San Marino is...");
+i18n("world.kgm", "San Marino");
+i18n("world.kgm", "San Marino is the capital of...");
+i18n("world.kgm", "Serbia");
+i18n("world.kgm", "The capital of Serbia is...");
+i18n("world.kgm", "Please click on:\nSerbia");
+i18n("world.kgm", "The flag of Serbia is...");
+i18n("world.kgm", "Belgrade");
+i18n("world.kgm", "Belgrade is the capital of...");
+i18n("world.kgm", "Montenegro");
+i18n("world.kgm", "The capital of Montenegro is...");
+i18n("world.kgm", "Please click on:\nMontenegro");
+i18n("world.kgm", "The flag of Montenegro is...");
+i18n("world.kgm", "Podgorica");
+i18n("world.kgm", "Podgorica is the capital of...");
+i18n("world.kgm", "Slovakia");
+i18n("world.kgm", "The capital of Slovakia is...");
+i18n("world.kgm", "Please click on:\nSlovakia");
+i18n("world.kgm", "The flag of Slovakia is...");
+i18n("world.kgm", "Bratislava");
+i18n("world.kgm", "Bratislava is the capital of...");
+i18n("world.kgm", "Slovenia");
+i18n("world.kgm", "The capital of Slovenia is...");
+i18n("world.kgm", "Please click on:\nSlovenia");
+i18n("world.kgm", "The flag of Slovenia is...");
+i18n("world.kgm", "Ljubljana");
+i18n("world.kgm", "Ljubljana is the capital of...");
+i18n("world.kgm", "Spain");
+i18n("world.kgm", "The capital of Spain is...");
+i18n("world.kgm", "Please click on:\nSpain");
+i18n("world.kgm", "The flag of Spain is...");
+i18n("world.kgm", "Madrid");
+i18n("world.kgm", "Madrid is the capital of...");
+i18n("world.kgm", "Sweden");
+i18n("world.kgm", "The capital of Sweden is...");
+i18n("world.kgm", "Please click on:\nSweden");
+i18n("world.kgm", "The flag of Sweden is...");
+i18n("world.kgm", "Stockholm");
+i18n("world.kgm", "Stockholm is the capital of...");
+i18n("world.kgm", "Switzerland");
+i18n("world.kgm", "The capital of Switzerland is...");
+i18n("world.kgm", "Please click on:\nSwitzerland");
+i18n("world.kgm", "The flag of Switzerland is...");
+i18n("world.kgm", "Bern");
+i18n("world.kgm", "Bern is the capital of...");
+i18n("world.kgm", "Turkey");
+i18n("world.kgm", "The capital of Turkey is...");
+i18n("world.kgm", "Please click on:\nTurkey");
+i18n("world.kgm", "The flag of Turkey is...");
+i18n("world.kgm", "Ankara");
+i18n("world.kgm", "Ankara is the capital of...");
+i18n("world.kgm", "Ukraine");
+i18n("world.kgm", "The capital of Ukraine is...");
+i18n("world.kgm", "Please click on:\nUkraine");
+i18n("world.kgm", "The flag of Ukraine is...");
+i18n("world.kgm", "Kiev");
+i18n("world.kgm", "Kiev is the capital of...");
+i18n("world.kgm", "United Kingdom");
+i18n("world.kgm", "The capital of United Kingdom is...");
+i18n("world.kgm", "Please click on:\nUnited Kingdom");
+i18n("world.kgm", "The flag of United Kingdom is...");
+i18n("world.kgm", "London");
+i18n("world.kgm", "London is the capital of...");
+i18n("world.kgm", "Canada");
+i18n("world.kgm", "The capital of Canada is...");
+i18n("world.kgm", "Please click on:\nCanada");
+i18n("world.kgm", "The flag of Canada is...");
+i18n("world.kgm", "Ottawa");
+i18n("world.kgm", "Ottawa is the capital of...");
+i18n("world.kgm", "El Salvador");
+i18n("world.kgm", "The capital of El Salvador is...");
+i18n("world.kgm", "Please click on:\nEl Salvador");
+i18n("world.kgm", "The flag of El Salvador is...");
+i18n("world.kgm", "San Salvador");
+i18n("world.kgm", "San Salvador is the capital of...");
+i18n("world.kgm", "The United States of America");
+i18n("world.kgm", "The capital of The United States of America is...");
+i18n("world.kgm", "Please click on:\nThe United States of America");
+i18n("world.kgm", "The flag of The United States of America is...");
+i18n("world.kgm", "Washington D.C.");
+i18n("world.kgm", "Washington D.C. is the capital of...");
+i18n("world.kgm", "The Bahamas");
+i18n("world.kgm", "The capital of The Bahamas is...");
+i18n("world.kgm", "Please click on:\nThe Bahamas");
+i18n("world.kgm", "The flag of The Bahamas is...");
+i18n("world.kgm", "Nassau");
+i18n("world.kgm", "Nassau is the capital of...");
+i18n("world.kgm", "The Dominican Republic");
+i18n("world.kgm", "The capital of The Dominican Republic is...");
+i18n("world.kgm", "Please click on:\nThe Dominican Republic");
+i18n("world.kgm", "The flag of The Dominican Republic is...");
+i18n("world.kgm", "Santo Domingo");
+i18n("world.kgm", "Santo Domingo is the capital of...");
+i18n("world.kgm", "Haiti");
+i18n("world.kgm", "The capital of Haiti is...");
+i18n("world.kgm", "Please click on:\nHaiti");
+i18n("world.kgm", "The flag of Haiti is...");
+i18n("world.kgm", "Port-au-Prince");
+i18n("world.kgm", "Port-au-Prince is the capital of...");
+i18n("world.kgm", "Cuba");
+i18n("world.kgm", "The capital of Cuba is...");
+i18n("world.kgm", "Please click on:\nCuba");
+i18n("world.kgm", "The flag of Cuba is...");
+i18n("world.kgm", "Havana");
+i18n("world.kgm", "Havana is the capital of...");
+i18n("world.kgm", "Jamaica");
+i18n("world.kgm", "The capital of Jamaica is...");
+i18n("world.kgm", "Please click on:\nJamaica");
+i18n("world.kgm", "The flag of Jamaica is...");
+i18n("world.kgm", "Kingston");
+i18n("world.kgm", "Kingston is the capital of...");
+i18n("world.kgm", "Dominica");
+i18n("world.kgm", "The capital of Dominica is...");
+i18n("world.kgm", "Please click on:\nDominica");
+i18n("world.kgm", "The flag of Dominica is...");
+i18n("world.kgm", "Roseau");
+i18n("world.kgm", "Roseau is the capital of...");
+i18n("world.kgm", "Barbados");
+i18n("world.kgm", "The capital of Barbados is...");
+i18n("world.kgm", "Please click on:\nBarbados");
+i18n("world.kgm", "The flag of Barbados is...");
+i18n("world.kgm", "Bridgetown");
+i18n("world.kgm", "Bridgetown is the capital of...");
+i18n("world.kgm", "Antigua and Barbuda");
+i18n("world.kgm", "The capital of Antigua and Barbuda is...");
+i18n("world.kgm", "Please click on:\nAntigua and Barbuda");
+i18n("world.kgm", "The flag of Antigua and Barbuda is...");
+i18n("world.kgm", "St. John's");
+i18n("world.kgm", "St. John's is the capital of...");
+i18n("world.kgm", "Trinidad and Tobago");
+i18n("world.kgm", "The capital of Trinidad and Tobago is...");
+i18n("world.kgm", "Please click on:\nTrinidad and Tobago");
+i18n("world.kgm", "The flag of Trinidad and Tobago is...");
+i18n("world.kgm", "Port of Spain");
+i18n("world.kgm", "Port of Spain is the capital of...");
+i18n("world.kgm", "Mexico");
+i18n("world.kgm", "The capital of Mexico is...");
+i18n("world.kgm", "Please click on:\nMexico");
+i18n("world.kgm", "The flag of Mexico is...");
+i18n("world.kgm", "Mexico City");
+i18n("world.kgm", "Mexico City is the capital of...");
+i18n("world.kgm", "Guatemala");
+i18n("world.kgm", "The capital of Guatemala is...");
+i18n("world.kgm", "Please click on:\nGuatemala");
+i18n("world.kgm", "The flag of Guatemala is...");
+i18n("world.kgm", "Guatemala City");
+i18n("world.kgm", "Guatemala City is the capital of...");
+i18n("world.kgm", "Belize");
+i18n("world.kgm", "The capital of Belize is...");
+i18n("world.kgm", "Please click on:\nBelize");
+i18n("world.kgm", "The flag of Belize is...");
+i18n("world.kgm", "Belmopan");
+i18n("world.kgm", "Belmopan is the capital of...");
+i18n("world.kgm", "Honduras");
+i18n("world.kgm", "The capital of Honduras is...");
+i18n("world.kgm", "Please click on:\nHonduras");
+i18n("world.kgm", "The flag of Honduras is...");
+i18n("world.kgm", "Tegucigalpa");
+i18n("world.kgm", "Tegucigalpa is the capital of...");
+i18n("world.kgm", "Nicaragua");
+i18n("world.kgm", "The capital of Nicaragua is...");
+i18n("world.kgm", "Please click on:\nNicaragua");
+i18n("world.kgm", "The flag of Nicaragua is...");
+i18n("world.kgm", "Managua");
+i18n("world.kgm", "Managua is the capital of...");
+i18n("world.kgm", "Costa Rica");
+i18n("world.kgm", "The capital of Costa Rica is...");
+i18n("world.kgm", "Please click on:\nCosta Rica");
+i18n("world.kgm", "The flag of Costa Rica is...");
+i18n("world.kgm", "San José");
+i18n("world.kgm", "San José is the capital of...");
+i18n("world.kgm", "Panama");
+i18n("world.kgm", "The capital of Panama is...");
+i18n("world.kgm", "Please click on:\nPanama");
+i18n("world.kgm", "The flag of Panama is...");
+i18n("world.kgm", "Panama City");
+i18n("world.kgm", "Panama City is the capital of...");
+i18n("world.kgm", "Colombia");
+i18n("world.kgm", "The capital of Colombia is...");
+i18n("world.kgm", "Please click on:\nColombia");
+i18n("world.kgm", "The flag of Colombia is...");
+i18n("world.kgm", "Bogotá");
+i18n("world.kgm", "Bogotá is the capital of...");
+i18n("world.kgm", "Venezuela");
+i18n("world.kgm", "The capital of Venezuela is...");
+i18n("world.kgm", "Please click on:\nVenezuela");
+i18n("world.kgm", "The flag of Venezuela is...");
+i18n("world.kgm", "Caracas");
+i18n("world.kgm", "Caracas is the capital of...");
+i18n("world.kgm", "Guyana");
+i18n("world.kgm", "The capital of Guyana is...");
+i18n("world.kgm", "Please click on:\nGuyana");
+i18n("world.kgm", "The flag of Guyana is...");
+i18n("world.kgm", "Georgetown");
+i18n("world.kgm", "Georgetown is the capital of...");
+i18n("world.kgm", "Suriname");
+i18n("world.kgm", "The capital of Suriname is...");
+i18n("world.kgm", "Please click on:\nSuriname");
+i18n("world.kgm", "The flag of Suriname is...");
+i18n("world.kgm", "Paramaribo");
+i18n("world.kgm", "Paramaribo is the capital of...");
+i18n("world.kgm", "French Guiana");
+i18n("world.kgm", "The capital of French Guiana is...");
+i18n("world.kgm", "Please click on:\nFrench Guiana");
+i18n("world.kgm", "The flag of French Guiana is...");
+i18n("world.kgm", "Cayenne");
+i18n("world.kgm", "Cayenne is the capital of...");
+i18n("world.kgm", "Ecuador");
+i18n("world.kgm", "The capital of Ecuador is...");
+i18n("world.kgm", "Please click on:\nEcuador");
+i18n("world.kgm", "The flag of Ecuador is...");
+i18n("world.kgm", "Quito");
+i18n("world.kgm", "Quito is the capital of...");
+i18n("world.kgm", "Peru");
+i18n("world.kgm", "The capital of Peru is...");
+i18n("world.kgm", "Please click on:\nPeru");
+i18n("world.kgm", "The flag of Peru is...");
+i18n("world.kgm", "Lima");
+i18n("world.kgm", "Lima is the capital of...");
+i18n("world.kgm", "Brazil");
+i18n("world.kgm", "The capital of Brazil is...");
+i18n("world.kgm", "Please click on:\nBrazil");
+i18n("world.kgm", "The flag of Brazil is...");
+i18n("world.kgm", "Brasilia");
+i18n("world.kgm", "Brasilia is the capital of...");
+i18n("world.kgm", "Bolivia");
+i18n("world.kgm", "The capital of Bolivia is...");
+i18n("world.kgm", "Please click on:\nBolivia");
+i18n("world.kgm", "The flag of Bolivia is...");
+i18n("world.kgm", "La Paz");
+i18n("world.kgm", "La Paz is the capital of...");
+i18n("world.kgm", "Chile");
+i18n("world.kgm", "The capital of Chile is...");
+i18n("world.kgm", "Please click on:\nChile");
+i18n("world.kgm", "The flag of Chile is...");
+i18n("world.kgm", "Santiago");
+i18n("world.kgm", "Santiago is the capital of...");
+i18n("world.kgm", "Paraguay");
+i18n("world.kgm", "The capital of Paraguay is...");
+i18n("world.kgm", "Please click on:\nParaguay");
+i18n("world.kgm", "The flag of Paraguay is...");
+i18n("world.kgm", "Asunción");
+i18n("world.kgm", "Asunción is the capital of...");
+i18n("world.kgm", "Argentina");
+i18n("world.kgm", "The capital of Argentina is...");
+i18n("world.kgm", "Please click on:\nArgentina");
+i18n("world.kgm", "The flag of Argentina is...");
+i18n("world.kgm", "Buenos Aires");
+i18n("world.kgm", "Buenos Aires is the capital of...");
+i18n("world.kgm", "Uruguay");
+i18n("world.kgm", "The capital of Uruguay is...");
+i18n("world.kgm", "Please click on:\nUruguay");
+i18n("world.kgm", "The flag of Uruguay is...");
+i18n("world.kgm", "Montevideo");
+i18n("world.kgm", "Montevideo is the capital of...");
+i18n("world.kgm", "Australia");
+i18n("world.kgm", "The capital of Australia is...");
+i18n("world.kgm", "Please click on:\nAustralia");
+i18n("world.kgm", "The flag of Australia is...");
+i18n("world.kgm", "Canberra");
+i18n("world.kgm", "Canberra is the capital of...");
+i18n("world.kgm", "New Zealand");
+i18n("world.kgm", "The capital of New Zealand is...");
+i18n("world.kgm", "Please click on:\nNew Zealand");
+i18n("world.kgm", "The flag of New Zealand is...");
+i18n("world.kgm", "Wellington");
+i18n("world.kgm", "Wellington is the capital of...");
+i18n("world.kgm", "Vatican City");
+i18n("world.kgm", "The capital of Vatican City is...");
+i18n("world.kgm", "Please click on:\nVatican City");
+i18n("world.kgm", "The flag of Vatican City is...");
+i18n("world.kgm", "Vatican City");
+i18n("world.kgm", "Vatican City is the capital of...");
+i18n("world.kgm", "Andorra");
+i18n("world.kgm", "The capital of Andorra is...");
+i18n("world.kgm", "Please click on:\nAndorra");
+i18n("world.kgm", "The flag of Andorra is...");
+i18n("world.kgm", "Andorra la Vella");
+i18n("world.kgm", "Andorra la Vella is the capital of...");
+i18n("world.kgm", "Monaco");
+i18n("world.kgm", "The capital of Monaco is...");
+i18n("world.kgm", "Please click on:\nMonaco");
+i18n("world.kgm", "The flag of Monaco is...");
+i18n("world.kgm", "Monaco-Ville");
+i18n("world.kgm", "Monaco-Ville is the capital of...");
+i18n("world.kgm", "China");
+i18n("world.kgm", "The capital of China is...");
+i18n("world.kgm", "Please click on:\nChina");
+i18n("world.kgm", "The flag of China is...");
+i18n("world.kgm", "Beijing");
+i18n("world.kgm", "Beijing is the capital of...");
+i18n("world.kgm", "India");
+i18n("world.kgm", "The capital of India is...");
+i18n("world.kgm", "Please click on:\nIndia");
+i18n("world.kgm", "The flag of India is...");
+i18n("world.kgm", "New Delhi");
+i18n("world.kgm", "New Delhi is the capital of...");
+i18n("world.kgm", "Sri Lanka");
+i18n("world.kgm", "The capital of Sri Lanka is...");
+i18n("world.kgm", "Please click on:\nSri Lanka");
+i18n("world.kgm", "The flag of Sri Lanka is...");
+i18n("world.kgm", "Colombo and Sri Jayewardenepura");
+i18n("world.kgm", "Colombo and Sri Jayewardenepura is the capital of...");
+i18n("world.kgm", "Mongolia");
+i18n("world.kgm", "The capital of Mongolia is...");
+i18n("world.kgm", "Please click on:\nMongolia");
+i18n("world.kgm", "The flag of Mongolia is...");
+i18n("world.kgm", "Ulaanbaatar");
+i18n("world.kgm", "Ulaanbaatar is the capital of...");
+i18n("world.kgm", "Kazakhstan");
+i18n("world.kgm", "The capital of Kazakhstan is...");
+i18n("world.kgm", "Please click on:\nKazakhstan");
+i18n("world.kgm", "The flag of Kazakhstan is...");
+i18n("world.kgm", "Astana");
+i18n("world.kgm", "Astana is the capital of...");
+i18n("world.kgm", "Japan");
+i18n("world.kgm", "The capital of Japan is...");
+i18n("world.kgm", "Please click on:\nJapan");
+i18n("world.kgm", "The flag of Japan is...");
+i18n("world.kgm", "Tokyo");
+i18n("world.kgm", "Tokyo is the capital of...");
+i18n("world.kgm", "Myanmar");
+i18n("world.kgm", "The capital of Myanmar is...");
+i18n("world.kgm", "Please click on:\nMyanmar");
+i18n("world.kgm", "The flag of Myanmar is...");
+i18n("world.kgm", "Naypyidaw");
+i18n("world.kgm", "Naypyidaw is the capital of...");
+i18n("world.kgm", "Nepal");
+i18n("world.kgm", "The capital of Nepal is...");
+i18n("world.kgm", "Please click on:\nNepal");
+i18n("world.kgm", "The flag of Nepal is...");
+i18n("world.kgm", "Kathmandu");
+i18n("world.kgm", "Kathmandu is the capital of...");
+i18n("world.kgm", "Bhutan");
+i18n("world.kgm", "The capital of Bhutan is...");
+i18n("world.kgm", "Please click on:\nBhutan");
+i18n("world.kgm", "The flag of Bhutan is...");
+i18n("world.kgm", "Thimphu");
+i18n("world.kgm", "Thimphu is the capital of...");
+i18n("world.kgm", "Indonesia");
+i18n("world.kgm", "The capital of Indonesia is...");
+i18n("world.kgm", "Please click on:\nIndonesia");
+i18n("world.kgm", "The flag of Indonesia is...");
+i18n("world.kgm", "Jakarta");
+i18n("world.kgm", "Jakarta is the capital of...");
+i18n("world.kgm", "Malaysia");
+i18n("world.kgm", "The capital of Malaysia is...");
+i18n("world.kgm", "Please click on:\nMalaysia");
+i18n("world.kgm", "The flag of Malaysia is...");
+i18n("world.kgm", "Kuala Lumpur");
+i18n("world.kgm", "Kuala Lumpur is the capital of...");
+i18n("world.kgm", "Bangladesh");
+i18n("world.kgm", "The capital of Bangladesh is...");
+i18n("world.kgm", "Please click on:\nBangladesh");
+i18n("world.kgm", "The flag of Bangladesh is...");
+i18n("world.kgm", "Dhaka");
+i18n("world.kgm", "Dhaka is the capital of...");
+i18n("world.kgm", "Cyprus");
+i18n("world.kgm", "The capital of Cyprus is...");
+i18n("world.kgm", "Please click on:\nCyprus");
+i18n("world.kgm", "The flag of Cyprus is...");
+i18n("world.kgm", "Nicosia");
+i18n("world.kgm", "Nicosia is the capital of...");
+i18n("world.kgm", "Afghanistan");
+i18n("world.kgm", "The capital of Afghanistan is...");
+i18n("world.kgm", "Please click on:\nAfghanistan");
+i18n("world.kgm", "The flag of Afghanistan is...");
+i18n("world.kgm", "Kabul");
+i18n("world.kgm", "Kabul is the capital of...");
+i18n("world.kgm", "Azerbaijan");
+i18n("world.kgm", "The capital of Azerbaijan is...");
+i18n("world.kgm", "Please click on:\nAzerbaijan");
+i18n("world.kgm", "The flag of Azerbaijan is...");
+i18n("world.kgm", "Baku");
+i18n("world.kgm", "Baku is the capital of...");
+i18n("world.kgm", "Armenia");
+i18n("world.kgm", "The capital of Armenia is...");
+i18n("world.kgm", "Please click on:\nArmenia");
+i18n("world.kgm", "The flag of Armenia is...");
+i18n("world.kgm", "Yerevan");
+i18n("world.kgm", "Yerevan is the capital of...");
+i18n("world.kgm", "Bahrain");
+i18n("world.kgm", "The capital of Bahrain is...");
+i18n("world.kgm", "Please click on:\nBahrain");
+i18n("world.kgm", "The flag of Bahrain is...");
+i18n("world.kgm", "Manama");
+i18n("world.kgm", "Manama is the capital of...");
+i18n("world.kgm", "Georgia");
+i18n("world.kgm", "The capital of Georgia is...");
+i18n("world.kgm", "Please click on:\nGeorgia");
+i18n("world.kgm", "The flag of Georgia is...");
+i18n("world.kgm", "Tbilisi");
+i18n("world.kgm", "Tbilisi is the capital of...");
+i18n("world.kgm", "Turkmenistan");
+i18n("world.kgm", "The capital of Turkmenistan is...");
+i18n("world.kgm", "Please click on:\nTurkmenistan");
+i18n("world.kgm", "The flag of Turkmenistan is...");
+i18n("world.kgm", "Ashgabat");
+i18n("world.kgm", "Ashgabat is the capital of...");
+i18n("world.kgm", "Uzbekistan");
+i18n("world.kgm", "The capital of Uzbekistan is...");
+i18n("world.kgm", "Please click on:\nUzbekistan");
+i18n("world.kgm", "The flag of Uzbekistan is...");
+i18n("world.kgm", "Tashkent");
+i18n("world.kgm", "Tashkent is the capital of...");
+i18n("world.kgm", "Kyrgyzstan");
+i18n("world.kgm", "The capital of Kyrgyzstan is...");
+i18n("world.kgm", "Please click on:\nKyrgyzstan");
+i18n("world.kgm", "The flag of Kyrgyzstan is...");
+i18n("world.kgm", "Bishkek");
+i18n("world.kgm", "Bishkek is the capital of...");
+i18n("world.kgm", "Tajikistan");
+i18n("world.kgm", "The capital of Tajikistan is...");
+i18n("world.kgm", "Please click on:\nTajikistan");
+i18n("world.kgm", "The flag of Tajikistan is...");
+i18n("world.kgm", "Dushanbe");
+i18n("world.kgm", "Dushanbe is the capital of...");
+i18n("world.kgm", "Pakistan");
+i18n("world.kgm", "The capital of Pakistan is...");
+i18n("world.kgm", "Please click on:\nPakistan");
+i18n("world.kgm", "The flag of Pakistan is...");
+i18n("world.kgm", "Islamabad");
+i18n("world.kgm", "Islamabad is the capital of...");
+i18n("world.kgm", "Laos");
+i18n("world.kgm", "The capital of Laos is...");
+i18n("world.kgm", "Please click on:\nLaos");
+i18n("world.kgm", "The flag of Laos is...");
+i18n("world.kgm", "Vientiane");
+i18n("world.kgm", "Vientiane is the capital of...");
+i18n("world.kgm", "Cambodia");
+i18n("world.kgm", "The capital of Cambodia is...");
+i18n("world.kgm", "Please click on:\nCambodia");
+i18n("world.kgm", "The flag of Cambodia is...");
+i18n("world.kgm", "Phnom Penh");
+i18n("world.kgm", "Phnom Penh is the capital of...");
+i18n("world.kgm", "East Timor");
+i18n("world.kgm", "The capital of East Timor is...");
+i18n("world.kgm", "Please click on:\nEast Timor");
+i18n("world.kgm", "The flag of East Timor is...");
+i18n("world.kgm", "Dili");
+i18n("world.kgm", "Dili is the capital of...");
+i18n("world.kgm", "Brunei");
+i18n("world.kgm", "The capital of Brunei is...");
+i18n("world.kgm", "Please click on:\nBrunei");
+i18n("world.kgm", "The flag of Brunei is...");
+i18n("world.kgm", "Bandar Seri Begawan");
+i18n("world.kgm", "Bandar Seri Begawan is the capital of...");
+i18n("world.kgm", "Philippines");
+i18n("world.kgm", "The capital of Philippines is...");
+i18n("world.kgm", "Please click on:\nPhilippines");
+i18n("world.kgm", "The flag of Philippines is...");
+i18n("world.kgm", "Manila");
+i18n("world.kgm", "Manila is the capital of...");
+i18n("world.kgm", "Thailand");
+i18n("world.kgm", "The capital of Thailand is...");
+i18n("world.kgm", "Please click on:\nThailand");
+i18n("world.kgm", "The flag of Thailand is...");
+i18n("world.kgm", "Bangkok");
+i18n("world.kgm", "Bangkok is the capital of...");
+i18n("world.kgm", "Vietnam");
+i18n("world.kgm", "The capital of Vietnam is...");
+i18n("world.kgm", "Please click on:\nVietnam");
+i18n("world.kgm", "The flag of Vietnam is...");
+i18n("world.kgm", "Hanoi");
+i18n("world.kgm", "Hanoi is the capital of...");
+i18n("world.kgm", "Republic of China (Taiwan)");
+i18n("world.kgm", "The capital of Republic of China (Taiwan) is...");
+i18n("world.kgm", "Please click on:\nRepublic of China (Taiwan)");
+i18n("world.kgm", "The flag of Republic of China (Taiwan) is...");
+i18n("world.kgm", "Taipei");
+i18n("world.kgm", "Taipei is the capital of...");
+i18n("world.kgm", "Singapore");
+i18n("world.kgm", "The capital of Singapore is...");
+i18n("world.kgm", "Please click on:\nSingapore");
+i18n("world.kgm", "The flag of Singapore is...");
+i18n("world.kgm", "Singapore");
+i18n("world.kgm", "Singapore is the capital of...");
+i18n("world.kgm", "Democratic People's Republic of Korea");
+i18n("world.kgm", "The capital of Democratic People's Republic of Korea is...");
+i18n("world.kgm", "Please click on:\nDemocratic People's Republic of Korea");
+i18n("world.kgm", "The flag of Democratic People's Republic of Korea is...");
+i18n("world.kgm", "Pyeongyang");
+i18n("world.kgm", "Pyeongyang is the capital of...");
+i18n("world.kgm", "Republic of Korea");
+i18n("world.kgm", "The capital of Republic of Korea is...");
+i18n("world.kgm", "Please click on:\nRepublic of Korea");
+i18n("world.kgm", "The flag of Republic of Korea is...");
+i18n("world.kgm", "Seoul");
+i18n("world.kgm", "Seoul is the capital of...");
+i18n("world.kgm", "Fiji");
+i18n("world.kgm", "The capital of Fiji is...");
+i18n("world.kgm", "Please click on:\nFiji");
+i18n("world.kgm", "The flag of Fiji is...");
+i18n("world.kgm", "Suva");
+i18n("world.kgm", "Suva is the capital of...");
+i18n("world.kgm", "Tonga");
+i18n("world.kgm", "The capital of Tonga is...");
+i18n("world.kgm", "Please click on:\nTonga");
+i18n("world.kgm", "The flag of Tonga is...");
+i18n("world.kgm", "Nuku'alofa");
+i18n("world.kgm", "Nuku'alofa is the capital of...");
+i18n("world.kgm", "Papua New Guinea");
+i18n("world.kgm", "The capital of Papua New Guinea is...");
+i18n("world.kgm", "Please click on:\nPapua New Guinea");
+i18n("world.kgm", "The flag of Papua New Guinea is...");
+i18n("world.kgm", "Port Moresby");
+i18n("world.kgm", "Port Moresby is the capital of...");
+i18n("world.kgm", "Greenland (Denmark)");
+i18n("world.kgm", "The capital of Greenland (Denmark) is...");
+i18n("world.kgm", "Please click on:\nGreenland (Denmark)");
+i18n("world.kgm", "The flag of Greenland (Denmark) is...");
+i18n("world.kgm", "Nuuk");
+i18n("world.kgm", "Nuuk is the capital of...");
diff --git a/kgeography/src/mapwidget.cpp b/kgeography/src/mapwidget.cpp
new file mode 100644
index 00000000..754179ef
--- /dev/null
+++ b/kgeography/src/mapwidget.cpp
@@ -0,0 +1,332 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include <math.h> // for rint
+#include <stdlib.h>
+
+#include <kapplication.h>
+#include <klocale.h>
+
+#include <qcursor.h>
+#include <qpainter.h>
+
+#include "mapwidget.h"
+
+mapWidget::mapWidget(QWidget *parent) : QWidget(parent)
+{
+ p_wantZoom = false;
+ p_zooming = false;
+ p_wantMove = false;
+ p_moving = false;
+ p_zoomW = 0;
+ p_zoomH = 0;
+ p_scrollBarWidth = 0;
+ p_scrollBarHeight = 0;
+ p_scrollBarsVisible = 0;
+}
+
+void mapWidget::init(const QString &path, int scrollBarWidth, int scrollBarHeight)
+{
+ p_scrollBarWidth = scrollBarWidth;
+ p_scrollBarHeight = scrollBarHeight;
+ p_originalImage.load(path);
+ emit updateMaximumSize(p_originalImage.width(), p_originalImage.height());
+ setOriginalImage();
+}
+
+void mapWidget::setMapMove(bool b)
+{
+ p_wantMove = b;
+ if (b)
+ {
+ emit setZoomActionChecked(false);
+ p_wantZoom = false;
+ }
+}
+
+void mapWidget::setMapZoom(bool b)
+{
+ p_wantZoom = b;
+ if (b)
+ {
+ emit setMoveActionChecked(false);
+ p_wantMove = false;
+ }
+}
+
+QSize mapWidget::sizeHint() const
+{
+ return maximumSize();
+}
+
+void mapWidget::updateHPosition(int value)
+{
+ p_zoomX = value;
+ updateShownImage();
+}
+
+void mapWidget::updateVPosition(int value)
+{
+ p_zoomY = value;
+ updateShownImage();
+}
+
+void mapWidget::mousePressEvent(QMouseEvent *e)
+{
+ if (e -> button() == Qt::LeftButton)
+ {
+ if (p_wantZoom)
+ {
+ p_initial = e -> pos();
+ p_prev = e -> pos();
+ p_zooming = true;
+ }
+ else if (p_wantMove)
+ {
+ p_initial = e -> pos();
+ setCursor(Qt::SizeAllCursor);
+ p_moving = true;
+ }
+ else
+ {
+ QRgb rgb;
+ QImage *currentImage;
+
+ currentImage = getCurrentImage();
+
+ rgb = currentImage -> pixel(e -> x(), e -> y());
+ emit clicked(rgb, e -> pos());
+ }
+ }
+ else
+ {
+ if (p_wantZoom)
+ {
+ setOriginalImage();
+ }
+ else e->ignore(); // that makes the event go to mapasker and clear the popup
+ }
+}
+
+void mapWidget::mouseMoveEvent(QMouseEvent *e)
+{
+ if (p_zooming)
+ {
+ QPainter p(this);
+
+ p.setRasterOp(Qt::XorROP);
+ p.setPen(QPen(Qt::white, 1, Qt::DotLine));
+
+ // remove previous rectangle
+ p.drawRect(QRect(p_initial, p_prev));
+ // put new rectangle
+ p.drawRect(QRect(p_initial, e -> pos()));
+
+ p_prev = e -> pos();
+ }
+ else if (p_moving)
+ {
+ int oW, oH;
+ int auxX, auxY;
+ bool updatePos = false;
+
+ // some shortcuts :-D
+ oW = p_originalImage.width();
+ oH = p_originalImage.height();
+
+ // where next x and y will be
+ auxX = (int) ((p_initial.x() - e -> pos().x()) * p_lastFactorX);
+ if (abs(auxX) > 0)
+ {
+ p_zoomX += auxX;
+ updatePos = true;
+ }
+
+ auxY = (int) ((p_initial.y() - e -> pos().y()) * p_lastFactorY);
+ if (abs(auxY) > 0)
+ {
+ p_zoomY += auxY;
+ updatePos = true;
+ }
+
+ // make sure we don't go out of bounds
+ if (p_zoomX < 0) p_zoomX = 0;
+ if (p_zoomY < 0) p_zoomY = 0;
+ if (p_zoomX > oW - width() * p_lastFactorX) p_zoomX = (int)rint(oW - width() * p_lastFactorX);
+ if (p_zoomY > oH - height() * p_lastFactorY) p_zoomY = (int)rint(oH - height() * p_lastFactorY);
+
+ if (updatePos) p_initial = e -> pos();
+
+ updateShownImage();
+ emit updatePosition(p_zoomX, p_zoomY);
+ }
+}
+
+void mapWidget::mouseReleaseEvent(QMouseEvent *e)
+{
+ if (p_zooming)
+ {
+ QPainter p(this);
+ QRect r(p_initial, e -> pos());
+
+ p.setRasterOp(Qt::XorROP);
+ p.setPen(QPen(Qt::white, 1, Qt::DotLine));
+ // remove previous rectangle
+ p.drawRect(r);
+
+ r = r.normalize();
+
+ p_zoomX += (int)rint(r.left() * p_lastFactorX);
+ p_zoomY += (int)rint(r.top() * p_lastFactorY);
+
+ p_zoomW = (int)rint(r.width() * p_lastFactorX);
+ p_zoomH = (int)rint(r.height() * p_lastFactorY);
+
+ if (r.right() > width()) p_zoomW = width() - p_zoomX;
+ if (r.height() > height()) p_zoomH = height() - p_zoomY;
+ if (p_zoomX < 0)
+ {
+ p_zoomX = 0;
+ p_zoomW = (int)rint(r.right() * p_lastFactorX);
+ }
+ if (p_zoomY < 0)
+ {
+ p_zoomY = 0;
+ p_zoomH = (int)rint(r.bottom() * p_lastFactorY);
+ }
+
+ p_zooming = false;
+
+ if (p_zoomW > 1 && p_zoomH > 1)
+ {
+ double factorX, factorY;
+ int maxX, maxY;
+
+ updateShownImage();
+
+ factorX = (double)p_zoomW / width();
+ factorY = (double)p_zoomH / height();
+
+ maxX = (int)rint(p_originalImage.width() / factorX);
+ maxY = (int)rint(p_originalImage.height() / factorY);
+ setMaximumSize(maxX, maxY);
+
+ emit updateVisibleSize(p_zoomW, p_zoomH);
+ emit updatePosition(p_zoomX, p_zoomY);
+
+ p_lastFactorX = factorX;
+ p_lastFactorY = factorY;
+
+ emitMoveActionEnabled();
+ }
+ }
+ else if (p_moving)
+ {
+ unsetCursor();
+ p_moving = false;
+ }
+}
+
+void mapWidget::resizeEvent(QResizeEvent *e)
+{
+ if (p_originalImage.isNull()) return;
+
+ p_zoomW = (int)rint(e -> size().width() * p_lastFactorX);
+ p_zoomH = (int)rint(e -> size().height() * p_lastFactorY);
+
+ emit updateVisibleSize(p_zoomW, p_zoomH);
+ updateShownImage();
+ emitMoveActionEnabled();
+}
+
+void mapWidget::emitMoveActionEnabled()
+{
+ int w, h;
+
+ w = p_zoomW;
+ h = p_zoomH;
+ if (p_scrollBarsVisible)
+ {
+ w += p_scrollBarWidth;
+ h += p_scrollBarHeight;
+ }
+
+ if (w < maximumWidth() * p_lastFactorX || h < maximumHeight() * p_lastFactorY)
+ {
+ p_scrollBarsVisible = true;
+ emit setMoveActionEnabled(true);
+ }
+ else
+ {
+ p_scrollBarsVisible = false;
+ emit setMoveActionChecked(false);
+ emit setMoveActionEnabled(false);
+ }
+}
+
+QImage *mapWidget::getCurrentImage()
+{
+ if (p_zoomedImageShown.isNull()) return &p_originalImage;
+ else return &p_zoomedImageShown;
+}
+
+void mapWidget::setOriginalImage()
+{
+ setPaletteBackgroundPixmap(p_originalImage);
+ erase();
+ p_zoomedImageShown = QImage();
+ p_lastFactorX = 1;
+ p_lastFactorY = 1;
+ p_zoomX = 0;
+ p_zoomY = 0;
+
+ if (p_zoomH != 0 && p_zoomW != 0)
+ {
+ /* setting the original image not when opening the app */
+ p_zoomW = width();
+ p_zoomH = height();
+ }
+
+ p_oldZoomX = p_zoomX;
+ p_oldZoomY = p_zoomY;
+ p_oldZoomW = p_zoomW;
+ p_oldZoomH = p_zoomH;
+ p_oldSize = size();
+
+ emit updatePosition(0, 0);
+ emit updateVisibleSize(p_zoomW, p_zoomH);
+ setMaximumSize(p_originalImage.size());
+ emitMoveActionEnabled();
+}
+
+void mapWidget::updateShownImage()
+{
+ if (p_originalImage.isNull()) return;
+
+ if (p_oldZoomX != p_zoomX || p_oldZoomY != p_zoomY || p_oldZoomW != p_zoomW || p_oldZoomH != p_zoomH || size() != p_oldSize)
+ {
+ p_zoomedImageShown = p_originalImage.copy(p_zoomX, p_zoomY, p_zoomW, p_zoomH);
+ p_zoomedImageShown = p_zoomedImageShown.scale(size());
+ setPaletteBackgroundPixmap(p_zoomedImageShown);
+ erase();
+ p_oldZoomX = p_zoomX;
+ p_oldZoomY = p_zoomY;
+ p_oldZoomW = p_zoomW;
+ p_oldZoomH = p_zoomH;
+ p_oldSize = size();
+ }
+}
+
+QSize mapWidget::mapSize() const
+{
+ return p_originalImage.size();
+}
+
+#include "mapwidget.moc"
diff --git a/kgeography/src/mapwidget.h b/kgeography/src/mapwidget.h
new file mode 100644
index 00000000..282fa1b4
--- /dev/null
+++ b/kgeography/src/mapwidget.h
@@ -0,0 +1,69 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef MAPWIDGET_H
+#define MAPWIDGET_H
+
+#include <qimage.h>
+#include <qpoint.h>
+#include <qwidget.h>
+
+class mapWidget : public QWidget
+{
+Q_OBJECT
+ public:
+ mapWidget(QWidget *parent);
+
+ void init(const QString &path, int scrollBarWidth, int scrollBarHeight);
+
+ void setMapMove(bool b);
+ void setMapZoom(bool b);
+
+ QSize sizeHint() const;
+ QSize mapSize() const;
+
+ public slots:
+ void updateHPosition(int value);
+ void updateVPosition(int value);
+ void setOriginalImage();
+
+ signals:
+ void setMoveActionChecked(bool b);
+ void setZoomActionChecked(bool b);
+ void setMoveActionEnabled(bool b);
+ void clicked(QRgb, const QPoint&);
+ void updatePosition(int X, int Y);
+ void updateVisibleSize(int w, int h);
+ void updateMaximumSize(int w, int h);
+
+ protected:
+ void mousePressEvent(QMouseEvent *e);
+ void mouseMoveEvent(QMouseEvent *e);
+ void mouseReleaseEvent(QMouseEvent *e);
+ void resizeEvent(QResizeEvent *e);
+
+ private:
+ void emitMoveActionEnabled();
+ QImage *getCurrentImage();
+ void updateShownImage();
+
+ QImage p_originalImage, p_zoomedImageShown;
+ bool p_zooming, p_wantZoom, p_moving, p_wantMove;
+ QPoint p_initial, p_prev; // rubberbanding and moving
+ int p_zoomX, p_zoomY, p_zoomW, p_zoomH;
+ double p_lastFactorX, p_lastFactorY;
+ // useful to not do that many updateShownImage
+ QSize p_oldSize;
+ int p_oldZoomX, p_oldZoomY, p_oldZoomW, p_oldZoomH;
+ int p_scrollBarWidth, p_scrollBarHeight;
+ bool p_scrollBarsVisible;
+};
+
+#endif
diff --git a/kgeography/src/mypopup.cpp b/kgeography/src/mypopup.cpp
new file mode 100644
index 00000000..c7dede67
--- /dev/null
+++ b/kgeography/src/mypopup.cpp
@@ -0,0 +1,66 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qimage.h>
+#include <qpixmap.h>
+
+#include "mypopup.h"
+
+
+myPopup::myPopup(QWidget *parent, const QString &text, const QString &text2, const QString &flagFile) : QFrame(parent)
+{
+ QHBoxLayout *lay = new QHBoxLayout(this);
+ lay -> setMargin(4);
+ lay -> setSpacing(4);
+
+ QWidget *vbox = new QWidget(this);
+ lay -> addWidget(vbox);
+ QVBoxLayout *vboxLayout = new QVBoxLayout(vbox);
+ vboxLayout -> setMargin(0);
+ vboxLayout -> setSpacing(0);
+ QLabel *l = new QLabel(text, vbox);
+ vboxLayout -> addWidget(l);
+
+ if (!text2.isNull())
+ {
+ QLabel *l2 = new QLabel(text2, vbox);
+ l2 -> setAlignment(Qt::AlignCenter);
+ vboxLayout -> addWidget(l2);
+ }
+
+ if (!flagFile.isNull())
+ {
+ QLabel *flag = new QLabel(this);
+ lay -> addWidget(flag);
+ QImage flagImg(flagFile);
+ flag -> setPixmap(flagImg.smoothScale(flagImg.width() / 5, flagImg. height() / 5));
+ flag -> setAlignment(Qt::AlignCenter);
+ }
+
+ l -> setAlignment(Qt::AlignCenter);
+ QFont f = l -> font();
+ f.setBold(true);
+ l -> setFont(f);
+
+
+ setFrameStyle(QFrame::Box | QFrame::Plain);
+ setLineWidth(2);
+
+ setFixedSize(sizeHint());
+}
+
+void myPopup::mousePressEvent(QMouseEvent *)
+{
+ emit deleteMe();
+}
+
+#include "mypopup.moc"
diff --git a/kgeography/src/mypopup.h b/kgeography/src/mypopup.h
new file mode 100644
index 00000000..3b0dd421
--- /dev/null
+++ b/kgeography/src/mypopup.h
@@ -0,0 +1,31 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef MYPOPUP_H
+#define MYPOPUP_H
+
+#include <qframe.h>
+
+class myPopup : public QFrame
+{
+Q_OBJECT
+ friend class popupManager;
+
+ private:
+ myPopup(QWidget *parent, const QString &text, const QString &text2 = QString::null, const QString &flagFile = QString::null);
+
+ signals:
+ void deleteMe();
+
+ protected:
+ void mousePressEvent(QMouseEvent *);
+};
+
+#endif
diff --git a/kgeography/src/popupmanager.cpp b/kgeography/src/popupmanager.cpp
new file mode 100644
index 00000000..4b19d4d5
--- /dev/null
+++ b/kgeography/src/popupmanager.cpp
@@ -0,0 +1,67 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include "mypopup.h"
+#include "popupmanager.h"
+
+popupManager::popupManager(QWidget *parent)
+{
+ p_parent = parent;
+ p_mp = 0;
+}
+
+void popupManager::show(const QString &text, const QString &text2, const QPoint &p, const QString &flagFile)
+{
+ delete p_mp;
+
+ p_mp = new myPopup(p_parent, text, text2, flagFile);
+ init(p);
+}
+
+void popupManager::show(const QString &text, const QString &text2, const QPoint &p)
+{
+ delete p_mp;
+
+ p_mp = new myPopup(p_parent, text, text2);
+ init(p);
+}
+
+void popupManager::show(const QString &text, const QPoint &p)
+{
+ delete p_mp;
+
+ p_mp = new myPopup(p_parent, text);
+ init(p);
+}
+
+void popupManager::clear()
+{
+ if (p_mp)
+ {
+ p_mp -> deleteLater();
+ p_mp = 0;
+ }
+}
+
+void popupManager::init(const QPoint &p)
+{
+ int x, y, maxX, maxY;
+ maxX = p_parent -> width() - p_mp -> width();
+ maxY = p_parent -> height() - p_mp -> height();
+ if (p.x() < maxX) x = p.x();
+ else x = maxX;
+ if (p.y() < maxY) y = p.y();
+ else y = maxY;
+ p_mp -> move(x, y);
+ p_mp -> show();
+ connect(p_mp, SIGNAL(deleteMe()), this, SLOT(clear()));
+}
+
+#include "popupmanager.moc"
diff --git a/kgeography/src/popupmanager.h b/kgeography/src/popupmanager.h
new file mode 100644
index 00000000..8fdfeef7
--- /dev/null
+++ b/kgeography/src/popupmanager.h
@@ -0,0 +1,45 @@
+/***************************************************************************
+ * Copyright (C) 2004-2005 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef POPUPMANAGER_H
+#define POPUPMANAGER_H
+
+#include <qobject.h>
+
+class QWidget;
+
+class myPopup;
+
+class popupManager : public QObject
+{
+Q_OBJECT
+ public:
+ popupManager(QWidget *parent);
+
+ // shows text at p and the flag
+ void show(const QString &text, const QString &text2, const QPoint &p, const QString &flagFile);
+
+ // shows text at p
+ void show(const QString &text, const QString &text2, const QPoint &p);
+
+ // shows text at p
+ void show(const QString &text, const QPoint &p);
+
+ public slots:
+ void clear();
+
+ private:
+ void init(const QPoint &p);
+
+ myPopup *p_mp;
+ QWidget *p_parent;
+};
+
+#endif
diff --git a/kgeography/src/script.cpp b/kgeography/src/script.cpp
new file mode 100644
index 00000000..b23d31d0
--- /dev/null
+++ b/kgeography/src/script.cpp
@@ -0,0 +1,86 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Albert Astals Cid *
+ * tsdgeos@terra.es *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include <stdio.h>
+
+#include <qdir.h>
+#include <qdom.h>
+#include <qstring.h>
+#include <qstringlist.h>
+
+int main(int argc, char *argv[])
+{
+ if (argc != 3)
+ {
+ qDebug("Usage: ./script dirWithkgmFiles fileToOutputTranslations");
+ return 1;
+ }
+
+ QDir d(argv[1], "*.kgm");
+ if (!d.exists()) return 2;
+
+ QFile *output = new QFile(argv[2]);
+ output->open(IO_WriteOnly | IO_Truncate);
+ QTextStream os(output);
+ os.setEncoding(QTextStream::UnicodeUTF8);
+
+ QStringList files = d.entryList();
+ QStringList::const_iterator it;
+ QDomDocument dd;
+
+ for (it = files.begin(); it != files.end(); ++it)
+ {
+ QFile *f = new QFile(d.absPath() + "/" + *it);
+ f -> open(IO_ReadOnly);
+ dd.setContent(f);
+
+ QDomNode n, n2, n3, n4, n5;
+ QDomNodeList nodes = dd.firstChild().childNodes();
+ for (uint i = 0; i < nodes.count(); i++)
+ {
+ n = nodes.item(i);
+ if (n.nodeName() == "name")
+ {
+ os << "i18n(\"" << *it << "\", \"" << n.firstChild().nodeValue() << "\");\n";
+ os << "i18n(\"" << *it << "\", \"<qt>Current map:<br><b>" << n.firstChild().nodeValue() << "</b></qt>\");\n";
+ }
+ else if (n.nodeName() == "division")
+ {
+ n2 = n.namedItem("name");
+ os << "i18n(\"" << *it << "\", \"" << n2.firstChild().nodeValue() << "\");\n";
+
+ n3 = n.namedItem("ignore");
+ if (n3.isNull() || (n3.firstChild().nodeValue() != "yes" && n3.firstChild().nodeValue() != "allowClickMode"))
+ {
+ os << "i18n(\"" << *it << "\", \"The capital of " << n2.firstChild().nodeValue() << " is...\");\n";
+ os << "i18n(\"" << *it << "\", \"Please click on:\\n" << n2.firstChild().nodeValue() << "\");\n";
+
+ n4 = n.namedItem("flag");
+ if (!n4.isNull())
+ {
+ os << "i18n(\"" << *it << "\", \"The flag of " << n2.firstChild().nodeValue() << " is...\");\n";
+ }
+
+ n5 = n.namedItem("capital");
+ os << "i18n(\"" << *it << "\", \"" << n5.firstChild().nodeValue() << "\");\n";
+ os << "i18n(\"" << *it << "\", \"" << n5.firstChild().nodeValue() << " is the capital of...\");\n";
+ }
+ else if (n3.firstChild().nodeValue() == "allowClickMode")
+ {
+ os << "i18n(\"" << *it << "\", \"Please click on:\\n" << n2.firstChild().nodeValue() << "\");\n";
+ }
+ }
+ }
+
+ f -> close();
+ delete f;
+ }
+ output->close();
+}
diff --git a/kgeography/src/settings.kcfgc b/kgeography/src/settings.kcfgc
new file mode 100644
index 00000000..8cbf2bf2
--- /dev/null
+++ b/kgeography/src/settings.kcfgc
@@ -0,0 +1,5 @@
+# Code generation options for kconfig_compiler
+File=kgeography.kcfg
+ClassName=kgeographySettings
+Singleton=true
+Mutators=true
diff --git a/kgeography/tools/gen_map.pl b/kgeography/tools/gen_map.pl
new file mode 100644
index 00000000..60024a0b
--- /dev/null
+++ b/kgeography/tools/gen_map.pl
@@ -0,0 +1,244 @@
+#!/usr/bin/perl
+#
+#
+# Copyright (C) 2004 by Yann Verley
+# yann.verley@free.fr
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+#
+#
+# Last modification : 12 May 2004
+
+use strict;
+
+sub print_colors
+{
+ my ($red, $green, $blue) = @_;
+
+ print "\t\t<color>\n";
+ print "\t\t\t<red>$red</red>\n";
+ print "\t\t\t<green>$green</green>\n";
+ print "\t\t\t<blue>$blue</blue>\n";
+ print "\t\t</color>\n";
+}
+
+sub print_header
+{
+ my ($map_file, $map_name) = @_;
+
+ print "<map>\n";
+
+ print "\t<mapFile>$map_file</mapFile>\n";
+ print "\t<name>$map_name</name>\n";
+}
+
+sub print_new_division
+{
+ my ($name, $capital, $flag, $ignore, $red, $green, $blue) = @_;
+
+ print "\t<division>\n";
+
+ print "\t\t<name>$name</name>\n";
+
+ if ($ignore eq "yes")
+ {
+ print "\t\t<ignore>yes</ignore>\n";
+ }
+
+ if ($flag ne "")
+ {
+ print "\t\t<flag>$flag</flag>\n";
+ }
+
+ if ($capital ne "")
+ {
+ print "\t\t<capital>$capital</capital>\n";
+ }
+
+ print_colors($red, $green, $blue);
+
+ print "\t</division>\n";
+}
+
+sub print_end_of_file
+{
+ print "</map>\n";
+}
+
+sub usage
+{
+ print "Usage : gen_map.pl division_list.txt [ignored_list.txt]\n\n";
+
+ print "This script produces a kgm file to be used with KGeography.\n";
+ print "It produces too a file, gimp_rgb.txt. This file can be used to help you\n";
+ print "to fill the divisions in your map with an image processing program.\n\n";
+
+ print "Example :\n";
+ print "gen_map.pl spain.txt ignored.txt >spain.kgm\n\n";
+
+ print "Example 1 of division_list.txt :\n";
+ print "#division name;capital\n";
+ print "Andalucia;Seville\n";
+ print "Aragon;Zaragoza\n\n";
+
+ print "Example 2 of division_list.txt :\n";
+ print "#division name;capital;flag file\n";
+ print "Germany;Berlin;germany.png\n";
+ print "France;Paris;france.png\n\n";
+
+ print "Example of ignored_list.txt :\n";
+ print "#division name;red value;green value;blue value\n";
+ print "Frontier;0;0;0\n";
+ print "Water;50;50;255\n";
+ exit;
+}
+
+#####################
+#BEGINNING OF PROGRAM
+#####################
+
+my @div_name_list;
+my @div_capital_list;
+my @div_flag_list;
+my @ign_name_list;
+my @ign_red_list;
+my @ign_green_list;
+my @ign_blue_list;
+
+
+if (($ARGV[0] eq "") or ($ARGV[0] eq "-h"))
+{
+ usage();
+}
+
+open(DIVFILE, "<".$ARGV[0]) or die "Can't open file $ARGV[0] : $!";
+
+while (<DIVFILE>)
+{
+ next if (/^#/);
+ chomp;
+
+ my @spl = split /;/;
+
+ push @div_name_list, $spl[0];
+ push @div_capital_list, $spl[1];
+ push @div_flag_list, $spl[2];
+}
+
+close(DIVFILE);
+
+if (open(IGNFILE, "<".$ARGV[1]))
+{
+ while (<IGNFILE>)
+ {
+ next if (/^#/);
+ chomp;
+
+ my @spl = split /;/;
+
+ push @ign_name_list, $spl[0];
+ push @ign_red_list, $spl[1];
+ push @ign_green_list, $spl[2];
+ push @ign_blue_list, $spl[3];
+ }
+
+ close(IGNFILE);
+}
+
+my $basename = $ARGV[0];
+$basename =~ s/\.[[:alnum:]]*$//;
+
+print_header($basename.".png", ucfirst($basename));
+
+for (my $i = 0; $i <= $#ign_name_list ; $i++)
+{
+ print_new_division($ign_name_list[$i],
+ "",
+ "",
+ "yes",
+ $ign_red_list[$i],
+ $ign_green_list[$i],
+ $ign_blue_list[$i]);
+}
+
+my $min_red = 130;
+my $min_green = 130;
+my $min_blue = 130;
+my $max_red = 250;
+my $max_green = 250;
+my $max_blue = 250;
+
+my @red_list;
+my @green_list;
+my @blue_list;
+
+my $red;
+my $green;
+my $blue;
+
+my $step;
+
+if ($#div_name_list < 25)
+{
+ $step = 60;
+}
+elsif ($#div_name_list < 60)
+{
+ $step = 40;
+}
+elsif ($#div_name_list < 120)
+{
+ $step = 30;
+}
+elsif ($#div_name_list < 210)
+{
+ $step = 24;
+}
+elsif ($#div_name_list < 340)
+{
+ $step = 20;
+}
+else
+{
+ # > 700 divisions allowed
+ $step = 15;
+}
+
+#now we build list of colors which will be used to colorize the map
+for ($red = $min_red ; $red <= $max_red ; $red += $step)
+{
+ for ($green = $min_green ; $green <= $max_green ; $green += $step)
+ {
+ for ($blue = $min_blue ; $blue <= $max_blue ; $blue += $step)
+ {
+ push @red_list, $red;
+ push @green_list, $green;
+ push @blue_list, $blue;
+ }
+ }
+}
+
+open(RGB_FILE, ">gimp_rgb.txt") or die "Cannot open file : $!";
+
+for (my $i = 0 ; $i <= $#div_name_list ; $i++)
+{
+ print_new_division($div_name_list[$i],
+ $div_capital_list[$i],
+ $div_flag_list[$i],
+ "no",
+ $red_list[$i],
+ $green_list[$i],
+ $blue_list[$i]);
+
+ printf RGB_FILE "%s : %X%X%X\n", $div_name_list[$i],
+ $red_list[$i], $green_list[$i], $blue_list[$i];
+}
+
+close(RGB_FILE);
+
+print_end_of_file();
+