مۆدیوول:category tree/poscatboiler/data/wiktionary maintenance

لە ویکیفەرھەنگ

"بەڵگەدارکردنی ئەم مۆدیوولە دەکرێ لە مۆدیوول:category tree/poscatboiler/data/wiktionary maintenance/docدا دروست بکرێ"

local raw_categories = {}
local raw_handlers = {}

-----------------------------------------------------------------------------
--                                                                         --
--                              RAW CATEGORIES                             --
--                                                                         --
-----------------------------------------------------------------------------

raw_categories["ڕاگرتنی ویکیفەرھەنگ"] = {
	description = "ئەو پۆلانەی ئەو پەڕانەیان تێدایە کە لەلایەن دەستکاریکەرانەوە بەدواداچوونیان بۆ دەکرێت تا سەرنج بدرێن و باشتر بکرێن.",
	breadcrumb = "ڕاگرتن",
	parents = "ویکیفەرھەنگ",
}

raw_categories["Pages using lite templates"] = {
	description = "Pages which use at least one of the lite templates.",
	additional = "See [[:Category:Lua-free templates]].",
	breadcrumb = "Using lite templates",
	parents = {"ڕاگرتنی ویکیفەرھەنگ"},
	can_be_empty = true,
	hidden = true,
}

raw_categories["Pages with tab characters"] = {
	description = "Pages which contain a tab character in their wikitext.",
	additional = "These should either be removed or replaced with spaces, because they go against [[WT:NORM]].",
	breadcrumb = "Tab characters",
	parents = {"ڕاگرتنی ویکیفەرھەنگ"},
	can_be_empty = true,
	hidden = true,
}

raw_categories["Pages with DEFAULTSORT conflicts"] = {
	topright = "{{shortcut|CAT:DEFAULTSORT}}",
	description = "Pages on which the {{tl|DEFAULTSORT:}} magic word has been used multiple times with different values.",
	additional = "In some (but not all) cases, this causes a warning to display on the page. In the vast majority of instances, an explicit use of {{tl|DEFAULTSORT:}} in wikitext should be <u>removed</u>.This is because the {{tl|head}} template handles it automatically. The only instances where it should be used in wikitext is outside of entries (i.e. outside of mainspace or the Reconstruction namespace)." ..
		"\n\nSee also [[:Category:Pages with DISPLAYTITLE conflicts]].",
	breadcrumb = "DEFAULTSORT conflicts",
	parents = {"ڕاگرتنی ویکیفەرھەنگ"},
	can_be_empty = true,
	hidden = true,
}

raw_categories["Pages with DISPLAYTITLE conflicts"] = {
	topright = "{{shortcut|CAT:DISPLAYTITLE}}",
	description = "Pages on which the {{tl|DISPLAYTITLE:}} magic word has been used multiple times with different values.",
	additional = "In some (but not all) cases, this causes a warning to display on the page. In the vast majority of instances, an explicit use of {{tl|DISPLAYTITLE:}} in wikitext should be <u>removed</u>.This is because the {{tl|head}} template handles it automatically. The only instances where it should be used in wikitext is outside of entries (i.e. outside of maiespace)." ..
		"\n\nSee also [[:Category:Pages with DEFAULTSORT conflicts]].",
	breadcrumb = "DISPLAYTITLE conflicts",
	parents = {"ڕاگرتنی ویکیفەرھەنگ"},
	can_be_empty = true,
	hidden = true,
}

raw_categories["Pages with raw sortkeys"] = {
	description = "Pages on which a sortkey has been used with a raw category.",
	additional = "For example, <code><nowiki>[[Category:IPA symbols|B]]</nowiki></code>." ..
	"\n\nThese are a priority to replace with category templates, since they are hard-coded and override the {{tl|DEFAULTSORT:}} value for the page. This causes problems if there are any changes to the sorting scheme for the category, because there is no way of changing them centrally.\n\n" ..
	"By comparison, raw categories which have no sortkey are less of a problem, because they will use the {{tl|DEFAULTSORT:}} value; this can be centrally controlled and is designed to be language-neutral, so avoids the issue of different editors using multiple different sorting schemes for the same category. However, they should still be replaced with category templates, since there may be additional language-specific sorting rules which cannot otherwise be applied.",
	breadcrumb = "Raw sortkeys",
	parents = {"ڕاگرتنی ویکیفەرھەنگ"},
	can_be_empty = true,
	hidden = true,
}

raw_categories["Pages with module errors"] = {
	topright = "{{shortcut|CAT:E|CAT:ERR|CAT:ERROR}}",
	description = "Pages that have errors in a [[Wiktionary:Scribunto|Lua]] module.",
	additional = "If entries are listed here for more than a day or two, the error should probably be reported at [[Wiktionary:GP|the Grease Pit]]. Memory errors are a common source of these errors; see the discussion at [[Wiktionary:Lua memory errors]]." ..
		"\n\nBecause the software does not immediately update pages when a change occurs in a template or module, errors listed here may have already been fixed. Therefore, please ensure that the error is still present before reporting problems. You can do this by performing a \"[[meta:Help:Dummy_edit#Null_edit|null edit]]\" (editing the page and saving without making changes). If the error goes away then, it has already been fixed." ..
		"\n\n<u>You can use [https://en.wiktionary.org/wiki/Special:ApiSandbox#action=purge&format=json&forcelinkupdate=1&generator=categorymembers&utf8=1&formatversion=2&gcmtitle=Category%3APages%20with%20module%20errors&gcmlimit=20 this link] and press \"Make request\" to purge the cache of up to 20 pages from this category in one click.</u> This number can be adjusted up to 5,000, but anything above 30-100 will likely cause time-outs (depending on the size of the pages)." ..
		"\n\nThe contents of this category is controlled by [[Template:tracking category]]. It is currently set to place talk pages, user pages{{,}} and user sandbox modules and templates in a separate category." ..
		"\n\nSee also [[:Category:Pages with ParserFunction errors]].",
	breadcrumb = "Module errors",
	parents = {"ڕاگرتنی ویکیفەرھەنگ"},
	can_be_empty = true,
	hidden = true,
}

