User:Monkbot/task 20: Replace lang-xx templates

(Redirected from User:Monkbot 20)

This script renames transclusions of the 1,150+ different {{lang-??}} templates that directly invoke the lang_xx_inherit() and lang_xx_italic() functions of Module:Lang – and many (most?) of their redirects – with the name of a single template, {{langx}}. See Wikipedia:Templates for discussion/Log/2024 September 27 § Replace and delete lang-?? templates.

description

edit

Conveniently, almost all of the templates in the list are consistently named. Task 20 maintains several internal lists of the templates listed in Wikipedia:Templates for discussion/Log/2024 September 27/lang-?? templates and their associated redirects. It also keeps a list of those templates and redirects that look like {{lang-??}} templates but are not; these are ignored.

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>}}. The 'new' standard-form template name can then be processed with all of the other standard-form names.

For standard-form {{lang-??}} template and redirect names, task 20 looks for that template's canonical name (first letter uppercase) in its template and redirect lists. It also keeps a list of ignored templates and redirects that look like {{lang-??}} templates but cannot be converted to {{langx}}. 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}}

Articles that feed this task are taken primarily from Category:Pages using Lang-xx templates (1 C; 594,768 P; 0 F)

ancillary tasks

edit

Task 20 performs no ancillary tasks.

This task does not do awb general fixes.

edit summaries

edit

Task 20 writes an edit summary message that tallies the number of {{lang-??}} templates that were renamed, the number of unknown {{lang-??}} templates that were skipped, and the number of known {{lang-??}} templates that were ignored. The name(s) of unknown skipped and ignored templates are included in the edit summary so that a manual review of task 20's edits may turn up templates and redirects that should have been renamed or should have been ignored.

The edit summary has a link to this page and a link to the TfD.

ignored templates

edit

This is a list of templates that are ignored by Task 20; there may be others. Task 20 also ignores sandbox versions of known templates and any known template that uses enumerated parameters ({{lang-??|1=text}}).

script

edit
//---------------------------< 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\-[^\|]+/
//		incategory:"Pages using Lang-xx templates" prefix:<***>
//			where *** is the first letter(s) of a group of article titles (case insensitive)
//
// TODO: what todo about Template:/lang-??/sandbox?
//

public string ProcessArticle(string ArticleText, string ArticleTitle, int wikiNamespace, out string Summary, out bool Skip)
	{
	Skip = false;
	Summary = base_summary;																				// base_summary is static
	string	sub_summary = "";

	string pattern = "";
	
	if (100 == wikiNamespace)																			// portals just transclude sections from other articles
		{
		Skip = true;
		Summary = "Page is in Portal namespace";
		return ArticleText;
		}
	
	if (page_skip_list_t.ContainsKey (ArticleTitle))
		{
		Skip = true;
		Summary = "Page in page-skip list";
		return ArticleText;
		}
	
	foreach (KeyValuePair<string, string> entry in nonstandard_names_t)									// fetch each nonstandard name 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 for later conversion to {{langx}}
		}

	int		replaced_count = 0;																			// tally of pattern-matching templates/redirects replaced
	int		skipped_count = 0;																			// tally of pattern-matching templates/redirects skipped
	int		ignored_count = 0;																			// tally of pattern-matching templates/redirects 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>(){};										// arrays to store skipped template names
	var		ignored_templates_t = new Dictionary<string, int>(){};										// and ignored template names

	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 (Regex.Match (match.Groups[6].Value, @"\|\s*\d+\s*=").Success)						// does this template contain enumerated parameters?
					{
					ignored_count++;																	// yep, bump the counter
					skip_ignore_list_add (ignored_templates_t, key + " [enum]");						// add this template name to the ignored list
					return template;
					}

				if (Regex.Match (match.Groups[0].Value, @"/sandbox").Success)							// does this template contain enumerated parameters?
					{
					ignored_count++;																	// yep, bump the counter
					skip_ignore_list_add (ignored_templates_t, key + " [sbox]");						// add this template name to the ignored list
					return template;
					}

				if (ignored_names_t.ContainsKey (key))													// is this template one to be ignored?
					{
					ignored_count++;																	// yep, bump the counter
					skip_ignore_list_add (ignored_templates_t, key);									// add this template name to the ignored list
					return template;																	// ignore known unsupported templates/redirects
					}

				if (template_names_t.ContainsKey (key))													// is this template a standard {{lang-??}} template?
					return counted_replace (template, pattern, "$1$3x$5|$4$6", ref replaced_count);		// tally & return modified template

				else if (redirect_names_t.ContainsKey (key))											// is this template a {{lang-??}} redirect?
					return counted_replace (template, pattern, "$1$3x$5|" + redirect_names_t[key] + "$6", ref replaced_count);	// tally & return modified template

				skipped_count++;																		// not a known name so bump the counter
				skip_ignore_list_add (skipped_templates_t, key);										// add it to the list
				return template;																		// and return it unmolested
				});
	
	if (0 == replaced_count && 0 == skipped_count && 0 == ignored_count)								// no replacements, no skips, no ignores
		{
		Skip = true;																					// no need to continue so
		Summary = "no replacements, no skips, no ignores";												// to simplify summary in awb log
		return ArticleText;																				// abandon and done
		}
