-module(lang). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/lang.gleam"). -export([to_iso639_1/1, to_iso639_2/1, from_iso639_1/1, from_iso639_2/1, to_name/1]). -export_type([language/0]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. ?MODULEDOC( " Lang provides a `Language` type representing the 183 languages\n" " from the ISO 639 standard that have both ISO 639-1 (alpha-2, two-letter)\n" " and ISO 639-2 (alpha-3, three-letter) codes.\n" " \n" " It does not handle regional variants or scripts -\n" " those concerns are left to application code or higher-level libraries.\n" "\n" " ## Examples\n" "\n" " ```gleam\n" " import lang\n" "\n" " fn main() {\n" " let language = lang.En\n" " \n" " // Convert to codes\n" " lang.to_iso639_1(language)\n" " // -> \"en\"\n" " \n" " lang.to_iso639_2(language)\n" " // -> \"eng\"\n" " \n" " // Parse from codes\n" " lang.from_iso639_1(\"ko\")\n" " // -> Ok(Ko)\n" " \n" " lang.from_iso639_2(\"kor\")\n" " // -> Ok(Ko)\n" " \n" " // Get language name\n" " lang.to_name(language)\n" " // -> \"English\"\n" " }\n" " ```\n" ). -type language() :: aa | ab | af | ak | sq | am | ar | an | hy | as | av | ae | ay | az | ba | bm | eu | be | bn | bi | bs | br | bg | my | ca | ch | ce | zh | cu | cv | kw | co | cr | cs | da | dv | nl | dz | en | eo | et | ee | fo | fj | fi | fr | fy | ff | ka | de | gd | ga | gl | gv | el | gn | gu | ht | ha | he | hz | hi | ho | hr | hu | ig | is | io | ii | iu | ie | ia | id | ik | it | jv | ja | kl | kn | ks | kr | kk | km | ki | rw | ky | kv | kg | ko | kj | ku | lo | la | lv | li | ln | lt | lb | lu | lg | mk | mh | ml | mi | mr | ms | mg | mt | mn | na | nv | nr | nd | ng | ne | nn | nb | no | ny | oc | oj | 'or' | om | os | pa | fa | pi | pl | pt | ps | qu | rm | ro | rn | ru | sg | sa | si | sk | sl | se | sm | sn | sd | so | st | es | sc | sr | ss | su | sw | sv | ty | ta | tt | te | tg | tl | th | bo | ti | to | tn | ts | tk | tr | tw | ug | uk | ur | uz | ve | vi | vo | cy | wa | wo | xh | yi | yo | za | zu. -file("src/lang.gleam", 428). ?DOC( " Convert a `Language` to its ISO 639-1 two-letter code.\n" "\n" " ## Examples\n" "\n" " ```gleam\n" " to_iso639_1(En)\n" " // -> \"en\"\n" "\n" " to_iso639_1(De)\n" " // -> \"de\"\n" " ```\n" ). -spec to_iso639_1(language()) -> binary(). to_iso639_1(Language) -> case Language of aa -> <<"aa"/utf8>>; ab -> <<"ab"/utf8>>; af -> <<"af"/utf8>>; ak -> <<"ak"/utf8>>; sq -> <<"sq"/utf8>>; am -> <<"am"/utf8>>; ar -> <<"ar"/utf8>>; an -> <<"an"/utf8>>; hy -> <<"hy"/utf8>>; as -> <<"as"/utf8>>; av -> <<"av"/utf8>>; ae -> <<"ae"/utf8>>; ay -> <<"ay"/utf8>>; az -> <<"az"/utf8>>; ba -> <<"ba"/utf8>>; bm -> <<"bm"/utf8>>; eu -> <<"eu"/utf8>>; be -> <<"be"/utf8>>; bn -> <<"bn"/utf8>>; bi -> <<"bi"/utf8>>; bs -> <<"bs"/utf8>>; br -> <<"br"/utf8>>; bg -> <<"bg"/utf8>>; my -> <<"my"/utf8>>; ca -> <<"ca"/utf8>>; ch -> <<"ch"/utf8>>; ce -> <<"ce"/utf8>>; zh -> <<"zh"/utf8>>; cu -> <<"cu"/utf8>>; cv -> <<"cv"/utf8>>; kw -> <<"kw"/utf8>>; co -> <<"co"/utf8>>; cr -> <<"cr"/utf8>>; cs -> <<"cs"/utf8>>; da -> <<"da"/utf8>>; dv -> <<"dv"/utf8>>; nl -> <<"nl"/utf8>>; dz -> <<"dz"/utf8>>; en -> <<"en"/utf8>>; eo -> <<"eo"/utf8>>; et -> <<"et"/utf8>>; ee -> <<"ee"/utf8>>; fo -> <<"fo"/utf8>>; fj -> <<"fj"/utf8>>; fi -> <<"fi"/utf8>>; fr -> <<"fr"/utf8>>; fy -> <<"fy"/utf8>>; ff -> <<"ff"/utf8>>; ka -> <<"ka"/utf8>>; de -> <<"de"/utf8>>; gd -> <<"gd"/utf8>>; ga -> <<"ga"/utf8>>; gl -> <<"gl"/utf8>>; gv -> <<"gv"/utf8>>; el -> <<"el"/utf8>>; gn -> <<"gn"/utf8>>; gu -> <<"gu"/utf8>>; ht -> <<"ht"/utf8>>; ha -> <<"ha"/utf8>>; he -> <<"he"/utf8>>; hz -> <<"hz"/utf8>>; hi -> <<"hi"/utf8>>; ho -> <<"ho"/utf8>>; hr -> <<"hr"/utf8>>; hu -> <<"hu"/utf8>>; ig -> <<"ig"/utf8>>; is -> <<"is"/utf8>>; io -> <<"io"/utf8>>; ii -> <<"ii"/utf8>>; iu -> <<"iu"/utf8>>; ie -> <<"ie"/utf8>>; ia -> <<"ia"/utf8>>; id -> <<"id"/utf8>>; ik -> <<"ik"/utf8>>; it -> <<"it"/utf8>>; jv -> <<"jv"/utf8>>; ja -> <<"ja"/utf8>>; kl -> <<"kl"/utf8>>; kn -> <<"kn"/utf8>>; ks -> <<"ks"/utf8>>; kr -> <<"kr"/utf8>>; kk -> <<"kk"/utf8>>; km -> <<"km"/utf8>>; ki -> <<"ki"/utf8>>; rw -> <<"rw"/utf8>>; ky -> <<"ky"/utf8>>; kv -> <<"kv"/utf8>>; kg -> <<"kg"/utf8>>; ko -> <<"ko"/utf8>>; kj -> <<"kj"/utf8>>; ku -> <<"ku"/utf8>>; lo -> <<"lo"/utf8>>; la -> <<"la"/utf8>>; lv -> <<"lv"/utf8>>; li -> <<"li"/utf8>>; ln -> <<"ln"/utf8>>; lt -> <<"lt"/utf8>>; lb -> <<"lb"/utf8>>; lu -> <<"lu"/utf8>>; lg -> <<"lg"/utf8>>; mk -> <<"mk"/utf8>>; mh -> <<"mh"/utf8>>; ml -> <<"ml"/utf8>>; mi -> <<"mi"/utf8>>; mr -> <<"mr"/utf8>>; ms -> <<"ms"/utf8>>; mg -> <<"mg"/utf8>>; mt -> <<"mt"/utf8>>; mn -> <<"mn"/utf8>>; na -> <<"na"/utf8>>; nv -> <<"nv"/utf8>>; nr -> <<"nr"/utf8>>; nd -> <<"nd"/utf8>>; ng -> <<"ng"/utf8>>; ne -> <<"ne"/utf8>>; nn -> <<"nn"/utf8>>; nb -> <<"nb"/utf8>>; no -> <<"no"/utf8>>; ny -> <<"ny"/utf8>>; oc -> <<"oc"/utf8>>; oj -> <<"oj"/utf8>>; 'or' -> <<"or"/utf8>>; om -> <<"om"/utf8>>; os -> <<"os"/utf8>>; pa -> <<"pa"/utf8>>; fa -> <<"fa"/utf8>>; pi -> <<"pi"/utf8>>; pl -> <<"pl"/utf8>>; pt -> <<"pt"/utf8>>; ps -> <<"ps"/utf8>>; qu -> <<"qu"/utf8>>; rm -> <<"rm"/utf8>>; ro -> <<"ro"/utf8>>; rn -> <<"rn"/utf8>>; ru -> <<"ru"/utf8>>; sg -> <<"sg"/utf8>>; sa -> <<"sa"/utf8>>; si -> <<"si"/utf8>>; sk -> <<"sk"/utf8>>; sl -> <<"sl"/utf8>>; se -> <<"se"/utf8>>; sm -> <<"sm"/utf8>>; sn -> <<"sn"/utf8>>; sd -> <<"sd"/utf8>>; so -> <<"so"/utf8>>; st -> <<"st"/utf8>>; es -> <<"es"/utf8>>; sc -> <<"sc"/utf8>>; sr -> <<"sr"/utf8>>; ss -> <<"ss"/utf8>>; su -> <<"su"/utf8>>; sw -> <<"sw"/utf8>>; sv -> <<"sv"/utf8>>; ty -> <<"ty"/utf8>>; ta -> <<"ta"/utf8>>; tt -> <<"tt"/utf8>>; te -> <<"te"/utf8>>; tg -> <<"tg"/utf8>>; tl -> <<"tl"/utf8>>; th -> <<"th"/utf8>>; bo -> <<"bo"/utf8>>; ti -> <<"ti"/utf8>>; to -> <<"to"/utf8>>; tn -> <<"tn"/utf8>>; ts -> <<"ts"/utf8>>; tk -> <<"tk"/utf8>>; tr -> <<"tr"/utf8>>; tw -> <<"tw"/utf8>>; ug -> <<"ug"/utf8>>; uk -> <<"uk"/utf8>>; ur -> <<"ur"/utf8>>; uz -> <<"uz"/utf8>>; ve -> <<"ve"/utf8>>; vi -> <<"vi"/utf8>>; vo -> <<"vo"/utf8>>; cy -> <<"cy"/utf8>>; wa -> <<"wa"/utf8>>; wo -> <<"wo"/utf8>>; xh -> <<"xh"/utf8>>; yi -> <<"yi"/utf8>>; yo -> <<"yo"/utf8>>; za -> <<"za"/utf8>>; zu -> <<"zu"/utf8>> end. -file("src/lang.gleam", 634). ?DOC( " Convert a `Language` to its ISO 639-2 three-letter terminological code.\n" "\n" " When a language has both bibliographic and terminological codes, this function\n" " returns the terminological (T) code. For example, German returns `\"deu\"` \n" " (not `\"ger\"`), and Chinese returns `\"zho\"` (not `\"chi\"`).\n" "\n" " ## Examples\n" "\n" " ```gleam\n" " to_iso639_2(En)\n" " // -> \"eng\"\n" "\n" " to_iso639_2(De)\n" " // -> \"deu\"\n" "\n" " to_iso639_2(Zh)\n" " // -> \"zho\"\n" " ```\n" ). -spec to_iso639_2(language()) -> binary(). to_iso639_2(Language) -> case Language of aa -> <<"aar"/utf8>>; ab -> <<"abk"/utf8>>; af -> <<"afr"/utf8>>; ak -> <<"aka"/utf8>>; sq -> <<"sqi"/utf8>>; am -> <<"amh"/utf8>>; ar -> <<"ara"/utf8>>; an -> <<"arg"/utf8>>; hy -> <<"hye"/utf8>>; as -> <<"asm"/utf8>>; av -> <<"ava"/utf8>>; ae -> <<"ave"/utf8>>; ay -> <<"aym"/utf8>>; az -> <<"aze"/utf8>>; ba -> <<"bak"/utf8>>; bm -> <<"bam"/utf8>>; eu -> <<"eus"/utf8>>; be -> <<"bel"/utf8>>; bn -> <<"ben"/utf8>>; bi -> <<"bis"/utf8>>; bs -> <<"bos"/utf8>>; br -> <<"bre"/utf8>>; bg -> <<"bul"/utf8>>; my -> <<"mya"/utf8>>; ca -> <<"cat"/utf8>>; ch -> <<"cha"/utf8>>; ce -> <<"che"/utf8>>; zh -> <<"zho"/utf8>>; cu -> <<"chu"/utf8>>; cv -> <<"chv"/utf8>>; kw -> <<"cor"/utf8>>; co -> <<"cos"/utf8>>; cr -> <<"cre"/utf8>>; cs -> <<"ces"/utf8>>; da -> <<"dan"/utf8>>; dv -> <<"div"/utf8>>; nl -> <<"nld"/utf8>>; dz -> <<"dzo"/utf8>>; en -> <<"eng"/utf8>>; eo -> <<"epo"/utf8>>; et -> <<"est"/utf8>>; ee -> <<"ewe"/utf8>>; fo -> <<"fao"/utf8>>; fj -> <<"fij"/utf8>>; fi -> <<"fin"/utf8>>; fr -> <<"fra"/utf8>>; fy -> <<"fry"/utf8>>; ff -> <<"ful"/utf8>>; ka -> <<"kat"/utf8>>; de -> <<"deu"/utf8>>; gd -> <<"gla"/utf8>>; ga -> <<"gle"/utf8>>; gl -> <<"glg"/utf8>>; gv -> <<"glv"/utf8>>; el -> <<"ell"/utf8>>; gn -> <<"grn"/utf8>>; gu -> <<"guj"/utf8>>; ht -> <<"hat"/utf8>>; ha -> <<"hau"/utf8>>; he -> <<"heb"/utf8>>; hz -> <<"her"/utf8>>; hi -> <<"hin"/utf8>>; ho -> <<"hmo"/utf8>>; hr -> <<"hrv"/utf8>>; hu -> <<"hun"/utf8>>; ig -> <<"ibo"/utf8>>; is -> <<"isl"/utf8>>; io -> <<"ido"/utf8>>; ii -> <<"iii"/utf8>>; iu -> <<"iku"/utf8>>; ie -> <<"ile"/utf8>>; ia -> <<"ina"/utf8>>; id -> <<"ind"/utf8>>; ik -> <<"ipk"/utf8>>; it -> <<"ita"/utf8>>; jv -> <<"jav"/utf8>>; ja -> <<"jpn"/utf8>>; kl -> <<"kal"/utf8>>; kn -> <<"kan"/utf8>>; ks -> <<"kas"/utf8>>; kr -> <<"kau"/utf8>>; kk -> <<"kaz"/utf8>>; km -> <<"khm"/utf8>>; ki -> <<"kik"/utf8>>; rw -> <<"kin"/utf8>>; ky -> <<"kir"/utf8>>; kv -> <<"kom"/utf8>>; kg -> <<"kon"/utf8>>; ko -> <<"kor"/utf8>>; kj -> <<"kua"/utf8>>; ku -> <<"kur"/utf8>>; lo -> <<"lao"/utf8>>; la -> <<"lat"/utf8>>; lv -> <<"lav"/utf8>>; li -> <<"lim"/utf8>>; ln -> <<"lin"/utf8>>; lt -> <<"lit"/utf8>>; lb -> <<"ltz"/utf8>>; lu -> <<"lub"/utf8>>; lg -> <<"lug"/utf8>>; mk -> <<"mkd"/utf8>>; mh -> <<"mah"/utf8>>; ml -> <<"mal"/utf8>>; mi -> <<"mri"/utf8>>; mr -> <<"mar"/utf8>>; ms -> <<"msa"/utf8>>; mg -> <<"mlg"/utf8>>; mt -> <<"mlt"/utf8>>; mn -> <<"mon"/utf8>>; na -> <<"nau"/utf8>>; nv -> <<"nav"/utf8>>; nr -> <<"nbl"/utf8>>; nd -> <<"nde"/utf8>>; ng -> <<"ndo"/utf8>>; ne -> <<"nep"/utf8>>; nn -> <<"nno"/utf8>>; nb -> <<"nob"/utf8>>; no -> <<"nor"/utf8>>; ny -> <<"nya"/utf8>>; oc -> <<"oci"/utf8>>; oj -> <<"oji"/utf8>>; 'or' -> <<"ori"/utf8>>; om -> <<"orm"/utf8>>; os -> <<"oss"/utf8>>; pa -> <<"pan"/utf8>>; fa -> <<"fas"/utf8>>; pi -> <<"pli"/utf8>>; pl -> <<"pol"/utf8>>; pt -> <<"por"/utf8>>; ps -> <<"pus"/utf8>>; qu -> <<"que"/utf8>>; rm -> <<"roh"/utf8>>; ro -> <<"ron"/utf8>>; rn -> <<"run"/utf8>>; ru -> <<"rus"/utf8>>; sg -> <<"sag"/utf8>>; sa -> <<"san"/utf8>>; si -> <<"sin"/utf8>>; sk -> <<"slk"/utf8>>; sl -> <<"slv"/utf8>>; se -> <<"sme"/utf8>>; sm -> <<"smo"/utf8>>; sn -> <<"sna"/utf8>>; sd -> <<"snd"/utf8>>; so -> <<"som"/utf8>>; st -> <<"sot"/utf8>>; es -> <<"spa"/utf8>>; sc -> <<"srd"/utf8>>; sr -> <<"srp"/utf8>>; ss -> <<"ssw"/utf8>>; su -> <<"sun"/utf8>>; sw -> <<"swa"/utf8>>; sv -> <<"swe"/utf8>>; ty -> <<"tah"/utf8>>; ta -> <<"tam"/utf8>>; tt -> <<"tat"/utf8>>; te -> <<"tel"/utf8>>; tg -> <<"tgk"/utf8>>; tl -> <<"tgl"/utf8>>; th -> <<"tha"/utf8>>; bo -> <<"bod"/utf8>>; ti -> <<"tir"/utf8>>; to -> <<"ton"/utf8>>; tn -> <<"tsn"/utf8>>; ts -> <<"tso"/utf8>>; tk -> <<"tuk"/utf8>>; tr -> <<"tur"/utf8>>; tw -> <<"twi"/utf8>>; ug -> <<"uig"/utf8>>; uk -> <<"ukr"/utf8>>; ur -> <<"urd"/utf8>>; uz -> <<"uzb"/utf8>>; ve -> <<"ven"/utf8>>; vi -> <<"vie"/utf8>>; vo -> <<"vol"/utf8>>; cy -> <<"cym"/utf8>>; wa -> <<"wln"/utf8>>; wo -> <<"wol"/utf8>>; xh -> <<"xho"/utf8>>; yi -> <<"yid"/utf8>>; yo -> <<"yor"/utf8>>; za -> <<"zha"/utf8>>; zu -> <<"zul"/utf8>> end. -file("src/lang.gleam", 838). ?DOC( " Parse an ISO 639-1 two-letter code into a `Language`.\n" "\n" " The input is case-insensitive and whitespace is trimmed.\n" "\n" " ## Examples\n" "\n" " ```gleam\n" " from_iso639_1(\"en\")\n" " // -> Ok(En)\n" "\n" " from_iso639_1(\"DE\")\n" " // -> Ok(De)\n" "\n" " from_iso639_1(\"invalid\")\n" " // -> Error(Nil)\n" " ```\n" ). -spec from_iso639_1(binary()) -> {ok, language()} | {error, nil}. from_iso639_1(Code) -> case begin _pipe = string:lowercase(Code), gleam@string:trim(_pipe) end of <<"aa"/utf8>> -> {ok, aa}; <<"ab"/utf8>> -> {ok, ab}; <<"af"/utf8>> -> {ok, af}; <<"ak"/utf8>> -> {ok, ak}; <<"sq"/utf8>> -> {ok, sq}; <<"am"/utf8>> -> {ok, am}; <<"ar"/utf8>> -> {ok, ar}; <<"an"/utf8>> -> {ok, an}; <<"hy"/utf8>> -> {ok, hy}; <<"as"/utf8>> -> {ok, as}; <<"av"/utf8>> -> {ok, av}; <<"ae"/utf8>> -> {ok, ae}; <<"ay"/utf8>> -> {ok, ay}; <<"az"/utf8>> -> {ok, az}; <<"ba"/utf8>> -> {ok, ba}; <<"bm"/utf8>> -> {ok, bm}; <<"eu"/utf8>> -> {ok, eu}; <<"be"/utf8>> -> {ok, be}; <<"bn"/utf8>> -> {ok, bn}; <<"bi"/utf8>> -> {ok, bi}; <<"bs"/utf8>> -> {ok, bs}; <<"br"/utf8>> -> {ok, br}; <<"bg"/utf8>> -> {ok, bg}; <<"my"/utf8>> -> {ok, my}; <<"ca"/utf8>> -> {ok, ca}; <<"ch"/utf8>> -> {ok, ch}; <<"ce"/utf8>> -> {ok, ce}; <<"zh"/utf8>> -> {ok, zh}; <<"cu"/utf8>> -> {ok, cu}; <<"cv"/utf8>> -> {ok, cv}; <<"kw"/utf8>> -> {ok, kw}; <<"co"/utf8>> -> {ok, co}; <<"cr"/utf8>> -> {ok, cr}; <<"cs"/utf8>> -> {ok, cs}; <<"da"/utf8>> -> {ok, da}; <<"dv"/utf8>> -> {ok, dv}; <<"nl"/utf8>> -> {ok, nl}; <<"dz"/utf8>> -> {ok, dz}; <<"en"/utf8>> -> {ok, en}; <<"eo"/utf8>> -> {ok, eo}; <<"et"/utf8>> -> {ok, et}; <<"ee"/utf8>> -> {ok, ee}; <<"fo"/utf8>> -> {ok, fo}; <<"fj"/utf8>> -> {ok, fj}; <<"fi"/utf8>> -> {ok, fi}; <<"fr"/utf8>> -> {ok, fr}; <<"fy"/utf8>> -> {ok, fy}; <<"ff"/utf8>> -> {ok, ff}; <<"ka"/utf8>> -> {ok, ka}; <<"de"/utf8>> -> {ok, de}; <<"gd"/utf8>> -> {ok, gd}; <<"ga"/utf8>> -> {ok, ga}; <<"gl"/utf8>> -> {ok, gl}; <<"gv"/utf8>> -> {ok, gv}; <<"el"/utf8>> -> {ok, el}; <<"gn"/utf8>> -> {ok, gn}; <<"gu"/utf8>> -> {ok, gu}; <<"ht"/utf8>> -> {ok, ht}; <<"ha"/utf8>> -> {ok, ha}; <<"he"/utf8>> -> {ok, he}; <<"hz"/utf8>> -> {ok, hz}; <<"hi"/utf8>> -> {ok, hi}; <<"ho"/utf8>> -> {ok, ho}; <<"hr"/utf8>> -> {ok, hr}; <<"hu"/utf8>> -> {ok, hu}; <<"ig"/utf8>> -> {ok, ig}; <<"is"/utf8>> -> {ok, is}; <<"io"/utf8>> -> {ok, io}; <<"ii"/utf8>> -> {ok, ii}; <<"iu"/utf8>> -> {ok, iu}; <<"ie"/utf8>> -> {ok, ie}; <<"ia"/utf8>> -> {ok, ia}; <<"id"/utf8>> -> {ok, id}; <<"ik"/utf8>> -> {ok, ik}; <<"it"/utf8>> -> {ok, it}; <<"jv"/utf8>> -> {ok, jv}; <<"ja"/utf8>> -> {ok, ja}; <<"kl"/utf8>> -> {ok, kl}; <<"kn"/utf8>> -> {ok, kn}; <<"ks"/utf8>> -> {ok, ks}; <<"kr"/utf8>> -> {ok, kr}; <<"kk"/utf8>> -> {ok, kk}; <<"km"/utf8>> -> {ok, km}; <<"ki"/utf8>> -> {ok, ki}; <<"rw"/utf8>> -> {ok, rw}; <<"ky"/utf8>> -> {ok, ky}; <<"kv"/utf8>> -> {ok, kv}; <<"kg"/utf8>> -> {ok, kg}; <<"ko"/utf8>> -> {ok, ko}; <<"kj"/utf8>> -> {ok, kj}; <<"ku"/utf8>> -> {ok, ku}; <<"lo"/utf8>> -> {ok, lo}; <<"la"/utf8>> -> {ok, la}; <<"lv"/utf8>> -> {ok, lv}; <<"li"/utf8>> -> {ok, li}; <<"ln"/utf8>> -> {ok, ln}; <<"lt"/utf8>> -> {ok, lt}; <<"lb"/utf8>> -> {ok, lb}; <<"lu"/utf8>> -> {ok, lu}; <<"lg"/utf8>> -> {ok, lg}; <<"mk"/utf8>> -> {ok, mk}; <<"mh"/utf8>> -> {ok, mh}; <<"ml"/utf8>> -> {ok, ml}; <<"mi"/utf8>> -> {ok, mi}; <<"mr"/utf8>> -> {ok, mr}; <<"ms"/utf8>> -> {ok, ms}; <<"mg"/utf8>> -> {ok, mg}; <<"mt"/utf8>> -> {ok, mt}; <<"mn"/utf8>> -> {ok, mn}; <<"na"/utf8>> -> {ok, na}; <<"nv"/utf8>> -> {ok, nv}; <<"nr"/utf8>> -> {ok, nr}; <<"nd"/utf8>> -> {ok, nd}; <<"ng"/utf8>> -> {ok, ng}; <<"ne"/utf8>> -> {ok, ne}; <<"nn"/utf8>> -> {ok, nn}; <<"nb"/utf8>> -> {ok, nb}; <<"no"/utf8>> -> {ok, no}; <<"ny"/utf8>> -> {ok, ny}; <<"oc"/utf8>> -> {ok, oc}; <<"oj"/utf8>> -> {ok, oj}; <<"or"/utf8>> -> {ok, 'or'}; <<"om"/utf8>> -> {ok, om}; <<"os"/utf8>> -> {ok, os}; <<"pa"/utf8>> -> {ok, pa}; <<"fa"/utf8>> -> {ok, fa}; <<"pi"/utf8>> -> {ok, pi}; <<"pl"/utf8>> -> {ok, pl}; <<"pt"/utf8>> -> {ok, pt}; <<"ps"/utf8>> -> {ok, ps}; <<"qu"/utf8>> -> {ok, qu}; <<"rm"/utf8>> -> {ok, rm}; <<"ro"/utf8>> -> {ok, ro}; <<"rn"/utf8>> -> {ok, rn}; <<"ru"/utf8>> -> {ok, ru}; <<"sg"/utf8>> -> {ok, sg}; <<"sa"/utf8>> -> {ok, sa}; <<"si"/utf8>> -> {ok, si}; <<"sk"/utf8>> -> {ok, sk}; <<"sl"/utf8>> -> {ok, sl}; <<"se"/utf8>> -> {ok, se}; <<"sm"/utf8>> -> {ok, sm}; <<"sn"/utf8>> -> {ok, sn}; <<"sd"/utf8>> -> {ok, sd}; <<"so"/utf8>> -> {ok, so}; <<"st"/utf8>> -> {ok, st}; <<"es"/utf8>> -> {ok, es}; <<"sc"/utf8>> -> {ok, sc}; <<"sr"/utf8>> -> {ok, sr}; <<"ss"/utf8>> -> {ok, ss}; <<"su"/utf8>> -> {ok, su}; <<"sw"/utf8>> -> {ok, sw}; <<"sv"/utf8>> -> {ok, sv}; <<"ty"/utf8>> -> {ok, ty}; <<"ta"/utf8>> -> {ok, ta}; <<"tt"/utf8>> -> {ok, tt}; <<"te"/utf8>> -> {ok, te}; <<"tg"/utf8>> -> {ok, tg}; <<"tl"/utf8>> -> {ok, tl}; <<"th"/utf8>> -> {ok, th}; <<"bo"/utf8>> -> {ok, bo}; <<"ti"/utf8>> -> {ok, ti}; <<"to"/utf8>> -> {ok, to}; <<"tn"/utf8>> -> {ok, tn}; <<"ts"/utf8>> -> {ok, ts}; <<"tk"/utf8>> -> {ok, tk}; <<"tr"/utf8>> -> {ok, tr}; <<"tw"/utf8>> -> {ok, tw}; <<"ug"/utf8>> -> {ok, ug}; <<"uk"/utf8>> -> {ok, uk}; <<"ur"/utf8>> -> {ok, ur}; <<"uz"/utf8>> -> {ok, uz}; <<"ve"/utf8>> -> {ok, ve}; <<"vi"/utf8>> -> {ok, vi}; <<"vo"/utf8>> -> {ok, vo}; <<"cy"/utf8>> -> {ok, cy}; <<"wa"/utf8>> -> {ok, wa}; <<"wo"/utf8>> -> {ok, wo}; <<"xh"/utf8>> -> {ok, xh}; <<"yi"/utf8>> -> {ok, yi}; <<"yo"/utf8>> -> {ok, yo}; <<"za"/utf8>> -> {ok, za}; <<"zu"/utf8>> -> {ok, zu}; _ -> {error, nil} end. -file("src/lang.gleam", 1049). ?DOC( " Parse an ISO 639-2 three-letter code into a `Language`.\n" "\n" " Accepts both terminological (T) and bibliographic (B) codes.\n" " For example, both `\"deu\"` and `\"ger\"` will return `Ok(De)`.\n" "\n" " The input is case-insensitive and whitespace is trimmed.\n" "\n" " ## Examples\n" "\n" " ```gleam\n" " from_iso639_2(\"eng\")\n" " // -> Ok(En)\n" "\n" " from_iso639_2(\"deu\") // terminological code\n" " // -> Ok(De)\n" "\n" " from_iso639_2(\"ger\") // bibliographic code\n" " // -> Ok(De)\n" "\n" " from_iso639_2(\"invalid\")\n" " // -> Error(Nil)\n" " ```\n" ). -spec from_iso639_2(binary()) -> {ok, language()} | {error, nil}. from_iso639_2(Code) -> case begin _pipe = string:lowercase(Code), gleam@string:trim(_pipe) end of <<"aar"/utf8>> -> {ok, aa}; <<"abk"/utf8>> -> {ok, ab}; <<"afr"/utf8>> -> {ok, af}; <<"aka"/utf8>> -> {ok, ak}; <<"sqi"/utf8>> -> {ok, sq}; <<"alb"/utf8>> -> {ok, sq}; <<"amh"/utf8>> -> {ok, am}; <<"ara"/utf8>> -> {ok, ar}; <<"arg"/utf8>> -> {ok, an}; <<"hye"/utf8>> -> {ok, hy}; <<"arm"/utf8>> -> {ok, hy}; <<"asm"/utf8>> -> {ok, as}; <<"ava"/utf8>> -> {ok, av}; <<"ave"/utf8>> -> {ok, ae}; <<"aym"/utf8>> -> {ok, ay}; <<"aze"/utf8>> -> {ok, az}; <<"bak"/utf8>> -> {ok, ba}; <<"bam"/utf8>> -> {ok, bm}; <<"eus"/utf8>> -> {ok, eu}; <<"baq"/utf8>> -> {ok, eu}; <<"bel"/utf8>> -> {ok, be}; <<"ben"/utf8>> -> {ok, bn}; <<"bis"/utf8>> -> {ok, bi}; <<"bos"/utf8>> -> {ok, bs}; <<"bre"/utf8>> -> {ok, br}; <<"bul"/utf8>> -> {ok, bg}; <<"mya"/utf8>> -> {ok, my}; <<"bur"/utf8>> -> {ok, my}; <<"cat"/utf8>> -> {ok, ca}; <<"cha"/utf8>> -> {ok, ch}; <<"che"/utf8>> -> {ok, ce}; <<"zho"/utf8>> -> {ok, zh}; <<"chi"/utf8>> -> {ok, zh}; <<"chu"/utf8>> -> {ok, cu}; <<"chv"/utf8>> -> {ok, cv}; <<"cor"/utf8>> -> {ok, kw}; <<"cos"/utf8>> -> {ok, co}; <<"cre"/utf8>> -> {ok, cr}; <<"ces"/utf8>> -> {ok, cs}; <<"cze"/utf8>> -> {ok, cs}; <<"dan"/utf8>> -> {ok, da}; <<"div"/utf8>> -> {ok, dv}; <<"nld"/utf8>> -> {ok, nl}; <<"dut"/utf8>> -> {ok, nl}; <<"dzo"/utf8>> -> {ok, dz}; <<"eng"/utf8>> -> {ok, en}; <<"epo"/utf8>> -> {ok, eo}; <<"est"/utf8>> -> {ok, et}; <<"ewe"/utf8>> -> {ok, ee}; <<"fao"/utf8>> -> {ok, fo}; <<"fij"/utf8>> -> {ok, fj}; <<"fin"/utf8>> -> {ok, fi}; <<"fra"/utf8>> -> {ok, fr}; <<"fre"/utf8>> -> {ok, fr}; <<"fry"/utf8>> -> {ok, fy}; <<"ful"/utf8>> -> {ok, ff}; <<"kat"/utf8>> -> {ok, ka}; <<"geo"/utf8>> -> {ok, ka}; <<"deu"/utf8>> -> {ok, de}; <<"ger"/utf8>> -> {ok, de}; <<"gla"/utf8>> -> {ok, gd}; <<"gle"/utf8>> -> {ok, ga}; <<"glg"/utf8>> -> {ok, gl}; <<"glv"/utf8>> -> {ok, gv}; <<"ell"/utf8>> -> {ok, el}; <<"gre"/utf8>> -> {ok, el}; <<"grn"/utf8>> -> {ok, gn}; <<"guj"/utf8>> -> {ok, gu}; <<"hat"/utf8>> -> {ok, ht}; <<"hau"/utf8>> -> {ok, ha}; <<"heb"/utf8>> -> {ok, he}; <<"her"/utf8>> -> {ok, hz}; <<"hin"/utf8>> -> {ok, hi}; <<"hmo"/utf8>> -> {ok, ho}; <<"hrv"/utf8>> -> {ok, hr}; <<"hun"/utf8>> -> {ok, hu}; <<"ibo"/utf8>> -> {ok, ig}; <<"isl"/utf8>> -> {ok, is}; <<"ice"/utf8>> -> {ok, is}; <<"ido"/utf8>> -> {ok, io}; <<"iii"/utf8>> -> {ok, ii}; <<"iku"/utf8>> -> {ok, iu}; <<"ile"/utf8>> -> {ok, ie}; <<"ina"/utf8>> -> {ok, ia}; <<"ind"/utf8>> -> {ok, id}; <<"ipk"/utf8>> -> {ok, ik}; <<"ita"/utf8>> -> {ok, it}; <<"jav"/utf8>> -> {ok, jv}; <<"jpn"/utf8>> -> {ok, ja}; <<"kal"/utf8>> -> {ok, kl}; <<"kan"/utf8>> -> {ok, kn}; <<"kas"/utf8>> -> {ok, ks}; <<"kau"/utf8>> -> {ok, kr}; <<"kaz"/utf8>> -> {ok, kk}; <<"khm"/utf8>> -> {ok, km}; <<"kik"/utf8>> -> {ok, ki}; <<"kin"/utf8>> -> {ok, rw}; <<"kir"/utf8>> -> {ok, ky}; <<"kom"/utf8>> -> {ok, kv}; <<"kon"/utf8>> -> {ok, kg}; <<"kor"/utf8>> -> {ok, ko}; <<"kua"/utf8>> -> {ok, kj}; <<"kur"/utf8>> -> {ok, ku}; <<"lao"/utf8>> -> {ok, lo}; <<"lat"/utf8>> -> {ok, la}; <<"lav"/utf8>> -> {ok, lv}; <<"lim"/utf8>> -> {ok, li}; <<"lin"/utf8>> -> {ok, ln}; <<"lit"/utf8>> -> {ok, lt}; <<"ltz"/utf8>> -> {ok, lb}; <<"lub"/utf8>> -> {ok, lu}; <<"lug"/utf8>> -> {ok, lg}; <<"mkd"/utf8>> -> {ok, mk}; <<"mac"/utf8>> -> {ok, mk}; <<"mah"/utf8>> -> {ok, mh}; <<"mal"/utf8>> -> {ok, ml}; <<"mri"/utf8>> -> {ok, mi}; <<"mao"/utf8>> -> {ok, mi}; <<"mar"/utf8>> -> {ok, mr}; <<"msa"/utf8>> -> {ok, ms}; <<"may"/utf8>> -> {ok, ms}; <<"mlg"/utf8>> -> {ok, mg}; <<"mlt"/utf8>> -> {ok, mt}; <<"mon"/utf8>> -> {ok, mn}; <<"nau"/utf8>> -> {ok, na}; <<"nav"/utf8>> -> {ok, nv}; <<"nbl"/utf8>> -> {ok, nr}; <<"nde"/utf8>> -> {ok, nd}; <<"ndo"/utf8>> -> {ok, ng}; <<"nep"/utf8>> -> {ok, ne}; <<"nno"/utf8>> -> {ok, nn}; <<"nob"/utf8>> -> {ok, nb}; <<"nor"/utf8>> -> {ok, no}; <<"nya"/utf8>> -> {ok, ny}; <<"oci"/utf8>> -> {ok, oc}; <<"oji"/utf8>> -> {ok, oj}; <<"ori"/utf8>> -> {ok, 'or'}; <<"orm"/utf8>> -> {ok, om}; <<"oss"/utf8>> -> {ok, os}; <<"pan"/utf8>> -> {ok, pa}; <<"fas"/utf8>> -> {ok, fa}; <<"per"/utf8>> -> {ok, fa}; <<"pli"/utf8>> -> {ok, pi}; <<"pol"/utf8>> -> {ok, pl}; <<"por"/utf8>> -> {ok, pt}; <<"pus"/utf8>> -> {ok, ps}; <<"que"/utf8>> -> {ok, qu}; <<"roh"/utf8>> -> {ok, rm}; <<"ron"/utf8>> -> {ok, ro}; <<"rum"/utf8>> -> {ok, ro}; <<"run"/utf8>> -> {ok, rn}; <<"rus"/utf8>> -> {ok, ru}; <<"sag"/utf8>> -> {ok, sg}; <<"san"/utf8>> -> {ok, sa}; <<"sin"/utf8>> -> {ok, si}; <<"slk"/utf8>> -> {ok, sk}; <<"slo"/utf8>> -> {ok, sk}; <<"slv"/utf8>> -> {ok, sl}; <<"sme"/utf8>> -> {ok, se}; <<"smo"/utf8>> -> {ok, sm}; <<"sna"/utf8>> -> {ok, sn}; <<"snd"/utf8>> -> {ok, sd}; <<"som"/utf8>> -> {ok, so}; <<"sot"/utf8>> -> {ok, st}; <<"spa"/utf8>> -> {ok, es}; <<"srd"/utf8>> -> {ok, sc}; <<"srp"/utf8>> -> {ok, sr}; <<"ssw"/utf8>> -> {ok, ss}; <<"sun"/utf8>> -> {ok, su}; <<"swa"/utf8>> -> {ok, sw}; <<"swe"/utf8>> -> {ok, sv}; <<"tah"/utf8>> -> {ok, ty}; <<"tam"/utf8>> -> {ok, ta}; <<"tat"/utf8>> -> {ok, tt}; <<"tel"/utf8>> -> {ok, te}; <<"tgk"/utf8>> -> {ok, tg}; <<"tgl"/utf8>> -> {ok, tl}; <<"tha"/utf8>> -> {ok, th}; <<"bod"/utf8>> -> {ok, bo}; <<"tib"/utf8>> -> {ok, bo}; <<"tir"/utf8>> -> {ok, ti}; <<"ton"/utf8>> -> {ok, to}; <<"tsn"/utf8>> -> {ok, tn}; <<"tso"/utf8>> -> {ok, ts}; <<"tuk"/utf8>> -> {ok, tk}; <<"tur"/utf8>> -> {ok, tr}; <<"twi"/utf8>> -> {ok, tw}; <<"uig"/utf8>> -> {ok, ug}; <<"ukr"/utf8>> -> {ok, uk}; <<"urd"/utf8>> -> {ok, ur}; <<"uzb"/utf8>> -> {ok, uz}; <<"ven"/utf8>> -> {ok, ve}; <<"vie"/utf8>> -> {ok, vi}; <<"vol"/utf8>> -> {ok, vo}; <<"cym"/utf8>> -> {ok, cy}; <<"wel"/utf8>> -> {ok, cy}; <<"wln"/utf8>> -> {ok, wa}; <<"wol"/utf8>> -> {ok, wo}; <<"xho"/utf8>> -> {ok, xh}; <<"yid"/utf8>> -> {ok, yi}; <<"yor"/utf8>> -> {ok, yo}; <<"zha"/utf8>> -> {ok, za}; <<"zul"/utf8>> -> {ok, zu}; _ -> {error, nil} end. -file("src/lang.gleam", 1249). ?DOC( " Get the English name of a language.\n" "\n" " ## Examples\n" "\n" " ```gleam\n" " to_name(En)\n" " // -> \"English\"\n" "\n" " to_name(Ja)\n" " // -> \"Japanese\"\n" " ```\n" ). -spec to_name(language()) -> binary(). to_name(Language) -> case Language of aa -> <<"Afar"/utf8>>; ab -> <<"Abkhazian"/utf8>>; af -> <<"Afrikaans"/utf8>>; ak -> <<"Akan"/utf8>>; sq -> <<"Albanian"/utf8>>; am -> <<"Amharic"/utf8>>; ar -> <<"Arabic"/utf8>>; an -> <<"Aragonese"/utf8>>; hy -> <<"Armenian"/utf8>>; as -> <<"Assamese"/utf8>>; av -> <<"Avaric"/utf8>>; ae -> <<"Avestan"/utf8>>; ay -> <<"Aymara"/utf8>>; az -> <<"Azerbaijani"/utf8>>; ba -> <<"Bashkir"/utf8>>; bm -> <<"Bambara"/utf8>>; eu -> <<"Basque"/utf8>>; be -> <<"Belarusian"/utf8>>; bn -> <<"Bengali"/utf8>>; bi -> <<"Bislama"/utf8>>; bs -> <<"Bosnian"/utf8>>; br -> <<"Breton"/utf8>>; bg -> <<"Bulgarian"/utf8>>; my -> <<"Burmese"/utf8>>; ca -> <<"Catalan"/utf8>>; ch -> <<"Chamorro"/utf8>>; ce -> <<"Chechen"/utf8>>; zh -> <<"Chinese"/utf8>>; cu -> <<"Church Slavic"/utf8>>; cv -> <<"Chuvash"/utf8>>; kw -> <<"Cornish"/utf8>>; co -> <<"Corsican"/utf8>>; cr -> <<"Cree"/utf8>>; cs -> <<"Czech"/utf8>>; da -> <<"Danish"/utf8>>; dv -> <<"Divehi"/utf8>>; nl -> <<"Dutch"/utf8>>; dz -> <<"Dzongkha"/utf8>>; en -> <<"English"/utf8>>; eo -> <<"Esperanto"/utf8>>; et -> <<"Estonian"/utf8>>; ee -> <<"Ewe"/utf8>>; fo -> <<"Faroese"/utf8>>; fj -> <<"Fijian"/utf8>>; fi -> <<"Finnish"/utf8>>; fr -> <<"French"/utf8>>; fy -> <<"Western Frisian"/utf8>>; ff -> <<"Fulah"/utf8>>; ka -> <<"Georgian"/utf8>>; de -> <<"German"/utf8>>; gd -> <<"Gaelic"/utf8>>; ga -> <<"Irish"/utf8>>; gl -> <<"Galician"/utf8>>; gv -> <<"Manx"/utf8>>; el -> <<"Greek, Modern (1453-)"/utf8>>; gn -> <<"Guarani"/utf8>>; gu -> <<"Gujarati"/utf8>>; ht -> <<"Haitian"/utf8>>; ha -> <<"Hausa"/utf8>>; he -> <<"Hebrew"/utf8>>; hz -> <<"Herero"/utf8>>; hi -> <<"Hindi"/utf8>>; ho -> <<"Hiri Motu"/utf8>>; hr -> <<"Croatian"/utf8>>; hu -> <<"Hungarian"/utf8>>; ig -> <<"Igbo"/utf8>>; is -> <<"Icelandic"/utf8>>; io -> <<"Ido"/utf8>>; ii -> <<"Sichuan Yi"/utf8>>; iu -> <<"Inuktitut"/utf8>>; ie -> <<"Interlingue"/utf8>>; ia -> <<"Interlingua (International Auxiliary Language Association)"/utf8>>; id -> <<"Indonesian"/utf8>>; ik -> <<"Inupiaq"/utf8>>; it -> <<"Italian"/utf8>>; jv -> <<"Javanese"/utf8>>; ja -> <<"Japanese"/utf8>>; kl -> <<"Kalaallisut"/utf8>>; kn -> <<"Kannada"/utf8>>; ks -> <<"Kashmiri"/utf8>>; kr -> <<"Kanuri"/utf8>>; kk -> <<"Kazakh"/utf8>>; km -> <<"Central Khmer"/utf8>>; ki -> <<"Kikuyu"/utf8>>; rw -> <<"Kinyarwanda"/utf8>>; ky -> <<"Kirghiz"/utf8>>; kv -> <<"Komi"/utf8>>; kg -> <<"Kongo"/utf8>>; ko -> <<"Korean"/utf8>>; kj -> <<"Kuanyama"/utf8>>; ku -> <<"Kurdish"/utf8>>; lo -> <<"Lao"/utf8>>; la -> <<"Latin"/utf8>>; lv -> <<"Latvian"/utf8>>; li -> <<"Limburgan"/utf8>>; ln -> <<"Lingala"/utf8>>; lt -> <<"Lithuanian"/utf8>>; lb -> <<"Luxembourgish"/utf8>>; lu -> <<"Luba-Katanga"/utf8>>; lg -> <<"Ganda"/utf8>>; mk -> <<"Macedonian"/utf8>>; mh -> <<"Marshallese"/utf8>>; ml -> <<"Malayalam"/utf8>>; mi -> <<"Maori"/utf8>>; mr -> <<"Marathi"/utf8>>; ms -> <<"Malay"/utf8>>; mg -> <<"Malagasy"/utf8>>; mt -> <<"Maltese"/utf8>>; mn -> <<"Mongolian"/utf8>>; na -> <<"Nauru"/utf8>>; nv -> <<"Navajo"/utf8>>; nr -> <<"Ndebele, South"/utf8>>; nd -> <<"Ndebele, North"/utf8>>; ng -> <<"Ndonga"/utf8>>; ne -> <<"Nepali"/utf8>>; nn -> <<"Norwegian Nynorsk"/utf8>>; nb -> <<"Bokmål, Norwegian"/utf8>>; no -> <<"Norwegian"/utf8>>; ny -> <<"Chichewa"/utf8>>; oc -> <<"Occitan (post 1500)"/utf8>>; oj -> <<"Ojibwa"/utf8>>; 'or' -> <<"Oriya"/utf8>>; om -> <<"Oromo"/utf8>>; os -> <<"Ossetian"/utf8>>; pa -> <<"Panjabi"/utf8>>; fa -> <<"Persian"/utf8>>; pi -> <<"Pali"/utf8>>; pl -> <<"Polish"/utf8>>; pt -> <<"Portuguese"/utf8>>; ps -> <<"Pushto"/utf8>>; qu -> <<"Quechua"/utf8>>; rm -> <<"Romansh"/utf8>>; ro -> <<"Romanian"/utf8>>; rn -> <<"Rundi"/utf8>>; ru -> <<"Russian"/utf8>>; sg -> <<"Sango"/utf8>>; sa -> <<"Sanskrit"/utf8>>; si -> <<"Sinhala"/utf8>>; sk -> <<"Slovak"/utf8>>; sl -> <<"Slovenian"/utf8>>; se -> <<"Northern Sami"/utf8>>; sm -> <<"Samoan"/utf8>>; sn -> <<"Shona"/utf8>>; sd -> <<"Sindhi"/utf8>>; so -> <<"Somali"/utf8>>; st -> <<"Sotho, Southern"/utf8>>; es -> <<"Spanish"/utf8>>; sc -> <<"Sardinian"/utf8>>; sr -> <<"Serbian"/utf8>>; ss -> <<"Swati"/utf8>>; su -> <<"Sundanese"/utf8>>; sw -> <<"Swahili"/utf8>>; sv -> <<"Swedish"/utf8>>; ty -> <<"Tahitian"/utf8>>; ta -> <<"Tamil"/utf8>>; tt -> <<"Tatar"/utf8>>; te -> <<"Telugu"/utf8>>; tg -> <<"Tajik"/utf8>>; tl -> <<"Tagalog"/utf8>>; th -> <<"Thai"/utf8>>; bo -> <<"Tibetan"/utf8>>; ti -> <<"Tigrinya"/utf8>>; to -> <<"Tonga (Tonga Islands)"/utf8>>; tn -> <<"Tswana"/utf8>>; ts -> <<"Tsonga"/utf8>>; tk -> <<"Turkmen"/utf8>>; tr -> <<"Turkish"/utf8>>; tw -> <<"Twi"/utf8>>; ug -> <<"Uighur"/utf8>>; uk -> <<"Ukrainian"/utf8>>; ur -> <<"Urdu"/utf8>>; uz -> <<"Uzbek"/utf8>>; ve -> <<"Venda"/utf8>>; vi -> <<"Vietnamese"/utf8>>; vo -> <<"Volapük"/utf8>>; cy -> <<"Welsh"/utf8>>; wa -> <<"Walloon"/utf8>>; wo -> <<"Wolof"/utf8>>; xh -> <<"Xhosa"/utf8>>; yi -> <<"Yiddish"/utf8>>; yo -> <<"Yoruba"/utf8>>; za -> <<"Zhuang"/utf8>>; zu -> <<"Zulu"/utf8>> end.