raw_categories["Pages with ParserFunction errors"] = {
	topright = "{{shortcut|CAT:PFE}}",
	description = "Pages that have errors in a [[mw:Help:Extension:ParserFunctions|ParserFunction]] magic word.",
	additional = "Examples of these magic words are {{tl|#expr:}} and {{tl|#time:}}. If entries are listed here for more than a day or two, the error should probably be reported at [[Wiktionary:GP|the Grease Pit]]." ..
		"\n\nBecause the software does not immediately update pages when a change occurs in a template or module, errors listed here may have already been fixed. Therefore, please ensure that the error is still present before reporting problems. You can do this by performing a \"[[meta:Help:Dummy_edit#Null_edit|null edit]]\" (editing the page and saving without making changes). If the error goes away then, it has already been fixed." ..
		"\n\n<u>You can use [https://en.wiktionary.org/wiki/Special:ApiSandbox#action=purge&format=json&forcelinkupdate=1&generator=categorymembers&utf8=1&formatversion=2&gcmtitle=Category%3APages%20with%20ParserFunction%20errors&gcmlimit=20 this link] and press \"Make request\" to purge the cache of up to 20 pages from this category in one click.</u> This number can be adjusted up to 5,000, but anything above 30-100 will likely cause time-outs (depending on the size of the pages)." ..
		"\n\nThe contents of this category is controlled by [[Template:tracking category]]. It is currently set to place talk pages, user pages{{,}} and user sandbox modules and templates in a separate category." ..
		"\n\nSee also [[:Category:Pages with module errors]].",
	breadcrumb = "ParserFunction errors",
	parents = {"ڕاگرتنی ویکیفەرھەنگ"},
	can_be_empty = true,
	hidden = true,
}

raw_categories["Requests for moves, mergers and splits"] = {
	description = "Pages and categories which have been tagged with a request for them to be moved, merged or split.",
	breadcrumb = "Moves, mergers and splits",
	parents = {"ڕاگرتنی ویکیفەرھەنگ", "Requests"},
	can_be_empty = true,
	hidden = true,
}

raw_categories["Pages to be merged"] = {
	description = "Pages tagged to be merged by the {{tl|merge}} template.",
	parents = {"Requests for moves, mergers and splits"},
	can_be_empty = true,
}

raw_categories["Pages to be moved"] = {
	description = "Pages tagged to be moved by the {{tl|move}} template.",
	parents = {"Requests for moves, mergers and splits"},
	can_be_empty = true,
}

raw_categories["Pages to be split"] = {
	description = "Pages tagged to be split by the {{tl|split}} template.",
	parents = {"Requests for moves, mergers and splits"},
	can_be_empty = true,
}

raw_categories["Pages using bad params when calling a template"] = {
	description = "Pages that use unrecognized parameters when calling a template.",
	breadcrumb = "Bad template params",
	parents = {"ڕاگرتنی ویکیفەرھەنگ"},
	can_be_empty = true,
	hidden = true,
}

table.insert(raw_handlers, function(data)
	local template_type = data.category:match("^Pages using bad params when calling (.+) templates$")
	if template_type then
		return {
			description = "Pages that use unrecognized parameters when calling " .. template_type .. " templates.",
			breadcrumb = template_type,
			parents = {{
				name = "Pages using bad params when calling a template",
			}},
			hidden = true,
		}
	end
end)

table.insert(raw_handlers, function(data)
	local template = data.category:match("^Pages using bad params when calling (.+)$")

	function get_template_language(template_name)
        -- convert "R:es:DRAE" and "RQ:es:DRAE" to "es-DRAE" for language matching
        template_name = template_name:gsub("^RQ?:", "")
        template_name = template_name:gsub(":", "-")

		-- Check if the template name starts with a hyphenated language code
		local lang
		possible_language_code = template_name:match("^([a-z][a-z][a-z]?-[a-z][a-z][a-z])-")
		if possible_language_code ~= nil then
			lang = require("Module:languages").getByCode(possible_language_code)
		end

		-- Check if the template name starts with a two or three character language code
		if lang == nil then
			possible_language_code = template_name:match("^([a-z][a-z][a-z]?)-")
			if possible_language_code ~= nil then
				lang = require("Module:languages").getByCode(possible_language_code)
			end
		end

 		return lang
	end


	if template then
        template_name_without_namespace = template:gsub("^Template:", "")

		lang = get_template_language(template_name_without_namespace)

		local template_type
		if lang == nil then
			template_type = "general use"
		else
			template_type = lang:getCanonicalName()
		end

		return {
			description = "Pages that use unrecognized parameters when calling [[" .. template .. "]].",
	        additional = "These template calls should be reviewed and the bad parameter should be corrected or removed.",
			breadcrumb = template,
			parents = {{
				name = "Pages using bad params when calling " .. template_type .. " templates",
				sort = template_name_without_namespace,
			}},
			hidden = true,
		}
	end
end)

return {RAW_CATEGORIES = raw_categories, RAW_HANDLERS = raw_handlers}