From e115f5f07f5b663b9f533049991a9ab834b44f5e Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Tue, 22 Jan 2019 20:22:25 -0400 Subject: Re-structured the l10n/i18n machinery. --- stdlib/source/lux/data/format/css/selector.lux | 4 +- stdlib/source/lux/locale.lux | 55 +++ stdlib/source/lux/locale/language.lux | 528 +++++++++++++++++++++ stdlib/source/lux/locale/territory.lux | 308 ++++++++++++ .../lux/world/internationalization/language.lux | 528 --------------------- .../lux/world/internationalization/locale.lux | 55 --- .../lux/world/internationalization/territory.lux | 308 ------------ stdlib/test/tests.lux | 3 + 8 files changed, 895 insertions(+), 894 deletions(-) create mode 100644 stdlib/source/lux/locale.lux create mode 100644 stdlib/source/lux/locale/language.lux create mode 100644 stdlib/source/lux/locale/territory.lux delete mode 100644 stdlib/source/lux/world/internationalization/language.lux delete mode 100644 stdlib/source/lux/world/internationalization/locale.lux delete mode 100644 stdlib/source/lux/world/internationalization/territory.lux (limited to 'stdlib') diff --git a/stdlib/source/lux/data/format/css/selector.lux b/stdlib/source/lux/data/format/css/selector.lux index f5a33e833..23d19b9a5 100644 --- a/stdlib/source/lux/data/format/css/selector.lux +++ b/stdlib/source/lux/data/format/css/selector.lux @@ -5,9 +5,7 @@ format]] [type abstract] - [world - [internationalization - ["." locale (#+ Locale)]]]]) + ["." locale (#+ Locale)]]) (type: #export Tag Text) (type: #export ID Text) diff --git a/stdlib/source/lux/locale.lux b/stdlib/source/lux/locale.lux new file mode 100644 index 000000000..30d9abcd3 --- /dev/null +++ b/stdlib/source/lux/locale.lux @@ -0,0 +1,55 @@ +(.module: + [lux #* + [control + [equivalence (#+ Equivalence)] + [hash (#+ Hash)]] + [data + ["." text + format + ["." encoding (#+ Encoding)]]] + [type + abstract] + ["." macro]] + [/ + ["." language (#+ Language)] + ["." territory (#+ Territory)]]) + +(abstract: #export Locale + {} + + Text + + (def: territory-separator "_") + (def: encoding-separator ".") + + (def: #export (locale language territory encoding) + (-> Language (Maybe Territory) (Maybe Encoding) Locale) + (:abstraction (format (language.language language) + (case territory + (#.Some territory) + (format ..territory-separator (territory.long-code territory)) + + #.None + "") + (case encoding + (#.Some encoding) + (format ..encoding-separator (encoding.name encoding)) + + #.None + "")))) + + (def: #export code + (-> Locale Text) + (|>> :representation)) + + (structure: #export _ (Equivalence Locale) + (def: (= reference sample) + (:: text.Equivalence = (:representation reference) (:representation sample)))) + + (structure: #export _ (Hash Locale) + (def: eq Equivalence) + + (def: hash + (|>> :representation + (:: text.Hash hash)))) + ) diff --git a/stdlib/source/lux/locale/language.lux b/stdlib/source/lux/locale/language.lux new file mode 100644 index 000000000..3075eba16 --- /dev/null +++ b/stdlib/source/lux/locale/language.lux @@ -0,0 +1,528 @@ +(.module: + [lux #* + [control + [equivalence (#+ Equivalence)] + [hash (#+ Hash)]] + [data + ["." text]] + [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 [ +] + [(def: #export Language (:abstraction )) + (`` (do-template [] + [(def: #export Language )] + + (~~ (macro.multi +))))] + + ["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]]] + ) + + (structure: #export _ (Equivalence Language) + (def: (= reference sample) + (is? reference sample))) + + (structure: #export _ (Hash Language) + (def: eq Equivalence) + + (def: hash + (|>> :representation + (:: text.Hash hash)))) + ) diff --git a/stdlib/source/lux/locale/territory.lux b/stdlib/source/lux/locale/territory.lux new file mode 100644 index 000000000..ece06b9d6 --- /dev/null +++ b/stdlib/source/lux/locale/territory.lux @@ -0,0 +1,308 @@ +(.module: + [lux #* + [control + [equivalence (#+ Equivalence)] + [hash (#+ Hash)]] + [data + ["." text]] + [type + abstract] + ["." macro]]) + +## https://en.wikipedia.org/wiki/ISO_3166-1 +(abstract: #export Territory + {} + + {#name Text + #short Text + #long Text + #code Nat} + + (do-template [ ] + [(def: #export + (-> Territory ) + (|>> :representation + (get@ )))] + + [name #name Text] + [short-code #short Text] + [long-code #long Text] + [numeric-code #code Nat] + ) + + (do-template [
+] + [(def: #export
+ Territory + (:abstraction {#name + #short + #long + #code })) + + (`` (do-template [] + [(def: #export Territory
)] + + (~~ (macro.multi +))))] + + ["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 []] + ) + + (structure: #export _ (Equivalence Territory) + (def: (= reference sample) + (is? reference sample))) + + (structure: #export _ (Hash Territory) + (def: eq Equivalence) + + (def: hash + (|>> :representation + (get@ #long) + (:: text.Hash hash)))) + ) diff --git a/stdlib/source/lux/world/internationalization/language.lux b/stdlib/source/lux/world/internationalization/language.lux deleted file mode 100644 index 3075eba16..000000000 --- a/stdlib/source/lux/world/internationalization/language.lux +++ /dev/null @@ -1,528 +0,0 @@ -(.module: - [lux #* - [control - [equivalence (#+ Equivalence)] - [hash (#+ Hash)]] - [data - ["." text]] - [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 [ +] - [(def: #export Language (:abstraction )) - (`` (do-template [] - [(def: #export Language )] - - (~~ (macro.multi +))))] - - ["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]]] - ) - - (structure: #export _ (Equivalence Language) - (def: (= reference sample) - (is? reference sample))) - - (structure: #export _ (Hash Language) - (def: eq Equivalence) - - (def: hash - (|>> :representation - (:: text.Hash hash)))) - ) diff --git a/stdlib/source/lux/world/internationalization/locale.lux b/stdlib/source/lux/world/internationalization/locale.lux deleted file mode 100644 index 3c63f4dca..000000000 --- a/stdlib/source/lux/world/internationalization/locale.lux +++ /dev/null @@ -1,55 +0,0 @@ -(.module: - [lux #* - [control - [equivalence (#+ Equivalence)] - [hash (#+ Hash)]] - [data - ["." text - format - ["." encoding (#+ Encoding)]]] - [type - abstract] - ["." macro]] - [// - ["." language (#+ Language)] - ["." territory (#+ Territory)]]) - -(abstract: #export Locale - {} - - Text - - (def: territory-separator "_") - (def: encoding-separator ".") - - (def: #export (locale language territory encoding) - (-> Language (Maybe Territory) (Maybe Encoding) Locale) - (:abstraction (format (language.language language) - (case territory - (#.Some territory) - (format ..territory-separator (territory.long-code territory)) - - #.None - "") - (case encoding - (#.Some encoding) - (format ..encoding-separator (encoding.name encoding)) - - #.None - "")))) - - (def: #export code - (-> Locale Text) - (|>> :representation)) - - (structure: #export _ (Equivalence Locale) - (def: (= reference sample) - (:: text.Equivalence = (:representation reference) (:representation sample)))) - - (structure: #export _ (Hash Locale) - (def: eq Equivalence) - - (def: hash - (|>> :representation - (:: text.Hash hash)))) - ) diff --git a/stdlib/source/lux/world/internationalization/territory.lux b/stdlib/source/lux/world/internationalization/territory.lux deleted file mode 100644 index ece06b9d6..000000000 --- a/stdlib/source/lux/world/internationalization/territory.lux +++ /dev/null @@ -1,308 +0,0 @@ -(.module: - [lux #* - [control - [equivalence (#+ Equivalence)] - [hash (#+ Hash)]] - [data - ["." text]] - [type - abstract] - ["." macro]]) - -## https://en.wikipedia.org/wiki/ISO_3166-1 -(abstract: #export Territory - {} - - {#name Text - #short Text - #long Text - #code Nat} - - (do-template [ ] - [(def: #export - (-> Territory ) - (|>> :representation - (get@ )))] - - [name #name Text] - [short-code #short Text] - [long-code #long Text] - [numeric-code #code Nat] - ) - - (do-template [
+] - [(def: #export
- Territory - (:abstraction {#name - #short - #long - #code })) - - (`` (do-template [] - [(def: #export Territory
)] - - (~~ (macro.multi +))))] - - ["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 []] - ) - - (structure: #export _ (Equivalence Territory) - (def: (= reference sample) - (is? reference sample))) - - (structure: #export _ (Hash Territory) - (def: eq Equivalence) - - (def: hash - (|>> :representation - (get@ #long) - (:: text.Hash hash)))) - ) diff --git a/stdlib/test/tests.lux b/stdlib/test/tests.lux index 4a6036842..fa5eb2f67 100644 --- a/stdlib/test/tests.lux +++ b/stdlib/test/tests.lux @@ -6,6 +6,9 @@ ## These modules do not need to be tested. [type [variance (#+)]] + [locale (#+) + [language (#+)] + [territory (#+)]] ## TODO: Test these modules [data -- cgit v1.2.3