aboutsummaryrefslogtreecommitdiff
path: root/stdlib
diff options
context:
space:
mode:
authorEduardo Julian2019-01-22 00:23:43 -0400
committerEduardo Julian2019-01-22 00:23:43 -0400
commit60b1ef105a031ea6a13dfcd5c9a65a867819e82f (patch)
treee84f93288672f9a12bd713ea14da43ac36040e08 /stdlib
parent63b1679b3ce5fa663c5a2ab0544d01867c8cf0f0 (diff)
Added internationalization machinery.
Diffstat (limited to '')
-rw-r--r--stdlib/source/lux/world/internationalization/language.lux512
-rw-r--r--stdlib/source/lux/world/internationalization/locale.lux41
-rw-r--r--stdlib/source/lux/world/internationalization/territory.lux295
3 files changed, 848 insertions, 0 deletions
diff --git a/stdlib/source/lux/world/internationalization/language.lux b/stdlib/source/lux/world/internationalization/language.lux
new file mode 100644
index 000000000..97a5f7463
--- /dev/null
+++ b/stdlib/source/lux/world/internationalization/language.lux
@@ -0,0 +1,512 @@
+(.module:
+ [lux #*
+ [type
+ abstract]
+ ["." macro]])
+
+## https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes
+(abstract: #export Language
+ {}
+
+ Text
+
+ (def: #export language
+ (-> Language Text)
+ (|>> :representation))
+
+ (do-template [<code> <name> <alias>+]
+ [(def: #export <name> Language (:abstraction <code>))
+ (`` (do-template [<alias>]
+ [(def: #export <alias> Language <name>)]
+
+ (~~ (macro.multi <alias>+))))]
+
+ ["mis" uncoded []]
+ ["mul" multiple []]
+ ["und" undetermined []]
+ ["zxx" not-applicable []]
+
+ ["aar" afar []]
+ ["abk" abkhazian []]
+ ["ace" achinese []]
+ ["ach" acoli []]
+ ["ada" adangme []]
+ ["ady" adyghe []]
+ ["afa" afro-asiatic []]
+ ["afh" afrihili []]
+ ["afr" afrikaans []]
+ ["ain" ainu []]
+ ["aka" akan []]
+ ["akk" akkadian []]
+ ["ale" aleut []]
+ ["alg" algonquian []]
+ ["alt" southern-altai []]
+ ["amh" amharic []]
+ ["ang" old-english []]
+ ["anp" angika []]
+ ["apa" apache []]
+ ["ara" arabic []]
+ ["arc" official-aramaic []]
+ ["arg" aragonese []]
+ ["arn" mapudungun []]
+ ["arp" arapaho []]
+ ["art" artificial []]
+ ["arw" arawak []]
+ ["asm" assamese []]
+ ["ast" asturian [[bable] [leonese] [asturleonese]]]
+ ["ath" athapascan []]
+ ["aus" australian []]
+ ["ava" avaric []]
+ ["ave" avestan []]
+ ["awa" awadhi []]
+ ["aym" aymara []]
+ ["aze" azerbaijani []]
+ ["bad" banda []]
+ ["bai" bamileke []]
+ ["bak" bashkir []]
+ ["bal" baluchi []]
+ ["bam" bambara []]
+ ["ban" balinese []]
+ ["bas" basa []]
+ ["bat" baltic []]
+ ["bej" beja []]
+ ["bel" belarusian []]
+ ["bem" bemba []]
+ ["ben" bengali []]
+ ["ber" berber []]
+ ["bho" bhojpuri []]
+ ["bih" bihari []]
+ ["bik" bikol []]
+ ["bin" edo []]
+ ["bis" bislama []]
+ ["bla" siksika []]
+ ["bnt" bantu []]
+ ["bod" tibetan []]
+ ["bos" bosnian []]
+ ["bra" braj []]
+ ["bre" breton []]
+ ["btk" batak []]
+ ["bua" buriat []]
+ ["bug" buginese []]
+ ["bul" bulgarian []]
+ ["byn" blin []]
+ ["cad" caddo []]
+ ["cai" central-american-indian []]
+ ["car" galibi-carib []]
+ ["cat" catalan [[valencian]]]
+ ["cau" caucasian []]
+ ["ceb" cebuano []]
+ ["cel" celtic []]
+ ["ces" czech []]
+ ["cha" chamorro []]
+ ["chb" chibcha []]
+ ["che" chechen []]
+ ["chg" chagatai []]
+ ["chk" chuukese []]
+ ["chm" mari []]
+ ["chn" chinook []]
+ ["cho" choctaw []]
+ ["chp" chipewyan []]
+ ["chr" cherokee []]
+ ["chu" church-slavic [[old-slavonic] [church-slavonic] [old-bulgarian] [old-church-slavonic]]]
+ ["chv" chuvash []]
+ ["chy" cheyenne []]
+ ["cmc" chamic []]
+ ["cnr" montenegrin []]
+ ["cop" coptic []]
+ ["cor" cornish []]
+ ["cos" corsican []]
+ ["cpe" creoles-and-pidgins/english []]
+ ["cpf" creoles-and-pidgins/french []]
+ ["cpp" creoles-and-pidgins/portuguese []]
+ ["cre" cree []]
+ ["crh" crimean []]
+ ["crp" creoles-and-pidgins []]
+ ["csb" kashubian []]
+ ["cus" cushitic []]
+ ["cym" welsh []]
+ ["dak" dakota []]
+ ["dan" danish []]
+ ["dar" dargwa []]
+ ["day" land-dayak []]
+ ["del" delaware []]
+ ["den" slavey []]
+ ["dgr" dogrib []]
+ ["din" dinka []]
+ ["div" dhivehi [[maldivian]]]
+ ["doi" dogri []]
+ ["dra" dravidian []]
+ ["dsb" lower-sorbian []]
+ ["dua" duala []]
+ ["dum" middle-dutch []]
+ ["dyu" dyula []]
+ ["dzo" dzongkha []]
+ ["efi" efik []]
+ ["egy" egyptian []]
+ ["eka" ekajuk []]
+ ["ell" greek []]
+ ["elx" elamite []]
+ ["eng" english []]
+ ["enm" middle-english []]
+ ["epo" esperanto []]
+ ["est" estonian []]
+ ["eus" basque []]
+ ["ewe" ewe []]
+ ["ewo" ewondo []]
+ ["fan" fang []]
+ ["fao" faroese []]
+ ["fas" persian []]
+ ["fat" fanti []]
+ ["fij" fijian []]
+ ["fil" filipino []]
+ ["fin" finnish []]
+ ["fiu" finno-ugrian []]
+ ["fon" fon []]
+ ["fra" French []]
+ ["frm" middle-french []]
+ ["fro" old-french []]
+ ["frr" northern-frisian []]
+ ["frs" eastern-frisian []]
+ ["fry" western-frisian []]
+ ["ful" fulah []]
+ ["fur" friulian []]
+ ["gaa" ga []]
+ ["gay" gayo []]
+ ["gba" gbaya []]
+ ["gem" germanic []]
+ ["deu" german []]
+ ["gez" geez []]
+ ["gil" gilbertese []]
+ ["gla" gaelic []]
+ ["gle" irish []]
+ ["glg" galician []]
+ ["glv" manx []]
+ ["gmh" middle-high-german []]
+ ["goh" old-high-german []]
+ ["gon" gondi []]
+ ["gor" gorontalo []]
+ ["got" gothic []]
+ ["grb" grebo []]
+ ["grc" ancient-greek []]
+ ["grn" guarani []]
+ ["gsw" swiss-german [[alemannic] [alsatian]]]
+ ["guj" gujarati []]
+ ["gwi" gwich'in []]
+ ["hai" haida []]
+ ["hat" haitian []]
+ ["hau" hausa []]
+ ["haw" hawaiian []]
+ ["heb" hebrew []]
+ ["her" herero []]
+ ["hil" hiligaynon []]
+ ["him" himachali []]
+ ["hin" hindi []]
+ ["hit" hittite []]
+ ["hmn" hmong []]
+ ["hmo" hiri-motu []]
+ ["hrv" croatian []]
+ ["hsb" upper-sorbian []]
+ ["hun" hungarian []]
+ ["hup" hupa []]
+ ["hye" armenian []]
+ ["iba" iban []]
+ ["ibo" igbo []]
+ ["ido" ido []]
+ ["iii" sichuan-yi [[nuosu]]]
+ ["ijo" ijo []]
+ ["iku" inuktitut []]
+ ["ile" interlingue []]
+ ["ilo" iloko []]
+ ["ina" interlingua []]
+ ["inc" indic []]
+ ["ind" indonesian []]
+ ["ine" indo-european []]
+ ["inh" ingush []]
+ ["ipk" inupiaq []]
+ ["ira" iranian []]
+ ["iro" iroquoian []]
+ ["isl" icelandic []]
+ ["ita" italian []]
+ ["jav" javanese []]
+ ["jbo" lojban []]
+ ["jpn" japanese []]
+ ["jpr" judeo-persian []]
+ ["jrb" judeo-arabic []]
+ ["kaa" kara-kalpak []]
+ ["kab" kabyle []]
+ ["kac" kachin [[jingpho]]]
+ ["kal" kalaallisut [[greenlandic]]]
+ ["kam" kamba []]
+ ["kan" kannada []]
+ ["kar" karen []]
+ ["kas" kashmiri []]
+ ["kat" georgian []]
+ ["kau" kanuri []]
+ ["kaw" kawi []]
+ ["kaz" kazakh []]
+ ["kbd" kabardian []]
+ ["kha" khasi []]
+ ["khi" khoisan []]
+ ["khm" central-khmer []]
+ ["kho" khotanese [[sakan]]]
+ ["kik" gikuyu []]
+ ["kin" kinyarwanda []]
+ ["kir" kyrgyz []]
+ ["kmb" kimbundu []]
+ ["kok" konkani []]
+ ["kom" komi []]
+ ["kon" kongo []]
+ ["kor" korean []]
+ ["kos" kosraean []]
+ ["kpe" kpelle []]
+ ["krc" karachay-balkar []]
+ ["krl" karelian []]
+ ["kro" kru []]
+ ["kru" kurukh []]
+ ["kua" kwanyama []]
+ ["kum" kumyk []]
+ ["kur" kurdish []]
+ ["kut" kutenai []]
+ ["lad" ladino []]
+ ["lah" lahnda []]
+ ["lam" lamba []]
+ ["lao" lao []]
+ ["lat" latin []]
+ ["lav" latvian []]
+ ["lez" lezghian []]
+ ["lim" limburgan []]
+ ["lin" lingala []]
+ ["lit" lithuanian []]
+ ["lol" mongo []]
+ ["loz" lozi []]
+ ["ltz" luxembourgish []]
+ ["lua" luba-lulua []]
+ ["lub" luba-katanga []]
+ ["lug" ganda []]
+ ["lui" luiseno []]
+ ["lun" lunda []]
+ ["luo" luo []]
+ ["lus" lushai []]
+ ["mad" madurese []]
+ ["mag" magahi []]
+ ["mah" marshallese []]
+ ["mai" maithili []]
+ ["mak" makasar []]
+ ["mal" malayalam []]
+ ["man" mandingo []]
+ ["map" austronesian []]
+ ["mar" marathi []]
+ ["mas" masai []]
+ ["mdf" moksha []]
+ ["mdr" mandar []]
+ ["men" mende []]
+ ["mga" middle-irish []]
+ ["mic" mi'kmaq [[micmac]]]
+ ["min" minangkabau []]
+ ["mkd" macedonian []]
+ ["mkh" mon-khmer []]
+ ["mlg" malagasy []]
+ ["mlt" maltese []]
+ ["mnc" manchu []]
+ ["mni" manipuri []]
+ ["mno" manobo []]
+ ["moh" mohawk []]
+ ["mon" mongolian []]
+ ["mos" mossi []]
+ ["mri" maori []]
+ ["msa" malay []]
+ ["mun" munda []]
+ ["mus" creek []]
+ ["mwl" mirandese []]
+ ["mwr" marwari []]
+ ["mya" burmese []]
+ ["myn" mayan []]
+ ["myv" erzya []]
+ ["nah" nahuatl []]
+ ["nai" north-american-indian []]
+ ["nap" neapolitan []]
+ ["nau" nauru []]
+ ["nav" navajo []]
+ ["nbl" south-ndebele []]
+ ["nde" north-ndebele []]
+ ["ndo" ndonga []]
+ ["nds" low-german []]
+ ["nep" nepali []]
+ ["new" newari [[nepal-bhasa]]]
+ ["nia" nias []]
+ ["nic" niger-kordofanian []]
+ ["niu" niuean []]
+ ["nld" dutch [[flemish]]]
+ ["nno" nynorsk []]
+ ["nob" bokmal []]
+ ["nog" nogai []]
+ ["non" old-norse []]
+ ["nor" norwegian []]
+ ["nqo" n'ko []]
+ ["nso" northern-sotho [[pedi] [sepedi]]]
+ ["nub" nubian []]
+ ["nwc" old-newari [[classical-newari] [classical-nepal-bhasa]]]
+ ["nya" nyanja [[chichewa] [chewa]]]
+ ["nym" nyamwezi []]
+ ["nyn" nyankole []]
+ ["nyo" nyoro []]
+ ["nzi" nzima []]
+ ["oci" occitan [[provencal]]]
+ ["oji" ojibwa []]
+ ["ori" oriya []]
+ ["orm" oromo []]
+ ["osa" osage []]
+ ["oss" ossetic []]
+ ["ota" ottoman-turkish []]
+ ["oto" otomian []]
+ ["paa" papuan []]
+ ["pag" pangasinan []]
+ ["pal" pahlavi []]
+ ["pam" pampanga [[kapampangan]]]
+ ["pan" punjabi []]
+ ["pap" papiamento []]
+ ["pau" palauan []]
+ ["peo" old-persian []]
+ ["phi" philippine []]
+ ["phn" phoenician []]
+ ["pli" pali []]
+ ["pol" polish []]
+ ["pon" pohnpeian []]
+ ["por" portuguese []]
+ ["pra" prakrit []]
+ ["pro" old-provencal []]
+ ["pus" pashto []]
+ ["que" quechua []]
+ ["raj" rajasthani []]
+ ["rap" rapanui []]
+ ["rar" rarotongan [[cook-islands-maori]]]
+ ["roa" romance []]
+ ["roh" romansh []]
+ ["rom" romany []]
+ ["ron" romanian [[moldavian] [moldovan]]]
+ ["run" rundi []]
+ ["rup" aromanian [[arumanian] [macedo-romanian]]]
+ ["rus" russian []]
+ ["sad" sandawe []]
+ ["sag" sango []]
+ ["sah" yakut []]
+ ["sai" south-american-indian []]
+ ["sal" salishan []]
+ ["sam" samaritan-aramaic []]
+ ["san" sanskrit []]
+ ["sas" sasak []]
+ ["sat" santali []]
+ ["scn" sicilian []]
+ ["sco" scots []]
+ ["sel" selkup []]
+ ["sem" semitic []]
+ ["sga" old-irish []]
+ ["sgn" sign []]
+ ["shn" shan []]
+ ["sid" sidamo []]
+ ["sin" sinhalese []]
+ ["sio" siouan []]
+ ["sit" sino-tibetan []]
+ ["sla" slavic []]
+ ["slk" slovak []]
+ ["slv" slovenian []]
+ ["sma" southern-sami []]
+ ["sme" northern-sami []]
+ ["smi" sami []]
+ ["smj" lule []]
+ ["smn" inari []]
+ ["smo" samoan []]
+ ["sms" skolt-sami []]
+ ["sna" shona []]
+ ["snd" sindhi []]
+ ["snk" soninke []]
+ ["sog" sogdian []]
+ ["som" somali []]
+ ["son" songhai []]
+ ["sot" southern-sotho []]
+ ["spa" spanish [[castilian]]]
+ ["sqi" albanian []]
+ ["srd" sardinian []]
+ ["srn" sranan-tongo []]
+ ["srp" serbian []]
+ ["srr" serer []]
+ ["ssa" nilo-saharan []]
+ ["ssw" swati []]
+ ["suk" sukuma []]
+ ["sun" sundanese []]
+ ["sus" susu []]
+ ["sux" sumerian []]
+ ["swa" swahili []]
+ ["swe" swedish []]
+ ["syc" classical-syriac []]
+ ["syr" syriac []]
+ ["tah" tahitian []]
+ ["tai" tai []]
+ ["tam" tamil []]
+ ["tat" tatar []]
+ ["tel" telugu []]
+ ["tem" timne []]
+ ["ter" tereno []]
+ ["tet" tetum []]
+ ["tgk" tajik []]
+ ["tgl" tagalog []]
+ ["tha" thai []]
+ ["tig" tigre []]
+ ["tir" tigrinya []]
+ ["tiv" tiv []]
+ ["tkl" tokelau []]
+ ["tlh" klingon []]
+ ["tli" tlingit []]
+ ["tmh" tamashek []]
+ ["tog" tonga []]
+ ["ton" tongan []]
+ ["tpi" tok-pisin []]
+ ["tsi" tsimshian []]
+ ["tsn" tswana []]
+ ["tso" tsonga []]
+ ["tuk" turkmen []]
+ ["tum" tumbuka []]
+ ["tup" tupi []]
+ ["tur" turkish []]
+ ["tut" altaic []]
+ ["tvl" tuvalu []]
+ ["twi" twi []]
+ ["tyv" tuvinian []]
+ ["udm" udmurt []]
+ ["uga" ugaritic []]
+ ["uig" uyghur []]
+ ["ukr" ukrainian []]
+ ["umb" umbundu []]
+ ["urd" urdu []]
+ ["uzb" uzbek []]
+ ["vai" vai []]
+ ["ven" venda []]
+ ["vie" vietnamese []]
+ ["vol" volapük []]
+ ["vot" votic []]
+ ["wak" wakashan []]
+ ["wal" walamo []]
+ ["war" waray []]
+ ["was" washo []]
+ ["wen" sorbian []]
+ ["wln" walloon []]
+ ["wol" wolof []]
+ ["xal" kalmyk [[oirat]]]
+ ["xho" xhosa []]
+ ["yao" yao []]
+ ["yap" yapese []]
+ ["yid" yiddish []]
+ ["yor" yoruba []]
+ ["ypk" yupik []]
+ ["zap" zapotec []]
+ ["zbl" blissymbols []]
+ ["zen" zenaga []]
+ ["zgh" standard-moroccan-tamazight []]
+ ["zha" zhuang []]
+ ["zho" chinese []]
+ ["znd" zande []]
+ ["zul" zulu []]
+ ["zun" zuni []]
+ ["zza" zaza [[dimili] [dimli] [kirdki] [kirmanjki] [zazaki]]]
+ )
+ )
diff --git a/stdlib/source/lux/world/internationalization/locale.lux b/stdlib/source/lux/world/internationalization/locale.lux
new file mode 100644
index 000000000..b37c9be5c
--- /dev/null
+++ b/stdlib/source/lux/world/internationalization/locale.lux
@@ -0,0 +1,41 @@
+(.module:
+ [lux #*
+ [data
+ [text
+ format
+ ["." encoding (#+ Char-Set)]]]
+ [type
+ abstract]
+ ["." macro]]
+ [//
+ ["." language (#+ Language)]
+ ["." territory (#+ Territory)]])
+
+(abstract: #export Locale
+ {}
+
+ Text
+
+ (def: territory-separator "_")
+ (def: char-set-separator ".")
+
+ (def: #export (locale language territory char-set)
+ (-> Language (Maybe Territory) (Maybe Char-Set) Locale)
+ (:abstraction (format (language.language language)
+ (case territory
+ (#.Some territory)
+ (format ..territory-separator (territory.long-code territory))
+
+ #.None
+ "")
+ (case char-set
+ (#.Some char-set)
+ (format ..char-set-separator (encoding.name char-set))
+
+ #.None
+ ""))))
+
+ (def: #export code
+ (-> Locale Text)
+ (|>> :representation))
+ )
diff --git a/stdlib/source/lux/world/internationalization/territory.lux b/stdlib/source/lux/world/internationalization/territory.lux
new file mode 100644
index 000000000..9094fcae6
--- /dev/null
+++ b/stdlib/source/lux/world/internationalization/territory.lux
@@ -0,0 +1,295 @@
+(.module:
+ [lux #*
+ [data
+ [text
+ format
+ ["." encoding (#+ Char-Set)]]]
+ [type
+ abstract]
+ ["." macro]])
+
+## https://en.wikipedia.org/wiki/ISO_3166-1
+(abstract: #export Territory
+ {}
+
+ {#name Text
+ #short Text
+ #long Text
+ #code Nat}
+
+ (do-template [<name> <field> <type>]
+ [(def: #export <name>
+ (-> Territory <type>)
+ (|>> :representation
+ (get@ <field>)))]
+
+ [name #name Text]
+ [short-code #short Text]
+ [long-code #long Text]
+ [numeric-code #code Nat]
+ )
+
+ (do-template [<short> <long> <number> <name> <main> <neighbor>+]
+ [(def: #export <main>
+ Territory
+ (:abstraction {#name <name>
+ #short <short>
+ #long <long>
+ #code <number>}))
+
+ (`` (do-template [<neighbor>]
+ [(def: #export <neighbor> Territory <main>)]
+
+ (~~ (macro.multi <neighbor>+))))]
+
+ ["AF" "AFG" 004 "Afghanistan" afghanistan []]
+ ["AX" "ALA" 248 "Åland Islands" aland-islands []]
+ ["AL" "ALB" 008 "Albania" albania []]
+ ["DZ" "DZA" 012 "Algeria" algeria []]
+ ["AS" "ASM" 016 "American Samoa" american-samoa []]
+ ["AD" "AND" 020 "Andorra" andorra []]
+ ["AO" "AGO" 024 "Angola" angola []]
+ ["AI" "AIA" 660 "Anguilla" anguilla []]
+ ["AQ" "ATA" 010 "Antarctica" antarctica []]
+ ["AG" "ATG" 028 "Antigua and Barbuda" antigua [[barbuda]]]
+ ["AR" "ARG" 032 "Argentina" argentina []]
+ ["AM" "ARM" 051 "Armenia" armenia []]
+ ["AW" "ABW" 533 "Aruba" aruba []]
+ ["AU" "AUS" 036 "Australia" australia []]
+ ["AT" "AUT" 040 "Austria" austria []]
+ ["AZ" "AZE" 031 "Azerbaijan" azerbaijan []]
+ ["BS" "BHS" 044 "The Bahamas" the-bahamas []]
+ ["BH" "BHR" 048 "Bahrain" bahrain []]
+ ["BD" "BGD" 050 "Bangladesh" bangladesh []]
+ ["BB" "BRB" 052 "Barbados" barbados []]
+ ["BY" "BLR" 112 "Belarus" belarus []]
+ ["BE" "BEL" 056 "Belgium" belgium []]
+ ["BZ" "BLZ" 084 "Belize" belize []]
+ ["BJ" "BEN" 204 "Benin" benin []]
+ ["BM" "BMU" 060 "Bermuda" bermuda []]
+ ["BT" "BTN" 064 "Bhutan" bhutan []]
+ ["BO" "BOL" 068 "Bolivia" bolivia []]
+ ["BQ" "BES" 535 "Bonaire, Sint Eustatius and Saba" bonaire [[sint-eustatius] [saba]]]
+ ["BA" "BIH" 070 "Bosnia and Herzegovina" bosnia [[herzegovina]]]
+ ["BW" "BWA" 072 "Botswana" botswana []]
+ ["BV" "BVT" 074 "Bouvet Island" bouvet-island []]
+ ["BR" "BRA" 076 "Brazil" brazil []]
+ ["IO" "IOT" 086 "British Indian Ocean Territory" british-indian-ocean-territory []]
+ ["BN" "BRN" 096 "Brunei Darussalam" brunei-darussalam []]
+ ["BG" "BGR" 100 "Bulgaria" bulgaria []]
+ ["BF" "BFA" 854 "Burkina Faso" burkina-faso []]
+ ["BI" "BDI" 108 "Burundi" burundi []]
+ ["CV" "CPV" 132 "Cape Verde" cape-verde []]
+ ["KH" "KHM" 116 "Cambodia" cambodia []]
+ ["CM" "CMR" 120 "Cameroon" cameroon []]
+ ["CA" "CAN" 124 "Canada" canada []]
+ ["KY" "CYM" 136 "Cayman Islands" cayman-islands []]
+ ["CF" "CAF" 140 "Central African Republic" central-african-republic []]
+ ["TD" "TCD" 148 "Chad" chad []]
+ ["CL" "CHL" 152 "Chile" chile []]
+ ["CN" "CHN" 156 "China" china []]
+ ["CX" "CXR" 162 "Christmas Island" christmas-island []]
+ ["CC" "CCK" 166 "Cocos (Keeling) Islands" cocos-islands []]
+ ["CO" "COL" 170 "Colombia" colombia []]
+ ["KM" "COM" 174 "Comoros" comoros []]
+ ["CG" "COG" 178 "Congo" congo []]
+ ["CD" "COD" 180 "Democratic Republic of the Congo" democratic-republic-of-the-congo []]
+ ["CK" "COK" 184 "Cook Islands" cook-islands []]
+ ["CR" "CRI" 188 "Costa Rica" costa-rica []]
+ ["CI" "CIV" 384 "Ivory Coast" ivory-coast []]
+ ["HR" "HRV" 191 "Croatia" croatia []]
+ ["CU" "CUB" 192 "Cuba" cuba []]
+ ["CW" "CUW" 531 "Curacao" curacao []]
+ ["CY" "CYP" 196 "Cyprus" cyprus []]
+ ["CZ" "CZE" 203 "Czech Republic" czech-republic []]
+ ["DK" "DNK" 208 "Denmark" denmark []]
+ ["DJ" "DJI" 262 "Djibouti" djibouti []]
+ ["DM" "DMA" 212 "Dominica" dominica []]
+ ["DO" "DOM" 214 "Dominican Republic" dominican-republic []]
+ ["EC" "ECU" 218 "Ecuador" ecuador []]
+ ["EG" "EGY" 818 "Egypt" egypt []]
+ ["SV" "SLV" 222 "El Salvador" el-salvador []]
+ ["GQ" "GNQ" 226 "Equatorial Guinea" equatorial-guinea []]
+ ["ER" "ERI" 232 "Eritrea" eritrea []]
+ ["EE" "EST" 233 "Estonia" estonia []]
+ ["SZ" "SWZ" 748 "Eswatini" eswatini []]
+ ["ET" "ETH" 231 "Ethiopia" ethiopia []]
+ ["FK" "FLK" 238 "Falkland Islands" falkland-islands []]
+ ["FO" "FRO" 234 "Faroe Islands" faroe-islands []]
+ ["FJ" "FJI" 242 "Fiji" fiji []]
+ ["FI" "FIN" 246 "Finland" finland []]
+ ["FR" "FRA" 250 "France" france []]
+ ["GF" "GUF" 254 "French Guiana" french-guiana []]
+ ["PF" "PYF" 258 "French Polynesia" french-polynesia []]
+ ["TF" "ATF" 260 "French Southern Territories" french-southern-territories []]
+ ["GA" "GAB" 266 "Gabon" gabon []]
+ ["GM" "GMB" 270 "The Gambia" the-gambia []]
+ ["GE" "GEO" 268 "Georgia" georgia []]
+ ["DE" "DEU" 276 "Germany" germany []]
+ ["GH" "GHA" 288 "Ghana" ghana []]
+ ["GI" "GIB" 292 "Gibraltar" gibraltar []]
+ ["GR" "GRC" 300 "Greece" greece []]
+ ["GL" "GRL" 304 "Greenland" greenland []]
+ ["GD" "GRD" 308 "Grenada" grenada []]
+ ["GP" "GLP" 312 "Guadeloupe" guadeloupe []]
+ ["GU" "GUM" 316 "Guam" guam []]
+ ["GT" "GTM" 320 "Guatemala" guatemala []]
+ ["GG" "GGY" 831 "Guernsey" guernsey []]
+ ["GN" "GIN" 324 "Guinea" guinea []]
+ ["GW" "GNB" 624 "Guinea-Bissau" guinea-bissau []]
+ ["GY" "GUY" 328 "Guyana" guyana []]
+ ["HT" "HTI" 332 "Haiti" haiti []]
+ ["HM" "HMD" 334 "Heard Island and McDonald Islands" heard-island [[mcdonald-islands]]]
+ ["VA" "VAT" 336 "Vatican City" vatican-city []]
+ ["HN" "HND" 340 "Honduras" honduras []]
+ ["HK" "HKG" 344 "Hong Kong" hong-kong []]
+ ["HU" "HUN" 348 "Hungary" hungary []]
+ ["IS" "ISL" 352 "Iceland" iceland []]
+ ["IN" "IND" 356 "India" india []]
+ ["ID" "IDN" 360 "Indonesia" indonesia []]
+ ["IR" "IRN" 364 "Iran" iran []]
+ ["IQ" "IRQ" 368 "Iraq" iraq []]
+ ["IE" "IRL" 372 "Ireland" ireland []]
+ ["IM" "IMN" 833 "Isle of Man" isle-of-man []]
+ ["IL" "ISR" 376 "Israel" israel []]
+ ["IT" "ITA" 380 "Italy" italy []]
+ ["JM" "JAM" 388 "Jamaica" jamaica []]
+ ["JP" "JPN" 392 "Japan" japan []]
+ ["JE" "JEY" 832 "Jersey" jersey []]
+ ["JO" "JOR" 400 "Jordan" jordan []]
+ ["KZ" "KAZ" 398 "Kazakhstan" kazakhstan []]
+ ["KE" "KEN" 404 "Kenya" kenya []]
+ ["KI" "KIR" 296 "Kiribati" kiribati []]
+ ["KP" "PRK" 408 "North Korea" north-korea []]
+ ["KR" "KOR" 410 "South Korea" south-korea []]
+ ["KW" "KWT" 414 "Kuwait" kuwait []]
+ ["KG" "KGZ" 417 "Kyrgyzstan" kyrgyzstan []]
+ ["LA" "LAO" 418 "Laos" laos []]
+ ["LV" "LVA" 428 "Latvia" latvia []]
+ ["LB" "LBN" 422 "Lebanon" lebanon []]
+ ["LS" "LSO" 426 "Lesotho" lesotho []]
+ ["LR" "LBR" 430 "Liberia" liberia []]
+ ["LY" "LBY" 434 "Libya" libya []]
+ ["LI" "LIE" 438 "Liechtenstein" liechtenstein []]
+ ["LT" "LTU" 440 "Lithuania" lithuania []]
+ ["LU" "LUX" 442 "Luxembourg" luxembourg []]
+ ["MO" "MAC" 446 "Macau" macau []]
+ ["MK" "MKD" 807 "Macedonia" macedonia []]
+ ["MG" "MDG" 450 "Madagascar" madagascar []]
+ ["MW" "MWI" 454 "Malawi" malawi []]
+ ["MY" "MYS" 458 "Malaysia" malaysia []]
+ ["MV" "MDV" 462 "Maldives" maldives []]
+ ["ML" "MLI" 466 "Mali" mali []]
+ ["MT" "MLT" 470 "Malta" malta []]
+ ["MH" "MHL" 584 "Marshall Islands" marshall-islands []]
+ ["MQ" "MTQ" 474 "Martinique" martinique []]
+ ["MR" "MRT" 478 "Mauritania" mauritania []]
+ ["MU" "MUS" 480 "Mauritius" mauritius []]
+ ["YT" "MYT" 175 "Mayotte" mayotte []]
+ ["MX" "MEX" 484 "Mexico" mexico []]
+ ["FM" "FSM" 583 "Micronesia" micronesia []]
+ ["MD" "MDA" 498 "Moldova" moldova []]
+ ["MC" "MCO" 492 "Monaco" monaco []]
+ ["MN" "MNG" 496 "Mongolia" mongolia []]
+ ["ME" "MNE" 499 "Montenegro" montenegro []]
+ ["MS" "MSR" 500 "Montserrat" montserrat []]
+ ["MA" "MAR" 504 "Morocco" morocco []]
+ ["MZ" "MOZ" 508 "Mozambique" mozambique []]
+ ["MM" "MMR" 104 "Myanmar" myanmar []]
+ ["NA" "NAM" 516 "Namibia" namibia []]
+ ["NR" "NRU" 520 "Nauru" nauru []]
+ ["NP" "NPL" 524 "Nepal" nepal []]
+ ["NL" "NLD" 528 "Netherlands" netherlands []]
+ ["NC" "NCL" 540 "New Caledonia" new-caledonia []]
+ ["NZ" "NZL" 554 "New Zealand" new-zealand []]
+ ["NI" "NIC" 558 "Nicaragua" nicaragua []]
+ ["NE" "NER" 562 "Niger" niger []]
+ ["NG" "NGA" 566 "Nigeria" nigeria []]
+ ["NU" "NIU" 570 "Niue" niue []]
+ ["NF" "NFK" 574 "Norfolk Island" norfolk-island []]
+ ["MP" "MNP" 580 "Northern Mariana Islands" northern-mariana-islands []]
+ ["NO" "NOR" 578 "Norway" norway []]
+ ["OM" "OMN" 512 "Oman" oman []]
+ ["PK" "PAK" 586 "Pakistan" pakistan []]
+ ["PW" "PLW" 585 "Palau" palau []]
+ ["PS" "PSE" 275 "Palestine" palestine []]
+ ["PA" "PAN" 591 "Panama" panama []]
+ ["PG" "PNG" 598 "Papua New Guinea" papua-new-guinea []]
+ ["PY" "PRY" 600 "Paraguay" paraguay []]
+ ["PE" "PER" 604 "Peru" peru []]
+ ["PH" "PHL" 608 "Philippines" philippines []]
+ ["PN" "PCN" 612 "Pitcairn Islands" pitcairn-islands []]
+ ["PL" "POL" 616 "Poland" poland []]
+ ["PT" "PRT" 620 "Portugal" portugal []]
+ ["PR" "PRI" 630 "Puerto Rico" puerto-rico []]
+ ["QA" "QAT" 634 "Qatar" qatar []]
+ ["RE" "REU" 638 "Reunion" reunion []]
+ ["RO" "ROU" 642 "Romania" romania []]
+ ["RU" "RUS" 643 "Russia" russia []]
+ ["RW" "RWA" 646 "Rwanda" rwanda []]
+ ["BL" "BLM" 652 "Saint Barthélemy" saint-barthelemy []]
+ ["SH" "SHN" 654 "Saint Helena, Ascension and Tristan da Cunha" saint-helena [[ascension] [tristan-da-cunha]]]
+ ["KN" "KNA" 659 "Saint Kitts and Nevis" saint-kitts [[nevis]]]
+ ["LC" "LCA" 662 "Saint Lucia" saint-lucia []]
+ ["MF" "MAF" 663 "Saint Martin" saint-martin []]
+ ["PM" "SPM" 666 "Saint Pierre and Miquelon" saint-pierre [[miquelon]]]
+ ["VC" "VCT" 670 "Saint Vincent and the Grenadines" saint-vincent [[the-grenadines]]]
+ ["WS" "WSM" 882 "Samoa" samoa []]
+ ["SM" "SMR" 674 "San Marino" san-marino []]
+ ["ST" "STP" 678 "Sao Tome and Principe" sao-tome [[principe]]]
+ ["SA" "SAU" 682 "Saudi Arabia" saudi-arabia []]
+ ["SN" "SEN" 686 "Senegal" senegal []]
+ ["RS" "SRB" 688 "Serbia" serbia []]
+ ["SC" "SYC" 690 "Seychelles" seychelles []]
+ ["SL" "SLE" 694 "Sierra Leone" sierra-leone []]
+ ["SG" "SGP" 702 "Singapore" singapore []]
+ ["SX" "SXM" 534 "Sint Maarten" sint-maarten []]
+ ["SK" "SVK" 703 "Slovakia" slovakia []]
+ ["SI" "SVN" 705 "Slovenia" slovenia []]
+ ["SB" "SLB" 090 "Solomon Islands" solomon-islands []]
+ ["SO" "SOM" 706 "Somalia" somalia []]
+ ["ZA" "ZAF" 710 "South Africa" south-africa []]
+ ["GS" "SGS" 239 "South Georgia and the South Sandwich Islands" south-georgia [[south-sandwich-islands]]]
+ ["SS" "SSD" 728 "South Sudan" south-sudan []]
+ ["ES" "ESP" 724 "Spain" spain []]
+ ["LK" "LKA" 144 "Sri Lanka" sri-lanka []]
+ ["SD" "SDN" 729 "Sudan" sudan []]
+ ["SR" "SUR" 740 "Suriname" suriname []]
+ ["SJ" "SJM" 744 "Svalbard and Jan Mayen" svalbard [[jan-mayen]]]
+ ["SE" "SWE" 752 "Sweden" sweden []]
+ ["CH" "CHE" 756 "Switzerland" switzerland []]
+ ["SY" "SYR" 760 "Syria" syria []]
+ ["TW" "TWN" 158 "Taiwan" taiwan []]
+ ["TJ" "TJK" 762 "Tajikistan" tajikistan []]
+ ["TZ" "TZA" 834 "Tanzania" tanzania []]
+ ["TH" "THA" 764 "Thailand" thailand []]
+ ["TL" "TLS" 626 "East Timor" east-timor []]
+ ["TG" "TGO" 768 "Togo" togo []]
+ ["TK" "TKL" 772 "Tokelau" tokelau []]
+ ["TO" "TON" 776 "Tonga" tonga []]
+ ["TT" "TTO" 780 "Trinidad and Tobago" trinidad [[tobago]]]
+ ["TN" "TUN" 788 "Tunisia" tunisia []]
+ ["TR" "TUR" 792 "Turkey" turkey []]
+ ["TM" "TKM" 795 "Turkmenistan" turkmenistan []]
+ ["TC" "TCA" 796 "Turks and Caicos Islands" turks [[caicos-islands]]]
+ ["TV" "TUV" 798 "Tuvalu" tuvalu []]
+ ["UG" "UGA" 800 "Uganda" uganda []]
+ ["UA" "UKR" 804 "Ukraine" ukraine []]
+ ["AE" "ARE" 784 "United Arab Emirates" united-arab-emirates []]
+ ["GB" "GBR" 826 "United Kingdom of Great Britain and Northern Ireland" united-kingdom [[northern-ireland]]]
+ ["US" "USA" 840 "United States of America" united-states-of-america []]
+ ["UM" "UMI" 581 "United States Minor Outlying Islands" united-states-minor-outlying-islands []]
+ ["UY" "URY" 858 "Uruguay" uruguay []]
+ ["UZ" "UZB" 860 "Uzbekistan" uzbekistan []]
+ ["VU" "VUT" 548 "Vanuatu" vanuatu []]
+ ["VE" "VEN" 862 "Venezuela" venezuela []]
+ ["VN" "VNM" 704 "Vietnam" vietnam []]
+ ["VG" "VGB" 092 "British Virgin Islands" british-virgin-islands []]
+ ["VI" "VIR" 850 "United States Virgin Islands" united-states-virgin-islands []]
+ ["WF" "WLF" 876 "Wallis and Futuna" wallis [[futuna]]]
+ ["EH" "ESH" 732 "Western Sahara" western-sahara []]
+ ["YE" "YEM" 887 "Yemen" yemen []]
+ ["ZM" "ZMB" 894 "Zambia" zambia []]
+ ["ZW" "ZWE" 716 "Zimbabwe" zimbabwe []]
+ )
+ )