User:Monkbot/task 20: Replace lang-xx templates - Wikipedia
Article Images
This script renames transclusions of the ~1,150 different {{lang-??}}
templates with the name of a single template, {{langx}}
. See Wikipedia:Templates for discussion/Log/2024 September 27 § Replace and delete lang-?? templates.
Task 20 maintains internal lists of the templates listed in Wikipedia:Templates for discussion/Log/2024 September 27/lang-?? templates and their associated redirects. Conveniently, almost all of the templates in the list are consistently named.
For consistently named {{lang-??}}
templates and redirects, task 20 looks for that template's canonical name (first letter uppercase) in its template and redirect lists. When a known template or redirect is found, task 20 looks in its ignore-this-template-name list. If found there, task 20 tallies it and moves on to the next match. When a found template name is not to be ignored, task 20 preserves the IANA language subtags from the template name for use as the first positional parameter of {{langx}}
and then replaces the original {{lang-??}}
name with {{langx}}
:
{{lang-es|casa}}
→{{langx|es|casa}}
There are a few templates and redirects that use nonstandard names. Task 20 maintains a list of known nonstandard names. Before it does anything else, task 20 looks for these nonstandard names and renames them to the appropriate standard-form {{lang-<whatever>}}
. It then processes that standard-form template name (as just described) to see if it can rename it to a {{langx}}
template (even when tat intermediate name does not exist):
{{Moldovan Cyrillic|лимба молдовеняскэ}}
→{{lang-ro-Cyrl-MD|лимба молдовеняскэ}}
→{{langx|ro-Cyrl-MD|лимба молдовеняскэ}}
- Moldovan Cyrillic: лимба молдовеняскэ → Template:Lang-ro-Cyrl-MD → Moldovan: лимба молдовеняскэ
Task 20 performs no ancillary tasks.
This task does not do awb general fixes.
Task 20 writes an edit summary message that tallies the number of {{lang-??}}
templates renamed, the number of {{lang-??}}
templates skipped, and the number of {{lang-??}}
templates ignored. The name(s) of skipped and ignored templates are included in the edit summary so that a manual review of task 20's edits may turn up templates that should have been renamed or should have been ignored.
The edit summary has a link to this page.
//---------------------------< M A I N >---------------------------------------------------------------------- // // convert {{lang-??}} templates and their redirects to {{langx}} templates // // use this search: // hastemplate:"Module:Lang" insource:/\{ *[Ll]ang\-[a-z0-9\-]+/ // hastemplate:"Module:Lang" insource:/\{ *[Ll]ang\-[^\|]+/ // public string ProcessArticle(string ArticleText, string ArticleTitle, int wikiNamespace, out string Summary, out bool Skip) { Skip = false; Summary = "[[User:Monkbot/task 20|Task 20]] (dev test): rename {{lang-??}} templates to {{langx|??}}"; // Summary = "[[User:Monkbot/task 20|Task 20]] (BRFA trial): rename {{lang-??}} templates to {{langx|??}}"; // Summary = "[[User:Monkbot/task 20|Task 20]]: rename {{lang-??}} templates to {{langx|??}}"; string sub_summary = ""; string pattern = ""; foreach (KeyValuePair<string, string> entry in nonstandard_names_t) // fetch each nonstandard redirect key/value pair { string key = entry.Key; // get the key pattern = @"(\{\{\s*)" + key + @"(\s*\|)"; // make a pattern ArticleText = Regex.Replace (ArticleText, pattern, "$1Lang-" + entry.Value + "$2"); // replace with canonical form } int renamed_count = 0; // tally of templates renamed int skipped_count = 0; // tally of pattern-matching templates skipped int ignored_count = 0; // tally of pattern-matching templates ignored pattern = @"(\{\{\s*)(([Ll]ang)\-([a-zA-Z\-]+))(\s*)"; // regex to find {{lang-??}} templates; does not find numeric regions (none used) var skipped_templates_t = new Dictionary<string, int>(){}; var ignored_templates_t = new Dictionary<string, int>(){}; if (Regex.Match (ArticleText, pattern).Success) ArticleText = Regex.Replace (ArticleText, pattern, delegate(Match match) { string template = match.Groups[0].Value; // this will be returned if no changes string key = "Lang-" + match.Groups[4].Value; // index into the various dictionaries; force first letter upper case for indexing if (ignored_names_t.ContainsKey (key)) { ignored_count++; skip_ignore_list_add (ignored_templates_t, key); return template; // ignore known unsupported templates/redirects } if (update_map_t.ContainsKey (key)) return counted_replace (template, pattern, "$1$3x$5|$4", ref renamed_count); // return & tally modified template else if (redirects_map_t.ContainsKey (key)) return counted_replace (template, pattern, "$1$3x$5|" + redirects_map_t[key], ref renamed_count); // return & tally modified template skipped_count++; skip_ignore_list_add (skipped_templates_t, key); return template; // not a recognized template so return it unmolested }); if (0 == renamed_count && 0 == skipped_count && 0 == ignored_count) // no renames, no skips, no ignores { Skip = true; // no need to continue so return ArticleText; // abandon and done } string skipped_list = ""; // initialize the string form of the skipped list string ignored_list = ""; // initialize the string form of the ignored list if (0 != skipped_count) skipped_list = list_to_string (skipped_templates_t); // convert to string for edit summary if (0 != ignored_count) ignored_list = list_to_string (ignored_templates_t); // convert to string for edit summary sub_summary = sub_summary_get (0 != renamed_count, 0 != skipped_count, 0 != ignored_count, renamed_count, skipped_count, ignored_count, skipped_list, ignored_list, ref Skip); if (Skip) Summary = sub_summary; // only ignored summary for awb log else Summary = Summary + sub_summary; // put it all together return ArticleText; // and done } //===========================<< U T I L I T I E S >>========================================================== //---------------------------< C O U N T E D _ R E P L A C E >------------------------------------------------ // // common function to replace <pattern> with <replace> and bump <count> until no more <pattern> // private string counted_replace (string template, string pattern, string replace, ref int count) { Regex rgx = new Regex (pattern); // make a new regex from <pattern> while (Regex.Match (template, pattern).Success) // look for <pattern> in <template> { template = rgx.Replace (template, replace, 1); // replace one copy of <pattern> with <replace> count++; // bump the counter } return template; } //---------------------------< S U B S U M M A R Y _ G E T >-------------------------------------------------- // // Assemble 'sub-summary' of renamed, skipped, and ignored templates // private string sub_summary_get (bool renamed, bool skipped, bool ignored, int renamed_count, int skipped_count, int ignored_count, string skipped_list, string ignored_list, ref bool skip) { string sub_summary = ""; if (renamed) // 4, 5, 6, 7 { if (skipped) // 6, 7 { if (ignored) // 7 sub_summary = " (Renamed " + renamed_count + "; skipped unknown " + skipped_count + ": " + skipped_list + "; ignored " + ignored_count + ": " + ignored_list; else // 6 sub_summary = " (Renamed " + renamed_count + "; skipped unknown " + skipped_count + ": " + skipped_list; } else // 4, 5 { if (ignored) // 5 sub_summary = " (Renamed " + renamed_count + "; ignored " + ignored_count + ": " + ignored_list; else // 4 sub_summary = " (Renamed " + renamed_count; } } else { if (skipped) // 1, 2, 3 { if (ignored) // 3 sub_summary = " (Skipped unknown " + skipped_count + ": " + skipped_list + "; ignored " + ignored_count + ": " + ignored_list; else // 2 sub_summary = " (Skipped unknown " + skipped_count + ": " + skipped_list; } else // 1 { sub_summary = " (Ignored " + ignored_count + ": " + ignored_list; // skip but include ignored in awb skip log skip = true; } } return sub_summary + ");"; // close parentheses and done } //---------------------------< L I S T _ T O _ S T R I N G >-------------------------------------------------- // // convert <list_t> to comma-separated list // private string list_to_string (Dictionary<string, int> list_t) { string list_str = ""; bool first_template = true; // flag to control comma separator us in skipped_list foreach (KeyValuePair<string, int> entry in list_t) // fetch each key/value pair (only the key is used) { if (first_template) list_str = entry.Key; // begin string with a template name else list_str = list_str + ", " + entry.Key; // append template name with comma separator to the string first_template = false; } return list_str; } //---------------------------< S K I P _ I G N O R E _ L I S T _ A D D >-------------------------------------- // // add <key> to <list_t> if not already there; increment count else // private void skip_ignore_list_add (Dictionary<string, int> list_t, string key) { if (list_t.ContainsKey (key)) // already present list_t[key]++; // bump the counter else list_t.Add (key, 1); // add <key>; init counter to 1 } //===========================<< S T A T I C D A T A >>====================================================== //---------------------------< I G N O R E D _ N A M E S _ T >------------------------------------------------ // // the names in this list are standard-form template or standard-form redirect names. These names are ignored // because these templates are non-standard (they may use {{language with name}}, be plain-text, or have unique // additional coding. These are not listed in the TfD. // // all of the keys in this dictionary must be canonical form // static Dictionary<string, bool> ignored_names_t = new Dictionary<string, bool>() { {"Lang-grc-gre", true}, {"Lang-ka", true}, {"Lang-my-Mymr", true}, {"Lang-rus", true}, {"Lang-sh-Latn-Cyrl", true}, {"Lang-sq-definite", true}, {"Lang-sr-Cyrl", true}, {"Lang-vi-hantu", true}, {"Lang-zh", true}, //----------< R E D I R E C T S >---------- {"Lang-Chinese", true}, // to lang-zh {"Lang-chi", true}, // to lang-zh {"Lang-gb", true}, // to lang-zh {"Lang-sr-cyr", true}, // to Lang-sr-Cyrl {"Lang-sr-cyrl", true}, // to Lang-sr-Cyrl {"Lang-zho", true}, // to lang-zh {"Lang-zh-version2", true}, // to lang-zh }; //---------------------------< N O N S T A N D A R D _ N A M E S _ T >---------------------------------------- // // the names in this list are just non-standard template names or are non-standard redirects; they do not begin // with 'lang-' // // keys in this table are patterns that make the first character case insensitive // static Dictionary<string, string> nonstandard_names_t = new Dictionary<string, string>() { {"[Ll]angDeu", "de"}, // <key> redirects to Lang-<value> {"[Ll]ang de", "de"}, {"[Ll]angEsp", "es"}, {"[Ll]ang fr", "fr"}, {"[Hh]e", "he"}, {"[Ii]n la", "la"}, {"[Ll]angLat", "la"}, {"[Mm]s", "ms"}, {"[Nn]orwegian", "no"}, {"[S]san", "sa"}, {"[Ll]ang sl", "sl"}, {"[Ss]q", "sq"}, {"[Tt]e", "te"}, {"[Tt]hai", "th"}, {"[Tt]h-lang", "th"}, {"[Ll]an-tr", "tr"}, // yes, really, no 'g' {"[Uu]g", "ug"}, {"[Uu]yghur", "ug"}, //----------< T H E S E C O N D A D D E N D U M >---------- {"[Mm]oldovan Cyrillic", "ro-Cyrl-MD"}, }; //---------------------------< R E D I R E C T S _ M A P _ T >------------------------------------------------ // // list of standard format ({{lang-??|...}}) redirects to be updated to {{langx|??|...}} // // all of the keys in this dictionary must be canonical form // static Dictionary<string, string> redirects_map_t = new Dictionary<string, string>() { //----------< M A D E U P T A G S >---------- {"Lang-gr", "el"}, // <key> redirects to Lang-<value> {"Lang-oe", "ang"}, {"Lang-ar-at", "ar"}, {"Lang-Assamese1", "as"}, {"Lang-as1", "as"}, {"Lang-Bengali1", "bn"}, {"Lang-Bengali", "bn"}, {"Lang-bo1", "bo"}, {"Lang-brx1", "brx"}, {"Lang-bs-Latn", "bs"}, {"Lang-vl", "ca-valencia"}, {"Lang-va", "ca-valencia"}, {"Lang-sorani", "ckb"}, {"Lang-cg", "cnr"}, {"Lang-cz", "cs"}, {"Lang-dk", "da"}, {"Lang-de1", "de"}, {"Lang-mahal", "dv"}, {"Lang-dmh", "dv"}, {"Lang-en-au", "en"}, {"Lang-en-Au", "en"}, {"Lang-en-em", "en-emodeng"}, {"Lang-ekk", "et"}, {"Lang-fa-at", "fa"}, {"Lang-persian", "fa"}, {"Lang-ir", "ga"}, {"Lang-scoga", "gd"}, {"Lang-grc-aeo", "grc-x-aeolic"}, {"Lang-grc-att", "grc-x-attic"}, {"Lang-grc-bib", "grc-x-biblical"}, {"Lang-grc-classic", "grc-x-classic"}, {"Lang-grc-classical", "grc-x-classic"}, {"Lang-grc-x-classical", "grc-x-classic"}, {"Lang-grc-x-cla", "grc-x-classic"}, {"Lang-grc-cla", "grc-x-classic"}, {"Lang-grc-cls", "grc-x-classic"}, {"Lang-grc-dor", "grc-x-doric"}, {"Lang-grc-hellen", "grc-x-hellen"}, {"Lang-grc-hellenistic", "grc-x-hellen"}, {"Lang-grc-hellenic", "grc-x-hellen"}, {"Lang-grc-hel", "grc-x-hellen"}, {"Lang-grc-x-hellenic", "grc-x-hellen"}, {"Lang-grc-x-hellenistic", "grc-x-hellen"}, {"Lang-grc-ion", "grc-x-ionic"}, {"Lang-grc-ionic", "grc-x-ionic"}, {"Lang-grc-koi", "grc-x-koine"}, {"Lang-gkm", "grc-x-medieval"}, {"Lang-grc-x-byzant", "grc-x-medieval"}, {"Lang-grc-byz", "grc-x-medieval"}, {"Lang-grc-byzantine", "grc-x-medieval"}, {"Lang-grc-x-byzantine", "grc-x-medieval"}, {"Lang-grc-med", "grc-x-medieval"}, {"Lang-grc-x-med", "grc-x-medieval"}, {"Lang-grc-x-mediev", "grc-x-medieval"}, {"Lang-grc-x-pat", "grc-x-patris"}, {"Lang-grc-x-patristic", "grc-x-patris"}, {"Lang-grc-pat", "grc-x-patris"}, {"Lang-he1", "he"}, {"Lang-iw", "he"}, {"Lang-hi1", "hi"}, {"Lang-Hindi1", "hi"}, {"Lang-Hindi", "hi"}, {"Lang-hk", "hnd"}, {"Lang-scr", "hr"}, {"Lang-jw", "jv"}, {"Lang-kz", "kk"}, {"Lang-kk-Cyrl", "kk"}, {"Lang-ku-Latn", "ku"}, {"Lang-kpv", "kv"}, {"Lang-lat-med", "la-x-medieval"}, {"Lang-lvs", "lv"}, {"Lang-Karbi", "mjw"}, {"Lang-zlm", "ms"}, {"Lang-mly", "ms"}, {"Lang-plm", "mui"}, {"Lang-nan-TW", "nan"}, {"Lang-nci-IPA", "nci"}, {"Lang-prv", "oc"}, {"Lang-Or", "or"}, {"Lang-oc-gsc", "oc-gascon"}, {"Lang-od", "or"}, {"Lang-sxo", "osx"}, {"Lang-pr", "pra"}, {"Lang-mol", "ro"}, {"Lang-md", "ro"}, {"Lang-mo", "ro"}, {"Lang-ry", "rue"}, {"Lang-sa1", "sa"}, {"Lang-Sindhi1", "sd"}, {"Lang-bat-smg", "sgs"}, {"Lang-hs", "sh"}, {"Lang-hbs", "sh"}, {"Lang-al", "sq"}, {"Lang-scc", "sr"}, {"Lang-usl", "szl"}, {"Lang-tm", "tk"}, {"Lang-tk-Latn", "tk"}, {"Lang-ug3", "ug"}, {"Lang-uy", "ug"}, {"Lang-ugr", "uga"}, {"Lang-ua", "uk"}, {"Lang-Urdu1", "ur"}, {"Lang-yi1", "yi"}, {"Lang-ji", "yi"}, {"Lang-Nenets", "yrk"}, //----------< T H E S E C O N D A D D E N D U M >---------- {"Lang-fra-que", "fr-CA"}, // converted wrapper around {{language with name}} {"Lang-ro-Cyrl-MD", "ro-Cyrl-MD"}, // converted from {{Moldovan Cyrillic}} {"Lang-mo-Cyrl", "ro-Cyrl-MD"}, // and its redirect //----------< I S O 6 3 9 - 2 / - 3 S Y N O N Y M S O F I S O 6 3 9 - 1 >---------- {"Lang-aar", "aa"}, {"Lang-abk", "ab"}, {"Lang-afr", "af"}, {"Lang-aka", "ak"}, {"Lang-alb", "sq"}, {"Lang-amh", "am"}, {"Lang-ara", "ar"}, {"Lang-arg", "an"}, {"Lang-arm", "hy"}, {"Lang-asm", "as"}, {"Lang-ava", "av"}, {"Lang-ave", "ae"}, {"Lang-aym", "ay"}, {"Lang-aze", "az"}, {"Lang-bak", "ba"}, {"Lang-bam", "bm"}, {"Lang-baq", "eu"}, {"Lang-bel", "be"}, {"Lang-ben", "bn"}, {"Lang-bis", "bi"}, {"Lang-bod", "bo"}, {"Lang-bos", "bs"}, {"Lang-bre", "br"}, {"Lang-bul", "bg"}, {"Lang-bur", "my"}, {"Lang-cat", "ca"}, {"Lang-ces", "cs"}, {"Lang-cha", "ch"}, {"Lang-che", "ce"}, {"Lang-chu", "cu"}, {"Lang-chv", "cv"}, {"Lang-cor", "kw"}, {"Lang-cos", "co"}, {"Lang-cre", "cr"}, {"Lang-cym", "cy"}, {"Lang-cze", "cs"}, {"Lang-dan", "da"}, {"Lang-deu", "de"}, {"Lang-div", "dv"}, {"Lang-dut", "nl"}, {"Lang-dzo", "dz"}, {"Lang-ell", "el"}, {"Lang-eng", "en"}, {"Lang-epo", "eo"}, {"Lang-est", "et"}, {"Lang-eus", "eu"}, {"Lang-ewe", "ee"}, {"Lang-fao", "fo"}, {"Lang-fas", "fa"}, {"Lang-fij", "fj"}, {"Lang-fin", "fi"}, {"Lang-fra", "fr"}, {"Lang-fre", "fr"}, {"Lang-fry", "fy"}, {"Lang-ful", "ff"}, {"Lang-geo", "ka"}, {"Lang-ger", "de"}, {"Lang-gla", "gd"}, {"Lang-gle", "ga"}, {"Lang-glg", "gl"}, {"Lang-glv", "gv"}, {"Lang-gre", "el"}, {"Lang-grn", "gn"}, {"Lang-guj", "gu"}, {"Lang-hat", "ht"}, {"Lang-hau", "ha"}, {"Lang-heb", "he"}, {"Lang-her", "hz"}, {"Lang-hin", "hi"}, {"Lang-hmo", "ho"}, {"Lang-hrv", "hr"}, {"Lang-hun", "hu"}, {"Lang-hye", "hy"}, {"Lang-ibo", "ig"}, {"Lang-ice", "is"}, {"Lang-ido", "io"}, {"Lang-iii", "ii"}, {"Lang-iku", "iu"}, {"Lang-ile", "ie"}, {"Lang-ina", "ia"}, {"Lang-ind", "id"}, {"Lang-ipk", "ik"}, {"Lang-isl", "is"}, {"Lang-ita", "it"}, {"Lang-jav", "jv"}, {"Lang-jpn", "ja"}, {"Lang-kal", "kl"}, {"Lang-kan", "kn"}, {"Lang-kas", "ks"}, {"Lang-kat", "ka"}, {"Lang-kau", "kr"}, {"Lang-kaz", "kk"}, {"Lang-khm", "km"}, {"Lang-kik", "ki"}, {"Lang-kin", "rw"}, {"Lang-kir", "ky"}, {"Lang-kom", "kv"}, {"Lang-kon", "kg"}, {"Lang-kor", "ko"}, {"Lang-kua", "kj"}, {"Lang-kur", "ku"}, {"Lang-lao", "lo"}, {"Lang-lat", "la"}, {"Lang-lav", "lv"}, {"Lang-lim", "li"}, {"Lang-lin", "ln"}, {"Lang-lit", "lt"}, {"Lang-ltz", "lb"}, {"Lang-lub", "lu"}, {"Lang-lug", "lg"}, {"Lang-mac", "mk"}, {"Lang-mah", "mh"}, {"Lang-mal", "ml"}, {"Lang-mao", "mi"}, {"Lang-mar", "mr"}, {"Lang-may", "ms"}, {"Lang-mkd", "mk"}, {"Lang-mlg", "mg"}, {"Lang-mlt", "mt"}, {"Lang-mon", "mn"}, {"Lang-mri", "mi"}, {"Lang-msa", "ms"}, {"Lang-mya", "my"}, {"Lang-nau", "na"}, {"Lang-nav", "nv"}, {"Lang-nbl", "nr"}, {"Lang-nde", "nd"}, {"Lang-ndo", "ng"}, {"Lang-nep", "ne"}, {"Lang-nld", "nl"}, {"Lang-nno", "nn"}, {"Lang-nob", "nb"}, {"Lang-nor", "no"}, {"Lang-nya", "ny"}, {"Lang-oci", "oc"}, {"Lang-oji", "oj"}, {"Lang-ori", "or"}, {"Lang-orm", "om"}, {"Lang-oss", "os"}, {"Lang-pan", "pa"}, {"Lang-per", "fa"}, {"Lang-pli", "pi"}, {"Lang-pol", "pl"}, {"Lang-por", "pt"}, {"Lang-pus", "ps"}, {"Lang-que", "qu"}, {"Lang-roh", "rm"}, {"Lang-ron", "ro"}, {"Lang-rum", "ro"}, {"Lang-run", "rn"}, {"Lang-sag", "sg"}, {"Lang-san", "sa"}, {"Lang-sin", "si"}, {"Lang-slk", "sk"}, {"Lang-slo", "sk"}, {"Lang-slv", "sl"}, {"Lang-sme", "se"}, {"Lang-smo", "sm"}, {"Lang-sna", "sn"}, {"Lang-snd", "sd"}, {"Lang-som", "so"}, {"Lang-sot", "st"}, {"Lang-spa", "es"}, {"Lang-sqi", "sq"}, {"Lang-srd", "sc"}, {"Lang-srp", "sr"}, {"Lang-ssw", "ss"}, {"Lang-sun", "su"}, {"Lang-swa", "sw"}, {"Lang-swe", "sv"}, {"Lang-tah", "ty"}, {"Lang-tam", "ta"}, {"Lang-tat", "tt"}, {"Lang-tel", "te"}, {"Lang-tgk", "tg"}, {"Lang-tgl", "tl"}, {"Lang-tha", "th"}, {"Lang-tib", "bo"}, {"Lang-tir", "ti"}, {"Lang-ton", "to"}, {"Lang-tsn", "tn"}, {"Lang-tso", "ts"}, {"Lang-tuk", "tk"}, {"Lang-tur", "tr"}, {"Lang-twi", "tw"}, {"Lang-uig", "ug"}, {"Lang-ukr", "uk"}, {"Lang-urd", "ur"}, {"Lang-uzb", "uz"}, {"Lang-ven", "ve"}, {"Lang-vie", "vi"}, {"Lang-vol", "vo"}, {"Lang-wel", "cy"}, {"Lang-wln", "wa"}, {"Lang-wol", "wo"}, {"Lang-xho", "xh"}, {"Lang-yid", "yi"}, {"Lang-yor", "yo"}, {"Lang-zha", "za"}, {"Lang-zul", "zu"}, }; //---------------------------< U P D A T E _ M A P >---------------------------------------------------------- // // list of {{lang-??|...}} templates to be updated to {{langx|??|...}} // // all of the keys in this dictionary must be canonical form // static Dictionary<string, bool> update_map_t = new Dictionary<string, bool>() { //----------< T H E F I R S T A D D E N D U M >---------- {"Lang-az-Cyrl", true}, // these all escaped the search {"Lang-bs-Cyrl", true}, {"Lang-cnr-Cyrl", true}, {"Lang-de-CH", true}, {"Lang-en-AU", true}, {"Lang-en-CA", true}, {"Lang-en-GB", true}, {"Lang-en-IE", true}, {"Lang-en-IN", true}, {"Lang-en-NZ", true}, {"Lang-en-US", true}, {"Lang-en-ZA", true}, {"Lang-gsw-FR", true}, {"Lang-lij-MC", true}, {"Lang-ms-Arab", true}, {"Lang-nds-NL", true}, {"Lang-nl-BE", true}, {"Lang-pt-BR", true}, {"Lang-tk-Cyrl", true}, {"Lang-tt-Arab", true}, {"Lang-tt-Cyrl", true}, {"Lang-tt-Latn", true}, {"Lang-xal-RU", true}, {"Lang-tuo", true}, // created after the start of the TfD //----------< T H E S E C O N D A D D E N D U M >---------- {"Lang-az-Arab", true}, // convert from {{language with name}} {"Lang-cnr-Latn", true}, // escaped the search {"Lang-fr-gallo", true}, // convert from {{language with name}} {"Lang-ku-Cyrl", true}, // convert from {{language with name}} {"Lang-oc-gascon", true}, // convert from {{language with name}} {"Lang-sco-ulster", true}, // convert from wrapper around {{lang}} {"Lang-uz-Cyrl", true}, // escaped the search {"Lang-wbp", true}, // escaped the search {"Lang-zku", true}, // escaped the search //----------< T H E I N I T I A L L I S T >---------- // // from this search: https://en.wikipedia.org/w/index.php?search=incategory%3A%22Lang-x+templates%22+insource%3A%22lang_xx_%22&ns10=1 // // {"Lang-aa", true}, {"Lang-aae", true}, {"Lang-aaq", true}, {"Lang-aav", true}, {"Lang-ab", true}, {"Lang-abe", true}, {"Lang-abl", true}, {"Lang-abq", true}, {"Lang-aca", true}, {"Lang-ace", true}, {"Lang-acf", true}, {"Lang-acm", true}, {"Lang-acw", true}, {"Lang-ady", true}, {"Lang-ae", true}, {"Lang-aeb", true}, {"Lang-aec", true}, {"Lang-aer", true}, {"Lang-af", true}, {"Lang-afa", true}, {"Lang-afb", true}, {"Lang-aht", true}, {"Lang-aii", true}, {"Lang-aij", true}, {"Lang-ain", true}, {"Lang-aiq", true}, {"Lang-ajp", true}, {"Lang-ak", true}, {"Lang-akb", true}, {"Lang-akk", true}, {"Lang-akk-x-latbabyl", true}, {"Lang-akk-x-midassyr", true}, {"Lang-akk-x-midbabyl", true}, {"Lang-akk-x-neoassyr", true}, {"Lang-akk-x-neobabyl", true}, {"Lang-akk-x-oldassyr", true}, {"Lang-akk-x-oldbabyl", true}, {"Lang-akl", true}, {"Lang-akz", true}, {"Lang-ale", true}, {"Lang-alg", true}, {"Lang-aln", true}, {"Lang-alq", true}, {"Lang-als", true}, {"Lang-alt", true}, {"Lang-alv", true}, {"Lang-am", true}, {"Lang-ami", true}, {"Lang-amw", true}, {"Lang-an", true}, {"Lang-ang", true}, {"Lang-anm", true}, {"Lang-aoa", true}, {"Lang-apa", true}, {"Lang-apc", true}, {"Lang-apj", true}, {"Lang-apm", true}, {"Lang-apw", true}, {"Lang-aqa", true}, {"Lang-aql", true}, {"Lang-ar", true}, {"Lang-arb", true}, {"Lang-arc", true}, {"Lang-arh", true}, {"Lang-ari", true}, {"Lang-arn", true}, {"Lang-arp", true}, {"Lang-arq", true}, {"Lang-ars", true}, {"Lang-art", true}, {"Lang-ary", true}, {"Lang-arz", true}, {"Lang-as", true}, {"Lang-asb", true}, {"Lang-ast", true}, {"Lang-ath", true}, {"Lang-ats", true}, {"Lang-auf", true}, {"Lang-aus", true}, {"Lang-av", true}, {"Lang-awa", true}, {"Lang-awd", true}, {"Lang-awk", true}, {"Lang-axm", true}, {"Lang-ay", true}, {"Lang-ayn", true}, {"Lang-ayp", true}, {"Lang-az", true}, {"Lang-azb", true}, {"Lang-azc", true}, {"Lang-azd", true}, {"Lang-azj", true}, {"Lang-ba", true}, {"Lang-bac", true}, {"Lang-bad", true}, {"Lang-bai", true}, {"Lang-bal", true}, {"Lang-ban", true}, {"Lang-bar", true}, {"Lang-bat", true}, {"Lang-bax", true}, {"Lang-bbc", true}, {"Lang-bcl", true}, {"Lang-bdz", true}, {"Lang-be", true}, {"Lang-bea", true}, {"Lang-bej", true}, {"Lang-bek", true}, {"Lang-bem", true}, {"Lang-ber", true}, {"Lang-bew", true}, {"Lang-bft", true}, {"Lang-bg", true}, {"Lang-bgn", true}, {"Lang-bh", true}, {"Lang-bho", true}, {"Lang-bi", true}, {"Lang-bik", true}, {"Lang-bin", true}, {"Lang-bjn", true}, {"Lang-bla", true}, {"Lang-blc", true}, {"Lang-blk", true}, {"Lang-bm", true}, {"Lang-bn", true}, {"Lang-bnt", true}, {"Lang-bo", true}, {"Lang-bpy", true}, {"Lang-bqi", true}, {"Lang-br", true}, {"Lang-brh", true}, {"Lang-brx", true}, {"Lang-bs", true}, {"Lang-bsk", true}, {"Lang-bsq", true}, {"Lang-btd", true}, {"Lang-btk", true}, {"Lang-btm", true}, {"Lang-bts", true}, {"Lang-btx", true}, {"Lang-btz", true}, {"Lang-bua", true}, {"Lang-buc", true}, {"Lang-bug", true}, {"Lang-bvb", true}, {"Lang-bxr", true}, {"Lang-bya", true}, {"Lang-bzj", true}, {"Lang-ca", true}, {"Lang-ca-valencia", true}, {"Lang-cai", true}, {"Lang-cal", true}, {"Lang-cau", true}, {"Lang-cay", true}, {"Lang-cba", true}, {"Lang-cbk", true}, {"Lang-ccn", true}, {"Lang-ccp", true}, {"Lang-ccs", true}, {"Lang-cdc", true}, {"Lang-cdd", true}, {"Lang-cdo", true}, {"Lang-ce", true}, {"Lang-ceb", true}, {"Lang-cel", true}, {"Lang-cel-x-proto", true}, {"Lang-ch", true}, {"Lang-chg", true}, {"Lang-chm", true}, {"Lang-chn", true}, {"Lang-cho", true}, {"Lang-chp", true}, {"Lang-chr", true}, {"Lang-chy", true}, {"Lang-cic", true}, {"Lang-cim", true}, {"Lang-ciw", true}, {"Lang-cja", true}, {"Lang-cjm", true}, {"Lang-cjs", true}, {"Lang-ckb", true}, {"Lang-ckt", true}, {"Lang-cku", true}, {"Lang-cld", true}, {"Lang-clm", true}, {"Lang-cmc", true}, {"Lang-cmg", true}, {"Lang-cml", true}, {"Lang-cmn", true}, {"Lang-cms", true}, {"Lang-cnr", true}, {"Lang-cnu", true}, {"Lang-co", true}, {"Lang-coa", true}, {"Lang-coc", true}, {"Lang-coj", true}, {"Lang-com", true}, {"Lang-coo", true}, {"Lang-cop", true}, {"Lang-cpe", true}, {"Lang-cpf", true}, {"Lang-cpg", true}, {"Lang-cpp", true}, {"Lang-cr", true}, {"Lang-crg", true}, {"Lang-crh", true}, {"Lang-cri", true}, {"Lang-crj", true}, {"Lang-crk", true}, {"Lang-crl", true}, {"Lang-crm", true}, {"Lang-cro", true}, {"Lang-crp", true}, {"Lang-crr", true}, {"Lang-cs", true}, {"Lang-csb", true}, {"Lang-csu", true}, {"Lang-csw", true}, {"Lang-csz", true}, {"Lang-ctd", true}, {"Lang-ctg", true}, {"Lang-ctm", true}, {"Lang-cu", true}, {"Lang-cus", true}, {"Lang-cv", true}, {"Lang-cwd", true}, {"Lang-cy", true}, {"Lang-cyo", true}, {"Lang-da", true}, {"Lang-dag", true}, {"Lang-dak", true}, {"Lang-dar", true}, {"Lang-day", true}, {"Lang-ddo", true}, {"Lang-de", true}, {"Lang-de-AT", true}, {"Lang-deh", true}, {"Lang-del", true}, {"Lang-den", true}, {"Lang-dev", true}, {"Lang-dgo", true}, {"Lang-din", true}, {"Lang-diq", true}, {"Lang-dlg", true}, {"Lang-dlm", true}, {"Lang-dmn", true}, {"Lang-dng", true}, {"Lang-dra", true}, {"Lang-dsb", true}, {"Lang-dum", true}, {"Lang-dv", true}, {"Lang-dyu", true}, {"Lang-dz", true}, {"Lang-ee", true}, {"Lang-efi", true}, {"Lang-egl", true}, {"Lang-egx", true}, {"Lang-egy", true}, {"Lang-el", true}, {"Lang-elx", true}, {"Lang-emb", true}, {"Lang-ems", true}, {"Lang-en", true}, {"Lang-en-emodeng", true}, {"Lang-enf", true}, {"Lang-enh", true}, {"Lang-enm", true}, {"Lang-eno", true}, {"Lang-eo", true}, {"Lang-es", true}, {"Lang-ess", true}, {"Lang-esu", true}, {"Lang-esx", true}, {"Lang-et", true}, {"Lang-ett", true}, {"Lang-eu", true}, {"Lang-euq", true}, {"Lang-eve", true}, {"Lang-evn", true}, {"Lang-ext", true}, {"Lang-fa", true}, {"Lang-fan", true}, {"Lang-fax", true}, {"Lang-ff", true}, {"Lang-fi", true}, {"Lang-fil", true}, {"Lang-fit", true}, {"Lang-fiu", true}, {"Lang-fj", true}, {"Lang-fkv", true}, {"Lang-fla", true}, {"Lang-fmp", true}, {"Lang-fo", true}, {"Lang-fon", true}, {"Lang-fox", true}, {"Lang-fr", true}, {"Lang-frc", true}, {"Lang-frk", true}, {"Lang-frm", true}, {"Lang-fro", true}, {"Lang-frp", true}, {"Lang-frr", true}, {"Lang-frs", true}, {"Lang-fuc", true}, {"Lang-fuf", true}, {"Lang-fur", true}, {"Lang-fwa", true}, {"Lang-fy", true}, {"Lang-ga", true}, {"Lang-gaa", true}, {"Lang-gad", true}, {"Lang-gag", true}, {"Lang-gay", true}, {"Lang-gbm", true}, {"Lang-gbz", true}, {"Lang-gcf", true}, {"Lang-gcr", true}, {"Lang-gd", true}, {"Lang-gem", true}, {"Lang-gem-x-proto", true}, {"Lang-gez", true}, {"Lang-gil", true}, {"Lang-git", true}, {"Lang-gju", true}, {"Lang-gl", true}, {"Lang-glk", true}, {"Lang-gme", true}, {"Lang-gmh", true}, {"Lang-gml", true}, {"Lang-gmq", true}, {"Lang-gmw", true}, {"Lang-gmy", true}, {"Lang-gn", true}, {"Lang-gnc", true}, {"Lang-goh", true}, {"Lang-gom", true}, {"Lang-gor", true}, {"Lang-gos", true}, {"Lang-got", true}, {"Lang-grc", true}, {"Lang-grc-x-aeolic", true}, {"Lang-grc-x-attic", true}, {"Lang-grc-x-biblical", true}, {"Lang-grc-x-classic", true}, {"Lang-grc-x-doric", true}, {"Lang-grc-x-hellen", true}, {"Lang-grc-x-ionic", true}, {"Lang-grc-x-koine", true}, {"Lang-grc-x-medieval", true}, {"Lang-grc-x-patris", true}, {"Lang-grk", true}, {"Lang-grk-x-proto", true}, {"Lang-grm", true}, {"Lang-gsw", true}, {"Lang-gu", true}, {"Lang-guc", true}, {"Lang-gul", true}, {"Lang-guw", true}, {"Lang-gv", true}, {"Lang-gyn", true}, {"Lang-ha", true}, {"Lang-hac", true}, {"Lang-hai", true}, {"Lang-hak", true}, {"Lang-haw", true}, {"Lang-haz", true}, {"Lang-hbo", true}, {"Lang-hch", true}, {"Lang-he", true}, {"Lang-hei", true}, {"Lang-hi", true}, {"Lang-hid", true}, {"Lang-hif", true}, {"Lang-hil", true}, {"Lang-him", true}, {"Lang-hit", true}, {"Lang-hlu", true}, {"Lang-hmn", true}, {"Lang-hmx", true}, {"Lang-hnd", true}, {"Lang-hnn", true}, {"Lang-hno", true}, {"Lang-ho", true}, {"Lang-hoc", true}, {"Lang-hok", true}, {"Lang-hop", true}, {"Lang-hr", true}, {"Lang-hsb", true}, {"Lang-ht", true}, {"Lang-hu", true}, {"Lang-hur", true}, {"Lang-hus", true}, {"Lang-hvn", true}, {"Lang-hy", true}, {"Lang-hyw", true}, {"Lang-hyx", true}, {"Lang-hz", true}, {"Lang-ia", true}, {"Lang-iba", true}, {"Lang-ibb", true}, {"Lang-ibg", true}, {"Lang-ibl", true}, {"Lang-icr", true}, {"Lang-id", true}, {"Lang-ie", true}, {"Lang-ig", true}, {"Lang-ii", true}, {"Lang-iir", true}, {"Lang-ijo", true}, {"Lang-ik", true}, {"Lang-ikt", true}, {"Lang-ilo", true}, {"Lang-ilp", true}, {"Lang-inc", true}, {"Lang-ine", true}, {"Lang-inh", true}, {"Lang-io", true}, {"Lang-iow", true}, {"Lang-ira", true}, {"Lang-iro", true}, {"Lang-is", true}, {"Lang-ist", true}, {"Lang-it", true}, {"Lang-itc", true}, {"Lang-itl", true}, {"Lang-itv", true}, {"Lang-iu", true}, {"Lang-ium", true}, {"Lang-ivv", true}, {"Lang-izh", true}, {"Lang-ja", true}, {"Lang-jam", true}, {"Lang-jao", true}, {"Lang-jax", true}, {"Lang-jbe", true}, {"Lang-jbo", true}, {"Lang-jdt", true}, {"Lang-jog", true}, {"Lang-jpa", true}, {"Lang-jpx", true}, {"Lang-jrb", true}, {"Lang-jur", true}, {"Lang-jv", true}, {"Lang-jye", true}, {"Lang-kaa", true}, {"Lang-kab", true}, {"Lang-kac", true}, {"Lang-kar", true}, {"Lang-kaw", true}, {"Lang-kbd", true}, {"Lang-kbp", true}, {"Lang-kca", true}, {"Lang-kcg", true}, {"Lang-kda", true}, {"Lang-kdd", true}, {"Lang-kdo", true}, {"Lang-kee", true}, {"Lang-kek", true}, {"Lang-kg", true}, {"Lang-kge", true}, {"Lang-kha", true}, {"Lang-khb", true}, {"Lang-khi", true}, {"Lang-khw", true}, {"Lang-ki", true}, {"Lang-kio", true}, {"Lang-kiq", true}, {"Lang-kiu", true}, {"Lang-kj", true}, {"Lang-kjh", true}, {"Lang-kjp", true}, {"Lang-kjq", true}, {"Lang-kjz", true}, {"Lang-kk", true}, {"Lang-kkh", true}, {"Lang-kkv", true}, {"Lang-kkz", true}, {"Lang-kl", true}, {"Lang-kls", true}, {"Lang-km", true}, {"Lang-kmb", true}, {"Lang-kmr", true}, {"Lang-kn", true}, {"Lang-kne", true}, {"Lang-knn", true}, {"Lang-ko", true}, {"Lang-kog", true}, {"Lang-koi", true}, {"Lang-kok", true}, {"Lang-kpo", true}, {"Lang-kr", true}, {"Lang-krc", true}, {"Lang-kri", true}, {"Lang-krj", true}, {"Lang-krl", true}, {"Lang-kro", true}, {"Lang-ks", true}, {"Lang-ksh", true}, {"Lang-ksw", true}, {"Lang-ktu", true}, {"Lang-ktz", true}, {"Lang-ku", true}, {"Lang-kum", true}, {"Lang-kut", true}, {"Lang-kv", true}, {"Lang-kvr", true}, {"Lang-kvx", true}, {"Lang-kw", true}, {"Lang-kwk", true}, {"Lang-kxd", true}, {"Lang-ky", true}, {"Lang-kyh", true}, {"Lang-la", true}, {"Lang-la-x-medieval", true}, {"Lang-la-x-new", true}, {"Lang-lad", true}, {"Lang-lb", true}, {"Lang-lbe", true}, {"Lang-lbj", true}, {"Lang-lce", true}, {"Lang-lcf", true}, {"Lang-lez", true}, {"Lang-lg", true}, {"Lang-li", true}, {"Lang-lij", true}, {"Lang-lil", true}, {"Lang-lis", true}, {"Lang-liv", true}, {"Lang-liw", true}, {"Lang-ljp", true}, {"Lang-lkt", true}, {"Lang-lld", true}, {"Lang-lmo", true}, {"Lang-ln", true}, {"Lang-lng", true}, {"Lang-lo", true}, {"Lang-lom", true}, {"Lang-lou", true}, {"Lang-loz", true}, {"Lang-lrc", true}, {"Lang-lss", true}, {"Lang-lt", true}, {"Lang-ltg", true}, {"Lang-lu", true}, {"Lang-lua", true}, {"Lang-lud", true}, {"Lang-lui", true}, {"Lang-lun", true}, {"Lang-luo", true}, {"Lang-luq", true}, {"Lang-lus", true}, {"Lang-lut", true}, {"Lang-luz", true}, {"Lang-lv", true}, {"Lang-lzz", true}, {"Lang-mad", true}, {"Lang-mai", true}, {"Lang-mak", true}, {"Lang-map", true}, {"Lang-maz", true}, {"Lang-mbr", true}, {"Lang-mdf", true}, {"Lang-mdh", true}, {"Lang-mdr", true}, {"Lang-mey", true}, {"Lang-mez", true}, {"Lang-mfa", true}, {"Lang-mfb", true}, {"Lang-mfe", true}, {"Lang-mfp", true}, {"Lang-mg", true}, {"Lang-mga", true}, {"Lang-mh", true}, {"Lang-mhn", true}, {"Lang-mhr", true}, {"Lang-mi", true}, {"Lang-mia", true}, {"Lang-mic", true}, {"Lang-mid", true}, {"Lang-mik", true}, {"Lang-min", true}, {"Lang-miq", true}, {"Lang-mis", true}, {"Lang-mix", true}, {"Lang-mjw", true}, {"Lang-mjy", true}, {"Lang-mk", true}, {"Lang-mkh", true}, {"Lang-mki", true}, {"Lang-mkw", true}, {"Lang-ml", true}, {"Lang-mla", true}, {"Lang-mn", true}, {"Lang-mni", true}, {"Lang-mnj", true}, {"Lang-mno", true}, {"Lang-mnr", true}, {"Lang-mns", true}, {"Lang-mnw", true}, {"Lang-moe", true}, {"Lang-moh", true}, {"Lang-mos", true}, {"Lang-mov", true}, {"Lang-mqm", true}, {"Lang-mqx", true}, {"Lang-mr", true}, {"Lang-mrc", true}, {"Lang-mrh", true}, {"Lang-mrj", true}, {"Lang-mrq", true}, {"Lang-mrv", true}, {"Lang-mrw", true}, {"Lang-ms", true}, {"Lang-mt", true}, {"Lang-mtm", true}, {"Lang-mtq", true}, {"Lang-mui", true}, {"Lang-mul", true}, {"Lang-mun", true}, {"Lang-mus", true}, {"Lang-mvi", true}, {"Lang-mwl", true}, {"Lang-mwp", true}, {"Lang-mwr", true}, {"Lang-mwv", true}, {"Lang-mww", true}, {"Lang-mxi", true}, {"Lang-my", true}, {"Lang-myn", true}, {"Lang-myv", true}, {"Lang-myz", true}, {"Lang-mzb", true}, {"Lang-mzn", true}, {"Lang-na", true}, {"Lang-nah", true}, {"Lang-nai", true}, {"Lang-nan", true}, {"Lang-nap", true}, {"Lang-naq", true}, {"Lang-nay", true}, {"Lang-naz", true}, {"Lang-nb", true}, {"Lang-ncg", true}, {"Lang-nci", true}, {"Lang-nd", true}, {"Lang-nds", true}, {"Lang-ne", true}, {"Lang-new", true}, {"Lang-ng", true}, {"Lang-ngf", true}, {"Lang-nhd", true}, {"Lang-nhy", true}, {"Lang-nia", true}, {"Lang-nic", true}, {"Lang-nio", true}, {"Lang-niu", true}, {"Lang-nl", true}, {"Lang-nlm", true}, {"Lang-nn", true}, {"Lang-no", true}, {"Lang-nod", true}, {"Lang-nog", true}, {"Lang-nok", true}, {"Lang-non", true}, {"Lang-nqo", true}, {"Lang-nr", true}, {"Lang-nrf", true}, {"Lang-nrn", true}, {"Lang-nsd", true}, {"Lang-nsk", true}, {"Lang-nso", true}, {"Lang-nsz", true}, {"Lang-nub", true}, {"Lang-nv", true}, {"Lang-nwc", true}, {"Lang-nxm", true}, {"Lang-ny", true}, {"Lang-nys", true}, {"Lang-oaa", true}, {"Lang-oar", true}, {"Lang-oav", true}, {"Lang-obm", true}, {"Lang-oc", true}, {"Lang-och", true}, {"Lang-odt", true}, {"Lang-ofs", true}, {"Lang-oge", true}, {"Lang-ohu", true}, {"Lang-oj", true}, {"Lang-ojb", true}, {"Lang-ojc", true}, {"Lang-ojg", true}, {"Lang-ojs", true}, {"Lang-ojw", true}, {"Lang-oka", true}, {"Lang-okm", true}, {"Lang-olo", true}, {"Lang-om", true}, {"Lang-oma", true}, {"Lang-omp", true}, {"Lang-omq", true}, {"Lang-omv", true}, {"Lang-omy", true}, {"Lang-one", true}, {"Lang-ono", true}, {"Lang-ood", true}, {"Lang-opt", true}, {"Lang-or", true}, {"Lang-oru", true}, {"Lang-orv", true}, {"Lang-os", true}, {"Lang-osa", true}, {"Lang-osc", true}, {"Lang-osi", true}, {"Lang-osn", true}, {"Lang-osp", true}, {"Lang-osx", true}, {"Lang-ota", true}, {"Lang-otb", true}, {"Lang-ote", true}, {"Lang-otk", true}, {"Lang-oto", true}, {"Lang-otq", true}, {"Lang-otw", true}, {"Lang-oty", true}, {"Lang-ovd", true}, {"Lang-owl", true}, {"Lang-pa", true}, {"Lang-paa", true}, {"Lang-pag", true}, {"Lang-pal", true}, {"Lang-pam", true}, {"Lang-pao", true}, {"Lang-pap", true}, {"Lang-pau", true}, {"Lang-paw", true}, {"Lang-pcd", true}, {"Lang-pcm", true}, {"Lang-pdc", true}, {"Lang-pea", true}, {"Lang-peo", true}, {"Lang-pes", true}, {"Lang-pey", true}, {"Lang-pfl", true}, {"Lang-pgd", true}, {"Lang-pgl", true}, {"Lang-phi", true}, {"Lang-phn", true}, {"Lang-phr", true}, {"Lang-pi", true}, {"Lang-pih", true}, {"Lang-pim", true}, {"Lang-pis", true}, {"Lang-pjt", true}, {"Lang-pka", true}, {"Lang-pl", true}, {"Lang-plf", true}, {"Lang-pln", true}, {"Lang-pmd", true}, {"Lang-pmh", true}, {"Lang-pms", true}, {"Lang-pnb", true}, {"Lang-pnh", true}, {"Lang-pnt", true}, {"Lang-pot", true}, {"Lang-pox", true}, {"Lang-poz", true}, {"Lang-ppl", true}, {"Lang-pqe", true}, {"Lang-pqm", true}, {"Lang-pqw", true}, {"Lang-pra", true}, {"Lang-prg", true}, {"Lang-prk", true}, {"Lang-prs", true}, {"Lang-prx", true}, {"Lang-ps", true}, {"Lang-psu", true}, {"Lang-pt", true}, {"Lang-pua", true}, {"Lang-pui", true}, {"Lang-puy", true}, {"Lang-pwn", true}, {"Lang-pwo", true}, {"Lang-qu", true}, {"Lang-qua", true}, {"Lang-quc", true}, {"Lang-qwe", true}, {"Lang-qya", true}, {"Lang-raj", true}, {"Lang-rap", true}, {"Lang-rar", true}, {"Lang-rcf", true}, {"Lang-rej", true}, {"Lang-rgn", true}, {"Lang-rif", true}, {"Lang-rkh", true}, {"Lang-rki", true}, {"Lang-rkt", true}, {"Lang-rm", true}, {"Lang-rmf", true}, {"Lang-rmo", true}, {"Lang-rmu", true}, {"Lang-rmy", true}, {"Lang-rmz", true}, {"Lang-rn", true}, {"Lang-ro", true}, {"Lang-roa", true}, {"Lang-rob", true}, {"Lang-rom", true}, {"Lang-rsk", true}, {"Lang-rts", true}, {"Lang-ru", true}, {"Lang-rue", true}, {"Lang-ruo", true}, {"Lang-rup", true}, {"Lang-ruq", true}, {"Lang-rut", true}, {"Lang-rw", true}, {"Lang-rys", true}, {"Lang-ryu", true}, {"Lang-sa", true}, {"Lang-sac", true}, {"Lang-sah", true}, {"Lang-sai", true}, {"Lang-sal", true}, {"Lang-sas", true}, {"Lang-sat", true}, {"Lang-saz", true}, {"Lang-sbn", true}, {"Lang-sbv", true}, {"Lang-sc", true}, {"Lang-scl", true}, {"Lang-scn", true}, {"Lang-sco", true}, {"Lang-sd", true}, {"Lang-sda", true}, {"Lang-sdc", true}, {"Lang-sdh", true}, {"Lang-sdn", true}, {"Lang-sdv", true}, {"Lang-se", true}, {"Lang-see", true}, {"Lang-sei", true}, {"Lang-sel", true}, {"Lang-sem", true}, {"Lang-ser", true}, {"Lang-sg", true}, {"Lang-sga", true}, {"Lang-sgd", true}, {"Lang-sgh", true}, {"Lang-sgn", true}, {"Lang-sgs", true}, {"Lang-sh", true}, {"Lang-shh", true}, {"Lang-shi", true}, {"Lang-shn", true}, {"Lang-shp", true}, {"Lang-shs", true}, {"Lang-shy", true}, {"Lang-si", true}, {"Lang-sia", true}, {"Lang-sio", true}, {"Lang-sip", true}, {"Lang-sit", true}, {"Lang-siz", true}, {"Lang-sjd", true}, {"Lang-sje", true}, {"Lang-sjk", true}, {"Lang-sjn", true}, {"Lang-sjo", true}, {"Lang-sjt", true}, {"Lang-sju", true}, {"Lang-sjw", true}, {"Lang-sk", true}, {"Lang-ska", true}, {"Lang-skh", true}, {"Lang-skr", true}, {"Lang-sl", true}, {"Lang-sla", true}, {"Lang-slh", true}, {"Lang-sli", true}, {"Lang-slr", true}, {"Lang-slu", true}, {"Lang-sly", true}, {"Lang-sm", true}, {"Lang-sma", true}, {"Lang-smi", true}, {"Lang-smj", true}, {"Lang-smn", true}, {"Lang-smr", true}, {"Lang-sms", true}, {"Lang-smw", true}, {"Lang-sn", true}, {"Lang-snk", true}, {"Lang-snq", true}, {"Lang-so", true}, {"Lang-sog", true}, {"Lang-son", true}, {"Lang-sou", true}, {"Lang-sq", true}, {"Lang-sqj", true}, {"Lang-sqo", true}, {"Lang-sqr", true}, {"Lang-sqt", true}, {"Lang-squ", true}, {"Lang-sr", true}, {"Lang-src", true}, {"Lang-srh", true}, {"Lang-srm", true}, {"Lang-srn", true}, {"Lang-sro", true}, {"Lang-srr", true}, {"Lang-srs", true}, {"Lang-ss", true}, {"Lang-ssa", true}, {"Lang-st", true}, {"Lang-std", true}, {"Lang-sto", true}, {"Lang-stp", true}, {"Lang-stq", true}, {"Lang-str", true}, {"Lang-sty", true}, {"Lang-su", true}, {"Lang-sus", true}, {"Lang-sux", true}, {"Lang-sv", true}, {"Lang-sva", true}, {"Lang-sw", true}, {"Lang-swb", true}, {"Lang-swg", true}, {"Lang-swh", true}, {"Lang-sws", true}, {"Lang-syc", true}, {"Lang-syd", true}, {"Lang-syl", true}, {"Lang-syr", true}, {"Lang-szl", true}, {"Lang-szy", true}, {"Lang-ta", true}, {"Lang-taa", true}, {"Lang-tab", true}, {"Lang-tai", true}, {"Lang-tao", true}, {"Lang-tay", true}, {"Lang-tbq", true}, {"Lang-tcb", true}, {"Lang-tcs", true}, {"Lang-tcy", true}, {"Lang-tdd", true}, {"Lang-te", true}, {"Lang-tes", true}, {"Lang-tet", true}, {"Lang-tew", true}, {"Lang-tfn", true}, {"Lang-tft", true}, {"Lang-tg", true}, {"Lang-tgx", true}, {"Lang-th", true}, {"Lang-thp", true}, {"Lang-ti", true}, {"Lang-tid", true}, {"Lang-tig", true}, {"Lang-tiw", true}, {"Lang-tix", true}, {"Lang-tk", true}, {"Lang-tkl", true}, {"Lang-tkm", true}, {"Lang-tl", true}, {"Lang-tlh", true}, {"Lang-tli", true}, {"Lang-tly", true}, {"Lang-tmh", true}, {"Lang-tmn", true}, {"Lang-tmr", true}, {"Lang-tn", true}, {"Lang-tnq", true}, {"Lang-to", true}, {"Lang-toi", true}, {"Lang-tok", true}, {"Lang-tol", true}, {"Lang-tom", true}, {"Lang-tow", true}, {"Lang-tpi", true}, {"Lang-tr", true}, {"Lang-trk", true}, {"Lang-trp", true}, {"Lang-tru", true}, {"Lang-ts", true}, {"Lang-tsg", true}, {"Lang-tsi", true}, {"Lang-tsz", true}, {"Lang-tt", true}, {"Lang-tts", true}, {"Lang-ttt", true}, {"Lang-tum", true}, {"Lang-tun", true}, {"Lang-tup", true}, {"Lang-tus", true}, {"Lang-tut", true}, {"Lang-tuw", true}, {"Lang-tvl", true}, {"Lang-tw", true}, {"Lang-twa", true}, {"Lang-ty", true}, {"Lang-tyv", true}, {"Lang-tzh", true}, {"Lang-tzl", true}, {"Lang-tzm", true}, {"Lang-tzo", true}, {"Lang-uby", true}, {"Lang-ude", true}, {"Lang-udi", true}, {"Lang-udm", true}, {"Lang-ug", true}, {"Lang-uga", true}, {"Lang-uk", true}, {"Lang-uli", true}, {"Lang-ulk", true}, {"Lang-uma", true}, {"Lang-umb", true}, {"Lang-umu", true}, {"Lang-und", true}, {"Lang-unm", true}, {"Lang-ur", true}, {"Lang-ure", true}, {"Lang-urj", true}, {"Lang-uum", true}, {"Lang-uz", true}, {"Lang-ve", true}, {"Lang-vec", true}, {"Lang-vep", true}, {"Lang-vi", true}, {"Lang-vkk", true}, {"Lang-vls", true}, {"Lang-vmf", true}, {"Lang-vml", true}, {"Lang-vo", true}, {"Lang-vot", true}, {"Lang-vro", true}, {"Lang-wa", true}, {"Lang-wae", true}, {"Lang-wak", true}, {"Lang-wal", true}, {"Lang-wam", true}, {"Lang-war", true}, {"Lang-was", true}, {"Lang-wbl", true}, {"Lang-wbm", true}, {"Lang-wen", true}, {"Lang-wep", true}, {"Lang-wes", true}, {"Lang-win", true}, {"Lang-wlm", true}, {"Lang-wlo", true}, {"Lang-wls", true}, {"Lang-wne", true}, {"Lang-wo", true}, {"Lang-woe", true}, {"Lang-wrh", true}, {"Lang-wrm", true}, {"Lang-wth", true}, {"Lang-wyi", true}, {"Lang-wym", true}, {"Lang-wyn", true}, {"Lang-xaa", true}, {"Lang-xag", true}, {"Lang-xal", true}, {"Lang-xas", true}, {"Lang-xbc", true}, {"Lang-xbj", true}, {"Lang-xbm", true}, {"Lang-xby", true}, {"Lang-xcb", true}, {"Lang-xcg", true}, {"Lang-xcl", true}, {"Lang-xcr", true}, {"Lang-xct", true}, {"Lang-xdc", true}, {"Lang-xdk", true}, {"Lang-xdm", true}, {"Lang-xfa", true}, {"Lang-xgf", true}, {"Lang-xgn", true}, {"Lang-xh", true}, {"Lang-xhe", true}, {"Lang-xhu", true}, {"Lang-xlc", true}, {"Lang-xld", true}, {"Lang-xlu", true}, {"Lang-xmf", true}, {"Lang-xmm", true}, {"Lang-xna", true}, {"Lang-xnd", true}, {"Lang-xng", true}, {"Lang-xno", true}, {"Lang-xpi", true}, {"Lang-xpr", true}, {"Lang-xpu", true}, {"Lang-xpz", true}, {"Lang-xqa", true}, {"Lang-xsa", true}, {"Lang-xsb", true}, {"Lang-xsr", true}, {"Lang-xul", true}, {"Lang-xur", true}, {"Lang-xvo", true}, {"Lang-xwo", true}, {"Lang-yao", true}, {"Lang-yap", true}, {"Lang-yaq", true}, {"Lang-ydg", true}, {"Lang-yi", true}, {"Lang-yii", true}, {"Lang-yka", true}, {"Lang-ykg", true}, {"Lang-ymm", true}, {"Lang-ymt", true}, {"Lang-yo", true}, {"Lang-yoi", true}, {"Lang-ypk", true}, {"Lang-yrk", true}, {"Lang-yua", true}, {"Lang-yuc", true}, {"Lang-yue", true}, {"Lang-yuf", true}, {"Lang-yuf-x-hav", true}, {"Lang-yuf-x-wal", true}, {"Lang-yuf-x-yav", true}, {"Lang-yxg", true}, {"Lang-za", true}, {"Lang-zea", true}, {"Lang-zgh", true}, {"Lang-zhx", true}, {"Lang-zkv", true}, {"Lang-zle", true}, {"Lang-zls", true}, {"Lang-zlw", true}, {"Lang-znd", true}, {"Lang-zom", true}, {"Lang-zsm", true}, {"Lang-zu", true}, {"Lang-zun", true}, {"Lang-zxx", true}, {"Lang-zza", true}, };