မာတိကာသို့ ခုန်သွားရန်

မဝ်ဂျူ:category tree/poscatboiler/data/transliterations

နူ ဝိက်ရှေန်နရဳ

Documentation for this module may be created at မဝ်ဂျူ:category tree/poscatboiler/data/transliterations/doc

local labels = {}
local raw_categories = {}
local handlers = {}
local raw_handlers = {}



-----------------------------------------------------------------------------
--                                                                         --
--                                  LABELS                                 --
--                                                                         --
-----------------------------------------------------------------------------


labels["romanizations"] = {
	description = "{{{langname}}} terms transliterated into the Latin alphabet.",
	parents = {"borrowed terms"},
	umbrella_parents = "Transliterations subcategories by language",
	-- Special romanization-specific table-of-contents bars are used on romanization pages
	-- (e.g. [[Template:got-rom-categoryTOC]]) because they hold Latin-script terms in a
	-- language-specific romanization scheme, rather than terms in the language's normal script.
	-- For the same reason, we specify catfix = false to disable script-specific font
	-- formatting.
	toc_template = {"{{{langcode}}}-rom-categoryTOC", "en-categoryTOC"},
	toc_template_full = {"{{{langcode}}}-rom-categoryTOC/full", "{{{langcode}}}-rom-categoryTOC", "en-categoryTOC/full"},
	catfix = false,
}

labels["romanizations without a main entry"] = {
	description = "{{{langname}}} romanizations where the corresponding entry in the language's normal script does not exist. Automatically added by <code>{{[[Template:romanization of|romanization of]]}}</code> when applicable.",
	parents = {"entry maintenance", {name = "romanizations", sort = " "}},
	umbrella_parents = "Entry maintenance subcategories by language",
	--See 'romanizations' above.
	toc_template = {"{{{langcode}}}-rom-categoryTOC", "en-categoryTOC"},
	toc_template_full = {"{{{langcode}}}-rom-categoryTOC/full", "{{{langcode}}}-rom-categoryTOC", "en-categoryTOC/full"},
	catfix = false,
	can_be_empty = true,
	hidden = true,
}

labels["terms transliterated from other languages"] = {
	description = "{{{langname}}} terms that have been transliterated from other languages.",
	parents = {{name = "borrowed terms", sort = " "}},
	umbrella_parents = "Transliterations subcategories by language",
}



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


raw_categories["Transliterations subcategories by language"] = {
	description = "Umbrella categories covering topics related to transliterations.",
	additional = "{{{umbrella_meta_msg}}}",
	parents = {
		"Umbrella metacategories",
		{name = "Terms by etymology subcategories by language", sort = " "},
	},
}

raw_categories["Terms with manual transliterations different from the automated ones"] = {
	intro = "{{also|:Category:Languages with automatic transliteration}}",
	description = "Categories with terms with manual transliterations different from the automated ones, by language.",
	hidden = true,
	parents = "Category:Template tracking",
}

raw_categories["Terms with redundant transliterations"] = {
	intro = "{{also|:Category:Languages with automatic transliteration}}",
	description = "Categories with terms with redundant transliteration, by language.",
	hidden = true,
	parents = "Category:Template tracking",
}

raw_categories["Transliteration modules"] = {
	description = "Modules that automatically convert text in one script to another.",
	additional = "Most of them convert non-Latin scripts to Latin (romanisation), and are used by templates or modules to generate transliteration of text that is tagged with a particular language. Each language's transliteration module is specified in its data table (for which, see the category {{catlink|Language data modules}}).",
	parents = {{name = "Modules", sort = "transliteration"}},
}



-----------------------------------------------------------------------------
--                                                                         --
--                                 HANDLERS                                --
--                                                                         --
-----------------------------------------------------------------------------


table.insert(handlers, function(data)
	local source_name = data.label:match("^transliterations of (.+) terms$")
	if source_name then
		local source = require("Module:languages").getByCanonicalName(source_name, true,
			"allow etym langs")
		local source_desc = source:makeCategoryLink()
		return {
			description = "{{{langname}}} terms that have been transliterated from " .. source_desc .. ".",
			breadcrumb = source_name,
			parents = {
				{ name = "terms transliterated from other languages", sort = source_name },
				{ name = "terms borrowed from " .. source_name, sort = " "},
			},
			umbrella = {
				no_by_language = true,
				parents = {
					{ name = "terms borrowed from " .. source_name, is_label = true, sort = " " }
				}
			},
		}
	end
end)



-----------------------------------------------------------------------------
--                                                                         --
--                                RAW HANDLERS                             --
--                                                                         --
-----------------------------------------------------------------------------


table.insert(raw_handlers, function(data)
	local langcode = data.category:match("^Terms with manual transliterations different from the automated ones/(.+)$")
	if langcode then
		return {
			description = "{{{langname}}} terms with manual transliterations different from the automated ones.",
			lang = langcode,
			breadcrumb = "{{{langname}}}",
			parents = {
				{ name = "Terms with manual transliterations different from the automated ones", sort = langcode },
				{ name = "entry maintenance", is_label = true, lang = langcode },
			},
			-- Set catfix = false because the page will have a mixture of native-language and
			-- non-native-language pages, but include the normal native-language table of contents headers
			-- because most pages are in the native language.
			catfix = false,
			toc_template = "{{{langcode}}}-categoryTOC",
			toc_template_full = "{{{langcode}}}-categoryTOC/full",
			can_be_empty = true,
			hidden = true,
		}
	end
end)

table.insert(raw_handlers, function(data)
	local langcode = data.category:match("^Terms with redundant transliterations/(.+)$")
	if langcode then
		return {
			description = "{{{langname}}} terms with redundant transliterations.",
			lang = langcode,
			breadcrumb = "{{{langname}}}",
			parents = {
				{ name = "Terms with redundant transliterations", sort = langcode },
				{ name = "entry maintenance", is_label = true, lang = langcode },
			},
			-- Set catfix = false because the page will have a mixture of native-language and
			-- non-native-language pages, but include the normal native-language table of contents headers
			-- because most pages are in the native language.
			catfix = false,
			toc_template = "{{{langcode}}}-categoryTOC",
			toc_template_full = "{{{langcode}}}-categoryTOC/full",
			can_be_empty = true,
			hidden = true,
		}
	end
end)

table.insert(raw_handlers, function(data)
	local count, languages = data.category:match("^Transliteration modules used by ([0-9]+) (languages?)$")
	if count then
		return {
			description = data.category .. ".",
			breadcrumb = "used by " .. count .. " " .. languages,
			parents = {
				{ name = "Transliteration modules", sort = count },
			},
		}
	end
end)


return {LABELS = labels, RAW_CATEGORIES = raw_categories, HANDLERS = handlers, RAW_HANDLERS = raw_handlers}