//Skip=true;																							// DEBUG: to force awb to not save but to emit edit summaries to the log
	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 != replaced_count, 0 != skipped_count, 0 != ignored_count, replaced_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 replaced, skipped, and ignored templates
//

private string sub_summary_get (bool replaced, bool skipped, bool ignored, int replaced_count, int skipped_count, int ignored_count, string skipped_list, string ignored_list, ref bool skip)
	{
	string sub_summary = "";
	
	if (replaced)																// 4, 5, 6, 7
		{
		if (skipped)															// 6, 7
			{
			if (ignored)														// 7
				sub_summary = String.Format (" (Replaced {0}; skipped unknown {1}: {2}; ignored {3}: {4}", replaced_count, skipped_count, skipped_list, ignored_count, ignored_list);
			else 																// 6
				sub_summary = String.Format (" (Replaced {0}; skipped unknown {1}: {2}", replaced_count, skipped_count, skipped_list);
			}
		else																	// 4, 5
			{
			if (ignored)														// 5
				sub_summary = String.Format (" (Replaced {0}; ignored {1}: {2}", replaced_count, ignored_count, ignored_list);
			else																// 4
				{
				sub_summary = String.Format (" (Replaced {0}", replaced_count);
 //sub_summary = "";	// DEBUG
				}
			}
		}
	else 
		{
		if (skipped)															// 1, 2, 3
			{
			if (ignored)														// 3
				sub_summary = String.Format (" (Skipped unknown {0}: {1}; ignored {2}: {3}", skipped_count, skipped_list, ignored_count, ignored_list);
			else																// 2
				sub_summary = String.Format (" (Skipped unknown {0}: {1}", skipped_count, skipped_list);
			}
		else 																	// 1
			{
			sub_summary = String.Format (" (Ignored {0}: {1}", ignored_count, ignored_list);
			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 >>======================================================

string	base_summary = String.Format ("[[User:Monkbot/task 20|Task 20]] {0}: replace {{lang-??}} templates with {{langx|??}} [[Wikipedia:Templates_for_discussion/Log/2024_September_27#Replace_and_delete_lang-??_templates|‹See Tfd›]]",
	"(dev test)"
//	"(BRFA trial)"
//	""
	);


//---------------------------< I G N O R E D _ N A M E S _ T >------------------------------------------------
//
// the names in this list are more-or-less standard-form names that look like and may be template or standard-form
// redirect names.  These names are ignored because these templates are non-standard (they may use 
// {{language with name}} or other templates, may be plain-text, or have unique additional coding.  The actual
// templates are listed in the TfD template list at §excluded templates; the redirects are not.
//
// all of the keys in this dictionary must be canonical form
//

static Dictionary<string, bool> ignored_names_t = new Dictionary<string, bool>()
	{
	{"Lang-anw",				true},		// non-existent
	{"Lang-ast-leo",			true},
	{"Lang-cnr-Cyrl",			true},
	{"Lang-cnr-Cyrl-Latn",		true},
	{"Lang-cnr-Latn",			true},		// stricken from first addendum because uses custom label
	{"Lang-cnr-Latn-Cyrl",		true},
	{"Lang-eml",				true},		// non-existent
	{"Lang-est-sea",			true},
	{"Lang-fra-frc",			true},
	{"Lang-grc-gre",			true},
	{"Lang-hmd", 				true},
	{"Lang-ka",					true},
	{"Lang-ku-Arab", 			true},
	{"lang-lmo-cr",				true},
	{"Lang-lmo-IT",				true},
	{"Lang-mnc",				true},
	{"Lang-my-Mymr",			true},
	{"Lang-my-name-MLCTS",		true},
	{"Lang-rus",				true},
	{"Lang-sh-Cyrl",			true},
	{"Lang-sh-Cyrl-Latn",		true},
	{"Lang-sh-Latn",			true},
	{"Lang-sh-Latn-Cyrl",		true},
	{"Lang-sq-definite",		true},
	{"Lang-sr-Cyrl",			true},
	{"Lang-sr-Cyrl-Latn",		true},
	{"Lang-sr-Latn",			true},
	{"Lang-sr-Latn-Cyrl",		true},
	{"Lang-stub",				true},		// not a {{lang-??}} template
	{"Lang-su-fonts",			true},
	{"Lang-uniturk",			true},
	{"Lang-uz-Cyrl-Latn",		true},
	{"Lang-uz-Latn",			true},
	{"Lang-uz-Latn-Cyrl",		true},
	{"Lang-vi-chunom",			true},
	{"Lang-vi-hantu",			true},
	{"Lang-xx",					true},		// not a {{lang-??}} template
	{"Lang-zh",					true},
	{"Lang-1ca",				true},

//----------< R E D I R E C T S >----------

	{"Lang-Chinese",			true},		// to lang-zh
	{"Lang-chi",				true},		// to lang-zh
	{"Lang-cyrl",				true},		// to Cyrl; not a {{lang-??}} template
	{"Lang-for",				true},		// to {{Language with name/for}}; not a {{lang-??}} template
	{"Lang-gb",					true},		// to lang-zh
	{"Lang-hbs-Cyrl",			true},		// to Lang-sh-Cyrl
	{"Lang-hbs-Cyrl-Latn", 		true},		// to Lang-sh-Cyrl-Latn
	{"Lang-hbs-Latn",			true},		// to Lang-sh-Latn
	{"Lang-hbs-Latn-Cyrl", 		true},		// to Lang-sh-Latn-Cyrl
	{"Lang-Latn",				true},		// to {{lang}}; not a {{lang-??}} template
	{"Lang-mnw-fonts",			true},		// to Script/mnw-Mymr; not a {{lang-??}} template
	{"Lang-seto",				true},		// to lang-est-sea
	{"Lang-sr-cyr",				true},		// to Lang-sr-Cyrl
	{"Lang-sr-Cyr",				true},		// to Lang-sr-Cyrl
	{"Lang-sr-cyrl",			true},		// to Lang-sr-Cyrl
	{"Lang-sr-lat",				true},		// to Lang-sr-Latn
	{"Lang-sr-Lat",				true},		// to Lang-sr-Latn
	{"Lang-sr-latn",			true},		// to Lang-sr-Latn
	{"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"},		// not to be converted; has custom label

	};


//---------------------------< R E D I R E C T _ N A M E S _ 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> redirect_names_t = new Dictionary<string, string>()
	{
	{"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-AU"},
	{"Lang-en-Au",				"en-AU"},
	{"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-nds-nl",				"nds-NL"},
	{"Lang-prv",				"oc"},
	{"Lang-Or",					"or"},
	{"Lang-oc-gsc",				"oc-gascon"},
	{"Lang-od",					"or"},
	{"Lang-on",					"non"},
	{"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-wya",				"wyn"},
	{"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 from wrapper around {{language with name}}

//	{"Lang-ro-Cyrl-MD",			"ro-Cyrl-MD"},	// converted from {{Moldovan Cyrillic}}; not to be converted has custom label
//	{"Lang-mo-Cyrl",			"ro-Cyrl-MD"},	// and its redirect; not to be converted has custom label
	

//----------< 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 >----------
//
// used to convert key to value
//

	{"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"},
	};


//---------------------------< T E M P L A T E _ N A M E S _ T >----------------------------------------------
//
// list of {{lang-??|...}} templates to be updated to {{langx|??|...}}
//
// all of the keys in this dictionary must be canonical form
//

static Dictionary<string, bool> template_names_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-de-CH",				true},
	{"Lang-en-AU",				true},			// this is a redirect; converts to {{langx|en-AU}}
	{"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},			// does not use Template:lang-x/doc so escaped categorization; striken because uses custom label
	{"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},			// does not use Template:lang-x/doc so escaped categorization
	{"Lang-wbp",				true},			// did not (does now) use Template:lang-x/doc so escaped categorization
	{"Lang-zku",				true},			// did not (does now) use Template:lang-x/doc so escaped categorization



//----------< 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},
	};


//---------------------------< P A G E _ S K I P _ L I S T _ T >----------------------------------------------
//
// list of page titles that the bot should skip
//
// all of the keys in this dictionary must be canonical form WITH NAMESPACE
//

static Dictionary<string, bool> page_skip_list_t = new Dictionary<string, bool>()
	{
	{"Category:Lang and lang-xx template errors", 		true},
	{"Wikipedia:New pages patrol/Reports/Easy reviews",	true},			// updated by SDZeroBot: "Edits made within the table area will be removed on the next update!"
	{"User:SDZeroBot/NPP sorting/Culture/Media",		true},			// updated by SDZeroBot
	{"Template talk:Language with name",				true},			// discussions specifically about {{lang-??}} templates
	{"Wikipedia:Templates for discussion/Log/2014 August 13", true},	// discussions specifically about {{lang-??}} templates
	};