Wiksiyonaryo tlwiktionary https://tl.wiktionary.org/wiki/Wiksiyonaryo:Unang_Pahina MediaWiki 1.47.0-wmf.19 case-sensitive Midya Natatangi Usapan Tagagamit Usapang tagagamit Wiksiyonaryo Usapang Wiksiyonaryo Talaksan Usapang talaksan MediaWiki Usapang MediaWiki Padron Usapang padron Tulong Usapang tulong Kategorya Usapang kategorya TimedText TimedText talk Module Module talk Event Event talk burgerschap 0 14483 177934 154977 2026-09-13T07:27:08Z Yivan000 4078 177934 wikitext text/x-wiki =={{=nl=}}== {{wp|nl:}} ===Etimolohiya=== Mula sa {{inh|nl|dum|borgerscap}}. Katumbas ng {{suffix|nl|burger|schap}}. ===Pagbigkas=== * {{IPA|nl|/ˈbʏr.ɣərˌsxɑp/}} * {{audio|nl|Nl-burgerschap.ogg}} * {{hyphenation|nl|bur|ger|schap}} ===Pangngalan=== {{nl-noun|n|-|-}} # [[pagkamamamayan]] bhnjdsos6wlzzc37kjhknplext5vkj8 Module:category tree 828 30812 177930 175844 2026-09-13T07:05:55Z Yivan000 4078 177930 Scribunto text/plain -- Prevent substitution. if mw.isSubsting() then return require("Module:unsubst") end local export = {} local category_tree_submodule_prefix = "Module:category tree/" local category_tree_styles_css = "Module:category tree/styles.css" local m_str_utils = require("Module:string utilities") local m_template_parser = require("Module:template parser") local m_utilities = require("Module:utilities") local ceil = math.ceil local class_else_type = m_template_parser.class_else_type local concat = table.concat local deep_copy = require("Module:table").deepCopy local full_url = mw.uri.fullUrl local insert = table.insert local is_callable = require("Module:fun").is_callable local log10 = math.log10 or require("Module:math").log10 local new_title = mw.title.new local pages_in_category = mw.site.stats.pagesInCategory local parse = m_template_parser.parse local remove_comments = require("Module:string/removeComments") local sort = table.sort local split = m_str_utils.split local string_compare = require("Module:string/compare") local trim = m_str_utils.trim local uupper = m_str_utils.upper local yesno = require("Module:yesno") local current_frame = mw.getCurrentFrame() local current_title = mw.title.getCurrentTitle() local namespace = current_title.namespace local poscatboiler_subsystem = "poscatboiler" local extra_args_error = "Extra arguments to {{((}}auto cat{{))}} are not allowed for this category." -- Generates a sortkey for a numeral `n`, adding leading zeroes to avoid the "1, 10, 2, 3" sorting problem. `max_n` is the greatest expected value of `n`, and is used to determine how many leading zeroes are needed. If not supplied, it defaults to the number of languages. function export.numeral_sortkey(n, max_n) max_n = max_n or require("Module:list of languages").count() return ("#%%0%dd"):format(ceil(log10(max_n + 1))):format(n) end function export.split_lang_label(title_text) local getByCanonicalName = require("Module:languages").getByCanonicalName -- Progressively remove a word from the potential canonical name until it -- matches an actual canonical name. local words = split(title_text, " ", true) for i = #words - 1, 1, -1 do local lang = getByCanonicalName(concat(words, " ", 1, i)) if lang then return lang, concat(words, " ", i + 1) end end return nil, title_text end local function show_error(text) return require("Module:message box").maintenance( "red", "[[File:Codex icon Alert red.svg|40px|alt=alert]]", "Wala sa mga datos ang kategoryang ito.", --TLCHANGE This category is not defined in Wiktionary's category tree. text ) end -- Show the text that goes at the very top right of the page. local function show_topright(current) return current.getTopright and current:getTopright() or nil end local function link_box(content) return ("<div class=\"noprint plainlinks\" style=\"float: right; clear: both; margin: 0 0 .5em 1em; background: var(--wikt-palette-paleblue, #f9f9f9); border: 1px var(--border-color-base, #aaaaaa) solid; margin-top: -1px; padding: 5px; font-weight: bold;\">%s</div>"):format(content) end local function show_editlink(current) return link_box(("[%s I-edit ang datos ng kategorya]"):format(tostring(full_url(current:getDataModule(), "action=edit")))) --TLCHANGE end function show_related_changes() local title = current_title.fullText return link_box(("[%s <span title=\"Mga huling pagbabago sa %s\">Mga huling binago</span>]"):format( --TLCHANGE Recent changes tostring(full_url("Special:RecentChangesLinked", { target = title, showlinkedto = 0, })), title )) end local function show_pagelist(current) local namespace = "namespace=" local info = current:getInfo() local lang_code = info.code if info.label == "citations" or info.label == "citations of undefined terms" then namespace = namespace .. "Citations" elseif lang_code then local lang = require("Module:languages").getByCode(lang_code, true) if lang then -- Proto-Norse (gmq-pro) is the probably language with a code ending in -pro -- that's intended to have mostly non-reconstructed entries. if (lang_code:find("%-pro$") and lang_code ~= "gmq-pro") or lang:hasType("reconstructed") then namespace = namespace .. "Reconstruction" elseif lang:hasType("appendix-constructed") then namespace = namespace .. "Appendix" end end elseif info.label:match("templates") then namespace = namespace .. "Template" elseif info.label:match("modules") then namespace = namespace .. "Module" elseif info.label:match("^Wiktionary") or info.label:match("^Pages") then namespace = "" end return ([=[ {| id="newest-and-oldest-pages" class="wikitable mw-collapsible" style="float: right; clear: both; margin: 0 0 .5em 1em;" ! Newest and oldest pages&nbsp; |- | id="recent-additions" style="font-size:0.9em;" | '''Newest pages ordered by last [[mw:Manual:Categorylinks table#cl_timestamp|category link update]]:''' %s |- | id="oldest-pages" style="font-size:0.9em;" | '''Oldest pages ordered by last edit:''' %s |}]=]):format( current_frame:extensionTag( "DynamicPageList", ([=[ category=%s %s count=10 mode=ordered ordermethod=categoryadd order=descending]=] ):format(current_title.text, namespace) ), current_frame:extensionTag( "DynamicPageList", ([=[ category=%s %s count=10 mode=ordered ordermethod=lastedit order=ascending]=] ):format(current_title.text, namespace) ) ) end --TLCHANGE ADD ENGLISH NAME OF CATEGORY AT THE TOP local englishName --make this top variable local function show_english(current) englishName = englishName or current:getEnglishName() if englishName then return ("<div style=\"font-size:1.3em; font-family:'Linux Libertine', 'Georgia', 'Times', 'Source Serif Pro', serif; background: var(--wikt-palette-paleblue, #f9f9f9);color:inherit; border: 1px var(--border-color-base, #aaaaaa) solid; padding: 0.5em; margin: 1em auto;\">''<small>(sa Ingles/in English)</small>'' <span id='english_name'><span class='mw-page-title-namespace'>Category</span><span class='mw-page-title-separator'>:</span><span class='mw-page-title-main'>" .. englishName .. "</span></span><span style=\"float: right; font-size:0.9em;\">[[:en:Category:" .. englishName:gsub("<[^>]+>", "") .. "|↗]]</span></div>") --return "<div class=\"mw-body-content mw-heading2\" style=\"\">''<small>(sa Ingles)</small> Category:" .. englishName .. "''</div>" else return "[[Category:Kategoryang walang pangalan sa Ingles]]" --add to cateory if none end end -- Show navigational "breadcrumbs" at the top of the page. local function show_breadcrumbs(current) local steps = {} -- Start at the current label and move our way up the "chain" from child to parent, until we can't go further. while current do local category, display_name, nocap if type(current) == "string" then category = current display_name = current:gsub("^Kategorya:", "") --TLCHANGE ("^Category:", "") else if not current.getCategoryName then error("Internal error: Bad format in breadcrumb chain structure, probably a misformatted value for `parents`: " .. mw.dumpObject(current)) end category = "Kategorya:" .. current:getCategoryName() --TLCHANGE "Category:" display_name, nocap = current:getBreadcrumbName() end if not nocap then display_name = mw.getContentLanguage():ucfirst(display_name) end insert(steps, 1, ("[[:%s|%s]]"):format(category, display_name)) -- Move up the "chain" by one level. if type(current) == "string" then current = nil else current = current:getParents() end if current then current = current[1].name end end local templateStyles = require("Module:TemplateStyles")(category_tree_styles_css) local ol = mw.html.create("ol") for i, step in ipairs(steps) do local li = mw.html.create("li") if i ~= 1 then local span = mw.html.create("span") :attr("aria-hidden", "true") :addClass("ts-categoryBreadcrumbs-separator") :wikitext(" » ") li:node(span) end li:wikitext(step) ol:node(li) end return templateStyles .. tostring(mw.html.create("div") :attr("role", "navigation") :attr("aria-label", "Breadcrumb") :addClass("ts-categoryBreadcrumbs") :node(ol)) end local function show_also(current) local also = current._info.also if also and #also > 0 then return ('<div style="margin-top:-1em;margin-bottom:1.5em">%s</div>'):format(require("Module:also").main(also)) end return nil end -- Show a short description text for the category. local function show_description(current) return current.getDescription and current:getDescription() or nil end local function show_appendix(current) local appendix = current.getAppendix and current:getAppendix() return appendix and ("For more information, see [[%s]]."):format(appendix) or nil end local function sort_children(child1, child2) return string_compare(uupper(child1.sort), uupper(child2.sort)) end -- Show a list of child categories. local function show_children(current) local children = current.getChildren and current:getChildren() or nil if not children then return nil end sort(children, sort_children) local children_list = {} for _, child in ipairs(children) do local child_name, child_pagetitle = child.name if type(child_name) == "string" then child_pagetitle = child_name else child_pagetitle = "Kategorya:" .. child_name:getCategoryName() --TLCHANGE "Category:" end if new_title(child_pagetitle).exists then insert(children_list, ("* [[:%s]]: %s"):format( child_pagetitle, child.description or type(child_name) == "string" and child_name:gsub("^Kategorya:", "") .. "." or --TLCHANGE "^Category:" child_name:getDescription("child") )) end end return concat(children_list, "\n") end -- Show a table of contents with links to each letter in the language's script. local function show_TOC(current) local titleText = current_title.text local inCategoryPages = pages_in_category(titleText, "pages") local inCategorySubcats = pages_in_category(titleText, "subcats") local TOC_type -- Compute type of table of contents required. if inCategoryPages > 2500 or inCategorySubcats > 2500 then TOC_type = "full" elseif inCategoryPages > 200 or inCategorySubcats > 200 then TOC_type = "normal" else -- No (usual) need for a TOC if all pages or subcategories can fit on one page; -- but allow this to be overridden by a custom TOC handler. TOC_type = "none" end if current.getTOC then local TOC_text = current:getTOC(TOC_type) if TOC_text ~= true then return TOC_text or nil end end if TOC_type ~= "none" then local templatename = current:getTOCTemplateName() local TOC_template if TOC_type == "full" then -- This category is very large, see if there is a "full" version of the TOC. local TOC_template_full = new_title(templatename .. "/full") if TOC_template_full.exists then TOC_template = TOC_template_full end end if not TOC_template then local TOC_template_normal = new_title(templatename) if TOC_template_normal.exists then TOC_template = TOC_template_normal end end if TOC_template then return current_frame:expandTemplate{title = TOC_template.text, args = {}} end end return nil end -- Show the "catfix" that adds language attributes and script classes to the page. local function show_catfix(current) local lang, sc = current:getCatfixInfo() return lang and m_utilities.catfix(lang, sc) or nil end -- Show the parent categories that the current category should be placed in. local function show_categories(current, categories) local parents = current.getParents and current:getParents() or nil if not parents then return nil end for _, parent in ipairs(parents) do local parent_name = parent.name local sortkey = type(parent.sort) == "table" and parent.sort:makeSortKey() or parent.sort if type(parent_name) == "string" then insert(categories, ("[[%s|%s]]"):format(parent_name, sortkey)) else insert(categories, ("[[Category:%s|%s]]"):format(parent_name:getCategoryName(), sortkey)) end end -- Also put the category in its corresponding "umbrella" or "by language" category. local umbrella = current:getUmbrella() if umbrella then -- FIXME: use a language-neutral sorting function like the Unicode Collation Algorithm. local sortkey = current._lang and current._lang:getCanonicalName() or current:getCategoryName() sortkey = require("Module:languages").getByCode("en", true):makeSortKey(sortkey) if type(umbrella) == "string" then insert(categories, ("[[%s|%s]]"):format(umbrella, sortkey)) else insert(categories, ("[[Category:%s|%s]]"):format(umbrella:getCategoryName(), sortkey)) end end -- Check for various unwanted parser functions, which should be integrated into the category tree data instead. -- Note: HTML comments shouldn't be removed from `content` until after this step, as they can affect the result. local content = current_title:getContent() if not content then -- This happens when using [[Special:ExpandTemplates]] to call {{auto cat}} on a nonexistent category page, -- which is needed by Benwing's create_wanted_categories.py script. return end local defaultsort, displaytitle, page_has_param for node in parse(content):iterate_nodes() do local node_class = class_else_type(node) if node_class == "template" then local name = node:get_name() if name == "DEFAULTSORT:" and not defaultsort then insert(categories, "[[Category:Pages with DEFAULTSORT conflicts]]") defaultsort = true elseif name == "DISPLAYTITLE:" and not displaytitle then insert(categories,"[[Category:Pages with DISPLAYTITLE conflicts]]") displaytitle = true end elseif node_class == "parameter" and not page_has_param then insert(categories,"[[Category:Pages with raw triple-brace template parameters]]") page_has_param = true end end -- Check for raw category markup, which should also be integrated into the category tree data. content = remove_comments(content, "BOTH") local head = content:find("[[", 1, true) while head do local close = content:find("]]", head + 2, true) if not close then break end -- Make sure there are no intervening "[[" between head and close. local open = content:find("[[", head + 2, true) while open and open < close do head = open open = content:find("[[", head + 2, true) end local cat = content:sub(head + 2, close - 1) local colon = cat:match("^[ _\128-\244]*[Cc][Aa][Tt][EeGgOoRrYy _\128-\244]*():") if colon then local pipe = cat:find("|", colon + 1, true) if pipe ~= #cat then local title = new_title(pipe and cat:sub(1, pipe - 1) or cat) if title and title.namespace == 14 then insert(categories,"[[Category:Categories with categories using raw markup]]") break end end end head = open end end local function generate_output(current) if current then for _, functionName in pairs{ "getBreadcrumbName", "getDataModule", "canBeEmpty", "getDescription", "getParents", "getChildren", "getUmbrella", "getAppendix", "getTOCTemplateName", } do if not is_callable(current[functionName]) then require("Module:debug").track{"category tree/missing function", "category tree/missing function/" .. functionName} end end end local boxes, display, categories = {}, {}, {} -- Categories should never show files as a gallery. insert(categories, "__NOGALLERY__") if (current_frame:getParent():getTitle() == "Padron:auto cat") or (current_frame:getParent():getTitle() == "Template:auto cat") then --TLCHANGE add `or` statement insert(categories, "[[Category:Kategoryang tinatawag ang Padron:auto cat]]") --TLCHANGE "[[Category:Categories calling Template:auto cat]]" end -- Check if the category is empty local totalPages = pages_in_category(current_title.text, "all") local hugeCategory = totalPages > 1000000 -- 1 million -- Categorize huge categories, as they cause DynamicPageList to time out and make the category inaccessible. if hugeCategory then insert(categories, "[[Category:Kategoryang malalaki]]") --TLCHANGE Huge categories end -- Are the parameters valid? if not current then insert(categories, "[[Category:Categories that are not defined in the category tree]]") insert(categories, totalPages == 0 and "[[Category:Kategoryang walang laman]]" or nil) --TLCHANGE Empty categories insert(display, show_error( "Double-check the category name for typos. <br>" .. "[[Special:Search/Category: " .. current_title.text:gsub("^.+:", ""):gsub(" ", "~2 ") .. '~2|Search existing categories]] to check if this category should be created under a different name (for example, "Fruits" instead of "Fruit"). <br>' .. "To add a new category to Wiktionary's category tree, please consult " .. current_frame:expandTemplate{title = "section link", args = { "Help:Category#How_to_create_a_category", }} .. ".")) -- Exit here, as all code beyond here relies on current not being nil return concat(categories, "") .. concat(display, "\n\n"), true end -- Does the category have the correct name? local currentName = current:getCategoryName() local correctName = current_title.text == currentName if not correctName then insert(categories, "[[Category:Categories with incorrect names]]") insert(display, show_error(("Based on the data in the category tree, this category should be called '''[[:Category:%s]]'''."):format(currentName))) end -- Add cleanup category for empty categories. local canBeEmpty = current:canBeEmpty() if canBeEmpty and correctName then insert(categories, " __EXPECTUNUSEDCATEGORY__") elseif totalPages == 0 then insert(categories, "[[Category:Kategoryang walang laman]]") --TLCHANGE Empty categories end if current:isHidden() then insert(categories, "__HIDDENCAT__") end insert(boxes, "<div style=\"\">" .. show_english(current) .. "</div>") --TLCHANGE add this -- Put all the float-right stuff into a <div> that does not clear, so that float-left stuff like the breadcrumbs and -- description can go opposite the float-right stuff without vertical space. insert(boxes, "<div style=\"float: right;\">") insert(boxes, show_topright(current)) insert(boxes, show_editlink(current)) insert(boxes, show_related_changes()) -- Show pagelist, unless it's a huge category (since they can't use DynamicPageList - see above). -- TLCHANGE commented out this since surprisingly there is no DynamicPageList extension for this wiki yet --if not hugeCategory then -- insert(boxes, show_pagelist(current)) --end insert(boxes, "</div>") -- Generate the displayed information insert(display, show_breadcrumbs(current)) insert(display, show_also(current)) insert(display, show_description(current)) insert(display, show_appendix(current)) insert(display, show_children(current)) insert(display, show_TOC(current)) insert(display, show_catfix(current)) insert(display, '<br class="clear-both-in-vector-2022-only">') show_categories(current, categories) return concat(boxes, "\n") .. "\n" .. concat(display, "\n\n") .. concat(categories, "") end --[==[ List of handler functions that try to match the page name. A handler should return the name of a submodule to [[Module:category tree]] and an info table which is passed as an argument to the submodule. If a handler does not recognize the page name, it should return nil. Note that the order of handlers matters! ]==] local handlers = {} -- Thesaurus per-language category insert(handlers, function(title) local code, label = title:match("^Thesaurus:(%l[%a-]*%a):(.+)") if code then return poscatboiler_subsystem, {label = title, raw = true} end end) -- Topic per-language category insert(handlers, function(title) local code, label = title:match("^(%l[%a-]*%a):(.+)") if code then return poscatboiler_subsystem, {label = title, raw = true} end end) -- Lect category e.g. for [[:Category:New Zealand English]] or [[:Category:Issime Walser]] insert(handlers, function(title, args) local lect = args.lect or args.dialect if lect ~= "" and yesno(lect, true) then -- Same as boolean in [[Module:parameters]]. return poscatboiler_subsystem, {label = title, args = args, raw = true} end end) -- poscatboiler per-language label, e.g. [[Category:English non-lemma forms]] insert(handlers, function(title, args) local lang, label = export.split_lang_label(title) if not lang then return end local baseLabel, script = label:match("(.+) in (.-) script$") if script and baseLabel ~= "terms" then local scriptObj = require("Module:scripts").getByCanonicalName(script) if scriptObj then return poscatboiler_subsystem, {label = baseLabel, code = lang:getCode(), sc = scriptObj:getCode(), args = args} end end return poscatboiler_subsystem, {label = label, code = lang:getCode(), args = args} end) -- poscatboiler label umbrella category insert(handlers, function(title, args) -- TLCHANGE local label = title:match("(.+) by language$") -- consider the "na", for example "Pang-abay ayon sa wika" local label = title:match("(.+) ayon sa wika$") if label then label = "Na " .. m_str_utils.lcfirst(label) -- TLCHANGE -- The poscatboiler code will appropriately lowercase if needed. return poscatboiler_subsystem, {label = label, args = args} end end) -- poscatboiler raw handlers insert(handlers, function(title, args) return poscatboiler_subsystem, {label = title, args = args, raw = true} end) -- poscatboiler umbrella handlers without 'by language' insert(handlers, function(title, args) return poscatboiler_subsystem, {label = title, args = args} end) function export.show(frame) local args, other_args = require("Module:parameters").process(frame:getParent().args, { ["also"] = {type = "title", sublist = "comma without whitespace", namespace = 14}, ["english_name"] = true, --TLCHANGE add this universal parameter }, true) if args.also then for k, arg in next, args.also do args.also[k] = arg.prefixedText end end --TLCHANGE add this english_name variable setter if args.english_name then englishName = args.english_name args.english_name = nil --remove afterwards end for k, arg in next, other_args do other_args[k] = trim(arg) end if namespace == 10 then -- Template return "(This template should be used on pages in the [[Help:Namespaces#Category|Category:]] namespace.)" elseif namespace ~= 14 then -- Category error("This template/module can only be used on pages in the [[mw:Help:Namespaces#Category|Category:]] namespace.") end local first_fail_args_handled, first_fail_cattext -- Go through each handler in turn. If a handler doesn't recognize the format of the category, it will return nil, -- and we will consider the next handler. Otherwise, it returns a template name and arguments to call it with, but -- even then, that template might return an error, and we need to consider the next handler. This happens, for -- example, with the category "CAT:Mato Grosso, Brazil", where "Mato" is the name of a language, so the poscatboiler -- per-language label handler fires and tries to find a label "Grosso, Brazil". This throws an error, and -- previously, this blocked fruther handler consideration, but now we check for the error and continue checking -- handlers; eventually, the topic umbrella handler will fire and correctly handle the category. for _, handler in ipairs(handlers) do -- Use a new title object and args table for each handler, to keep them isolated. local submodule, info = handler(current_title.text, deep_copy(other_args)) if submodule then info.also = deep_copy(args.also) require("Module:debug").track("auto cat/" .. submodule) -- `failed` is true if no match was found. submodule = require(category_tree_submodule_prefix .. submodule) local cattext, failed = generate_output(submodule.main(info)) if failed then if not first_fail_cattext then first_fail_cattext = cattext first_fail_args_handled = info.args and true or false end elseif not info.args and next(other_args) then error(extra_args_error) else return cattext end end end -- If there were no matches, throw an error if any arguments were given, or otherwise return the cattext -- from the first fail encountered. The final handlers call the boilers unconditionally, so there should -- always be something to return. if not first_fail_args_handled and next(other_args) then error(extra_args_error) end return first_fail_cattext end -- TODO: new test entrypoint. return export n2zc7qmofdfnqyivvlibro4zfr67n4k Module:families/data 828 30848 177941 177761 2026-09-13T07:54:52Z Yivan000 4078 177941 Scribunto text/plain --[=[ This module contains definitions for all language family codes on Wiktionary. ]=]-- local m = {} m["aav"] = { "Awstroasyatiko", --TLCHANGE 33199, aliases = {"Austro-Asiatic"}, english_name = "Austroasiatic", --TLCHANGE spanish_name = "Austroasiático", --TLCHANGE } m["aav-khs"] = { "Khasiko", --TLCHANGE 3073734, "aav", aliases = {"Khasic"}, english_name = "Khasian", --TLCHANGE spanish_name = "Khásico", --TLCHANGE } m["aav-nic"] = { "Nikobares", --TLCHANGE 217380, "aav", english_name = "Nicobarese", --TLCHANGE spanish_name = "Nicobarés", --TLCHANGE } m["aav-pkl"] = { "Pnar-Khasi-Lyngngam", nil, "aav-khs", } m["afa"] = { "Afroasyatiko", --TLCHANGE 25268, aliases = {"Afro-Asiatic"}, english_name = "Afroasiatic", --TLCHANGE spanish_name = "Afroasiático", --TLCHANGE } m["alg"] = { "Algonkino", --TLCHANGE 33392, "aql", english_name = "Algonquian", --TLCHANGE spanish_name = "Algonquino", --TLCHANGE } m["alg-abp"] = { "Abenaki-Penobscot", 197936, "alg-eas", } m["alg-ara"] = { "Arapahoan", 2153686, "alg", } m["alg-eas"] = { "Eastern Algonquian", 2257525, "alg", } m["alg-sfk"] = { "Sac-Fox-Kickapoo", 1440172, "alg", } m["alv"] = { "Atlantiko-Konggoleño", --TLCHANGE 771124, "nic", english_name = "Atlantic-Congo", --TLCHANGE spanish_name = "Atlántico-Congoleño", --TLCHANGE } m["alv-aah"] = { "Ayere-Ahan", 750953, "alv-von", } m["alv-ada"] = { "Adamawa", 32906, "alv-sav", } m["alv-bag"] = { "Baga", 2746083, "alv-mel", } m["alv-bak"] = { "Bak", 1708174, "alv-sng", } m["alv-bam"] = { "Bambukic", 4853456, "alv-ada", aliases = {"Yungur-Jen"}, } m["alv-bny"] = { "Banyum", 2892477, "alv-nyn", } m["alv-bua"] = { "Bua", 4982094, "alv-mbd", } m["alv-bwj"] = { "Bikwin-Jen", 84542501, "alv-bam", } m["alv-cng"] = { "Cangin", 1033184, "alv-fwo", } m["alv-ctn"] = { "Central Tano", 1658486, "alv-ptn", aliases = {"Akan"}, } m["alv-dlt"] = { "Delta Edoid", nil, "alv-edo", } m["alv-dur"] = { "Duru", 5316788, "alv-lni", } m["alv-ede"] = { "Ede", 35368, "alv-yor", } m["alv-edk"] = { "Edekiri", 5336735, "alv-yrd", } m["alv-edo"] = { "Edoid", 1287469, "alv-von", } m["alv-eeo"] = { "Edo-Esan-Ora", 12630439, "alv-nce", } m["alv-fli"] = { "Fali", 3450166, "alv", } m["alv-fwo"] = { "Fula-Wolof", 12631267, "alv-sng", } m["alv-gbe"] = { "Gbe", 668284, "alv-von", } m["alv-gda"] = { "Ga-Dangme", 3443338, "alv-kwa", } m["alv-gng"] = { "Guang", 684009, "alv-ptn", } m["alv-gtm"] = { "Ghana-Togo Mountain", 493020, "alv-kwa", aliases = {"Togo Remnant", "Central Togo"}, } m["alv-hei"] = { "Heiban", 108752116, "alv-the", } m["alv-ido"] = { "Idomoid", 974196, "alv-von", } m["alv-igb"] = { "Igboid", 1429100, "alv-von", } m["alv-jfe"] = { "Jola-Felupe", 1708174, "alv-jol", aliases = {"Ejamat"}, } m["alv-jol"] = { "Jola", 35176, "alv-bak", aliases = {"Diola"}, } m["alv-kim"] = { "Kim", 6409701, "alv-mbd", } m["alv-kis"] = { "Kissi", 35696, "alv-mel", } m["alv-krb"] = { "Karaboro", 4213541, "alv-snf", } m["alv-ktg"] = { "Ka-Togo", 5972796, "alv-gtm", } m["alv-kul"] = { "Kulango", 16977424, "alv-sav", aliases = {"Kulango-Lorhon", "Kulango-Lorom"}, } m["alv-kwa"] = { "Kwa", 33430, "nic-vco", } m["alv-lag"] = { "Lagoon", 111210042, "alv-kwa", } m["alv-lek"] = { "Leko", 6520642, other_names = {"Sambaic"}, -- appears to be an alias in Glottolog "alv-lni", } m["alv-lim"] = { "Limba", 35825, "alv", } m["alv-lni"] = { "Leko-Nimbari", 1708170, "alv-ada", other_names = {"Central Adamawa"}, aliases = {"Chamba-Mumuye"}, } m["alv-mbd"] = { "Mbum-Day", 6799816, "alv-ada", } m["alv-mbm"] = { "Mbum", 6799814, "alv-mbd", } m["alv-mel"] = { "Mel", 12122355, "alv", } m["alv-mum"] = { "Mumuye", 84607009, "alv-mye", } m["alv-mye"] = { "Mumuye-Yendang", 6935539, "alv-lni", } m["alv-nal"] = { "Nalu", nil, "alv-sng", } m["alv-nce"] = { "North-Central Edoid", 16110869, "alv-edo", } m["alv-ngb"] = { "Nupe-Gbagyi", 12638649, "alv-nup", aliases = {"Nupe-Gbari"}, } m["alv-ntg"] = { "Na-Togo", nil, "alv-gtm", } m["alv-nup"] = { "Nupoid", 1429143, "alv-von", } m["alv-nwd"] = { "Northwestern Edoid", 16111012, "alv-edo", } m["alv-nyn"] = { "Nyun", nil, "alv-fwo", } m["alv-pap"] = { "Papel", 7132562, "alv-bak", } m["alv-pph"] = { "Phla-Pherá", 3849625, "alv-gbe", } m["alv-ptn"] = { "Potou-Tano", 1475003, "alv-kwa", } m["alv-sav"] = { "Savanna", 4403672, "nic-vco", aliases = {"Savannas"}, } m["alv-sma"] = { "Supyire-Mamara", 4446348, "alv-snf", aliases = {"Suppire-Mamara"}, } m["alv-snf"] = { "Senufo", 33795, "alv", aliases = {"Senufic", "Senoufo", "Sénoufo"}, } m["alv-sng"] = { "Senegambian", 1708753, "alv", } m["alv-snr"] = { "Senari", 4416084, "alv-snf", } m["alv-swd"] = { "Southwestern Edoid", 12633903, "alv-edo", } m["alv-tal"] = { "Talodi", 12643302, "alv-the", } m["alv-tdj"] = { "Tagwana-Djimini", 7675362, "alv-snf", } m["alv-ten"] = { "Tenda", 3217535, "alv-fwo", } m["alv-the"] = { "Talodi-Heiban", 1521145, "alv", } m["alv-von"] = { "Volta-Niger", 34177, "nic-vco", } m["alv-wan"] = { "Wara-Natyoro", 7968830, "alv-sav", } m["alv-wjk"] = { "Waja-Kam", nil, "alv-ada", } m["alv-yek"] = { "Yekhee", nil, "alv-nce", } m["alv-yor"] = { "Yoruba", nil, "alv-edk", } m["alv-yrd"] = { "Yoruboid", 1789745, "alv-von", } m["alv-yun"] = { "Yungur", 84601642, "alv-bam", aliases = {"Bena-Mboi"}, } m["apa"] = { "Apatseanas", --TLCHANGE 27758, "ath", aliases = {"Southern Athabaskan"}, english_name = "Apachean", --TLCHANGE spanish_name = "Apacheanas", --TLCHANGE } m["aqa"] = { "Alacalufan", 1288430, } m["aql"] = { "Algiko", --TLCHANGE 721612, aliases = {"Algonquian-Ritwan", "Algonquian-Wiyot-Yurok"}, english_name = "Algic", --TLCHANGE spanish_name = "Álgico", --TLCHANGE } m["art"] = { "nilikha", --TLCHANGE "constructed" 33215, "qfa-not", aliases = {"artificial", "planned"}, english_name = "constructed", --TLCHANGE } m["ath"] = { "Athabaskan", 27475, "xnd", } m["ath-nor"] = { "North Athabaskan", 20738, "ath", aliases = {"Northern Athabaskan"}, } m["ath-pco"] = { "Pacific Coast Athabaskan", 20654, "ath", } m["auf"] = { "Arauan", 626772, aliases = {"Arahuan", "Arauán", "Arawa", "Arawan", "Arawán"}, } --[=[ Exceptional language and family codes for Australian Aboriginal languages can use the prefix "aus-", though "aus" is no longer itself a family code. ]=]-- m["aus-arn"] = { "Arnhem", 2581700, aliases = {"Gunwinyguan", "Macro-Gunwinyguan"}, } m["aus-bub"] = { "Bunuban", 2495148, aliases = {"Bunaban"}, } m["aus-cww"] = { "Central New South Wales", 5061507, "aus-pam", } m["aus-dal"] = { "Daly", 2478079, } m["aus-dyb"] = { "Dyirbalic", 1850666, "aus-pam", } m["aus-gar"] = { "Garawan", 5521951, } m["aus-gun"] = { "Gunwinyguan", 2581700, "aus-arn", aliases = {"Gunwingguan"}, } m["aus-jar"] = { "Jarrakan", 2039423, } m["aus-kar"] = { "Karnic", 4215578, "aus-pam", } m["aus-mir"] = { "Mirndi", 4294095, } m["aus-nga"] = { "Ngayarda", 16153490, "aus-psw", } m["aus-nyu"] = { "Nyulnyulan", 2039408, } m["aus-pam"] = { "Pama-Nyungan", 33942, } m["aus-pmn"] = { "Paman", 2640654, "aus-pam", } m["aus-psw"] = { "Southwest Pama-Nyungan", 2258160, "aus-pam", } m["aus-rnd"] = { "Arandic", 4784071, "aus-pam", } m["aus-tnk"] = { "Tangkic", 1823065, } m["aus-wdj"] = { "Iwaidjan", 4196968, aliases = {"Yiwaidjan"}, } m["aus-wor"] = { "Worrorran", 2038619, } m["aus-yid"] = { "Yidinyic", 4205849, "aus-pam", } m["aus-yng"] = { "Yangmanic", 42727644, } m["aus-yol"] = { "Yolngu", 2511254, "aus-pam", aliases = {"Yolŋu", "Yolngu Matha"}, } m["aus-yuk"] = { "Yuin-Kuric", 3833021, "aus-pam", } m["awd"] = { "Arawak", 626753, aliases = {"Arawakan", "Maipurean", "Maipuran"}, } m["awd-nwk"] = { "Nawiki", nil, "awd", aliases = {"Newiki"}, } m["awd-taa"] = { "Ta-Arawak", 7672731, "awd", aliases = {"Ta-Arawakan", "Ta-Maipurean"}, } m["azc"] = { "Uto-Aztecan", 34073, aliases = {"Uto-Aztekan"}, } m["azc-cup"] = { "Cupan", 19866871, "azc-tak", } m["azc-dur"] = { "Durango Nahuatl", 2386361, "azc-nah", aliases = {"Mexicanero"} } m["azc-hua"] = { "Huasteca Nahuatl", 3832950, "azc-nah", } m["azc-nah"] = { "Nahuan", 11965602, "azc", aliases = {"Aztecan"}, } m["azc-num"] = { "Numic", 2657541, "azc", } m["azc-pim"] = { "Piman", 7194600, "azc", aliases = {"Tepiman"}, } m["azc-tak"] = { "Takic", 1280305, "azc", } m["azc-trc"] = { "Taracahitic", 4245032, "azc", aliases = {"Taracahitan"}, } m["bad"] = { "Banda", 806234, "nic-ubg", } m["bad-cnt"] = { "Central Banda", 3438391, "bad", } m["bai"] = { "Bamileke", 806005, "nic-gre", } m["bat"] = { "Baltic", 33136, "ine-bsl", } m["bat-eas"] = { "East Baltic", 149944, "bat", } m["bat-wes"] = { "West Baltic", 149946, "bat", } m["ber"] = { "Berber", 25448, "afa", aliases = {"Tamazight"}, } m["bnt"] = { "Bantu", 33146, "nic-bds", } m["bnt-baf"] = { "Bafia", 799784, "bnt", } m["bnt-bbo"] = { "Bafo-Bonkeng", nil, "bnt-saw", } m["bnt-bdz"] = { "Boma-Dzing", 1729203, "bnt", } m["bnt-bek"] = { "Bekwilic", nil, "bnt-ndb", } m["bnt-bki"] = { "Bena-Kinga", 16113307, "bnt-bne", } m["bnt-bmo"] = { "Bangi-Moi", nil, "bnt-bnm", } m["bnt-bne"] = { "Northeast Bantu", 7057832, "bnt", } m["bnt-bnm"] = { "Bangi-Ntomba", 806477, "bnt-bte", } m["bnt-boa"] = { "Boan", 4931250, "bnt", aliases = {"Buan", "Ababuan"}, } m["bnt-bot"] = { "Botatwe", 4948532, "bnt", } m["bnt-bsa"] = { "Basaa", 809739, "bnt", } m["bnt-bsh"] = { "Bushoong", 5001551, "bnt-bte", } m["bnt-bso"] = { "Southern Bantu", 980498, "bnt", } m["bnt-bta"] = { "Bati-Angba", 4869303, "bnt-boa", other_names = {"Late Bomokandian"}, aliases = {"Bwa"}, } m["bnt-btb"] = { "Beti", 35118, "bnt", } m["bnt-bte"] = { "Bangi-Tetela", 4855181, "bnt", } m["bnt-bun"] = { "Buja-Ngombe", 4986733, "bnt-mbb", } m["bnt-chg"] = { "Chaga", 33016, "bnt-cht", } m["bnt-cht"] = { "Chaga-Taita", nil, "bnt-bne", } m["bnt-clu"] = { "Chokwe-Luchazi", 3339273, "bnt", } m["bnt-com"] = { "Comorian", 33077, "bnt-sab", } m["bnt-glb"] = { "Great Lakes Bantu", 5599420, "bnt-bne", } m["bnt-haj"] = { "Haya-Jita", 25502360, "bnt-glb", } m["bnt-kak"] = { "Kako", nil, "bnt-pob", } m["bnt-kav"] = { "Kavango", 116544179, "bnt-ksb", } m["bnt-kbi"] = { "Komo-Bira", 6428591, "bnt-boa", } m["bnt-kel"] = { "Kele", 1738162, "bnt-kts", aliases = {"Sheke"}, } m["bnt-kil"] = { "Kilombero", 6408121, "bnt", } m["bnt-kka"] = { "Kikuyu-Kamba", 16114410, "bnt-bne", aliases = {"Thagiicu"}, } m["bnt-kmb"] = { "Kimbundu", 16947687, "bnt", } m["bnt-kng"] = { "Kongo", 6429214, "bnt", } m["bnt-kpw"] = { "Kpwe", 36428, "bnt-saw", } m["bnt-ksb"] = { "Kavango-Southwest Bantu", 6379098, "bnt", } m["bnt-kts"] = { "Kele-Tsogo", 6385577, "bnt", } m["bnt-lbn"] = { "Luban", 4536504, "bnt", } m["bnt-leb"] = { "Lebonya", 6511395, "bnt", } m["bnt-lgb"] = { "Lega-Binja", 6517694, "bnt", } m["bnt-lok"] = { "Logooli-Kuria", nil, "bnt-glb", } m["bnt-lub"] = { "Luba", nil, "bnt-lbn", } m["bnt-lun"] = { "Lunda", 6704091, "bnt", } m["bnt-mak"] = { "Makua", 6740431, "bnt-bso", aliases = {"Makhuwa"}, } m["bnt-mbb"] = { "Mboshi-Buja", 6799764, "bnt", } m["bnt-mbe"] = { "Mbole-Enya", 6799728, "bnt", } m["bnt-mbi"] = { "Mbinga", nil, "bnt-rur", } m["bnt-mbo"] = { "Mboshi", 6799763, "bnt-mbb", } m["bnt-mbt"] = { "Mbete", 1346910, "bnt-tmb", aliases = {"Mbere"}, } m["bnt-mby"] = { "Mbeya", nil, "bnt-ruk", } m["bnt-mij"] = { "Mijikenda", 6845474, "bnt-sab", } m["bnt-mka"] = { "Makaa", nil, "bnt-ndb", } m["bnt-mne"] = { "Manenguba", 31147471, "bnt", aliases = {"Mbo", "Ngoe"}, } m["bnt-mnj"] = { "Makaa-Njem", 1603899, "bnt-pob", } m["bnt-mon"] = { "Mongo", nil, "bnt-bnm", } m["bnt-mra"] = { "Mbugwe-Rangi", 6799795, "bnt", } m["bnt-msl"] = { "Masaba-Luhya", 12636428, "bnt-glb", } m["bnt-mwi"] = { "Mwika", nil, "bnt-ruk", } m["bnt-ncb"] = { "Northeast Coast Bantu", 7057848, "bnt-bne", } m["bnt-ndb"] = { "Ndzem-Bomwali", nil, "bnt-mnj", } m["bnt-ngn"] = { "Ngondi-Ngiri", 7022532, "bnt-mbb", } m["bnt-ngu"] = { "Nguni", 961559, "bnt-bso", aliases = {"Ngoni"}, } m["bnt-nya"] = { "Nyali", 7070832, "bnt-leb", } m["bnt-nyb"] = { "Nyanga-Buyi", 7070882, "bnt", } m["bnt-nyg"] = { "Nyoro-Ganda", 12638666, "bnt-glb", } m["bnt-nys"] = { "Nyasa", 7070921, "bnt", } m["bnt-nze"] = { "Nzebi", 1755498, "bnt-tmb", aliases = {"Njebi"}, } m["bnt-ova"] = { "Ovambo", 36489, "bnt-swb", aliases = {"Oshivambo", "Oshiwambo", "Owambo"}, } m["bnt-par"] = { "Pare", nil, "bnt-ncb", } m["bnt-pen"] = { "Pende", 7162373, "bnt", } m["bnt-pob"] = { "Pomo-Bomwali", nil, "bnt", } m["bnt-ruk"] = { "Rukwa", 7378902, "bnt", } m["bnt-run"] = { "Rungwe", nil, "bnt-ruk", } m["bnt-rur"] = { "Rufiji-Ruvuma", 7377947, "bnt", } m["bnt-ruv"] = { "Ruvu", nil, "bnt-ncb", } m["bnt-rvm"] = { "Ruvuma", nil, "bnt-rur", } m["bnt-sab"] = { "Sabaki", 2209395, "bnt-ncb", } m["bnt-saw"] = { "Sawabantu", 532003, "bnt", } m["bnt-sbi"] = { "Sabi", 7396071, "bnt", } m["bnt-seu"] = { "Seuta", nil, "bnt-ncb", } m["bnt-shh"] = { "Shi-Havu", nil, "bnt-glb", } m["bnt-sho"] = { "Shona", 2904660, "bnt", } m["bnt-sir"] = { "Sira", 1436372, "bnt", aliases = {"Shira-Punu"}, } m["bnt-ske"] = { "Soko-Kele", nil, "bnt-bte", } m["bnt-sna"] = { "Sena", nil, "bnt-nys", } m["bnt-sts"] = { "Sotho-Tswana", 2038386, "bnt-bso", } m["bnt-swb"] = { "Southwest Bantu", 116543539, "bnt-ksb", } m["bnt-swh"] = { "Swahili", nil, "bnt-sab", } m["bnt-tek"] = { "Teke", 36528, "bnt-tmb", } m["bnt-tet"] = { "Tetela", 7706059, "bnt-bte", } m["bnt-tkc"] = { "Central Teke", 36473, "bnt-tek", } m["bnt-tkm"] = { "Takama", nil, "bnt-bne", } m["bnt-tmb"] = { "Teke-Mbede", 7695332, "bnt", aliases = {"Teke-Mbere"}, } m["bnt-tso"] = { "Tsogo", 2458420, other_names = {"Okani"}, --appears to be an alias in Glottolog "bnt-kts", } m["bnt-tsr"] = { "Tswa-Ronga", 12643962, "bnt-bso", } m["bnt-yak"] = { "Yaka", 8047027, "bnt", } m["bnt-yko"] = { "Yasa-Kombe", nil, "bnt-saw", } m["bnt-zbi"] = { "Zamba-Binza", nil, "bnt-bnm", } m["btk"] = { "Batak", 1998595, "poz-nws", } --[=[ Exceptional language and family codes for Central American Indian languages may use the prefix "cai-", though "cai" is no longer itself a family code. ]=]-- --[=[ Exceptional language and family codes for Caucasian languages can use the prefix "cau-", though "cau" is no longer itself a family code. ]=]-- m["cau-abz"] = { "Abkhaz-Abaza", 4663617, "cau-nwc", other_names = {"Abkhaz-Tapanta"}, aliases = {"Abazgi"}, } m["cau-and"] = { "Andian", 492152, "cau-ava", aliases = {"Andic"}, } m["cau-ava"] = { "Avaro-Andian", 4055404, "cau-nec", aliases = {"Avar-Andian", "Avar-Andi", "Avar-Andic"}, } m["cau-cir"] = { "Circassian", 858543, "cau-nwc", aliases = {"Cherkess"}, } m["cau-drg"] = { "Dargwa", 5222637, "cau-nec", other_names = {"Dargin"}, } m["cau-esm"] = { "Eastern Samur", nil, "cau-sam", } m["cau-ets"] = { "East Tsezian", 121437666, "cau-tsz", aliases = {"East Tsezic", "East Didoic"}, } m["cau-lzg"] = { "Lezghian", 2144370, "cau-nec", aliases = {"Lezgi", "Lezgian", "Lezgic"}, } m["cau-nkh"] = { "Nakh", 24441, "cau-nec", aliases = {"North-Central Caucasian"}, } m["cau-nec"] = { "Northeast Caucasian", 27387, aliases = {"Dagestanian", "Nakho-Dagestanian", "Caspian"}, } m["cau-nwc"] = { "Northwest Caucasian", 33852, aliases = {"Abkhazo-Adyghean", "Abkhaz-Adyghe", "Pontic"}, } m["cau-sam"] = { "Samur", 15229151, "cau-lzg", } m["cau-ssm"] = { "Southern Samur", nil, "cau-sam", } m["cau-tsz"] = { "Tsezian", 1651530, "cau-nec", aliases = {"Tsezic", "Didoic"}, } m["cau-vay"] = { "Vainakh", 4102486, "cau-nkh", aliases = {"Veinakh", "Vaynakh"}, } m["cau-wsm"] = { "Western Samur", nil, "cau-sam", } m["cau-wts"] = { "West Tsezian", 121437697, "cau-tsz", aliases = {"West Tsezic", "West Didoic"}, } m["cba"] = { "Chibchan", 520478, "qfa-mch", -- or none if Macro-Chibchan is considered undemonstrated } m["ccs"] = { "Kartvelian", 34030, aliases = {"South Caucasian"}, } m["ccs-gzn"] = { "Georgian-Zan", 34030, "ccs", aliases = {"Karto-Zan"}, } m["ccs-zan"] = { "Zan", 2606912, "ccs-gzn", aliases = {"Zanuri", "Colchian"}, } m["cdc"] = { "Chadic", 33184, "afa", } m["cdc-cbm"] = { "Central Chadic", 2251547, "cdc", aliases = {"Biu-Mandara"}, } m["cdc-est"] = { "East Chadic", 2276221, "cdc", } m["cdc-mas"] = { "Masa", 2136092, "cdc", } m["cdc-wst"] = { "West Chadic", 2447774, "cdc", } m["cdd"] = { "Caddoan", 1025090, } m["cel"] = { "Celtic", 25293, "ine", } m["cel-bry"] = { "Brythonic", 156877, "cel-ins", aliases = {"Brittonic"}, } m["cel-brs"] = { "Southwestern Brythonic", 2612853, "cel-bry", aliases = {"Southwestern Brittonic"}, } m["cel-brw"] = { "Western Brythonic", 593069, "cel-bry", aliases = {"Western Brittonic"}, } m["cel-gae"] = { "Goidelic", 56433, "cel-ins", aliases = {"Gaelic"}, protoLanguage = "pgl", } m["cel-his"] = { "Hispano-Celtic", 4204136, "cel", } m["cel-ins"] = { "Insular Celtic", 214506, "cel", } m["chi"] = { "Chimakuan", 1073088, } m["chm"] = { "Mari", 973685, "urj", } m["cmc"] = { "Chamic", 2997506, "poz-mcm", } m["crp"] = { "creole or pidgin", 19682167, "qfa-cnt", } m["csu"] = { "Central Sudanic", 190822, "ssa", } m["csu-bba"] = { "Bongo-Bagirmi", 3505042, "csu", } m["csu-bbk"] = { "Bongo-Baka", 4941917, "csu-bba", } m["csu-bgr"] = { "Bagirmi", 4841948, "csu-bba", aliases = {"Bagirmic"}, } m["csu-bkr"] = { "Birri-Kresh", nil, "csu", } m["csu-ecs"] = { "Eastern Central Sudanic", 16911698, "csu", aliases = {"East Central Sudanic", "Central Sudanic East", "Lendu-Mangbetu"}, } m["csu-kab"] = { "Kaba", 6343715, "csu-bba", } m["csu-lnd"] = { "Lendu", 6522357, "csu-ecs", aliases = {"Lenduic"}, } m["csu-maa"] = { "Mangbetu", 6748874, "csu-ecs", aliases = {"Mangbetu-Asoa", "Mangbetu-Asua"}, } m["csu-mle"] = { "Mangbutu-Lese", 17009406, "csu-ecs", aliases = {"Mangbutu-Efe", "Mangbutu", "Membi-Mangbutu-Efe"}, } m["csu-mma"] = { "Moru-Madi", 6915156, "csu-ecs", } m["csu-sar"] = { "Sara", 2036691, "csu-bba", } m["csu-val"] = { "Vale", 7909520, "csu-bba", } m["cus"] = { "Cushitic", 33248, "afa", } m["cus-cen"] = { "Central Cushitic", 56569, "cus", } m["cus-eas"] = { "East Cushitic", 56568, "cus", } m["cus-hec"] = { "Highland East Cushitic", 56524, "cus-eas", } m["cus-som"] = { "Somaloid", 56774, "cus-eas", aliases = {"Sam", "Macro-Somali"}, } m["cus-sou"] = { "South Cushitic", 56525, "cus", } m["day"] = { "Land Dayak", 2760613, "poz", } m["del"] = { "Lenape", 2665761, "alg-eas", aliases = {"Delaware"}, } m["den"] = { "Slavey", 13272, "ath-nor", aliases = {"Slave", "Slavé"}, } m["dmn"] = { "Mande", 33681, "nic", } m["dmn-bbu"] = { "Bisa-Busa", 12627956, "dmn-mde", } m["dmn-emn"] = { "East Manding", nil, "dmn-man", } m["dmn-jje"] = { "Jogo-Jeri", nil, "dmn-mjo", } m["dmn-man"] = { "Manding", 35772, "dmn-mmo", } m["dmn-mda"] = { "Mano-Dan", nil, "dmn-mse", } m["dmn-mdc"] = { "Central Mande", 5972907, "dmn-mdw", } m["dmn-mde"] = { "Eastern Mande", 12633080, "dmn", } m["dmn-mdw"] = { "Western Mande", 16113831, "dmn", } m["dmn-mjo"] = { "Manding-Jogo", 12636153, "dmn-mdc", } m["dmn-mmo"] = { "Manding-Mokole", nil, "dmn-mva", } m["dmn-mnk"] = { "Maninka", 36186, "dmn-emn", } m["dmn-mnw"] = { "Northwestern Mande", 5972910, "dmn-mdw", } m["dmn-mok"] = { "Mokole", 16935447, "dmn-mmo", } m["dmn-mse"] = { "Southeastern Mande", 5972912, "dmn-mde", } m["dmn-msw"] = { "Southwestern Mande", 12633904, "dmn-mdw", } m["dmn-mva"] = { "Manding-Vai", nil, "dmn-mjo", } m["dmn-nbe"] = { "Nwa-Beng", nil, "dmn-mse", } m["dmn-sam"] = { "Samo", 36327, "dmn-bbu", aliases = {"Samuic"}, } m["dmn-smg"] = { "Samogo", 7410000, "dmn-mnw", aliases = {"Duun-Seenku"}, } m["dmn-snb"] = { "Soninke-Bobo", 16111680, "dmn-mnw", } m["dmn-sya"] = { "Susu-Yalunka", nil, "dmn-mdc", } m["dmn-vak"] = { "Vai-Kono", nil, "dmn-mva", } m["dmn-wmn"] = { "West Manding", nil, "dmn-man", } m["dra"] = { "Dravidian", 33311, } m["dra-cen"] = { "Central Dravidian", 12628823, "dra", } m["dra-gki"] = { "Gondi-Kui", 12631610, "dra-sdt", } m["dra-gon"] = { "Gondi", 55639812, "dra-gki", } m["dra-imd"] = { "Irula-Muduga", nil, "dra-tkn", } m["dra-kan"] = { "Kannadoid", 6363888, "dra-tkn", protoLanguage = "dra-okn", } m["dra-kki"] = { "Konda-Kui", nil, "dra-gki", } m["dra-kml"] = { "Kurux-Malto", 68002822, "dra-nor", } m["dra-knk"] = { "Kolami-Naiki", 10547037, "dra-cen", } m["dra-kod"] = { "Kodagu", 67983106, "dra-tkd", } m["dra-kor"] = { "Koraga", 33394, "dra-tlk", } m["dra-mal"] = { "Malayalamoid", 6741581, "dra-tml", } m["dra-mdy"] = { "Madiya", 27602, "dra-gon", } m["dra-mlo"] = { "Malto", nil, "dra-kml", } m["dra-mur"] = { "Muria", 6938499, "dra-gon", } m["dra-nor"] = { "North Dravidian", 16110967, "dra", } m["dra-pgd"] = { "Parji-Gadaba", 10620428, "dra-cen", } m["dra-sdo"] = { "South Dravidian I", 16112843, -- Wikipedia's "South Dravidian" is South Dravidian I in this scheme. "dra-sou", aliases = {"South Dravidian"}, -- This is why I and II are used. } m["dra-sdt"] = { "South Dravidian II", 12633975, "dra-sou", aliases = {"South-Central Dravidian"}, } m["dra-sou"] = { "South Dravidian", 128886618, "dra", aliases = {"Southern Dravidian"}, } m["dra-tam"] = { "Tamiloid", 7681417, "dra-tml", protoLanguage = "oty", } m["dra-tel"] = { "Teluguic", nil, "dra-sdt", protoLanguage = "dra-ote", } m["dra-tkd"] = { "Tamil-Kodagu", 25494510, "dra-tkn", } m["dra-tkn"] = { "Tamil-Kannada", 6478506, "dra-sdo", } m["dra-tkt"] = { "Toda-Kota", 67983857, "dra-tkd", } m["dra-tlk"] = { "Tulu-Koraga", nil, "dra-sdo", } m["dra-tml"] = { "Tamil-Malayalam", 10690507, "dra-tkd", } m["egx"] = { "Egyptian", 50868, "afa", protoLanguage = "egy", } m["ero"] = { "Horpa", 56854, "sit-wgy", } m["esx"] = { "Eskimo-Aleut", 25946, } m["esx-esk"] = { "Eskimo", 25946, "esx", } m["esx-inu"] = { "Inuit", 27796, "esx-esk", } m["euq"] = { "Vasconic", 4669240, } m["gba"] = { "Gbaya", 3099986, "alv-sav", } m["gba-eas"] = { "Eastern Gbaya", nil, "gba", } m["gba-sou"] = { "Southern Gbaya", nil, "gba", } m["gba-wes"] = { "Western Gbaya", nil, "gba", } m["gem"] = { "Hermaniko", --TLCHANGE 21200, "ine", english_name = "Germanic", --TLCHANGE spanish_name = "Germánico", --TLCHANGE } m["gio"] = { "Gelao", 56401, "qfa-kra", } m["gme"] = { "East Germanic", 108662, "gem", } m["gmq"] = { "North Germanic", 106085, "gem", } m["gmq-eas"] = { "East Scandinavian", 3090263, "gmq", protoLanguage = "non-oen", } m["gmq-ins"] = { "Insular Scandinavian", nil, "gmq-wes", } m["gmq-wes"] = { "West Scandinavian", 1792570, "gmq", protoLanguage = "non-own", } m["gmw"] = { "Kanlurang Hermaniko", --TLCHANGE 26721, "gem", english_name = "West Germanic", --TLCHANGE spanish_name = "Germánico occidental", --TLCHANGE } m["gmw-afr"] = { "Angglofrisyo", --TLCHANGE 5329170, "gmw-nsg", english_name = "Anglo-Frisian", --TLCHANGE spanish_name = "Anglofrisio", --TLCHANGE } m["gmw-ang"] = { "Anggliko", --TLCHANGE 1346342, "gmw-afr", protoLanguage = "ang", english_name = "Anglic", --TLCHANGE spanish_name = "Ánglico", --TLCHANGE } m["gmw-fri"] = { "Frisian", 25325, "gmw-afr", protoLanguage = "ofs", } m["gmw-frk"] = { "Mababang Frankonyo", --TLCHANGE 153050, "gmw", protoLanguage = "frk", english_name = "Low Franconian", --TLCHANGE spanish_name = "Bajofranconio", --TLCHANGE } m["gmw-hgm"] = { "Mataas na Hermaniko", --TLCHANGE 52040, "gmw", protoLanguage = "goh", english_name = "High German", --TLCHANGE spanish_name = "Altogermánico", --TLCHANGE } m["gmw-ian"] = { "Irish Anglo-Norman", 120719384, "gmw-ang", protoLanguage = "enm", } m["gmw-lgm"] = { "Mababang Hermaniko", --TLCHANGE 25433, "gmw-nsg", protoLanguage = "osx", english_name = "Low German", --TLCHANGE spanish_name = "Bajogermánico", --TLCHANGE } m["gmw-nsg"] = { "Hermaniko Dagat Hilaga", --TLCHANGE 30134, "gmw", aliases = {"Ingvaeonic"}, english_name = "North Sea Germanic", spanish_name = "Germánico del mar del norte", --TLCHANGE } m["gn"] = { "Guarani", 35876, "tup-gua", aliases = {"Guaraní"}, } m["grb"] = { "Grebo proper", 35257, "kro-grb", } m["grk"] = { "Hellenic", 2042538, "ine", aliases = {"Greek"}, } m["him"] = { "Western Pahari", 10939493, "inc-pah", aliases = {"Himachali"}, } m["hmn"] = { "Hmongic", 3307894, "hmx", } m["hmx"] = { "Hmong-Mien", 33322, aliases = {"Miao-Yao"}, } m["hmx-mie"] = { "Mienic", 7992695, "hmx", } m["hok"] = { "Hokan", 33406, } m["hyx"] = { "Armenian", 8785, "ine", } m["iir"] = { "Indo-Iranian", 33514, "ine", } m["iir-nur"] = { "Nuristani", 161804, "iir", } m["nur-nor"] = { "Northern Nuristani", nil, "iir-nur", } m["nur-sou"] = { "Southern Nuristani", nil, "iir-nur", } m["ijo"] = { "Ijoid", 1325759, "nic", other_names = {"Ijaw"}, -- Ijaw may be a subfamily } m["inc"] = { "Indo-Aryan", 33577, "iir", aliases = {"Indic"}, } m["inc-bas"] = { "Bengali-Assamese", 4179137, "inc-eas", aliases = {"Assamese-Bengali", "Gauda-Kamarupa"}, } m["inc-bhi"] = { "Bhil", 4901727, "inc-cen", } m["inc-bih"] = { "Bihari", 135305, "inc-eas", } m["inc-cen"] = { "Central Indo-Aryan", 10979187, "inc", protoLanguage = "inc-asa", } m["inc-chi"] = { "Chitrali", 11732797, "inc-dar", } m["inc-dar"] = { "Dardic", 161101, "inc", protoLanguage = "inc-ash", } m["inc-dre"] = { "Eastern Dardic", nil, "inc-dar", } m["inc-dng"] = { "Dangari", nil, "inc-shn", } m["inc-eas"] = { "Eastern Indo-Aryan", 12593391, "inc", protoLanguage = "inc-aav", } m["inc-hal"] = { "Halbic", 16910593, "inc-eas", aliases = {"Halbi"}, } m["inc-hie"] = { "Eastern Hindi", 4126648, "inc-cen", aliases = {"Purabiyā"}, protoLanguage = "inc-apa", } m["inc-hiw"] = { "Western Hindi", 12600937, "inc-cen", protoLanguage = "inc-ohi", } m["inc-hnd"] = { "Hindustani", 11051, "inc-hiw", aliases = {"Hindi-Urdu"}, protoLanguage = "hi-mid", } m["inc-ins"] = { "Insular Indo-Aryan", 12179302, "inc", protoLanguage = "inc-apa", } m["inc-kas"] = { "Kashmiric", nil, "inc-dre", aliases = {"Kashmiri"}, } m["inc-koh"] = { "Kohistani", 13018610, "inc-dre", } m["inc-krd"] = { "KRDS languages", 6356154, "inc-eas", aliases = {"Kamta, Rajbanshi, Deshi and Surjapuri", "KRNB languages", "Kamta, Rajbanshi and Northern Deshi Bangla"}, } m["inc-kun"] = { "Kunar", nil, "inc-dar", } m["inc-mid"] = { "Middle Indo-Aryan", 3236316, "inc", aliases = {"Middle Indic"}, } m["inc-nwe"] = { "Northwestern Indo-Aryan", 16111018, "inc", protoLanguage = "inc-apa", } m["inc-nor"] = { "Northern Indo-Aryan", 946077, "inc", protoLanguage = "inc-aka", } m["inc-old"] = { "Old Indo-Aryan", 118976896, "inc", aliases = {"Old Indic"}, } m["inc-pah"] = { "Pahari", 946077, "inc-nor", aliases = {"Pahadi"}, protoLanguage = "inc-aka", } m["inc-pan"] = { "Punjabic", 2656685, "inc-nwe", aliases = {"Greater Punjabic"}, protoLanguage = "inc-opa", } m["inc-pas"] = { "Pashayi", 36670, "inc-dar", aliases = {"Pashai"}, } m["inc-rom"] = { "Romani", 13201, "inc-wes", aliases = {"Romany", "Gypsy", "Gipsy"}, } m["inc-shn"] = { "Shinaic", 12646125, "inc-dre", } m["inc-snd"] = { "Sindhic", 7522212, "inc-nwe", protoLanguage = "inc-avr", } m["inc-sou"] = { "Southern Indo-Aryan", 10856062, "inc", protoLanguage = "inc-ama", } m["inc-tha"] = { "Tharu", 34035, "inc-eas", } m["inc-wes"] = { "Western Indo-Aryan", nil, "inc", protoLanguage = "inc-agu", } m["ine"] = { "Indoeuropeo", --TLCHANGE 19860, aliases = {"Indo-Germanic"}, english_name = "Indo-European", --TLCHANGE spanish_name = "Indoeuropeo", --TLCHANGE } m["ine-ana"] = { "Anatolian", 147085, "ine", } m["ine-bsl"] = { "Balto-Slavic", 147356, "ine", } m["ine-toc"] = { "Tocharian", 37029, "ine", aliases = {"Tokharian"}, } m["ira"] = { "Iranian", 33527, "iir", } m["ira-csp"] = { "Caspian", 5049123, "ira-mpr", } m["ira-cen"] = { "Central Iranian", nil, "ira", } m["ira-kms"] = { "Komisenian", nil, "ira-mpr", aliases = {"Semnani"}, } m["ine-luw"] = { "Luwic", 115748615, "ine-ana", aliases = {"Luvic"}, } m["ira-mid"] = { "Middle Iranian", 6841465, "ira", } m["ira-mny"] = { "Munji-Yidgha", nil, "ira-sym", aliases = {"Yidgha-Munji"}, } m["ira-msh"] = { "Mazanderani-Shahmirzadi", nil, "ira-csp", } m["ira-nei"] = { "Northeastern Iranian", 10775567, "ira", } m["ira-nwi"] = { "Northwestern Iranian", 390576, "ira-wes", } m["ira-old"] = { "Old Iranian", 23301845, "ira", } m["ira-orp"] = { "Ormuri-Parachi", nil, "ira-sei", } m["ira-pat"] = { "Pathan", nil, "ira-sei", } m["ira-sbc"] = { "Sogdo-Bactrian", nil, "ira-nei", } m["ira-mpr"] = { "Medo-Parthian", nil, "ira-nwi", aliases = {"Partho-Median"}, } m["ira-sgi"] = { "Sanglechi-Ishkashimi", 18711232, "ira-sei", } m["ira-shr"] = { "Shughni-Roshani", 11732824, "ira-shy", } m["ira-shy"] = { "Shughni-Yazghulami", nil, "ira-sym", } m["ira-sgc"] = { "Sogdic", nil, "ira-sbc", aliases = {"Sogdian"}, } m["ira-sei"] = { "Southeastern Iranian", 3833002, "ira", } m["ira-swi"] = { "Southwestern Iranian", 390424, "ira-wes", } m["ira-sym"] = { "Shughni-Yazghulami-Munji", nil, "ira-sei", } m["ira-wes"] = { "Western Iranian", 129850, "ira", } m["ira-zgr"] = { "Zaza-Gorani", 167854, "ira-mpr", aliases = {"Zaza-Gurani", "Gorani-Zaza"}, } m["iro"] = { "Iroquoian", 33623, } m["iro-nor"] = { "North Iroquoian", nil, "iro", } m["itc"] = { "Italiko", --TLCHANGE 131848, "ine", english_name = "Italic", --TLCHANGE spanish_name = "Itálico", --TLCHANGE } m["itc-laf"] = { "Latino-Faliscan", 33478, "itc", aliases = {"Latinian"}, } m["itc-sbl"] = { "Osco-Umbrian", 515194, "itc", aliases = {"Sabellic", "Sabellian"}, } m["jpx"] = { "Haponiko", 33612, aliases = {"Japanese", "Japanese-Ryukyuan"}, english_name = "Japonic", --TLCHANGE spanish_name = "Japónico", --TLCHANGE } m["jpx-nry"] = { "Kahilagaang Ryukyuwense", --TLCHANGE 20862796, "jpx-ryu", english_name = "Northern Ryukyuan", --TLCHANGE } m["jpx-ryu"] = { "Ryukyuwense", --TLCHANGE 56393, "jpx", english_name = "Ryukyuan", --TLCHANGE spanish_name = "Ryukyuense", --TLCHANGE } m["jpx-sry"] = { "Katimugang Ryukyuwense", --TLCHANGE 18392243, "jpx-ryu", english_name = "Southern Ryukyuan", --TLCHANGE } m["kar"] = { "Karen", 1364815, "sit", } m["kca"] = { "Khanty", 33563, "urj-ugr", aliases = {"Khantyic", "Khantic"}, } --[=[ Exceptional language and family codes for Khoisan and Kordofanian languages can use the prefix "khi-" and "kdo-" respectively, though they are no longer family codes themselves. ]=]-- m["khi-kal"] = { "Kalahari Khoe", nil, "khi-kho", } m["khi-khk"] = { "Khoekhoe", nil, "khi-kho", } m["khi-kkw"] = { "Khoe-Kwadi", 60785084, aliases = {"Kwadi-Khoe"}, } m["khi-kho"] = { "Khoe", 2736449, "khi-kkw", aliases = {"Central Khoisan"}, } m["khi-kxa"] = { "Kx'a", 6450587, aliases = {"Kxa", "Ju-ǂHoan"}, } m["khi-tuu"] = { "Tuu", 631046, aliases = {"Kwi", "Taa-Kwi", "Southern Khoisan", "Taa-ǃKwi", "Taa-ǃUi", "ǃUi-Taa"}, } m["kro"] = { "Kru", 33535, "nic-vco", } m["kro-aiz"] = { "Aizi", 4699431, "kro", } m["kro-bet"] = { "Bété", 32956, "kro-ekr", } m["kro-did"] = { "Dida", 32685, "kro-ekr", } m["kro-ekr"] = { "Eastern Kru", 5972899, "kro", } m["kro-grb"] = { "Grebo", 5601537, "kro-wkr", } m["kro-wee"] = { "Wee", nil, "kro-wkr", } m["kro-wkr"] = { "Western Kru", 5972897, "kro", } m["ku"] = { "Kurdo", --TLCHANGE 36368, "ira-nwi", english_name = "Kurdish", --TLCHANGE spanish_name = "Kurdo", --TLCHANGE } m["kv"] = { "Komi", 36126, -- "Komi language" in Wikipedia but refers specifically to Komi-Zyrian; no Wikidata item for Komi family "urj-prm", } m["map"] = { "Awstronesyo", --TLCHANGE 49228, is_official_kwf_name = "https://www.facebook.com/share/p/1BVD5EcS79/", --TLCHANGE english_name = "Austronesian", --TLCHANGE spanish_name = "Austronesio", --TLCHANGE } m["map-ata"] = { "Atayalic", 716610, "map", } m["mjg"] = { "Monguor", 34214, "xgn-shr", } m["mkh"] = { "Mon-Khmer", 33199, "aav", } m["mkh-asl"] = { "Aslian", 3111082, "mkh", } m["mkh-ban"] = { "Bahnaric", 56309, "mkh", } m["mkh-kat"] = { "Katuic", 56697, "mkh", } m["mkh-khm"] = { "Khmuic", 1323245, "mkh", } m["mkh-kmr"] = { "Khmeric", nil, "mkh", } m["mkh-mnc"] = { "Monic", 3217497, "mkh", } m["mkh-mng"] = { "Mangic", 3509556, "mkh", } m["mkh-nbn"] = { "North Bahnaric", 56309, "mkh-ban", } m["mkh-pal"] = { "Palaungic", 2391173, "mkh", } m["mkh-pea"] = { "Pearic", 3073022, "mkh", } m["mkh-pkn"] = { "Pakanic", nil, "mkh-mng", } m["mkh-vie"] = { "Vietic", 2355546, "mkh", } m["mno"] = { "Manobo", 3217483, "phi", } m["mns"] = { "Mansi", 33759, "urj-ugr", aliases = {"Mansic"}, } m["mun"] = { "Munda", 33892, "aav", } m["myn"] = { "Mayan", 33738, } --[=[ Exceptional language and family codes for North American Indian languages can use the prefix "nai-", though "nai" is no longer itself a family code. ]=]-- m["nai-cat"] = { "Catawban", 3446638, "nai-sca", } m["nai-chu"] = { "Chumashan", 1288420, } m["nai-ckn"] = { "Chinookan", 610586, } m["nai-coo"] = { "Coosan", 940278, } m["nai-jcq"] = { "Jicaquean", 12179308, "hok" } m["nai-ker"] = { "Keresan", 35878, } m["nai-klp"] = { "Kalapuyan", 1569040, } m["nai-kta"] = { "Kiowa-Tanoan", 386288, } m["nai-len"] = { "Lencan", 36189, aliases = {"Lenca"}, } m["nai-mdu"] = { "Maiduan", 33502, } m["nai-miz"] = { "Mixe-Zoquean", 954016, aliases = {"Mixe-Zoque"}, } m["nai-min"] = { "Misumalpan", 281693, "qfa-mch", aliases = {"Misuluan", "Misumalpa"}, } m["nai-mus"] = { "Muskogean", 902978, aliases = {"Muskhogean"}, } m["nai-pak"] = { "Pakawan", 65085487, "hok", } m["nai-pal"] = { "Palaihnihan", 1288332, } m["nai-plp"] = { "Plateau Penutian", 2307476, } m["nai-pom"] = { "Pomoan", 2618420, "hok", aliases = {"Pomo", "Kulanapan"}, } m["nai-sca"] = { "Siouan-Catawban", 34181, } m["nai-shp"] = { "Sahaptian", 114782, "nai-plp", } m["nai-shs"] = { "Shastan", 2991735, "hok", } m["nai-tot"] = { "Totozoquean", 7828419, } m["nai-ttn"] = { "Totonacan", 34039, aliases = {"Totonac-Tepehua", "Totonacan-Tepehuan"}, varieties = {"Totonac"}, } m["nai-tqn"] = { "Tequistlatecan", 1568317, "hok", aliases = {"Tequistlatec", "Chontal", "Chontalan", "Oaxacan Chontal", "Chontal of Oaxaca"}, } m["nai-tsi"] = { "Tsimshianic", 34134, } m["nai-utn"] = { "Utian", 13371763, "nai-you", aliases = {"Miwok-Costanoan", "Mutsun"}, } m["nai-wtq"] = { "Wintuan", 1294259, aliases = {"Wintun"}, } m["nai-xin"] = { "Xincan", 1546494, aliases = {"Xinca"}, } m["nai-ykn"] = { "Yukian", 2406722, aliases = {"Yuki-Wappo"}, } m["nai-you"] = { "Yok-Utian", 2886186, } m["nai-yuc"] = { "Yuman-Cochimí", 579137, } m["ngf"] = { "Trans-New Guinea", 34018, } m["ngf-ais"] = { "Aisian", nil, "ngf-eso", } m["ngf-ang"] = { "Angan", 3217366, "ngf", aliases = {"Kratke Range"}, -- Usher } m["ngf-ank"] = { "Angal-Kewa", 12626916, -- exist in dewiki and hrwiki "ngf-sak", } m["ngf-ask"] = { "Asmat-Kamoro", 3031400, "ngf", -- Wikipedia uses Asmat-Kamoro to refer to a narrower group excluding the Sabakor languages (Buruwai and Kamberau, -- which Glottolog splits into North Kamrau and South Kamrau [sic]), and uses Asmat-Kamrau to refer to what we and -- Glottolog call Asmat-Kamoro. Glottolog does not recognize the narrower grouping. aliases = {"Asmat-Kamrau", -- Wikipedia "Asmat-Kamrau Bay", -- Usher }, } m["ngf-asm"] = { "Asmat", 4807421, "ngf-ask", } m["ngf-ata"] = { "Ankave-Tainae-Akoye", nil, "ngf-ang", aliases = {"Southwest Kratke Range"}, -- Usher } m["ngf-awd"] = { "Awyu-Dumut", -- [[w:Awyu-Dumut languages]] redirects to [[w:Greater Awyu languages]] 4830163, -- exist in eswiki, hrwiki and ruwiki "ngf-gaw", aliases = {"Central Digul River"}, -- Usher } m["ngf-awy"] = { "Awyu", 96372866, "ngf-awd", } m["ngf-bda"] = { "Becking-Dawi", nil, -- Q55993716 ([[Category:Becking–Dawi languages]]) exists in enwiki "ngf-gaw", aliases = {"Becking and Dawi Rivers"}, -- Usher } m["ngf-bin"] = { "Binanderean", 3217374, -- Wikidata doesn't distinguish Binanderean from Greater Binanderean "ngf-gbi", aliases = {"Oro"}, -- Usher (2020) } m["ngf-boa"] = { "Boane", nil, "ngf-era", aliases = {"Boana", -- Glottolog's name "Wain"}, -- not in Usher; "Wain" often excludes Mungkip, perhaps because it's poorly documented } m["ngf-bos"] = { "Bosavi", 4947122, "ngf", aliases = {"Papuan Plateau"}, -- alternative name given by Wikipedia } m["ngf-bsi"] = { "Baruya-Simbari", nil, "ngf-ang", aliases = {"Northwest Kratke Range"}, -- Usher } m["ngf-cda"] = { "Central Dani", nil, "ngf-dan", aliases = {"Dani"}, -- Usher } m["ngf-chw"] = { "Chimbu-Wahgi", 3217383, "ngf", aliases = {"Simbu-Western Highlands"}, -- alternative name given by Wikipedia } m["ngf-dag"] = { "Dagan", 5208454, "ngf", -- not accepted as TNG by Glottolog but accepted by all others aliases = {"Meneao Range"}, } m["ngf-dal"] = { "Dallman", nil, "ngf-huo", aliases = {"Kinalakna-Kumukio", -- Pawley-Hammarström, who exclude Nomu, but they only had a numeral list of that language to work from "Northeast Huon", -- Usher }, } m["ngf-dan"] = { "Dani", 3217389, "ngf", -- Wikipedia renames the Dani languages to the Baliem Valley languages and sometimes (but not consistently) -- reserves the name Dani (or "Dani proper") for a narrower group excluding Wano and the poorly attested Ngalik -- languages (Nduga, Silimo, and the Yali dialect cluster, which we, following Ethnologue and Glottolog, split into -- Anggurk Yali, Ninia Yali and Pass Valley Yali). Glottolog does not recognize the narrower grouping. aliases = {"Baliem Valley", -- Wikipedia "Balim Valley", -- Usher }, } m["ngf-dum"] = { "Dumut", -- [[w:Dumut languages]] redirects to [[w:Greater Awyu languages]] nil, "ngf-awd", aliases = {"Wambon"}, -- Usher } m["ngf-ehu"] = { "Eastern Huon", -- Glottolog adds Ono and Sialum, Pawley-Hammarström adds Dedua 10567087, "ngf-huo", aliases = {"East Huon"}, -- Usher } m["ngf-eku"] = { "East Kutubuan", 5328752, "ngf", -- Not in TNG per Glottolog but accepted by all others. Sometimes grouped with Fasu to form a Kutubuan family. aliases = {"East Kutubu"}, -- Glottolog's name } m["ngf-enc"] = { "Engic", nil, "ngf-eng", aliases = {"Engan", -- Glottolog "Engan proper", -- Wikipedia "North Engan", -- alternative name given by Wikipedia "Trans-Enga", -- Usher }, } m["ngf-eng"] = { "Engan", 3217449, "ngf", aliases = {"Enga-Kewa-Huli", -- Glottolog, Pawley-Hammarström "Enga-Southern Highlands", -- Usher }, } m["ngf-era"] = { "Erap", nil, "ngf-fin", aliases = {"Erap River"}, -- Usher? } m["ngf-eso"] = { "East Sogeram", nil, "ngf-sog", } m["ngf-est"] = { "East Strickland", 5329440, "ngf", aliases = {"Strickland River"}, -- alternative name given by Wikipedia } m["ngf-eva"] = { "Evapia", nil, "ngf-rai", aliases = {"Evapia River"}, -- Usher } m["ngf-fgi"] = { "Fore-Gimi", nil, "ngf-gor", aliases = {"South Goroka"}, -- Usher } m["ngf-fhu"] = { "Finisterre-Huon", 3217453, "ngf", aliases = {"Finisterre Range-Huon Peninsula"}, -- per Usher } m["ngf-fin"] = { "Finisterre", 5450373, "ngf-fhu", aliases = {"Finisterre-Saruwaged", -- Glottolog's name "Finisterre Range"}, -- per Usher } m["ngf-gah"] = { "Gahuku", nil, "ngf-gor", aliases = {"Alekano-Asaro River"}, -- Usher } m["ngf-gau"] = { "Gauwa", nil, "ngf-kai", aliases = {"West Kainantu"}, -- Usher } m["ngf-gaw"] = { "Greater Awyu", 12627424, "ngf", aliases = {"Digul River"}, -- used by Usher (2020) } m["ngf-gbi"] = { "Greater Binanderean", 3217374, -- Wikidata doesn't distinguish Binanderean from Greater Binanderean "ngf", -- not placed in Trans-New Guinea in Usher (2020) aliases = {"Guhu-Oro"}, -- Guhu-Oro is used in Usher (2020) } m["ngf-gko"] = { "Gaena-Korafe", 11732347, -- considered a single Korafe language by Wikipedia "ngf-bin", aliases = {"Gaina-Korafe"}, -- Usher } m["ngf-gmo"] = { "Gusap-Mot", 16110857, "ngf-fin", aliases = {"Mot River"}, -- Usher? } m["ngf-gor"] = { "Goroka", 15478597, "ngf-kgo", } m["ngf-gsu"] = { "Gogodala-Suki", 5577428, "ngf", -- Possibly in the proposed Papuan Gulf family. Not in TNG per Glottolog but accepted by all others. aliases = {"Suki-Gogodala", -- Glottolog's name "Suki-Aramia River", -- Used in Usher (2020) }, } m["ngf-gum"] = { "Gum", 5618008, "ngf-mab", } m["ngf-gvd"] = { "Grand Valley Dani", -- considered a single language by Wikipedia 5595219, "ngf-cda", } m["ngf-hag"] = { "Hagen", -- [[w:Hagen languages]] redirects to [[w:Chimbu–Wahgi languages]] nil, "ngf-chw", aliases = {"Melpa-Kaugel River"}, -- Usher } m["ngf-han"] = { "Hanseman", 5651020, "ngf-mab", aliases = {"Hansemann Range"}, -- Usher } m["ngf-huo"] = { "Huon", 5946109, "ngf-fhu", aliases = {"Huon Peninsula"}, -- per Usher } m["ngf-jim"] = { "Jimi", -- [[w:Jimi languages]] and [[w:Jimi River languages]] redirect to [[w:Chimbu–Wahgi languages]] nil, "ngf-chw", aliases = {"Jimi River"}, -- Usher } m["ngf-kab"] = { "Kabwum", nil, "ngf-huo", aliases = {"Timbe-Selepet-Komba", -- Pawley-Hammarström, "Northwest Huon", -- Usher }, } m["ngf-kai"] = { "Kainantu", -- Kambaira: under "unclassified Kainantu" (Glottolog), Tairora (Pawley-Hammarström), Gauwa (Usher) 15478590, "ngf-kgo", aliases = {"Gadsup-Auyana-Awa-Tairora"}, -- Wurm, } m["ngf-kak"] = { "Kalam-Kobon", 6350303, "ngf-ksa", aliases = {"Kalam", "Kaironk River"}, -- Usher (2020) } m["ngf-kau"] = { "Kaukombar", nil, "ngf-nad", aliases = {"Kaukombaran", -- Glottolog following Z'graggen (1975) "Kaukombar River"}, -- Usher's term } m["ngf-kbm"] = { "Kosorong-Burum-Mindik", nil, "ngf-huo", aliases = {"Bulum River"}, -- Usher } m["ngf-kgo"] = { "Kainantu-Goroka", 3217463, "ngf", aliases = {"Eastern Highlands"}, -- per Usher (2020) } m["ngf-khu"] = { "Kewa-Huli", nil, "ngf-eng", aliases = {"Huli-Southern Highlands"}, -- Usher } m["ngf-kma"] = { "Kâte-Mape", nil, "ngf-ehu", aliases = {"Kate-Mape-Sene", -- Pawley-Hammarström (with Sene), "Southeast Huon", -- Usher }, } m["ngf-kme"] = { "Kapau-Menya", nil, "ngf-ang", aliases = {"Southeast Kratke Range"}, -- Usher } m["ngf-koi"] = { "Koiarian", 11154240, "ngf", -- not accepted as TNG by Glottolog but accepted by all others aliases = {"Koiari-Managalas Plateau"}, } m["ngf-kok"] = { "Kokon", -- Usher calls it South Mabuso but includes Gum in it nil, "ngf-mab", } m["ngf-kow"] = { "Kowan", 6435004, "ngf-mad", aliases = {"Isumrud Strait"}, -- per Usher (2020) } m["ngf-ksa"] = { "Kalam-Southern Adelbert", nil, "ngf-mad", aliases = {"Kalamic-South Adelbert", -- Glottolog "West Madang"}, -- Usher (2020) } m["ngf-kto"] = { "Kube-Tobo", -- per Glottolog, one language "Kulungtfu-Yuanggeng-Tobo" 1173235, -- code for Tobo-Kube language "ngf-huo", aliases = {"Tobo-Kube"}, } m["ngf-kts"] = { "Komyandaret-Tsaukambo", nil, "ngf-bda", aliases = {"Becking River"}, -- Usher } m["ngf-kum"] = { "Kumil", nil, "ngf-nad", aliases = {"Kumilan", -- Pawley-Hammarström following Z'graggen (1975) "Kumil River"}, -- Usher's term } m["ngf-kya"] = { "Kamano-Yagaria", nil, "ngf-gor", aliases = {"Henganofi", -- Usher "Kamano-Yagaria-Keigana", }, } m["ngf-lok"] = { "Lowland Ok", nil, "ngf-okk", } m["ngf-mab"] = { "Mabuso", 6721668, "ngf-mad", } m["ngf-mad"] = { "Madang", 11217556, "ngf", aliases = {"Madang-Adelbert Range"}, -- Z'graggen (1975), corresponding to today's Madang except in lacking Kalam and Gants } m["ngf-mek"] = { "Mek", 6810515, "ngf", aliases = {"Goliath"}, -- outdated alternative name given by Wikipedia } m["ngf-min"] = { "Mindjim", 86749913, "ngf-mad", aliases = {"Lower Minjim", -- Glottolog, placed in Rai Coast by Glottolog and Pawley-Hammarström; Glottolog's -- Mindjim has 6 languages, including "Upper Minjim" (Rerau and Sgi Bara) "Mindjim River", -- Usher "Minjim", "Minjim River", }, } -- Add if Molet is separated from Asaro'o -- m["ngf-moa"] = { -- "Molet-Asaro'o", -- nil, -- "ngf-war", -- } m["ngf-mok"] = { "Mountain Ok", -- [[w:Mountain Ok languages]] redirects to [[w:Ok languages]] nil, "ngf-okk", } m["ngf-mom"] = { "Mombum", 6897077, "ngf", -- not accepted as TNG by Glottolog but accepted by all others aliases = {"Mombum-Koneraw", "Komolom", "Muli Strait"}, -- Pawley-Hammarström uses Komolom, Usher uses Muli Strait } m["ngf-msu"] = { "Mian-Suganga", -- considred a single Mian language by Wikipedia 12952846, "ngf-mok", aliases = {"Mianic"}, -- Glottolog } m["ngf-nad"] = { "Northern Adelbert", -- not accepted by Pawley-Hammarström 16952821, -- code for Croisilles linkage "ngf-mad", aliases = {"Adelbert Range-Isumrud Strait", -- Usher (2020) "North Adelbert", "Pihom-Isumrud"}, -- Ross? } m["ngf-nbi"] = { "North Binanderean", nil, "ngf-bin", aliases = {"Suena-Zia"}, -- Usher } m["ngf-nde"] = { "Ndeiram", -- [[w:Ndeiram River languages]] redirects to [[w:Greater Awyu languages]] nil, "ngf-awd", aliases = {"Ndeiram River"}, -- Usher? } m["ngf-ngn"] = { "Ngalik-Nduga", -- [[w:Ngalik languages]] redirects to [[w:Baliem Valley languages]] = Dani languages nil, "ngf-dan", aliases = {"Ngalik"}, -- Usher } m["ngf-nso"] = { "North Sogeram", nil, "ngf-sog", aliases = {"Mum-Sirva", -- Usher "North Central Sogeram", -- used by those who accept Central Sogeram (= North Sogeram + Apali and Manat) "North-Central Sogeram", -- rarer than without the dash "Sikan"}, -- Z’graggen (1975?) } m["ngf-num"] = { "Numugen", nil, "ngf-nad", aliases = {"Numugenan", -- Glottolog following Z'graggen 1975 "Numugen River"}, -- Usher's term } m["ngf-nur"] = { "Nuru", -- Usher excludes Yangulam, Pawley-Hammarström include Jilim and Rerau nil, "ngf-rai", aliases = {"Nuru River"}, -- Usher? } m["ngf-nwh"] = { "Northwest Hanseman", -- Usher nil, "ngf-han", aliases = {"Wamas-Samosa-Murupi-Mosimo"}, -- Glottolog, Greenhill, and Pawley-Hammarström following Z'graggen; the most common name, but very unwieldy } m["ngf-oen"] = { "Outer Engan", -- considered a single Nete language by Wikipedia 6998869, "ngf-enc", aliases = {"Nete-Bisorio"}, -- Usher } m["ngf-okk"] = { "Ok", 7081687, "ngf", } m["ngf-omo"] = { "Omosan", -- not included in (Greater) Northern Adelbert by Glottolog, but a sister nil, "ngf-nad", } m["ngf-oro"] = { "Orokaivic", 7103752, -- considered a single Orokaiva language by Wikipedia "ngf-bin", aliases = {"Central Oro"}, -- Usher } m["ngf-pan"] = { "Paniai Lakes", 6035631, "ngf", aliases = {"Wissel Lakes", "Wissel Lakes-Kemandoga River"}, -- alternative names given by Wikipedia } m["ngf-pek"] = { "Peka", nil, "ngf-rai", aliases = {"Peka River"}, -- Usher? } m["ngf-pom"] = { "Pomoikan", nil, "ngf-sad", } m["ngf-rai"] = { "Rai Coast", 7283663, "ngf-mad", aliases = {"South Madang"}, -- Usher } m["ngf-sab"] = { "Sabakor", -- [[w:Sabakor languages]] redirects to [[w:Asmat–Kamrau languages]] nil, -- 55994614 is for [[Category:Kamrau Bay languages]], which exists on enwiki "ngf-ask", aliases = {"Kamrau Bay"}, -- Usher } m["ngf-sad"] = { "Southern Adelbert", 12633980, "ngf-ksa", aliases = {"South Adelbert", -- Glottolog "Southern Adelbert Range", -- Z'graggen (1980) "Sogeram and Tomul Rivers"}, -- Usher (2020)? } m["ngf-sak"] = { "Sau-Angal-Kewa", nil, "ngf-khu", aliases = {"Southern Highlands"}, -- Usher } m["ngf-san"] = { "Sankwep", nil, "ngf-huo", aliases = {"Nabak-Momolili", -- Pawley-Hammarström, "Southwest Huon", -- Usher }, } m["ngf-sbh"] = { "South Bird's Head", 7566330, "ngf", } m["ngf-sim"] = { "Simbu", nil, "ngf-chw", } m["ngf-sog"] = { "Sogeram", 86750419, "ngf-sad", aliases = {"Sogeram River", -- Usher "Wanang"}, } m["ngf-sop"] = { "Sopac", nil, "ngf-ehu", aliases = {"Momare-Migabac", -- Pawley-Hammarström, "Masaweng River", -- Usher }, } m["ngf-taa"] = { "Tainae-Akoye", nil, "ngf-ata", aliases = {"Akoye-Tainae"}, -- Usher } m["ngf-tai"] = { "Tairora", nil, "ngf-kai", aliases = {"Tairoric", -- Glottolog, "East Kainantu", -- Usher }, } m["ngf-tib"] = { "Tiboran", nil, "ngf-nad", aliases = {"Nuclear Tibor", -- Glottolog, excluding Wanambre/Mokati "Tiboran River", -- Usher (2020) "Tibor", -- Pick (2020) and Glottolog including Wanambre/Mokati } } m["ngf-tna"] = { "Tangko-Nakai", nil, "ngf-okk", aliases = {"Central Ok"}, -- Usher } m["ngf-uru"] = { "Uruwa", nil, "ngf-fin", aliases = {"Uruwa River"}, -- Usher? } m["ngf-usi"] = { "Utu-Silopi", nil, "ngf-han", aliases = {"Silopi-Utu"}, -- Usher } m["ngf-waa"] = { "Wantoat-Awara", -- not in Usher but Wantoat and Awara form a dialect chain nil, "ngf-wan", aliases = {"Awara-Wantoat"}, -- per Wikipedia } m["ngf-wah"] = { "Wahgi", -- [[w:Wahgi languages]] redirects to [[w:Chimbu–Wahgi languages]] nil, "ngf-chw", aliases = {"Wahgi Valley"}, -- Usher } m["ngf-wan"] = { "Wantoatic", nil, "ngf-fin", aliases = {"Wantoat", "Wantoat River", -- Usher? }, } m["ngf-war"] = { "Warup", 12645082, "ngf-fin", aliases = {"Warup River"}, -- Usher? } m["ngf-woj"] = { "Wojokesic", nil, "ngf-ang", aliases = {"Northeast Kratke Range"}, -- Usher } m["ngf-wok"] = { "West Ok", nil, "ngf-okk", aliases = {"Kwer-Kopkaka-Burumakok"}, -- Glottolog, Pawley-Hammarström } m["ngf-wso"] = { "West Sogeram", nil, "ngf-sog", aliases = {"Mand-Nend", -- Usher "Atan", -- Wurm following Z'graggen }, } m["ngf-yag"] = { "Yaganon", -- placed in Rai Coast by Glottolog and Pawley-Hammarström 35323986, "ngf-mad", aliases = {"Yaganon River"}, -- Usher } m["ngf-yal"] = { "Yali", -- considered a single language by Wikipedia 8047468, "ngf-ngn", aliases = {"Ngalik"}, -- Glottolog, Pawley-Hammarström } m["ngf-yar"] = { "Yareban", 16977672, "ngf", -- not accepted as TNG by Glottolog but accepted by all others aliases = {"Musa River"}, } m["ngf-ynu"] = { "Yau-Nungon", 12953319, -- for the single Yau language in Wikipedia ([[w:Yau language (Trans–New Guinea)]]) "ngf-uru", } m["ngf-yup"] = { "Yupna", nil, "ngf-fin", aliases = {"Yupna River"}, -- Usher? } m["nic"] = { "Niger-Congo", 33838, aliases = {"Niger-Kordofanian"}, } m["nic-alu"] = { "Alumic", 4737355, "nic-plt", } m["nic-bas"] = { "Basa", 4866154, "nic-knj", } m["nic-bbe"] = { "Eastern Beboid", nil, "nic-beb", } m["nic-bco"] = { "Benue-Congo", 33253, "nic-vco", } m["nic-bcr"] = { "Bantoid-Cross", 806983, "nic-bco", } m["nic-bdn"] = { "Northern Bantoid", nil, "nic-bod", aliases = {"North Bantoid"}, } m["nic-bds"] = { "Southern Bantoid", 3183152, "nic-bod", aliases = {"Wide Bantu", "Bin"}, } m["nic-beb"] = { "Beboid", 813549, "nic-bds", } m["nic-ben"] = { "Bendi", 4887065, "nic-bcr", } m["nic-beo"] = { "Beromic", 4894642, "nic-plt", } m["nic-bod"] = { "Bantoid", 806992, "nic-bcr", } m["nic-buk"] = { "Buli-Koma", nil, "nic-ovo", } m["nic-bwa"] = { "Bwa", 12628562, "nic-gur", other_names = {"Bwamu", "Bomu"}, } m["nic-cde"] = { "Central Delta", 3813191, "nic-cri", } m["nic-cri"] = { "Cross River", 1141096, "nic-bcr", } m["nic-dag"] = { "Dagbani", nil, "nic-wov", } m["nic-dak"] = { "Dakoid", 1157745, "nic-bdn", } m["nic-dge"] = { "Escarpment Dogon", 5397128, "qfa-dgn", } m["nic-dgw"] = { "West Dogon", nil, "qfa-dgn", } m["nic-eko"] = { "Ekoid", 1323395, "nic-bds", } m["nic-eov"] = { "Eastern Oti-Volta", nil, "nic-ovo", aliases = {"Samba"}, } m["nic-fru"] = { "Furu", 5509783, "nic-bds", } m["nic-gne"] = { "Eastern Gurunsi", 12633072, "nic-gns", aliases = {"Eastern Grũsi"}, } m["nic-gnn"] = { "Northern Gurunsi", nil, "nic-gns", aliases = {"Northern Grũsi"}, } m["nic-gnw"] = { "Western Gurunsi", nil, "nic-gns", aliases = {"Western Grũsi"}, } m["nic-gns"] = { "Gurunsi", 721007, "nic-gur", aliases = {"Grũsi"}, } m["nic-gre"] = { "Eastern Grassfields", 5330160, "nic-grf", } m["nic-grf"] = { "Grassfields", 750932, "nic-bds", aliases = {"Grassfields Bantu", "Wide Grassfields"}, } m["nic-grm"] = { "Gurma", 30587833, "nic-ovo", } m["nic-grs"] = { "Southwest Grassfields", 7571285, "nic-grf", } m["nic-gur"] = { "Gur", 33536, "alv-sav", aliases = {"Voltaic"}, } m["nic-ief"] = { "Ibibio-Efik", 2743643, "nic-lcr", } m["nic-jer"] = { "Jera", nil, "nic-kne", } m["nic-jkn"] = { "Jukunoid", 1711622, "nic-pla", } m["nic-jrn"] = { "Jarawan", 1683430, "nic-mba", } m["nic-jrw"] = { "Jarawa", 35423, "nic-jrn", } m["nic-kam"] = { "Kambari", 6356294, "nic-knj", } m["nic-ktl"] = { "Katloid", nil, "nic", } m["nic-kau"] = { "Kauru", nil, "nic-kne", } m["nic-kmk"] = { "Kamuku", 6359821, "nic-knj", } m["nic-kne"] = { "East Kainji", 5328687, "nic-knj", } m["nic-knj"] = { "Kainji", 681495, "nic-pla", } m["nic-knn"] = { "Northwest Kainji", 7060098, "nic-knj", } m["nic-ktl"] = { "Katloid", 6377681, "nic", aliases = {"Katla", "Katla-Tima"}, } m["nic-lcr"] = { "Lower Cross River", 3813193, "nic-cri", } m["nic-mam"] = { "Mamfe", 2005898, "nic-bds", aliases = {"Nyang"}, } m["nic-mba"] = { "Mbam", 687826, "nic-bds", } m["nic-mbc"] = { "Mba", 6799561, "nic-ubg", } m["nic-mbw"] = { "West Mbam", nil, "nic-mba", } m["nic-mmb"] = { "Mambiloid", 1888151, other_names = {"North Bantoid"}, -- per Wikipedia, North Bantoid is the parent family "nic-bdn", } m["nic-mom"] = { "Momo", 6897393, "nic-grf", } m["nic-mre"] = { "Moré", nil, "nic-wov", } m["nic-ngd"] = { "Ngbandi", 36439, "nic-ubg", } m["nic-nge"] = { "Ngemba", 7022271, "nic-gre", } m["nic-ngk"] = { "Ngbaka", 3217499, "nic-ubg", } m["nic-nin"] = { "Ninzic", 7039282, "nic-plt", } m["nic-nka"] = { "Nkambe", 7042520, "nic-gre", } m["nic-nkb"] = { "Baka", nil, "nic-nkw", } m["nic-nke"] = { "Eastern Ngbaka", nil, "nic-ngk", } m["nic-nkg"] = { "Gbanziri", nil, "nic-nkw", } m["nic-nkk"] = { "Kpala", nil, "nic-nkw", } m["nic-nkm"] = { "Mbaka", nil, "nic-nkw", } m["nic-nkw"] = { "Western Ngbaka", nil, "nic-ngk", } m["nic-npd"] = { "North Plateau Dogon", nil, "qfa-dgn", } m["nic-nun"] = { "Nun", 13654297, "nic-gre", } m["nic-nwa"] = { "Nanga-Walo", nil, "qfa-dgn", } m["nic-ogo"] = { "Ogoni", 2350726, "nic-cri", aliases = {"Ogonoid"}, } m["nic-ovo"] = { "Oti-Volta", 1157178, "nic-gur", } m["nic-pla"] = { "Platoid", 453244, "nic-bco", aliases = {"Central Nigerian"}, } m["nic-plc"] = { "Central Plateau", 5061668, "nic-plt", } m["nic-pld"] = { "Plains Dogon", nil, "qfa-dgn", } m["nic-ple"] = { "East Plateau", 5329154, "nic-plt", } m["nic-pls"] = { "South Plateau", 7568236, "nic-plt", aliases = {"Jilic-Eggonic"}, } m["nic-plt"] = { "Plateau", 1267471, "nic-pla", } m["nic-ras"] = { "Rashad", 3401986, "nic", } m["nic-rnc"] = { "Central Ring", nil, "nic-rng", } m["nic-rng"] = { "Ring", 2269051, "nic-grf", aliases = {"Ring Road"}, } m["nic-rnn"] = { "Northern Ring", nil, "nic-rng", } m["nic-rnw"] = { "Western Ring", nil, "nic-rng", } m["nic-ser"] = { "Sere", 7453058, "nic-ubg", } m["nic-shi"] = { "Shiroro", 7498953, "nic-knj", aliases = {"Pongu"}, } m["nic-sis"] = { "Sisaala", 36532, "nic-gnw", } m["nic-tar"] = { "Tarokoid", 2394472, "nic-plt", } m["nic-tiv"] = { "Tivoid", 752377, "nic-bds", } m["nic-tvc"] = { "Central Tivoid", nil, "nic-tiv", } m["nic-tvn"] = { "Northern Tivoid", nil, "nic-tiv", } m["nic-ubg"] = { "Ubangian", 33932, "nic-vco", -- or none } m["nic-uce"] = { "East-West Upper Cross River", nil, "nic-ucr", } m["nic-ucn"] = { "North-South Upper Cross River", nil, "nic-ucr", } m["nic-ucr"] = { "Upper Cross River", 4108624, "nic-cri", aliases = {"Upper Cross"}, } m["nic-vco"] = { "Volta-Congo", 37228, "alv", } m["nic-wov"] = { "Western Oti-Volta", nil, "nic-ovo", aliases = {"Moré-Dagbani"} } m["nic-ykb"] = { "Yukubenic", 16909196, "nic-plt", aliases = {"Oohum"}, } m["nic-ymb"] = { "Yambasa", nil, "nic-mba", } m["nic-yon"] = { "Yom-Nawdm", nil, "nic-ovo", aliases = {"Moré-Dagbani"} } m["nub"] = { "Nubian", 1517194, "sdv-nes", } m["nub-hil"] = { "Hill Nubian", 5762211, "nub", aliases = {"Kordofan Nubian"}, } m["omq"] = { "Oto-Manguean", 33669, } m["omq-cha"] = { "Chatino", 35111, "omq-zap", } m["omq-chi"] = { "Chinantecan", 35828, "omq", } m["omq-cui"] = { "Cuicatec", 616024, "omq-mix", } m["omq-maz"] = { "Mazatecan", 36230, "omq", aliases = {"Mazatec"}, } m["omq-mix"] = { "Mixtecan", 21083066, "omq", } m["omq-mxt"] = { "Mixtec", 36363, "omq-mix", } m["omq-otp"] = { "Oto-Pamean", nil, "omq", } m["omq-pop"] = { "Popolocan", 5132273, "omq", } m["omq-tri"] = { "Triqui", 780200, "omq-mix", aliases = {"Trique"}, } m["omq-zap"] = { "Zapotecan", 8066463, "omq", } m["omq-zpc"] = { "Zapotec", 13214, "omq-zap", } m["omv"] = { "Omotic", 33860, "afa", } m["omv-aro"] = { "Aroid", 3699526, "omv", aliases = {"Ari-Banna", "South Omotic", "Somotic"}, } m["omv-diz"] = { "Dizoid", 430251, "omv", aliases = {"Maji", "Majoid"}, } m["omv-eom"] = { "East Ometo", 20527288, "omv-ome", } m["omv-gon"] = { "Gonga", 4143043, "omv", aliases = {"Kefoid"}, } m["omv-mao"] = { "Mao", 1351495, "omv", } m["omv-nom"] = { "North Ometo", nil, "omv-ome", } m["omv-ome"] = { "Ometo", 36310, "omv", } m["oto"] = { "Otomian", 1270220, "omq-otp", } m["oto-otm"] = { "Otomi", nil, "oto", } m["paa"] = { "Papuan", 236425, "qfa-not", } m["paa-aia"] = { "Aian", 4767739, -- Annaberg languages "paa-ram", aliases = {"Middle Ramu", -- Foley (with Rao), "Annaberg", -- with Rao "Aram-Aren", -- Usher }, } m["paa-alp"] = { "Alor-Pantar", 3502429, "paa-tap", } m["paa-amu"] = { "Amto-Musan", 480281, aliases = {"Samaia River"}, } m["paa-ani"] = { "Anim", 55603991, aliases = {"Fly River"}, } m["paa-ara"] = { "Arapesh", 4784223, "paa-koa", aliases = {"Arapeshan"}, -- Foley } m["paa-arf"] = { "Arafundi", 4783702, } m["paa-ata"] = { "Ataitan", 4812652, "paa-ram", aliases = {"Tangu", -- Foley "Tanggu", -- alternative name given by Wikipedia "Moam River", -- Usher }, } m["paa-baa"] = { "Bayono-Awbono", 2424781, } m["paa-bai"] = { "Baining", 748487, aliases = {"East New Britain"}, } m["paa-baw"] = { "Bosngun-Awar", nil, "paa-ott", aliases = {"East Ramu Coast", -- Usher "Bosman-Awar", -- Wikipedia }, } m["paa-bew"] = { "Bewani", -- [[w:Bewani languages]] redirects to [[w:Border languages (New Guinea)]]; but Croatian Wikipedia has an entry 16113460, "paa-bor", aliases = {"Poal River"}, -- Usher } m["paa-boa"] = { "Boazi", 48803717, "paa-mby", aliases = {"Lake Murray"}, -- Usher } m["paa-bor"] = { "Border", 1752158, aliases = {"Upper Tami", "Tami River-Bewani Range", -- Usher }, } m["paa-bul"] = { "Bulaka River", 4987195, aliases = {"Yelmek-Maklew", "Jabga"}, -- Yelmek-Maklew in Evans (2018) and Gregor (2021) } m["paa-bvi"] = { "Betaf-Vitou", -- Glottolog nil, "paa-tor", aliases = {"Vitou-Betaf", -- Wikipedia "Fitou-Tena", -- Usher "Manirem", }, } m["paa-clp"] = { "Central Lakes Plain", -- [[w:Central Lakes Plain languages]] redirects to [[w:Lakes Plain languages]] nil, -- Q86780132 is for the corresponding category, which exists in enwiki "paa-lpl", aliases = {"East Tariku", -- Glottolog "Central Lakes Plains", -- Usher }, } m["paa-dtu"] = { "Doso-Turumsa", 16917784, -- possibly related to East Strickland languages aliases = {"Soari River"}, -- Usher's name } m["paa-ebh"] = { "East Bird's Head", 338064, aliases = {"Mantion-Meax", "Mantion-Meyah", -- Mantion-Meax is Wikipedia's term "Southeast Bird's Head", -- Usher (2020) }, } m["paa-eel"] = { "Eastern Eleman", nil, "paa-ele", aliases = {"East Eleman"}, } m["paa-egb"] = { "East Geelvink Bay", 1497678, aliases = {"Geelvink Bay", "East Cenderawasih"}, -- Geelvink Bay per Glottolog } m["paa-eke"] = { "East Keram", nil, "paa-ker", } m["paa-ele"] = { "Eleman", 3034298, aliases = {"Kerema Bay"}, } m["paa-elp"] = { "East Lakes Plain", -- [[w:East Lakes Plain languages]] redirects to [[w:Lakes Plain languages]]; but Croatian Wikipedia has an entry 12633078, "paa-lpl", aliases = {"East Lakes Plains"}, -- Usher } m["paa-epw"] = { "Eastern Pauwasi", 16115496, aliases = {"East Pauwasi"}, } m["paa-etf"] = { "Eastern Trans-Fly", 5330530, aliases = {"Oriomo"}, -- in increasing recent use, probably originating in Evans (2018) } m["paa-eti"] = { "East Timor", 15496066, "paa-tap", aliases = {"Oirata-Makasae", -- Wikipedia's name "Eastern Timor", -- alternative name given by Wikipedia "Fataluku-Makasai", "Oirata-Makasai", -- alternative names given by Wikidata }, } m["paa-fas"] = { "Fas", 3502658, aliases = {"Baibai-Fas"}, -- Glottolog's name } m["paa-flp"] = { "Far West Lakes Plain", -- [[w:Wapoga River languages]] redirects to [[w:Lakes Plain languages]] nil, -- Q86808337 is for the corresponding Wapoga languages category, which exists in enwiki "paa-lpl", aliases = {"Rasawa", -- Clouse (1997) "Wapoga River", -- Usher, including Kehu/Keuw (unclassified by others) }, } m["paa-gkw"] = { "Greater Kwerba", 12635134, aliases = {"West Foja Range", -- Usher "Kwerbic", -- Wikipedia "Kwerba", -- Foley (2018) }, } m["paa-gto"] = { "Galela-Tobelo", nil, "paa-nnh", aliases = {"Mainland North Halmaheran", -- Glottolog "Mainland North Halmahera", "Northeast Halmahera", -- alternative names "Northeast Halmaheran", -- Wikipedia, from Verhoeve 1988 }, } m["paa-hya"] = { "Heyo-Yahang", nil, "paa-mam", aliases = {"Yahang-Heyo"}, -- Wikipedia's name } m["paa-ing"] = { "Inland Gulf", 6034783, "paa-ani", aliases = {"Inland Gulf of Papua"}, -- Glottolog } m["paa-isk"] = { "Inner Sko", 65043889, "paa-sko", aliases = {"Skouic", -- Glottolog "West Vanimo Coast", -- Usher "Western Skou", -- Wikipedia "Inner Skou", "Nuclear Skou", -- alternative names given by Wikipedia }, } m["paa-iwa"] = { "Iwam", 15147853, "paa-sep", } m["paa-kae"] = { "Kamula-Elevala", 130390498, -- often placed in TNG aliases = {"Kamula-Elevala River"}, } m["paa-kan"] = { "Kanum", -- removed from Tonda by Glottolog nil, "paa-ton", } m["paa-kay"] = { "Kayagaric", 7566330, aliases = {"Kayagar", -- formerly common "Cook River"}, -- per Usher (2020) } m["paa-ker"] = { "Keram", 48768173, -- often grouped within or coordinate with the Ramu languages aliases = {"Keram River"}, } m["paa-kiw"] = { "Kiwaian", 338449, aliases = {"Kiwai"}, -- formerly common, still sees some use } m["paa-kko"] = { "Kaure-Kosare", -- rejected by Pawley-Hammarström but accepted by Glottolog, Foley (2018) and Usher (2020) 48767891, aliases = {"Nawa River"}, -- Usher's term } m["paa-koa"] = { "Kombio-Arapesh", 16115049, "paa-trr", aliases = {"Kombio-Arapeshan", -- Laycock, who includes Wom "Kombio-Arapesh-Urat", -- Glottolog, including Urat }, } m["paa-kol"] = { "Kolopom", 6427807, } m["paa-kom"] = { "Kombio", 65044238, "paa-koa", aliases = {"Kombian", -- Laycock "Kombio-Yambes", -- Glottolog }, } m["paa-kun"] = { "Kunimaipan", 134973258, aliases = {"Northwest Wharton Range"}, -- per Usher (2020) -- often considered a subfamily of Goilalan } m["paa-kwa"] = { "Kwalean", 6450053, aliases = {"Humene-Uare"}, } m["paa-kwe"] = { "Kwerba proper", 12635134, "paa-gkw", aliases = {"Kwerba", -- Usher "Kwerbaic", -- Glottolog }, } m["paa-kwo"] = { "Kwomtari", 2075415, aliases = {"Kwomtari-Nai"}, -- Senu River is a larger unproven proposal } m["paa-lla"] = { "Loloda-Laba", -- a single language in Glottolog (Loloda-Laba) and Wikipedia (Loloda) 11732388, -- for the Loloda language "paa-gto", aliases = {"Loloda"}, -- Wikipedia's name } m["paa-lma"] = { "Left May", 614468, aliases = {"Arai River"}, -- per Usher (2020) -- Sometimes in a putative Arai-Samaia family along with Amto-Musan and the Pyu language } m["paa-lmu"] = { "Lepki-Murkim", -- Kembra accepted by Glottolog and Usher; not by Foley (2020) but does not exclude the possibility -- of a relationship 85776285, -- independent family per Glottolog, part of South Pauwasi River family (under Pauwasi) per Usher (2020) aliases = {"Lepki-Murkim-Kembra"}, -- Glottolog } m["paa-lpl"] = { "Lakes Plain", 6478969, aliases = {"Lakes Plains"}, } m["paa-lra"] = { "Lower Ramu", 65089469, "paa-ram", aliases = {"Ottilien-Misegian"}, -- alternative name given by Wikipedia } m["paa-lse"] = { "Lower Sepik", 7061700, aliases = {"Nor-Pondo"}, } m["paa-mai"] = { "Mairasi", 6736896, aliases = {"Mairasic"}, -- per Glottolog } m["paa-mal"] = { "Mailuan", 6735839, aliases = {"Cloudy Bay"}, } m["paa-mam"] = { "Maimai", -- Foley's Maimai is expanded 53679325, -- this is the code for the expanded Maimai with 6 languages, as opposed to the 3 in "Nuclear Maimai" "paa-trr", aliases = {"Nuclear Maimai", -- Glottolog's name "Maimai proper", -- Wikipedia's name }, } m["paa-man"] = { "Manubaran", 6752335, aliases = {"Mount Brown"}, } m["paa-mar"] = { "Marienberg", 1570589, "paa-trr", aliases = {"Marienberg Hills"}, -- Usher } m["paa-may"] = { "Maybratic", 4830892, -- the code for the Maybrat language in Wikipedia, which subsumes the two languages of this family -- putatively included in West Papuan but generally considered an isolated family aliases = {"Maybrat-Karon"}, } m["paa-mbi"] = { "Mbaham-Iha", 85784512, "qfa-dis", -- Papuan languages; Glottolog groups Karas (Kalamang) with Mbaham-Iha into a (mainland) West Bomberai -- family and stops there; Wikipedia, following Usher and Schapper (2022), groups Karas, Mbaham-Iha -- and the large Timor-Alor-Pantar family into a (Greater) West Bomberai family, saying that Karas is no -- closer to Mbaham-Iha than to Timor-Alor-Pantar. aliases = {"Mbahaam-Iha", -- used by Wikidata "Nuclear West Bomberai", -- Glottolog's name }, } m["paa-mby"] = { "Marind-Boazi-Yaqay", 3217484, "paa-ani", aliases = {"Marind-Boazi-Yaqai", -- Glottolog "Marind-Yakhai", -- Usher, without Boazi "Marind-Yaqai", -- Wikidata "Marind", -- alternative name given by Wikipedia "Marind-Arandai", -- alternative name given by Spanish Wikipedia }, } m["paa-mmu"] = { "Mandi-Muniwara", nil, "paa-mar", aliases = {"West Marienberg Hills"}, -- Usher } m["paa-mon"] = { "Monumbo", -- per Glottolog: "No evidence for the Bogia (Monumbo) languages being related to other Torricelli languages was ever presented" 16928417, aliases = {"Bogia", -- Glottolog "Bogia Bay", -- Usher (2020) }, } m["paa-mri"] = { "Marindic", -- [[w:Marindic languages]] redirects to [[w:Marind–Yaqai languages]] nil, "paa-mby", aliases = {"Marind"}, -- Usher; a single language } m["paa-nam"] = { "Nambu", 6961418, "paa-yam", aliases = {"East Morehead River"}, -- Usher } m["paa-nbo"] = { "North Bougainville", 749496, } m["paa-ndu"] = { "Ndu", 3217498, "paa-sep", -- Not accepted by Glottolog aliases = {"Ndu-Nggala"}, -- Usher } m["paa-ngk"] = { "Ngkolmpu", -- considered a single language by Wikipedia 5908646, "paa-kan", aliases = {"Ngkantr", -- Glottolog "Ngkolmpu Kanum", -- Wikipedia "Ngkontar", -- alternative name given by Wikipedia "Kanum", -- used by Wikidata }, } m["paa-nha"] = { "North Halmahera", 3217358, -- possibly in a proposed West Papuan family or an independent family } m["paa-nim"] = { "Nimboran", 12638426, aliases = {"Nimboranic", -- per Glottolog "Grime River", -- per Usher (2020) } } m["paa-nnd"] = { "Nuclear Ndu", nil, "paa-ndu", aliases = {"Ndu", -- Usher, with Boiken/Boikin "Ndu proper", -- Wikipedia }, } m["paa-nnh"] = { "Northern North Halmahera", nil, "paa-nha", aliases = {"Northern North Halmaheran", -- Glottolog "Halmahera", -- Usher "Core Halmaheran", -- Wikipedia }, } m["paa-nto"] = { "Namla-Tofanma", 16918187, -- independent family per Glottolog and Foley (2018), part of West Pauwasi family (under Pauwasi) per Usher (2020) } m["paa-ott"] = { "Ottilien", 7109477, "paa-lra", aliases = {"Ramu Coast", -- Usher "Watam-Awar-Gamay", -- alternative name given by Wikipedia }, } m["paa-pah"] = { "Pahoturi River", 17049141, aliases = {"Pahoturi"}, -- per Glottolog } m["paa-pal"] = { "Palei", -- Laycock adds Agi and Nabi/Nambi(-Metan) 65089113, "paa-wpa", aliases = {"Nuclear Palai"}, } m["paa-pia"] = { "Piawi", -- per Wikipedia, grouped with Arafundi languages to form Upper Yuat, which is a sister to Madang 7190400, aliases = {"Schraeder Range", -- Usher? "Waibuk"}, } m["paa-pio"] = { "Piore River", 65043152, "paa-sko", aliases = {"Barupu Lagoon", -- Glottolog "Lagoon", -- alternative name given by Wikipedia }, } m["paa-por"] = { "Porapora", -- Foley includes Ambakich (which we, Glottolog, and Usher treat as Keram) 65044258, "paa-ram", aliases = {"Agoan", -- Glottolog "Porapora River", -- Usher "core Grass", -- alternative name given by Wikipedia }, } m["paa-ram"] = { "Ramu", 3442808, aliases = {"Ramu River"}, -- per Usher (2020) } m["paa-rsa"] = { "Rasawa-Saponi", -- [[w:Rasawa-Saponi languages]] redirects to [[w:Lakes Plain languages]] nil, -- Q9859418 is for the coresponding category, which exists in the Piedmontese Wikipedia (?!) "paa-flp", aliases = {"Rombak River"}, -- Usher } m["paa-rub"] = { "Ruboni", 6875319, "paa-lra", aliases = {"Misegian", -- Wikipedia's name "Mikarew", -- alternative name given by Wikipedia "Ruboni Range"}, -- Usher } m["paa-saa"] = { "Samarokena-Airoran", 96417699, "paa-gkw", aliases = {"Apauwar Coast"}, -- Usher } m["paa-sah"] = { "Sahu", nil, "paa-nnh", } m["paa-sbo"] = { "South Bougainville", 3217380, } m["paa-sen"] = { "Sentani", 17044584, -- no consensus on higher affiliations, if any aliases = {"Sentanic", "Demta-Sentani", "Demta-Lake Sentani"}, -- Sentanic per Glottolog, Demta-Sentani per Wikipedia } m["paa-sep"] = { "Sepik", 3508772, } m["paa-shi"] = { "Serra Hills", 65043154, "paa-sko", } m["paa-sko"] = { "Sko", 953509, aliases = {"Skou"}, } m["paa-sng"] = { "Senagi", 2066550, } m["paa-taa"] = { "Taikat-Awyi", -- [[w:Taikat languages]] redirects to [[w:Border languages (New Guinea)]]; but Croatian Wikipedia has an entry 12643265, "paa-bor", aliases = {"Taikat", -- Foley "Upper Tami River", -- Usher }, } m["paa-tam"] = { "Tamolan", 7681634, "paa-ram", aliases = {"Guam River"}, -- Usher } m["paa-tap"] = { "Timor-Alor-Pantar", 16590002, } m["paa-teb"] = { "Teberan", 7692052, -- Often grouped with Trans-New Guinea, but per Pawley-Hammarström (2018), it has "weaker or disputed claims to membership in TNG". aliases = {"Dadibi-Folopa"}, } m["paa-tir"] = { "Tirio", 7809225, "paa-ani", aliases = {"Nuclear Lower Fly", -- Pawley-Hammarström ("Lower Fly" includes Abom) "Nuclear Tirio", -- Glottolog ("Tirio" includes Abom) "Lower Fly River", -- Usher (without Abom) }, } m["paa-tki"] = { "Turama-Kikori", 7853680, aliases = {"Turama-Kikorian", "Rumu-Omati River"}, } m["paa-ton"] = { "Tonda", 8581005, "paa-yam", aliases = {"West Morehead River"}, -- Usher } m["paa-too"] = { "Tor-Orya", 16590099, aliases = {"Orya-Tor"}, } m["paa-tor"] = { "Tor", -- [[w:Tor languages]] redirects to [[w:Orya–Tor languages]] nil, "paa-too", } m["paa-trr"] = { "Torricelli", 1333831, } m["paa-tti"] = { "Ternate-Tidore", nil, "paa-nnh", } m["paa-wal"] = { "Walio", 16919872, -- Often placed in Sepik (e.g. by Laycock and Z'graggen (1975)), but not by Foley (2018), and not accepted by Glottolog. aliases = {"Walioic", -- Glottolog "Central Leonhard Schultze River", }, } m["paa-wap"] = { "Wapei", -- Glottolog includes Nabi/Nambi(-Metan) in Wapeic 65089115, "paa-wpa", aliases = {"Wapeic"}, -- Glottolog } m["paa-war"] = { "Waris", -- [[w:Waris languages]] redirects to [[w:Border languages (New Guinea)]]; but Croatian Wikipedia has an entry 12645076, "paa-bor", aliases = {"Warisic", -- Glottolog "Bapi River", -- Usher (without Manem or Senggi) }, } m["paa-wbh"] = { "West Bird's Head", 5330530, -- Kuwani is sometimes included; probably related to North Halmahera languages. } m["paa-wel"] = { "Western Eleman", nil, "paa-ele", aliases = {"West Eleman"}, } m["paa-wig"] = { "West Inland Gulf", nil, "paa-ing", aliases = {"West Inland Gulf of Papua"}, -- Glottolog } m["paa-wke"] = { "West Keram", nil, "paa-ker", aliases = {"Koam", "Mongol-Langam", "Ulmapo"}, -- Koam used by Foley, Ulmapo used by Glottolog } m["paa-wko"] = { "Wára-Kómnzo", -- since we split out Kómnzo as a separate language 11732474, -- for the Wara language "paa-ton", aliases = {"Anta-Komnzo-Wára-Wérè-Kémä", -- Glottolog's name "Wára", "Wara", -- Wikipedia }, } m["paa-wlp"] = { "West Lakes Plain", -- [[w:Tariku languages]] redirects to [[w:Lakes Plain languages]] 47007503, -- actually for "Tariku languages", which per Wikipedia covers Fayu, Kirikiri, Iau and Tause "paa-lpl", aliases = {"West Tariku", -- Glottolog "West Lakes Plains"}, -- Usher, with Edopi/Iau } m["paa-wpa"] = { "Wapei-Palei", 65043156, "paa-trr", } m["paa-wpw"] = { -- paa-wpa already used by Wapei-Palei "Western Pauwasi", -- 2 langs per Glottolog and Pawley-Hammarström; Usher also includes Namla-Tofanma and Usku 85815062, aliases = {"West Pauwasi", -- Wikipedia, Usher "Tebi-Towe", "Dubu-Towei"}, } m["paa-yam"] = { "Yam", 15062272, aliases = {"Morehead and Upper Maro River", "Morehead River", -- Usher }, } m["paa-yaq"] = { "Yaqayic", -- [[w:Yaqai languages]] redirects to [[w:Marind–Yaqai languages]] nil, "paa-mby", aliases = {"Yakhai-Warkay"}, -- Usher } m["paa-ysa"] = { "Yawa-Saweru", 3217545, aliases = {"Yawa", "Yawan", "Yapen"}, } m["paa-yua"] = { "Yuat", 8060096, } m["phi"] = { "Pilipino", --TLCHANGE "Philippine" 947858, "poz", english_name = "Philippine" --TLCHANGE } m["phi-kal"] = { "Kalamian", 3217466, "phi", aliases = {"Calamian"}, } m["poz"] = { "Malayopolinesyo", --TLCHANGE 143158, "map", english_name = "Malayo-Polynesian", --TLCHANGE spanish_name = "Malayopolinesio", --TLCHANGE } m["poz-aay"] = { "Admiralty Islands", 2701306, "poz-oce", } m["poz-bnn"] = { "North Bornean", 1427907, "poz", } m["poz-bre"] = { "East Barito", 2701314, "poz", } m["poz-brw"] = { "West Barito", 2761679, "poz", } m["poz-bss"] = { "Bali-Sasak-Sumbawa", 3396043, "poz-msa", } m["poz-btk"] = { "Bungku-Tolaki", 3217381, "poz-clb", } m["poz-cet"] = { "Central-Eastern Malayo-Polynesian", 2269883, "poz", } m["poz-clb"] = { "Celebic", 1078041, "poz", } m["poz-cln"] = { "New Caledonian", 3091221, "poz-ocs", } m["poz-cma"] = { "Central Maluku", 3217479, "poz-cet", } m["poz-hce"] = { "Halmahera-Cenderawasih", 2526616, "pqe", } m["poz-kal"] = { "Kaili-Pamona", 3217465, "poz-clb", } m["poz-lgx"] = { "Lampungic", 49215, "poz", } m["poz-mcm"] = { "Malayo-Chamic", nil, "poz-msa", } m["poz-mic"] = { "Micronesian", 420591, "poz-occ", } m["poz-mly"] = { "Malayic", 662628, "poz-mcm", } m["poz-msa"] = { "Malayo-Sumbawan", 1363818, "poz", } m["poz-mun"] = { "Muna-Buton", 3037924, "poz-clb", } m["poz-nws"] = { "Northwest Sumatran", 2071308, "poz", } m["poz-occ"] = { "Central-Eastern Oceanic", 2068435, "poz-oce", } m["poz-oce"] = { "Oceanic", 324457, "pqe", } m["poz-ocs"] = { "Southern Oceanic", 3039118, "poz-occ", } m["poz-ocw"] = { "Western Oceanic", 2701282, "poz-oce", } m["poz-pcc"] = { "Central Pacific", 3130237, "poz-occ", } m["poz-pep"] = { "Eastern Polynesian", 390979, "poz-pnp", } m["poz-pnp"] = { "Nuclear Polynesian", 743851, "poz-pol", } m["poz-pol"] = { "Polynesian", 390979, "poz-pcc", } m["poz-san"] = { "Sabahan", 3217517, "poz-bnn", } m["poz-sbj"] = { "Sama-Bajaw", 2160409, "poz", } m["poz-slb"] = { "Saluan-Banggai", 3217519, "poz-clb", } m["poz-sls"] = { "Southeast Solomonic", 3119671, "poz-occ", } m["poz-ssw"] = { "South Sulawesi", 2778190, "poz", } m["poz-stm"] = { "St. Matthias", 6484143, "poz-oce", aliases = {"St Matthias"}, } m["poz-swa"] = { "North Sarawakan", 538569, "poz-bnn", } m["poz-tem"] = { "Temotu", 3075769, "poz-oce", } m["poz-tim"] = { "Timoric", 7806987, "poz-cet", } m["poz-ton"] = { "Tongic", 3397263, "poz-pol", } m["poz-tot"] = { "Tomini-Tolitoli", 3217541, "poz-clb", } m["poz-vnc"] = { "Central Vanuatu", 5061988, "poz-ocs", } m["poz-vnn"] = { "North Vanuatu", 85789650, "poz-ocs", } m["poz-vns"] = { "South Vanuatu", 3070173, "poz-ocs", } m["poz-wot"] = { "Wotu-Wolio", 1041317, "poz-clb", aliases = {"Island Kaili-Wolio"}, -- Glottolog } m["pqe"] = { "Eastern Malayo-Polynesian", 2269883, "poz-cet", } m["qfa-adc"] = { "Central Great Andamanese", nil, "qfa-adm", } m["qfa-adm"] = { "Great Andamanese", 3515103, } m["qfa-adn"] = { "Northern Great Andamanese", nil, "qfa-adm", } m["qfa-ads"] = { "Southern Great Andamanese", nil, "qfa-adm", } m["qfa-ain"] = { "Ainuic", 50111972, aliases = {"Ainu"}, } m["qfa-bej"] = { "Be-Jizhao", nil, "qfa-bet", } m["qfa-bet"] = { "Be-Tai", 12627719, "qfa-tak", aliases = {"Tai-Be", "Daic-Beic", "Beic-Daic"}, } m["qfa-buy"] = { "Buyang", 1109927, "qfa-kra", } m["qfa-cka"] = { "Chukotko-Kamchatkan", 33255, } m["qfa-cre"] = { "creole", 33289, "crp", } m["qfa-ckn"] = { "Chukotkan", 2606732, "qfa-cka", } m["qfa-cnt"] = { "contact", 133253514, "qfa-not", } m["qfa-dis"] = { -- Languages that are not unclassifiable (qfa-unc) but where there is no consensus on classification. Usually -- this is because the languages are divergent and it's disputed whether they are isolates or distantly related -- to other languages. "disputed affiliation", nil, "qfa-not", } m["qfa-dgn"] = { "Dogon", 1234776, "nic", } m["qfa-dny"] = { "Dene-Yeniseian", 21103, aliases = {"Dené-Yeniseian"}, } m["qfa-hur"] = { "Hurro-Urartian", 1144159, } m["qfa-iso"] = { "isolate", 33648, "qfa-not", } m["qfa-kad"] = { "Kadu", -- considered either Nilo-Saharan or independent/none 1720989, } m["qfa-kms"] = { "Kam-Sui", 1023641, "qfa-tak", } m["qfa-kor"] = { "Koreanic", 11263525, } m["qfa-kra"] = { "Kra", 1022087, "qfa-tak", } m["qfa-lic"] = { "Hlai", 1023648, "qfa-tak", aliases = {"Hlaic"}, } m["qfa-mch"] = { -- used in both N and S America "Macro-Chibchan", 3438062, } m["qfa-mix"] = { "mixed", 33694, "qfa-cnt", } m["qfa-not"] = { "not a family", nil, "qfa-not", } m["qfa-onb"] = { "Be", nil, "qfa-bej", aliases = {"Ong-Be", "Beic"}, } m["qfa-ong"] = { "Ongan", 2090575, aliases = {"Angan", "South Andamanese", "Jarawa-Onge"}, } m["qfa-pid"] = { "pidgin", 33831, "crp", } m["qfa-sub"] = { "substrate", 20730913, "qfa-not", } m["qfa-tak"] = { "Kra-Dai", 34171, aliases = {"Tai-Kadai", "Kadai"}, } m["qfa-tyn"] = { "Tyrsenian", 1344038, } m["qfa-unc"] = { -- This corresponds to languages normally called "unclassified", i.e. there is insufficient data or research to -- classify them, whereas our [[:Category:Unclassified languages]] is just languages that no Wiktionary editor -- has classified yet (the family code in the language data is missing). "unclassifiable", 33956, "qfa-not", } m["qfa-xgs"] = { "Serbi-Mongolic", 108887939, } m["qfa-xgx"] = { "Para-Mongolic", 107619002, "qfa-xgs", } m["qfa-yen"] = { "Yeniseian", 27639, "qfa-dny", aliases = {"Yeniseic", "Yenisei-Ostyak"}, } m["qfa-yke"] = { "Ketic", nil, "qfa-yen", } m["qfa-yko"] = { "Kottic", nil, "qfa-yen", } m["qfa-yrn"] = { "Arinic", nil, "qfa-yen", } m["qfa-ypm"] = { "Pumpokolic", nil, "qfa-yen", } m["qfa-yuk"] = { "Yukaghir", 34164, aliases = {"Yukagir", "Jukagir"}, } m["qwe"] = { "Quechuan", 5218, } m["raj"] = { "Rajasthani", 13196, "inc-wes", protoLanguage = "inc-ogu", } m["roa"] = { "Romanse", --TLCHANGE 19814, "itc", aliases = {"Romanic", "Latin", "Neolatin", "Neo-Latin"}, protoLanguage = "la", english_name = "Romance", --TLCHANGE spanish_name = "Romance", --TLCHANGE } m["roa-asl"] = { "Asturleonese", 35390, "roa-ibe", protoLanguage = "roa-ole", } m["roa-cas"] = { "Kastila", --TLCHANGE "Kastila" for castillian, "Espanyol" for spanish 71924, "roa-ibe", aliases = {"Castillian", "Castilic", "Castillic"}, protoLanguage = "osp", english_name = "Castilian", --TLCHANGE spanish_name = "Castellano", --TLCHANGE } m["roa-dal"] = { "Dalmatian Romance", 97646077, "roa-itd", } m["roa-eas"] = { "Eastern Romance", 147576, "roa", } m["roa-emr"] = { "Emilian-Romagnol", 242648, "roa-git", } m["roa-gap"] = { "Galician-Portuguese", 9080204, "roa-ibe", aliases = {"Galician Romance", "Galaic-Portuguese"}, protoLanguage = "roa-opt", } m["roa-gar"] = { "Gallo-Romance", 500394, "roa-wes", } m["roa-itd"] = { "Italo-Dalmatian", 3313381, "roa-iwr", aliases = {"Central Romance"} } m["roa-itr"] = { "Italo-Romance", 3356483, "roa-itd", } m["roa-iwr"] = { "Romanse Italo-Kanluranin", --TLCHANGE 112608, "roa", aliases = {"Italo-Western"}, english_name = "Italo-Western Romance", --TLCHANGE spanish_name = "Romance italo-occidental", --TLCHANGE } m["roa-git"] = { "Gallo-Italic", 516074, "roa-gar", aliases = {"Gallo-Italian", "Gallo-Cisalpine", "Cisalpine"}, } m["roa-grh"] = { "Gallo-Rhaetian", 97646466, "roa-gar", } m["roa-ibe"] = { "Iberoromanse", --TLCHANGE 749533, "roa-wes", aliases = {"Iberian Romance", "West Ibero-Romance", "Western Ibero-Romance", "West Iberian Romance", "Western Iberian Romance"}, english_name = "Ibero-Romance", --TLCHANGE spanish_name = "Iberorromance", --TLCHANGE } m["roa-nar"] = { "Navarro-Aragonese", 133252927, "roa-ibe", protoLanguage = "roa-ona", } m["roa-oil"] = { "Oïl", 37351, "roa-grh", aliases = {"langues d'oïl", "langue d'oïl", "Cisalpine"}, protoLanguage = "fro", } m["roa-ocr"] = { "Occitano-Romance", 599958, "roa-gar", aliases = {"Gallo-Narbonnese", "East Iberian", "Eastern Iberian"}, } m["roa-rhe"] = { "Rhaeto-Romance", 515593, "roa-grh", aliases = {"langues d'oïl", "langue d'oïl", "Cisalpine"}, } m["roa-sou"] = { "Southern Romance", 145345, "roa", } m["roa-wes"] = { "Kanluraning Romanse", --TLCHANGE 2714388, "roa-iwr", english_name = "Western Romance", --TLCHANGE spanish_name = "Romance occidental", --TLCHANGE } --[=[ Exceptional language and family codes for South American Indian languages can use the prefix "sai-", though "sai" is no longer itself a family code. ]=]-- m["sai-ara"] = { "Araucanian", 626630, } m["sai-aym"] = { "Aymaran", 33010, } m["sai-bar"] = { "Barbacoan", 807304, aliases = {"Barbakoan"}, } m["sai-bor"] = { "Boran", 5371776, } m["sai-cah"] = { "Cahuapanan", 1025793, } m["sai-car"] = { "Cariban", 33090, aliases = {"Carib"}, } m["sai-cer"] = { "Cerrado", 98078151, "sai-jee", aliases = {"Amazonian Jê"}, } m["sai-chc"] = { "Chocoan", 1075616, aliases = {"Choco", "Chocó"}, } m["sai-cho"] = { "Chonan", 33019, aliases = {"Chon"}, } m["sai-cje"] = { "Central Jê", 18010843, "sai-cer", aliases = {"Akuwẽ"}, } m["sai-cpc"] = { "Chapacuran", 1062626, } m["sai-crn"] = { "Charruan", 3112423, aliases = {"Charrúan"}, } m["sai-ctc"] = { "Catacaoan", 5051139, } m["sai-guc"] = { "Guaicuruan", 1974973, "sai-mgc", aliases = {"Guaicurú", "Guaycuruana", "Guaikurú", "Guaycuruano", "Guaykuruan", "Waikurúan"}, } m["sai-guh"] = { "Guahiban", 944056, aliases = {"Guahiboan", "Guajiboan", "Wahivoan"}, } m["sai-gui"] = { "Guianan", nil, "sai-car", aliases = {"Guianan Carib", "Guiana Carib"}, } m["sai-har"] = { "Harákmbut", 1584402, "sai-hkt", aliases = {"Harákmbet"}, } m["sai-hkt"] = { "Harákmbut-Katukinan", 17107635, } m["sai-hrp"] = { "Huarpean", 1578336, aliases = {"Warpean", "Huarpe", "Warpe"}, } m["sai-jee"] = { "Jê", 1483594, "sai-mje", aliases = {"Gê", "Jean", "Gean", "Jê-Kaingang", "Ye"}, } m["sai-jir"] = { "Jirajaran", 3028651, aliases = {"Hiraháran"}, } m["sai-jiv"] = { "Jivaroan", 1393074, aliases = {"Hívaro", "Jibaro", "Jibaroan", "Jibaroana", "Jívaro"}, } m["sai-ktk"] = { "Katukinan", 2636000, "sai-hkt", aliases = {"Catuquinan"}, } m["sai-kui"] = { "Kuikuroan", nil, "sai-car", aliases = {"Kuikuro", "Nahukwa"}, } m["sai-map"] = { "Mapoyan", 61096301, "sai-ven", aliases = {"Mapoyo", "Mapoyo-Yabarana", "Mapoyo-Yavarana", "Mapoyo-Yawarana"}, } m["sai-mas"] = { "Mascoian", 1906952, aliases = {"Mascoyan", "Maskoian", "Enlhet-Enenlhet"}, } m["sai-mgc"] = { "Mataco-Guaicuru", 255512, } m["sai-mje"] = { "Macro-Jê", 887133, aliases = {"Macro-Gê"}, } m["sai-mtc"] = { "Matacoan", 2447424, "sai-mgc", } m["sai-mur"] = { "Muran", 33826, aliases = {"Mura"}, } m["sai-nad"] = { "Nadahup", 1856439, aliases = {"Makú", "Macú", "Vaupés-Japurá"}, } m["sai-nje"] = { "Northern Jê", 98078225, "sai-cer", aliases = {"Core Jê"}, } m["sai-nmk"] = { "Nambikwaran", 15548027, aliases = {"Nambicuaran", "Nambiquaran", "Nambikuaran"}, } m["sai-otm"] = { "Otomacoan", 3217503, aliases = {"Otomákoan", "Otomakoan"}, } m["sai-pan"] = { "Panoan", 1544537, "sai-pat", aliases = {"Pano"}, } m["sai-pat"] = { "Pano-Tacanan", 2475746, aliases = {"Pano-Tacana", "Pano-Takana", "Páno-Takána", "Pano-Takánan"}, } m["sai-pek"] = { "Pekodian", 107451736, "sai-car", aliases = {"South Amazonian Carib", "Southern Cariban", "Pekodi"}, } m["sai-pem"] = { "Pemongan", nil, "sai-ven", aliases = {"Pemong", "Pemóng", "Purukoto"}, } m["sai-pey"] = { "Peba-Yaguan", 174015, aliases = {"Peba-Yagua", "Yaguan", "Peban", "Yáwan"}, } m["sai-prk"] = { "Parukotoan", 107451482, "sai-car", aliases = {"Parukoto"}, } m["sai-sje"] = { "Southern Jê", 98078245, "sai-jee", } m["sai-tac"] = { "Tacanan", 3113762, "sai-pat", } m["sai-tar"] = { "Taranoan", 105097814, "sai-gui", aliases = {"Trio", "Tarano"}, } m["sai-tuc"] = { "Tucanoan", 788144, } m["sai-tyu"] = { "Ticuna-Yuri", 4467010, } m["sai-ucp"] = { "Uru-Chipaya", 2475488, aliases = {"Uru-Chipayan"}, } m["sai-ven"] = { "Venezuelan Cariban", nil, "sai-car", aliases = {"Venezuelan Carib", "Venezuelan", "Venezuelano"}, } m["sai-wic"] = { "Wichí", 3027047, } m["sai-wit"] = { "Witotoan", 43079317, aliases = {"Huitotoan", "Uitotoan"}, } m["sai-ynm"] = { "Yanomami", nil, aliases = {"Yanomam", "Shamatari", "Yamomami", "Yanomaman"}, } m["sai-yuk"] = { "Yukpan", nil, "sai-car", aliases = {"Yukpa", "Yukpano", "Yukpa-Japreria"}, } m["sai-zam"] = { "Zamucoan", 3048461, aliases = {"Samúkoan"}, } m["sai-zap"] = { "Zaparoan", 33911, aliases = {"Záparoan", "Saparoan", "Sáparoan", "Záparo", "Zaparoano", "Zaparoana"}, } m["sal"] = { "Salish", 33985, } m["sdv"] = { "Eastern Sudanic", 2036148, "ssa", } m["sdv-bri"] = { "Bari", nil, "sdv-nie", } m["sdv-daj"] = { "Daju", 956724, "sdv", } m["sdv-dnu"] = { "Dinka-Nuer", nil, "sdv-niw", } m["sdv-eje"] = { "Eastern Jebel", 3408878, "sdv", } m["sdv-kln"] = { "Kalenjin", 637228, "sdv-nis", } m["sdv-lma"] = { "Lotuko-Maa", nil, "sdv-nie", } m["sdv-lon"] = { "Northern Luo", nil, "sdv-luo", } m["sdv-los"] = { "Southern Luo", 7570103, "sdv-luo", } m["sdv-luo"] = { "Luo", nil, "sdv-niw", } m["sdv-nes"] = { "Northern Eastern Sudanic", 4810496, "sdv", aliases = {"Astaboran", "Ek Sudanic"}, } m["sdv-nie"] = { "Eastern Nilotic", 153795, "sdv-nil", } m["sdv-nil"] = { "Nilotic", 513408, "sdv", } m["sdv-nis"] = { "Southern Nilotic", 1552410, "sdv-nil", } m["sdv-niw"] = { "Western Nilotic", 3114989, "sdv-nil", } m["sdv-nma"] = { "Nandi-Markweta", nil, "sdv-kln", } m["sdv-nyi"] = { "Nyima", 11688746, "sdv-nes", aliases = {"Nyimang"}, } m["sdv-tmn"] = { "Taman", 3408873, "sdv-nes", aliases = {"Tamaic"}, } m["sdv-ttu"] = { "Teso-Turkana", 7705551, "sdv-nie", aliases = {"Ateker"}, } m["sel"] = { "Selkup", 34008, "syd", } m["sem"] = { "Semitic", 34049, "afa", } m["sem-ara"] = { "Aramaic", 28602, "sem-nwe", protoLanguage = "arc", } m["sem-arb"] = { "Arabic", 164667, "sem-cen", protoLanguage = "ar", } m["sem-are"] = { "Eastern Aramaic", 3410322, "sem-ara", } m["sem-arw"] = { "Western Aramaic", 3394214, "sem-ara", } m["sem-ase"] = { "Southeastern Aramaic", 3410322, "sem-are", } m["sem-can"] = { "Canaanite", 747547, "sem-nwe", } m["sem-cen"] = { "Central Semitic", 3433228, "sem-wes", } m["sem-cna"] = { "Central Neo-Aramaic", 3410322, "sem-are", } m["sem-eas"] = { "East Semitic", 164273, "sem", } m["sem-eth"] = { "Ethiopian Semitic", 163629, "sem-wes", aliases = {"Afro-Semitic", "Ethiopian", "Ethiopic", "Ethiosemitic"}, } m["sem-nna"] = { "Northeastern Neo-Aramaic", 2560578, "sem-are", } m["sem-nwe"] = { "Northwest Semitic", 162996, "sem-cen", } m["sem-osa"] = { "Old South Arabian", 35025, "sem-cen", aliases = {"Epigraphic South Arabian", "Sayhadic"}, } m["sem-sar"] = { "Modern South Arabian", 1981908, "sem-wes", } m["sem-wes"] = { "West Semitic", 124901, "sem", } m["sgn"] = { "sign", 34228, "qfa-not", } m["sgn-fsl"] = { "French Sign Languages", 5501921, "sgn", } m["sgn-gsl"] = { "German Sign Languages", 5551235, "sgn", } m["sgn-jsl"] = { "Japanese Sign Languages", 11722508, "sgn", } m["sio"] = { "Siouan", 34181, "nai-sca", } m["sio-dhe"] = { "Dhegihan", 3217420, "sio-msv", } m["sio-dkt"] = { "Dakotan", 4154122, "sio-msv", } m["sio-mor"] = { "Missouri River Siouan", 26807266, "sio", } m["sio-msv"] = { "Mississippi Valley Siouan", 12637104, "sio", } m["sio-ohv"] = { "Ohio Valley Siouan", 21070931, "sio", } m["sit"] = { "Sino-Tibetano", --TLCHANGE "Sino-Tibetan" 45961, aliases = {"Trans-Himalayan"}, english_name = "Sino-Tibetan" --TLCHANGE } m["sit-aao"] = { "Central Naga", 615474, "sit", } m["sit-alm"] = { "Almora", nil, "sit-whm", } m["sit-bai"] = { "Bai", 35103, "sit-mba", } m["sit-bdi"] = { "Bodish", 1814078, "sit", } m["sit-cln"] = { "Cai-Long", 107182612, "sit-mba", aliases = {"Ta-Li"}, } m["sit-dhi"] = { "Dhimalish", 1207648, "sit", } m["sit-ebo"] = { "East Bodish", 56402, "sit-bdi", } m["sit-egy"] = { "East rGyalrongic", 832026, "sit-rgy", } m["sit-ers"] = { "Ersuic", 56335, "sit", } m["sit-gma"] = { "Greater Magaric", 55612963, "sit", } m["sit-gsi"] = { "Greater Siangic", 52698851, "sit", } m["sit-hrs"] = { "Hrusish", 1632501, "sit", aliases = {"Southeast Kamengic"}, } m["sit-jnp"] = { "Jingphoic", nil, "sit-jpl", aliases = {"Jingpho"}, } m["sit-jpl"] = { "Kachin-Luic", 1515454, "tbq-bkj", aliases = {"Jingpho-Luish", "Jingpho-Asakian", "Kachinic"}, } m["sit-kch"] = { "Konyak-Chang", nil, "sit-kon", } m["sit-kha"] = { "Kham", 33305, "sit-gma", } m["sit-khb"] = { "Kho-Bwa", 6401917, "sit", aliases = {"Bugunish", "Kamengic"}, } m["sit-khw"] = { "Western Kho-Bwa", nil, "sit-khb", } m["sit-khc"] = { "Chug-Lish", nil, "sit-khw", aliases = {"Duhumbi-Khispi"}, } m["sit-khm"] = { "Mey-Sartang", nil, "sit-khw", aliases = {"Sartang-Sherdukpen"}, } m["sit-kic"] = { "Central Kiranti", nil, "sit-kir", } m["sit-kie"] = { "Eastern Kiranti", nil, "sit-kir", } m["sit-kin"] = { "Kinnauric", nil, "sit-whm", aliases = {"Kinnauri"}, } m["sit-kir"] = { "Kiranti", 922148, "sit", } m["sit-kiw"] = { "Western Kiranti", 922148, "sit-kir", } m["sit-kon"] = { "Northern Naga", 774590, "tbq-bkj", aliases = {"Konyakian", "Konyak"}, } m["sit-kyk"] = { "Kyirong-Kagate", 6450957, "sit-tib", } m["sit-lab"] = { "Ladakhi-Balti", 6450957, "sit-tib", } m["sit-las"] = { "Lahuli-Spiti", 6473510, "sit-tib", } m["sit-luu"] = { "Luish", 55621439, "sit-jpl", aliases = {"Asakian", "Sak"}, } m["sit-mar"] = { "Maringic", nil, "sit-tma", } m["sit-mba"] = { "Macro-Bai", 16963847, "sit-sba", aliases = {"Greater Bai"}, } m["sit-mdz"] = { "Midzu", 6843504, "sit", aliases = {"Geman", "Midzuish", "Miju-Meyor", "Southern Mishmi"}, } m["sit-mnz"] = { "Mondzish", 6898839, "tbq-lob", aliases = {"Mangish"}, } m["sit-mru"] = { "Mruic", 16908870, "sit", aliases = {"Mru-Hkongso"}, } m["sit-nas"] = { "Naish", 25047956, "sit-nax", } m["sit-nax"] = { "Naic", 6982999, "tbq-buq", aliases = {"Naxish"}, } m["sit-nba"] = { "Northern Bai", 122463830, "sit-bai", } m["sit-new"] = { "Newaric", 55625069, "sit", } m["sit-nng"] = { "Nungish", 1515482, "sit", aliases = {"Nung"}, } m["sit-qia"] = { "Qiangic", 1636765, "tbq-buq", } m["sit-rgy"] = { "Rgyalrongic", 56936, "sit-qia", aliases = {"Jiarongic"}, } m["sit-sba"] = { "Sino-Bai", nil, "sit", aliases = {"Greater Bai"}, } m["sit-tam"] = { "Tamangic", 3309439, "sit", aliases = {"West Bodish"}, } m["sit-tan"] = { "Tani", 3217538, "sit", } m["sit-tib"] = { "Tibetic", 1641150, "sit-bdi", protoLanguage = "otb", } m["sit-tja"] = { "Tujia", nil, "sit", } m["sit-tma"] = { "Tangkhul-Maring", nil, "sit", } m["sit-tng"] = { "Tangkhulic", 1516657, "sit-tma", aliases = {"Tangkhul"}, } m["sit-tno"] = { "Tangsa-Nocte", nil, "sit-kon", } m["sit-tsk"] = { "Tshangla", nil, "sit", } m["sit-wgy"] = { "West rGyalrongic", nil, "sit-rgy" } m["sit-whm"] = { "West Himalayish", 2301695, "sit", } m["sit-zem"] = { "Zeme", 189291, "sit", aliases = {"Zeliangrong", "Zemeic"}, } m["sla"] = { "Slavic", 23526, "ine-bsl", aliases = {"Slavonic"}, } m["smi"] = { "Sami", 56463, "urj", aliases = {"Saami", "Samic", "Saamic"}, } m["son"] = { "Songhay", 505198, "ssa", aliases = {"Songhai"}, } m["sqj"] = { "Albanian", 8748, "ine", } m["ssa"] = { "Nilo-Saharan", -- possibly not a genetic grouping 33705, } m["ssa-fur"] = { "Fur", 2989512, "ssa", } m["ssa-klk"] = { "Kuliak", 1791476, "ssa", aliases = {"Rub"}, } m["ssa-kom"] = { "Koman", 1781084, "ssa", } m["ssa-sah"] = { "Saharan", 1757661, "ssa", } m["syd"] = { "Samoyedic", 34005, "urj", aliases = {"Samoyed", "Samodeic"}, } m["syd-ene"] = { "Enets", 29942, "syd", } m["tai"] = { "Tai", 749720, "qfa-bet", aliases = {"Daic"}, } m["tai-wen"] = { "Wenma-Southwestern Tai", nil, "tai", } m["tai-tay"] = { "Tày", nil, "tai-wen", } m["tai-sap"] = { "Sapa-Southwestern Tai", nil, "tai-wen", aliases = {"Sapa-Thai"}, } m["tai-swe"] = { "Southwestern Tai", 10889250, "tai-sap", } m["tai-cho"] = { "Chongzuo Tai", 13216, "tai", } m["tai-cen"] = { "Central Tai", 5061891, "tai", } m["tai-nor"] = { "Northern Tai", 7059014, "tai", } m["tbq"] = { "Tibeto-Burman", 34064, "sit", } m["tbq-anp"] = { "Angami-Pochuri", 530460, "sit", } m["tbq-axi"] = { "Axioid", nil, "tbq-sel", } m["tbq-bdg"] = { "Bodo-Garo", 4090000, "tbq-bkj", } m["tbq-bis"] = { "Bisoid", 48844742, "tbq-slo", } m["tbq-bka"] = { "Bi-Ka", 12627890, "tbq-slo", } m["tbq-bkj"] = { "Sal", 889900, "sit", -- Brahmaputran appears to be Glottolog's term aliases = {"Bodo-Konyak-Jinghpaw", "Brahmaputran", "Jingpho-Konyak-Bodo"}, } m["tbq-brm"] = { "Burmish", 865713, "tbq-lob", } m["tbq-buq"] = { "Burmo-Qiangic", 16056278, "sit", aliases = {"Eastern Tibeto-Burman"}, } m["tbq-drp"] = { "Downriver Phula", 7188378, "tbq-rph", } m["tbq-han"] = { "Hanoid", 17004185, "tbq-slo", } m["tbq-hph"] = { "Highland Phula", nil, "tbq-sel", } m["tbq-jin"] = { "Jino", 6202716, "tbq-slo", } m["tbq-kzh"] = { "Kazhuoish", 48834669, "tbq-lol", } m["tbq-kuk"] = { "Kuki-Chin", 832413, "sit", aliases = {"Kukish", "South-Central Tibeto-Burman"}, } m["tbq-lal"] = { "Lalo", 56548, "tbq-lso", } m["tbq-lho"] = { "Lahoish", nil, "tbq-lol", } m["tbq-llo"] = { "Lipo-Lolopo", nil, "tbq-lso", } m["tbq-lob"] = { "Lolo-Burmese", 1635712, "tbq-buq", } m["tbq-lol"] = { "Loloish", 37035, "tbq-lob", aliases = {"Yi", "Ngwi", "Nisoic"}, } m["tbq-lso"] = { "Lisoish", 6559055, "tbq-lol", } m["tbq-lwo"] = { "Lawoish", 48847673, "tbq-lol", } m["tbq-muj"] = { "Muji", 11221327, "tbq-hph", } m["tbq-nas"] = { "Nasoid", nil, "tbq-nlo", } m["tbq-nis"] = { "Nisu", 56404, "tbq-nlo", } m["tbq-nlo"] = { "Northern Loloish", 7058676, "tbq-nso", } m["tbq-nso"] = { "Nisoish", 56990, "tbq-lol", } m["tbq-nus"] = { "Nusoish", 114245231, "tbq-lol", } m["tbq-phw"] = { "Phowa", 7187959, "tbq-hph", } m["tbq-rph"] = { "Riverine Phula", nil, "tbq-sel", } m["tbq-sel"] = { "Southeastern Loloish", 16111894, "tbq-nso", } m["tbq-sil"] = { "Siloid", 60787071, "tbq-slo", } m["tbq-slo"] = { "Southern Loloish", 5649340, "tbq-lol", } m["tbq-tal"] = { "Taloid", 48804018, "tbq-lso", } m["tbq-urp"] = { "Upriver Phula", 7187058, "tbq-rph", } m["trk"] = { "Turkic", 34090, } m["trk-cmn"] = { "Common Turkic", 1126028, "trk", aliases = {"Shaz Turkic", "Shaz-Turkic"}, } m["trk-kar"] = { "Karluk", 703173, "trk-cmn", aliases = {"Qarluq", "Uyghur-Uzbek", "Southeastern Turkic"}, } m["trk-kbu"] = { "Kipchak-Bulgar", 3512539, "trk-kip", aliases = {"Uralian", "Uralo-Caspian"}, } m["trk-kcu"] = { "Kipchak-Cuman", 4370412, "trk-kip", aliases = {"Ponto-Caspian"}, } m["trk-kip"] = { "Kipchak", 1339898, "trk-cmn", -- Russian Wikipedia article [[w:ru:Западнотюркские_языки]] says "Western Turkic" is used by N.A. Baskakov and includes Oghuz, Kipchak and Karluk. -- Azerbaijani Wikipedia article [[w:az:Qərbi_türk_dilləri]] clarifies that "Western Turkic" is not a clade. other_names = {"Western Turkic"}, aliases = {"Kypchak", "Qypchaq", "Northwestern Turkic"}, protoLanguage = "qwm", } m["trk-kkp"] = { "Kyrgyz-Kipchak", 4221189, "trk-kip", } m["trk-kno"] = { "Kipchak-Nogai", 4326954, "trk-kip", aliases = {"Aralo-Caspian"}, } m["trk-nsb"] = { "North Siberian Turkic", 4537269, "trk-sib", aliases = {"Northern Siberian Turkic"}, } m["trk-ogr"] = { "Oghur", 1422731, "trk", aliases = {"Lir-Turkic", "r-Turkic"}, } m["trk-ogz"] = { "Oghuz", 494600, "trk-cmn", aliases = {"Southwestern Turkic"}, } m["trk-sib"] = { "Siberian Turkic", 354353, "trk-cmn", other_names = {"Northern Turkic"}, -- per [[w:ru:Восточнотюркские_языки]], "Eastern Turkic" is an alias for Siberian Turkic in the work of O.A. Mudrak, -- but has a different non-clade meaning in the older work of N.A. Baskakov. aliases = {"Eastern Turkic", "Northeastern Turkic"}, } m["trk-ssb"] = { "South Siberian Turkic", nil, "trk-sib", aliases = {"Southern Siberian Turkic"}, } m["tup"] = { "Tupian", 34070, aliases = {"Tupi"}, } m["tup-gua"] = { "Tupi-Guarani", 148610, "tup", aliases = {"Tupí-Guaraní"}, } m["tuw"] = { "Tungusic", 34230, aliases = {"Manchu-Tungus", "Tungus"}, } m["tuw-ewe"] = { "Ewenic", 105889448, "tuw", aliases = {"Northern Tungusic"}, } m["tuw-jrc"] = { "Jurchenic", 105889432, "tuw", aliases = {"Manchuric"}, } m["tuw-nan"] = { "Nanaic", 105889264, "tuw", } m["tuw-udg"] = { "Udegheic", 105889266, "tuw", } m["urj"] = { "Uralic", 34113, varieties = {"Finno-Ugric"}, } m["urj-fin"] = { "Fino-baltiko", --TLCHANGE 33328, "urj", aliases = {"Baltic-Finnic", "Balto-Finnic", "Fennic"}, english_name = "Finnic", --TLCHANGE spanish_name = "Fino-báltico", --TLCHANGE } m["urj-mdv"] = { "Mordvinic", 627313, "urj", } m["urj-prm"] = { "Permic", 161493, "urj", } m["urj-ugr"] = { "Ugric", 156631, "urj", } m["wak"] = { "Wakashan", 60069, } m["wen"] = { "Sorbian", 25442, "zlw", aliases = {"Lusatian", "Wendish"}, } m["xgn"] = { "Mongolic", 33750, "qfa-xgs", aliases = {"Mongolian"}, } m["xgn-cen"] = { "Central Mongolic", 28719447, "xgn", protoLanguage = "xng-lat", } m["xgn-sou"] = { "Southern Mongolic", nil, "xgn", protoLanguage = "xng-ear", } m["xgn-shr"] = { "Shirongolic", 107539435, "xgn-sou", } m["xme"] = { "Median", nil, "ira-mpr", protoLanguage = "xme-old", } m["xme-ttc"] = { "Tatic", nil, "xme", } m["xnd"] = { "Na-Dene", 26986, "qfa-dny", aliases = {"Na-Dené"}, } m["xsc"] = { "Scythian", nil, "ira-nei", } m["xsc-sak"] = { "Saka", nil, "xsc-skw", aliases = {"Sakan"}, } m["xsc-sar"] = { "Sarmatian", nil, "xsc", } m["xsc-skw"] = { "Saka-Wakhi", nil, "xsc", } m["yok"] = { "Yokuts", 34249, "nai-you", aliases = {"Yokutsan", "Mariposan", "Mariposa"}, } m["ypk"] = { "Yupik", 27970, "esx-esk", aliases = {"Yup'ik", "Yuit"}, } m["yrk"] = { "Nenets", 36452, "syd", } m["zhx"] = { "Sinitiko", --TLCHANGE "Sinitic" 33857, "sit-sba", aliases = {"Chinese"}, protoLanguage = "och", english_name = "Sinitic", --TLCHANGE spanish_name = "Sinitico", --TLCHANGE } m["zhx-com"] = { "Min Pandalampasigan", --TLCHANGE "baybayin" is already an overloaded term (used in wiktionary in the spelling sense), so let's use "dalampasigan" instead 20667215, "zhx-min", english_name = "Coastal Min", --TLCHANGE } m["zhx-inm"] = { "Min Pang-ilaya", --TLCHANGE 20667237, "zhx-min", english_name = "Inland Min", --TLCHANGE } m["zhx-man"] = { "Mandariniko", --TLCHANGE nil, "zhx", protoLanguage = "cmn-ear", english_name = "Mandarinic", --TLCHANGE spanish_name = "Mandarinico", --TLCHANGE } m["zhx-min"] = { "Min", 56504, "zhx", } m["zhx-nan"] = { "Katimugang Min", --TLCHANGE 36495, "zhx-com", english_name = "Southern Min", --TLCHANGE } m["zhx-pin"] = { "Pinghua", 2735715, "zhx", protoLanguage = "ltc", } m["zhx-yue"] = { "Yue", 7033959, "zhx", protoLanguage = "ltc", } m["zle"] = { "East Slavic", 144713, "sla", } m["zls"] = { "South Slavic", 146665, "sla", } m["zlw"] = { "West Slavic", 145852, "sla", } m["zlw-lch"] = { "Lechitic", 742782, "zlw", aliases = {"Lekhitic"}, } m["zlw-pom"] = { "Pomeranian", nil, "zlw-lch", } m["znd"] = { "Zande", 8066072, "nic-ubg", } return require("Module:languages").finalizeData(m, "family") kwehedwxbt5sqryyjul82gvm2oowzl2 Padron:tl-personal pronouns 10 30909 177915 171221 2026-09-12T13:39:43Z Yivan000 4078 enwikt parity 177915 wikitext text/x-wiki {{inflection-table-top|title=Tagalog personal pronouns|tall=yes|palette=grey}} ! width="100"| Person ! width="100"| Number ! width="100"| Direct (ang) ! width="100"| Indirect (ng) ! width="100"| Oblique (sa) |- ! valign="top" rowspan=4 | First ! singular | {{l-self|tl|ako}} | {{l-self|tl|ko}} | {{l-self|tl|akin}} |- ! valign="top" | dual<span style="font-weight:normal">{{sup|1}}</span> | {{l-self|tl|kita}}, {{l-self|tl|kata}} | {{l-self|tl|nita}}, {{l-self|tl|nata}}, {{l-self|tl|ta}} | {{l-self|tl|kanita}}, {{l-self|tl|kanata}}, {{l-self|tl|ata}} |- ! valign="top" | plural inclusive | {{l-self|tl|tayo}} | {{l-self|tl|natin}} | {{l-self|tl|atin}} |- ! valign="top" | plural exclusive | {{l-self|tl|kami}} | {{l-self|tl|namin}} | {{l-self|tl|amin}} |- ! valign="top"| First & Second ! singular | colspan=2| {{l-self|tl|kita}}<span style="font-weight:normal">{{sup|2}}</span> | |- ! valign="top" rowspan=2 | Second ! singular | {{l-self|tl|ikaw}}, {{l-self|tl|ka}} | {{l-self|tl|mo}} | {{l-self|tl|iyo}} |- | ! | plural | {{l-self|tl|kayo}}, {{l-self|tl|kamo}} | {{l-self|tl|ninyo}}, {{l-self|tl|niyo}} | {{l-self|tl|inyo}} |- | ! valign="top" rowspan=2 | Third ! | singular | {{l-self|tl|siya}} | {{l-self|tl|niya}} | {{l-self|tl|kaniya}} |- | ! | plural | {{l-self|tl|sila}} | {{l-self|tl|nila}} | {{l-self|tl|kanila}} {{inflection-table-bottom|notes=<small style="font-weight:normal">{{sup|1}} First person dual pronouns are not commonly used in Standard Tagalog.<br />{{sup|2}} Replaces {{m-self|tl|[[ko]] [[ikaw]]}}.</small>}}<noinclude>{{documentation}}</noinclude> otofgyrq1m9mn0gt9b8ruc17ouggz5p 177916 177915 2026-09-12T13:43:06Z Yivan000 4078 177916 wikitext text/x-wiki {{inflection-table-top|title=Tagalog personal pronouns|tall=yes|palette=grey}} ! width="100"| Panauhan ! width="100"| Number ! width="100"| Direct (ang) ! width="100"| Indirect (ng) ! width="100"| Oblique (sa) |- ! valign="top" rowspan=4 | Una ! isahan | {{l-self|tl|ako}} | {{l-self|tl|ko}} | {{l-self|tl|akin}} |- ! valign="top" | dalawahan<span style="font-weight:normal">{{sup|1}}</span> | {{l-self|tl|kita}}, {{l-self|tl|kata}} | {{l-self|tl|nita}}, {{l-self|tl|nata}}, {{l-self|tl|ta}} | {{l-self|tl|kanita}}, {{l-self|tl|kanata}}, {{l-self|tl|ata}} |- ! valign="top" | plural inclusive | {{l-self|tl|tayo}} | {{l-self|tl|natin}} | {{l-self|tl|atin}} |- ! valign="top" | plural exclusive | {{l-self|tl|kami}} | {{l-self|tl|namin}} | {{l-self|tl|amin}} |- ! valign="top"| Una & Ikalawa ! singular | colspan=2| {{l-self|tl|kita}}<span style="font-weight:normal">{{sup|2}}</span> | |- ! valign="top" rowspan=2 | Ikalawa ! isahan | {{l-self|tl|ikaw}}, {{l-self|tl|ka}} | {{l-self|tl|mo}} | {{l-self|tl|iyo}} |- | ! | maramihan | {{l-self|tl|kayo}}, {{l-self|tl|kamo}} | {{l-self|tl|ninyo}}, {{l-self|tl|niyo}} | {{l-self|tl|inyo}} |- | ! valign="top" rowspan=2 | Ikatlo ! | isahan | {{l-self|tl|siya}} | {{l-self|tl|niya}} | {{l-self|tl|kaniya}} |- | ! | maramihan | {{l-self|tl|sila}} | {{l-self|tl|nila}} | {{l-self|tl|kanila}} {{inflection-table-bottom|notes=<small style="font-weight:normal">{{sup|1}} First person dual pronouns are not commonly used in Standard Tagalog.<br />{{sup|2}} Replaces {{m-self|tl|[[ko]] [[ikaw]]}}.</small>}}<noinclude>{{documentation}}</noinclude> pp1n12xnfjm0ssvpcd7nj849lse2q2v Module:category tree/templates 828 31202 177917 174963 2026-09-12T13:49:23Z Yivan000 4078 177917 Scribunto text/plain local labels = {} local raw_categories = {} local tl_utilities_module = "Module:tl-utilities" --TLCHANGE --TLCHANGE add this function local function add_linker(...) add_linker = require(tl_utilities_module).add_linker return add_linker(...) end ----------------------------------------------------------------------------- -- -- -- LABELS -- -- -- ----------------------------------------------------------------------------- labels["na padron"] = { --TLCHANGE "templates" description = "{{{langname}}} [[Wiktionary:Templates|templates]], which contain reusable wiki code that helps with creating and managing entries.", umbrella = { parents = {{name = "Mga padron", sort = " "}}, --TLCHANGE "Templates" breadcrumb = "ayon sa wika", --TLCHANGE "by language" }, parents = {{name = "{{{langcat}}}", raw = true}}, english_name = "templates", --TLCHANGE } labels["auto-table templates"] = { description = "Templates that contain {{{langname}}} tables generated automatically.", additional = "They use the <code>table:</code> prefix. For example, see [[Template:table:chess pieces/en]].", parents = {"na padrong pangkawing"}, --TLCHANGE "link templates" } labels["category boilerplate templates"] = { description = "Templates used to generate descriptions and categorization for category pages.", parents = {"na padron"}, --TLCHANGE "templates" } labels["conversion templates"] = { description = "Templates used in {{{langname}}} entries to convert between different orthographic or numeral representations.", parents = {"na padron"}, --TLCHANGE "templates" } labels["na padrong pangkahulugan"] = { --TLCHANGE description = "Templates used in the [[Wiktionary:Glossary#definition line|definition line]] of {{{langname}}} entries to help in creating definitions.", parents = {"na padron"}, --TLCHANGE "templates" english_name = "definition templates", --TLCHANGE } labels["na padrong pang-entrada"] = { --TLCHANGE description = "Templates used to help in the creation of {{{langname}}} entries.", umbrella_parents = {"Subkategoryang pampadron ayon sa wika", "Padrong pang-entrada"}, --TLCHANGE {"Templates subcategories by language", "Entry templates"}, parents = {"na padron"}, --TLCHANGE "templates" english_name = "entry templates", --TLCHANGE } labels["na padrong pang-etimolohiya"] = { --TLCHANGE description = "Templates used in the etymology section of {{{langname}}} entries.", parents = {"na padron"}, --TLCHANGE "templates" english_name = "etymology templates", --TLCHANGE } labels["experimental templates"] = { description = "Templates used to test possible content for {{{langname}}} entries.", parents = {"na padron"}, --TLCHANGE "templates" } labels["form-of templates"] = { description = "Templates used on the definition line of entries for inflected forms of words in {{{langdisp}}}, to link back to the main form.", parents = {"definition templates", "link templates"}, } labels["headword-line templates"] = { description = "Templates used in {{{langname}}} entries to display lines containing headwords.", parents = {"na padron"}, --TLCHANGE "templates" } labels["index templates"] = { description = "Templates used to organize {{{langname}}} indexes.", parents = {"na padrong pangkawing"}, --TLCHANGE "link templates" } labels["na padrong pantalahanayan ng pagbabagong-anyo"] = { --TLCHANGE description = "Templates used to show inflection tables for {{{langname}}} terms.", parents = {"na padron"}, --TLCHANGE "templates" english_name = "inflection-table templates", --TLCHANGE } -- Do particular types of inflection-table templates. for _, pos in ipairs({ --TLCHANGE {"pang-uri", "adjective"}, {"pang-abay", "adverb"}, {"pantukoy", "determiner"}, {"", "nominal"}, --TODO {"pangngalan", "noun"}, {"pambilang", "numeral"}, {"pandiwari", "participle"}, {"", "postposition"}, --TODO {"kataga", "particle"}, {"pang-ukol", "preposition"}, {"panghalip", "pronoun"}, {"pandiwa", "verb"}, }) do labels["na padrong pantalahanayan ng pagbabagong-anyo ng " .. pos[1]] = { description = "Templates used to show declension tables for {{{langname}}} " .. pos[1] .. "s.", parents = {"na padrong pantalahanayan ng pagbabagong-anyo"}, --TLCHANGE "inflection-table templates" english_name = pos[2] .. " inflection-table templates", --TLCHANGE } end labels["na padrong pangkawing"] = { --TLCHANGE description = "{{{langname}}} templates used to create links to other entries.", parents = {"na padron"}, --TLCHANGE "templates" english_name = "link templates", --TLCHANGE } labels["list templates"] = { description = "Templates that contain {{{langname}}} lists.", additional = "They use the <code>list:</code> prefix. For example, see [[Template:list:Latin script letters/en]].<br />" .. "See also [[:Category:List templates]].", parents = {"na padrong pangkawing"}, --TLCHANGE "link templates" } labels["mutation templates"] = { description = "Templates used to show mutation of {{{langname}}} words.", parents = {"na padron"}, --TLCHANGE "templates" } labels["na padrong pangnabegasyon"] = { --TLCHANGE description = "{{{langname}}} templates used to create navigation boxes for easily linking to other similar pages.", additional = "Examples are all the members of a given class (e.g. personal pronouns, interrogatives, demonstratives), cardinal numbers up to 100, category TOC (table-of-contents) templates, etc.", parents = {"na padrong pangkawing"}, --TLCHANGE "link templates" english_name = "navigation templates", --TLCHANGE } labels["na padrong pambigkas"] = { description = "Templates used to generate IPA pronunciation, rhymes, hyphenation, etc. for {{{langname}}} entries.", umbrella_parents = {"Subkategoryang pampadron ayon sa wika", "Category:Padrong pambigkas"}, --TLCHANGE {"Templates subcategories by language", "Category:Pronunciation templates"}, parents = {"na padron"}, --TLCHANGE "templates" english_name = "pronunciation templates", --TLCHANGE } labels["sign production templates"] = { description = "Templates used in describing and showing the production of {{{langname}}} signs.", parents = {"pronunciation templates"}, } labels["quotation templates"] = { description = "Templates used to generate quotations for {{{langname}}} entries.", umbrella_parents = {"Templates subcategories by language", "Category:Citation templates"}, parents = {"na padron"}, --TLCHANGE "templates" } labels["quotation navigation templates"] = { description = "Templates used in the documentation of {{{langname}}} [[Wiktionary:Quotations/Templates|quotation templates]] in order to link to quotation templates for other works by the same author.", umbrella_parents = {"Templates subcategories by language", "Category:Navigation templates", "Category:Quotation templates by language"}, parents = {"quotation templates"}, } labels["na padrong pansangguni"] = { --TLCHANGE topright = function(data) if data.lang and data.lang:getCode() == "ine-pro" then return "{{shortcut|WT:RTINE}}" end end, umbrella = { preceding = "{{also|Wiktionary:Reference templates}}\n{{also|Template:refcat}}", parents = {"Subkategoryang pampadron ayon sa wika", "Category:Padrong pansangguni"}, --TLCHANGE {"Templates subcategories by language", "Category:Reference templates"}, breadcrumb = "ayon sa wika", --TLCHANGE "by language", }, description = "Templates used to generate reference footnotes for {{{langname}}} entries.", parents = {"na padron"}, --TLCHANGE "templates" english_name = "reference templates", --TLCHANGE } labels["reference navigation templates"] = { description = "Templates used in the documentation of reference templates in order to link to related reference templates.", umbrella_parents = {"Templates subcategories by language", "Category:Navigation templates", "Category:Reference templates by language"}, parents = {"reference templates", "link templates"}, } labels["supplementary templates"] = { description = "Templates used to keep contents for other {{{langname}}} templates.", parents = {"na padron"}, --TLCHANGE "templates" } labels["inflection-table subtemplates"] = { description = "Templates used to assist in constructing parts of {{{langname}}} inflection-table templates.", parents = {"supplementary templates"}, } labels["usage templates"] = { description = "Templates used to show usage notes in {{{langname}}} entries.", parents = {"na padron"}, --TLCHANGE "templates" } for key, data in pairs(labels) do -- Add 'umbrella_parents' key if not already present. if not data.umbrella and not data.umbrella_parents then data.umbrella_parents = "Subkategoryang pampadron ayon sa wika" --TLCHANGE "Templates subcategories by language" end -- Add breadcrumb by chopping off the parent (or the parent's parent, etc.) from the end of the label, if possible. if not data.breadcrumb then local parent = data.parents[1] while true do if type(parent) == "string" then local parent_re = " " .. require("Module:string utilities").pattern_escape(parent) .. "$" if key:find(parent_re) then data.breadcrumb = key:gsub(parent_re, "") break end if labels[parent] then parent = labels[parent].parents[1] else break end else break end end end end ----------------------------------------------------------------------------- -- -- -- RAW CATEGORIES -- -- -- ----------------------------------------------------------------------------- raw_categories["Mga padron"] = { --TLCHANGE topright = "{{shortcut|WT:T}}", description = "An organizing category intended for all templates in use on Wiktionary.", additional = "''Tingnan din: [[Wiksiyonaryo:Mga padron]], [[meta:Help:Template]]''", --TLCHANGE parents = {"Wiksiyonaryo"}, --TLCHANGE english_name = "Templates", --TLCHANGE } raw_categories["Administration templates"] = { description = "Templates used in the administration of Wiktionary.", additional = "They are only used outside of mainspace and are distinct from [[:Category:Maintenance templates|maintenance templates]], which are used in maintaining entries.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Archive templates"] = { description = "Templates used on archived or otherwise inactive pages.", parents = {"Administration templates"}, } raw_categories["CheckUser templates"] = { description = "Templates related to [[Wiktionary:Requests for checkuser|checkuser requests]].", parents = {"Administration templates"}, } raw_categories["Editnotices"] = { description = "Templates used to display notices in edit mode.", parents = {"Administration templates"}, } raw_categories["Appendix templates"] = { description = "Templates used in appendices or to link to appendices.", parents = {"Templates", "Category:Appendices"}, } raw_categories["Swadesh list templates"] = { description = "Templates used on pages that contain [[w:Swadesh list]]s.<br />" .. "See also [[Wiktionary:Swadesh template]] and [[Wiktionary:Swadesh template categorized]].", parents = {"Appendix templates"}, } raw_categories["Astrology templates"] = { description = "Templates that display astrology-related diagrams or boxes.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Audio templates"] = { description = "Templates used to play or request audio files.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Auto-table templates"] = { description = "Templates used to generate word tables (like [[Template:table:seasons]]).", additional = "See also [[:Category:Auto-table templates by language]].", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Box templates"] = { description = "General purpose box templates.", additional = "If you're considering making a template that looks like a box, look here first!", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Categorization templates"] = { preceding = "{{also|:Category:Category modules}}", description = "Templates used to categorize terms or entries.", additional = "([[:Category:Category templates]], on the other hand, contains templates used in the category namespace.)", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Category templates"] = { description = "Templates used in the category namespace.", additional = "([[:Category:Categorization templates]], on the other hand, contains templates used to categorize pages.)", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Category boilerplate templates"] = { description = "Templates used to generate the text of category pages.", parents = {"Category templates"}, } raw_categories["TOC templates"] = { description = "Templates used to generate a list of linked letters to navigate the pages listed in categories.", parents = {"Category templates", "Navigation templates"}, } raw_categories["Character info templates"] = { description = "Templates that utilize {{temp|character info}}.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Character insertion templates"] = { description = "Templates that provide easier ways to type characters that are not found in most keyboard layouts.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Templates for generating characters used in wiki code"] = { description = "Templates used to generate characters that are reserved for specific wiki code functions and cannot be directly entered.", additional = "An alternative to using these templates is to use an HTML entity such as <code>&amp;#91</code> " .. "for a left bracket.<br />" .. "Note that the templates below are sorted by the first character of the wikicode that each template generates.", parents = {"Character insertion templates"}, } raw_categories["Chemistry templates"] = { description = "Templates that display chemistry-related diagrams or boxes.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Chess templates"] = { description = "Templates that display chess diagrams.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Citation templates"] = { preceding = "{{ombox|type=speedy|text=Some templates may be marked '''FOR TESTING ONLY'''. Do not use these in entries, if requested on the template page itself. Take a look at the template page before using it.}}", description = "Templates used to generate citations and quotations.", additional = [=[ {{citation templates}} ==See also== * [[Wiktionary:Quotations]] * [[:Category:Reference templates]] for specific templates to well-known and widely used sources.]=], parents = {"Mga padron"}, --TLCHANGE "Templates" } -- Skipped: Concordance templates raw_categories["Control flow templates"] = { description = "Templates to aid in control-flow constructs, which the template language is normally limited in.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Cross reference templates"] = { description = "Templates used to create cross-references between sections.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Dating templates"] = { description = "Templates for displaying dates.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Padrong pangkahulugan"] = { --TLCHANGE description = "Templates used in the [[Wiktionary:Glossary#definition line|definition line]] to help in creating definitions.", parents = {"Mga padron"}, --TLCHANGE "Templates" english_name = "Definition templates", --TLCHANGE } raw_categories["Form-of templates"] = { description = "Templates used in defining inflections or variants of a given lemma.", parents = {"Padrong pangkahulugan"}, --TLCHANGE "Definition templates" } raw_categories["Grammar form-of templates"] = { description = "Templates used in defining terms that stand in a particular grammatical relation to a given lemma.", parents = {"Form-of templates"}, } raw_categories["Conjugation form-of templates"] = { description = "Templates used in defining terms that represent particular verb forms (e.g. past participle) of given lemma.", parents = {"Grammar form-of templates"}, } raw_categories["Declension form-of templates"] = { description = "Templates used in defining terms that represent particular noun or adjective forms (e.g. masculine plural) of given lemma.", parents = {"Grammar form-of templates"}, } raw_categories["Padrong pampangalan"] = { --TLCHANGE description = "Templates used in the [[Wiktionary:Glossary#definition line|definition line]] to help in creating definitions for names.", parents = {"Padrong pangkahulugan"}, --TLCHANGE "Definition templates" english_name = "Name templates", --TLCHANGE } raw_categories["Object usage templates"] = { description = "Templates used in the [[Wiktionary:Glossary#definition line|definition line]] to show case and adposition usage for verb objects and similar constructs.", parents = {"Padrong pangkahulugan"}, --TLCHANGE "Definition templates" } raw_categories["Place name templates"] = { description = "Templates used in defining place names or demonyms that refer to place names.", parents = {"Padrong pangkahulugan"}, --TLCHANGE "Definition templates" } raw_categories["Padrong pang-entrada"] = { --TLCHANGE description = "Templates used to help create new entries.", parents = {"Mga padron"}, --TLCHANGE "Templates" english_name = "Entry templates" --TLCHANGE } raw_categories["Padrong pang-etimolohiya"] = { --TLCHANGE description = "Templates used in etymology sections to define the etymology of a term.", parents = {"Mga padron"}, --TLCHANGE "Templates" english_name = "Etymology templates" --TLCHANGE } raw_categories["Foreign derivation templates"] = { description = "Templates used in etymology sections to indicate derivation from a different language than the language of the current entry.", parents = {"Padrong pang-etimolohiya"}, --TLCHANGE "Etymology templates" } raw_categories["Morphology templates"] = { description = "Templates used in etymology sections to specify the morphology of a term.", parents = {"Padrong pang-etimolohiya"}, --TLCHANGE "Etymology templates" } raw_categories["Language-specific morphology templates"] = { description = "Specialized morphology templates used in the etymology sections of terms in particular languages.", parents = {"Padrong pang-etimolohiya"}, --TLCHANGE "Etymology templates" } raw_categories["Headword-line templates"] = { preceding = "{{also|Wiktionary:Headword-line templates}}", description = "Templates used to define the [[Wiktionary:Glossary#headword line|headword line]] of a term.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Discussion templates"] = { description = "Templates intended for use only in discussions and documentation of templates and modules.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Monthly-subpages discussion room infrastructure"] = { description = "Templates used in generating and maintaining monthly discussion forums such as the [[Wiktionary:Grease pit|Grease pit]] and [[Wiktionary:Beer parlour|Beer parlour]].", parents = {"Discussion templates"}, } raw_categories["Padrong pandokumentasyon"] = { --TLCHANGE description = "Templates used on template and module documentation pages.", parents = {"Mga padron"}, --TLCHANGE "Templates" english_name = "Documentation templates", --TLCHANGE } raw_categories["File templates"] = { description = "Templates used in the File namespace.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Language attestation warning templates"] = { description = "Templates that warn users about the attestation status of entries or senses from a language.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Layout templates"] = { description = "Templates used in creating specific layouts within entries.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Collapsible box templates"] = { description = "Templates used in creating collapsible boxes.", parents = {"Layout templates"}, } raw_categories["Column templates"] = { preceding = "{{also|Wiktionary:Templates#Columns}}", description = "Templates used in laying out lists in columns.", parents = {"Layout templates"}, } raw_categories["Table templates"] = { description = "Templates used in formatting tables.", parents = {"Layout templates"}, } raw_categories["Padrong pangkawing"] = { --TLCHANGE description = "Templates used to link to other terms, to other MediaWiki projects or to external websites.", parents = {"Mga padron"}, --TLCHANGE "Templates" english_name = "Link templates", --TLCHANGE } raw_categories["Disambiguation templates"] = { description = "Templates used to disambiguate multiple similar terms.", parents = {"Link templates"}, } raw_categories["External link templates"] = { description = "Templates that link to websites outside of the MediaWiki Foundation purview.", additional = "See also [[:Category:Citation templates]] for others.", parents = {"Link templates"}, } raw_categories["Internal link templates"] = { description = "Templates that link between Wiktionary entries.", parents = {"Link templates"}, } raw_categories["Language-specific internal link templates"] = { description = "Language-specific templates that link between Wiktionary entries in particular languages.", parents = {"Internal link templates"}, } raw_categories["Interwiki link templates"] = { description = "Templates that link to other Wikimedia projects.", parents = {"Link templates"}, } raw_categories["Inline interwiki link templates"] = { description = "Inline templates that link to other Wikimedia projects.", parents = {"Interwiki link templates"}, } raw_categories["Sidebar interwiki link templates"] = { description = "Sidebar templates that link to other Wikimedia projects.", parents = {"Interwiki link templates"}, } raw_categories["Wikidata link templates"] = { description = "Inline templates that link to Wikidata.", parents = {"Interwiki link templates"}, } raw_categories["Wikisource link templates"] = { description = "Inline templates that link to Wikisource.", parents = {"Interwiki link templates"}, } raw_categories["List templates"] = { description = "Templates used to generate lists.", additional = "See also [[:Category:List templates by language]].", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Character list templates"] = { description = "Templates used to generate lists of characters.", parents = {"List templates"}, } raw_categories["Lua-free templates"] = { description = "Lua-free (i.e. \"lite\") versions of templates that use Lua.", additional = "Lua-free templates are used on long pages to avoid [[Wiktionary:Lua memory errors|Lua memory errors]].", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Maintenance templates"] = { preceding = "{{also|Wiktionary:Maintenance templates}}", description = "Templates used in the maintenance of Wiktionary entries and other pages.", additional = "They are distinct from [[:Category:Administration templates|administration templates]], which are only used outside of mainspace.", parents = {"Templates", "Category:Wiktionary maintenance"}, } raw_categories["Cleanup templates"] = { description = "Templates used to request cleanup of entries.", additional = "Some of these templates are used when entries are batch-imported from another source.", parents = {"Maintenance templates", "Request templates"}, } raw_categories["Deletion templates"] = { description = "Templates used to request deletion of entries.", parents = {"Maintenance templates", "Request templates"}, } raw_categories["Verification templates"] = { description = "Templates used to request verification of entries that may be incorrect.", parents = {"Maintenance templates", "Request templates"}, } raw_categories["Wiktionary templates"] = { description = "Templates used in the internal operation of Wiktionary.", parents = {"Templates", "Wiksiyonaryo"}, } raw_categories["Metatemplates"] = { description = "Templates used in other templates or to create other templates.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["String manipulation templates"] = { description = "Templates used to manipulate strings.", additional = "See also [[Module:string/templates]], which can be invoked from templates to do string manipulation.", parents = {"Metatemplates"}, } ------------ NAVIGATION TEMPLATES ------------ raw_categories["Padrong pangnabegasyon"] = { --TLCHANGE description = "Templates used to create navigation boxes for easily linking to other similar pages.", parents = {"Mga padron"}, --TLCHANGE "Templates" english_name = "Navigation templates" --TLCHANGE } raw_categories["Language-specific number templates"] = { description = "Language-specific templates that generate number boxes or lists for a given language.", additional = "Contrast {{catlink|Number templates}}, which contains general (language-agnostic) templates for converting numbers or generating number boxes or lists in a given language.", parents = {"Padrong pangnabegasyon"}, --TLCHANGE "Navigation templates" } raw_categories["Padrong pangkahong pang-anyong nanghahalip"] = { --TLCHANGE description = "Language-specific templates that generate navigation boxes for displaying pro-forms (pronouns, determiners, pronominal adverbs, etc.) for a given language.", parents = {"Padrong pangnabegasyon"}, --TLCHANGE "Navigation templates" english_name = "Pro-form box templates", --TLCHANGE } raw_categories["Demonstrative box templates"] = { description = "Language-specific templates that generate demonstrative pronoun, determiner and adverb boxes for a given language.", parents = {"Padrong pangkahong pang-anyong nanghahalip"}, --TLCHANGE "Pro-form box templates" } raw_categories["Grammatical article box templates"] = { description = "Language-specific templates that generate grammatical article boxes (definite, indefinite, partitive, etc.) for a given language.", parents = {"Padrong pangkahong pang-anyong nanghahalip"}, --TLCHANGE "Pro-form box templates" } raw_categories["Interrogative box templates"] = { description = "Language-specific templates that generate interrogative pronoun, determiner and adverb boxes for a given language.", parents = {"Padrong pangkahong pang-anyong nanghahalip"}, --TLCHANGE "Pro-form box templates" } raw_categories["Padrong pangkahong pampanghalip na panao"] = { --TLCHANGE description = "Language-specific templates that generate personal pronoun boxes for a given language.", additional = [=[ The standard format for these templates is: * Where the language is uninflected (e.g. Samoan {{tl|sm-personal pronouns}}) or the language is inflected but the box shows only the lemma forms of the pronoun (e.g. Basque {{tl|eu-personal pronouns}}), the '''numbers''' (singular/plural) run across the top and the '''persons''' (1st/2nd/3rd) run down the left side. * Where the language is inflected, the '''cases''' run across the top. Down the left side, the headers (from left to right) are '''number''', '''person''', then any subform if applicable. Example: Middle High German {{tl|gmh-personal pronouns}} ** Exceptions: *** If there are too many cases to fit on the screen as columns, the template can be transposed so that cases run vertically. Example: Northern Yukaghir {{tl|ykg-personal pronouns}} *** If the singular and plural forms are very similar, consider placing the person headers outside number instead. Example: Punjabi {{tl|pa-personal pronouns}} ]=], parents = {"Padrong pangkahong pang-anyong nanghahalip"}, --TLCHANGE "Pro-form box templates" english_name = "Personal pronoun box templates", --TLCHANGE } raw_categories["Possessive pronoun and determiner box templates"] = { description = "Language-specific templates that generate possessive pronoun and determiner boxes for a given language.", parents = {"Padrong pangkahong pang-anyong nanghahalip"}, --TLCHANGE "Pro-form box templates" } raw_categories["Reflexive pronoun and determiner box templates"] = { description = "Language-specific templates that generate reflexive pronoun and determiner boxes for a given language.", parents = {"Padrong pangkahong pang-anyong nanghahalip"}, --TLCHANGE "Pro-form box templates" } raw_categories["Relative pronoun and determiner box templates"] = { description = "Language-specific templates that generate relative pronoun and determiner boxes for a given language.", parents = {"Padrong pangkahong pang-anyong nanghahalip"}, --TLCHANGE "Pro-form box templates" } raw_categories["Padrong pambilang"] = { --TLCHANGE description = "General (language-agnostic) templates used to convert numbers or generate boxes or lists of the numbers in a given language.", additional = "Contrast {{catlink|Language-specific number templates}}, which contains language-specific templates for generating number boxes or lists in a given language.", parents = {"Mga padron"}, --TLCHANGE "Templates" english_name = "Number templates", --TLCHANGE } raw_categories["Orthographic and regional variant templates"] = { description = "Templates used to generate lists of links to alternative forms of a term, either across orthographic systems, scripts, or regional or dialectal variation.", parents = {"Script templates", "Internal link templates"}, } raw_categories["Pagename templates"] = { description = "Templates used to retrieve pagenames or pagename properties or manipulate pagenames.", parents = {"Templates"}, } raw_categories["Preloaded templates"] = { description = "Templates not meant to be transcluded, but instead, whether through URL parameters or modules, have their contents preloaded into edit fields.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Pronunciation templates"] = { description = "Templates used to format pronunciation sections and the characters they use.", additional = "See also [[:Category:Script templates]] and [[Wiktionary:Pronunciation]].", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Rhyme templates"] = { description = "Templates used to format [[Wiktionary:Rhymes|rhyme pages]], links to them from pronunciation sections, etc.", parents = {"Pronunciation templates"}, } raw_categories["Sign language templates"] = { description = "Templates used to format sign-language pronunciation charts.", parents = {"Pronunciation templates"}, } raw_categories["Qualifier and gloss templates"] = { description = "Templates for displaying qualifiers, glosses and the like.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Redirect templates"] = { description = "Templates used to format redirect pages.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Padrong pansangguni"] = { --TLCHANGE preceding = "{{also|Wiktionary:Reference templates|:Category:Reference templates by language}}", description = "Templates used to format references.", parents = {"Mga padron"}, --TLCHANGE "Templates" english_name = "Reference templates", --TLCHANGE } raw_categories["Padrong panrelihiyon"] = { --TLCHANGE description = "Templates that display religion-related diagrams or boxes.", parents = {"Mga padron"}, --TLCHANGE "Templates" english_name = "Religion templates", --TLCHANGE } raw_categories["Request templates"] = { topright = "{{shortcut|WT:RT}}", description = "Request templates for dictionary entries in the main namespace.", parents = {"Templates", "Requests"}, } raw_categories["Sandbox templates"] = { description = "Sandbox versions of templates used for testing purposes.", additional = "'''NOTE:''' The use of sandbox templates in mainspace is strongly dispreferred. Please place all sandbox templates in your userspace.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Script templates"] = { preceding = "{{mainwikt|Scripts}}", description = "Templates used for converting between scripts or displaying text in a specific script.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Semantic relation templates"] = { description = "Templates that are placed below the [[Wiktionary:Glossary#definition line|definition line]], to indicate other terms semantically related to a particular sense.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Single-page-use templates"] = { description = "Templates used only on a single page and unlikely to find re-use elsewhere.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Supplementary templates"] = { description = "A grab bag of templates used to assist other templates.", additional = "These should be recategorized according to function.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Taxonomy templates"] = { description = "Templates used in Translingual taxonomy entries and in reference to those entries.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Taxonomic hypernym templates"] = { description = "Templates and subcategories containing such templates. The templates contain text to appear under the Hypernyms header for taxonomic name entries.", additional = "Each template has the name of the taxon from which it begins. The templates in this category at present are the many templates that begin with the names of taxonomic families. Others are in subcategories", breadcrumb = "Hypernym", parents = {"Taxonomy templates"}, } raw_categories["Taxonomic name templates"] = { description = "Templates used for the presentation of taxonomic names on a definition line.", breadcrumb = "Name", parents = {"Taxonomy templates", "Definition templates"}, } raw_categories["Taxonomic reference templates"] = { description = "Templates used to format references for taxonomic names.", breadcrumb = "Reference", parents = {"Taxonomy templates", "Reference templates"}, } raw_categories["Templates that must be substituted"] = { description = "Templates that are not intended for transclusion with <code><nowiki>{{ }}</nowiki></code>, " .. "and must be substituted with <code><nowiki>{{subst: }}</nowiki></code>wherever they exist.", additional = "Some of the members of this category are permanent, as the template was written in such a way that " .. "it must be substituted to function properly. There may also be templates in this category that are deprecated, " .. "in which case their content has been replaced with the preferred code.", parents = {"Templates", "Requests"}, } raw_categories["Templates with acceleration"] = { description = "Templates can be added to this category by adding {{tl|isAccelerated}} to their documentation pages.", additional = "Presence in this category indicates that at least some of the \"form-of\" entries for the word can be generated semi-automatically by users with [[Wiktionary:ACCEL|accelerated]] editing enabled.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Text format templates"] = { description = "Templates that provide shortcuts for formatting ordinary text.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Thesaurus templates"] = { description = "Templates for linking to or formatting thesaurus entries.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["Translation templates"] = { description = "Templates used to format entries in and parts of translation tables.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["User templates"] = { description = "Templates meant to be used in userspace.", parents = {"Mga padron"}, --TLCHANGE "Templates" } raw_categories["User sandbox templates"] = { description = "Templates that are for personal use and testing by individual editors.", additional = "These should all begin with <code>User:</code> followed by the user's name. If several " .. "sandbox templates are needed by a single user, subpages can be created. These templates should not be used in real " .. "Wiktionary content pages, as all content on those pages should be editable by anyone and, if necessary, edit protected.", parents = { "Sandbox templates", "Templates" }, } raw_categories["Authority control subtemplates"] = { description = "Subtemplates used in conjunction with {{tl|authority control}}.", parents = {"User templates"}, } raw_categories["User competency templates"] = { description = "Templates used for to indicate a user's competency in a given natural language, script or programming language.", additional = "These are used in conjunction with {{tl|Babel}}, which invokes these templates as necessary.", parents = {"User templates"}, } raw_categories["Coder user templates"] = { description = "Templates used for to indicate a user's competency in a given programming language.", additional = "These are used in conjunction with {{tl|Babel}}, which invokes these templates as necessary.", parents = {"User competency templates"}, } raw_categories["Language user templates"] = { description = "Templates used for to indicate a user's competency in speaking a given language.", additional = "These are used in conjunction with {{tl|Babel}}, which invokes these templates as necessary.", parents = {"User competency templates"}, } raw_categories["Script user templates"] = { description = "Templates used for to indicate a user's competency in reading a given script.", additional = "These are used in conjunction with {{tl|Babel}}, which invokes these templates as necessary.", parents = {"User competency templates"}, } raw_categories["WOTD templates"] = { description = "Templates used to support the Word of the Day.", parents = {"Wiktionary templates"}, } raw_categories["FWOTD templates"] = { description = "Templates used to support the Foreign Word of the Day.", parents = {"WOTD templates"}, } raw_categories["Non-production templates and modules"] = { description = "Templates and modules not currently used in production.", additional = "{{also|Special:UnusedTemplates|Category:Unused templates}}", parents = {"Templates", "Modules", "Category:Wiktionary maintenance"}, } raw_categories["Subkategoryang pampadron ayon sa wika"] = { --TLCHANGE description = "Umbrella categories covering topics related to templates.", additional = "{{{umbrella_meta_msg}}}", parents = { "Kataas-taasang kategorya", --TLCHANGE "Umbrella metacategories" {name = "na padron", is_label = true, sort = " "},--TLCHANGE "templates" }, english_name = "Templates subcategories by language" --TLCHANGE } -- Add breadcrumb by chopping off the parent (or the parent's parent, etc.) from the end of the label, if possible. for key, data in pairs(raw_categories) do if not data.breadcrumb then local parent = data.parents[1] while true do if type(parent) == "string" then local parent_re = " " .. require("Module:string utilities").pattern_escape(mw.getContentLanguage():lcfirst(parent)) .. "$" if key:find(parent_re) then data.breadcrumb = key:gsub(parent_re, "") break end if raw_categories[parent] then parent = raw_categories[parent].parents[1] else break end else break end end end end return {LABELS = labels, RAW_CATEGORIES = raw_categories} l1gc0prnfaw9es5rcyk0gvuwgq8o9cd Module:category tree/poscatboiler 828 34545 177933 176620 2026-09-13T07:17:06Z Yivan000 4078 177933 Scribunto text/plain local lang_independent_data = require("Module:category tree/data") local lang_specific_module = "Module:category tree/lang" local lang_specific_module_prefix = lang_specific_module .. "/" local family_specific_module = "Module:category tree/fam" local family_specific_module_prefix = family_specific_module .. "/" local labels_utilities_module = "Module:labels/utilities" local template_parser_module = "Module:template parser" local concat = table.concat local dump = mw.dumpObject local expand_template = require("Module:frame").expandTemplate local insert = table.insert local is_callable = require("Module:fun").is_callable local lcfirst = require("Module:string utilities").lcfirst local list_to_set = require("Module:table").listToSet local make_title = mw.title.makeTitle local new_title = mw.title.new local parse = require(template_parser_module).parse local sparse_concat = require("Module:table").sparseConcat local tostring = tostring local type = type local ucfirst = require("Module:string utilities").ucfirst local uupper = require("Module:string utilities").upper local function internal_error(msg) error("Internal error: " .. msg) end local function get_lang(...) local _get_lang = require("Module:languages").getByCode function get_lang(...) return _get_lang(...) or require("Module:languages/errorGetBy").code(...) end return get_lang(...) end local function get_script(...) local _get_script = require("Module:scripts").getByCode function get_script(code) return _get_script(code) or require("Module:languages/error")(code, true, "script code") end return get_script(...) end -- Category object local Category = {} Category.__index = Category function Category:get_originating_info() local originating_info = "" if self._info.originating_label then originating_info = " (originating from label \"" .. self._info.originating_label .. "\" in module [[" .. self._info.originating_module .. "]])" end return originating_info end local valid_keys = list_to_set{"code", "label", "sc", "raw", "args", "also", "called_from_inside", "originating_label", "originating_module"} function Category.new(info) for key in pairs(info) do if not valid_keys[key] then internal_error("The parameter \"" .. key .. "\" was not recognized.") end end local self = setmetatable({}, Category) self._info = info if not self._info.label then internal_error("No label was specified.") end self:initCommon() if not self._data then internal_error("The " .. (self._info.raw and "raw " or "") .. "label \"" .. self._info.label .. "\" does not exist" .. self:get_originating_info() .. ".") end return self end function Category:initCommon() local function patch_args(args) -- This fixes the issue with Scribunto automatically converting keys -- in a table as numbers to strings, which in turn causes a circular -- error for having argument parameter names as numbers as strings. if type(args) ~= "table" then return args end local new_args = {} for k, v in pairs(args) do if type(k) == "string" and string.len(k) < 10 and not string.match(k, "^0") and string.match(k, "^%d+$") then new_args[tonumber(k)] = patch_args(v) else new_args[k] = patch_args(v) end end return new_args end local args_handled = false if self._info.raw then -- Check if the category exists local raw_categories = lang_independent_data["RAW_CATEGORIES"] self._data = raw_categories[self._info.label] if self._data then if self._data.lang then self._lang = get_lang(self._data.lang) self._info.code = self._lang:getCode() end if self._data.sc then self._sc = get_script(self._data.sc) self._info.sc = self._sc:getCode() end else -- Go through raw handlers local data = { category = self._info.label, args = patch_args(self._info.args) or {}, called_from_inside = self._info.called_from_inside, } for _, handler in ipairs(lang_independent_data["RAW_HANDLERS"]) do self._data, args_handled = handler.handler(data) if self._data then self._data.module = self._data.module or handler.module break end end if self._data then -- Update the label if the handler specified a canonical name for it. if self._data.canonical_name then self._info.canonical_name = self._data.canonical_name end if self._data.lang then if type(self._data.lang) ~= "string" then internal_error("Received non-string value " .. dump(self._data.lang) .. " for self._data.lang, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".") end self._lang = get_lang(self._data.lang) self._info.code = self._lang:getCode() end if self._data.sc then if type(self._data.sc) ~= "string" then internal_error("Received non-string value " .. dump(self._data.sc) .. " for self._data.sc, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".") end self._sc = get_script(self._data.sc) self._info.sc = self._sc:getCode() end end end else -- Already parsed into language + label if self._info.code then self._lang = get_lang(self._info.code) else self._lang = nil end if self._info.sc then self._sc = get_script(self._info.sc) else self._sc = nil end self._info.orig_label = self._info.label if not self._lang then -- Umbrella categories without a preceding language always begin with a capital letter, but the actual label may be -- lowercase (cf. [[:Category:Nouns by language]] with label 'nouns' with per-language [[:Category:English nouns]]; -- but [[:Category:Reddit slang by language]] with label 'Reddit slang' with per-language -- [[:Category:English Reddit slang]]). Since the label is almost always lowercase, we lowercase it for umbrella -- categories, storing the original into `orig_label`, and correct it later if needed. self._info.label = lcfirst(self._info.label) end -- First, check lang-specific labels and handlers if this is not an umbrella category. if self._lang then local objects_with_modules = require(lang_specific_module) local obj, seen = self._lang, {} local object_specific_module_prefix = lang_specific_module_prefix local is_family = false repeat if objects_with_modules[obj:getCode()] then local module = object_specific_module_prefix .. obj:getCode() local labels_and_handlers = require(module) if labels_and_handlers.LABELS then self._data = labels_and_handlers.LABELS[self._info.label] if self._data then if not is_family and self._data.umbrella == nil and self._data.umbrella_parents == nil then self._data.umbrella = false end self._data.module = self._data.module or module end end if not self._data and labels_and_handlers.HANDLERS then for _, handler in ipairs(labels_and_handlers.HANDLERS) do local data = { label = self._info.label, lang = self._lang, sc = self._sc, args = patch_args(self._info.args) or {}, called_from_inside = self._info.called_from_inside, } self._data, args_handled = handler(data) if self._data then if not is_family and self._data.umbrella == nil and self._data.umbrella_parents == nil then self._data.umbrella = false end self._data.module = self._data.module or module break end end end if self._data then break end end seen[obj:getCode()] = true obj = obj:getFamily() if not is_family then is_family = true object_specific_module_prefix = family_specific_module_prefix objects_with_modules = require(family_specific_module) end until not obj or seen[obj:getCode()] end local function fetch_label_data(labels) self._data = labels[self._info.label] -- See comment above about uppercase- vs. lowercase-initial labels, which are indistinguishable -- in umbrella categories. if not self._data then self._data = labels[self._info.orig_label] if self._data then self._info.label = self._info.orig_label end end end -- Then check lang-independent labels. if not self._data then -- lang_independent_data.LABELS should always exist. fetch_label_data(lang_independent_data.LABELS) if not self._data and not self._lang then -- Check family-specific labels for umbrella label. local families_with_modules = require(family_specific_module) for famcode, _ in pairs(families_with_modules) do local module = family_specific_module_prefix .. famcode local labels_and_handlers = require(module) if labels_and_handlers.LABELS then fetch_label_data(labels_and_handlers.LABELS) if self._data then self._data.module = self._data.module or module break end end end end end -- Then check lang-independent handlers. if not self._data then local data = { label = self._info.label, lang = self._lang, sc = self._sc, args = patch_args(self._info.args) or {}, called_from_inside = self._info.called_from_inside, } for _, handler in ipairs(lang_independent_data["HANDLERS"]) do self._data, args_handled = handler.handler(data) if self._data then self._data.module = self._data.module or handler.module break end end if not self._data and not self._lang then -- Check family-specific labels for umbrella handler. local families_with_modules = require(family_specific_module) for famcode, _ in pairs(families_with_modules) do local module = family_specific_module_prefix .. famcode local labels_and_handlers = require(module) if labels_and_handlers.HANDLERS then for _, handler in ipairs(labels_and_handlers.HANDLERS) do local data = { label = self._info.label, sc = self._sc, args = patch_args(self._info.args) or {}, called_from_inside = self._info.called_from_inside, } self._data, args_handled = handler(data) if self._data then self._data.module = self._data.module or module break end end end if self._data then break end end end end end if not args_handled and self._data and self._info.args and next(self._info.args) then local module_text = " (handled in [[" .. (self._data.module or "UNKNOWN").. "]])" local args_text = {} for k, v in pairs(self._info.args) do insert(args_text, k .. "=" .. ((type(v) == "string" or type(v) == "number") and v or dump(v))) end error("poscatboiler label '" .. self._info.label .. "' " .. module_text .. " doesn't accept extra args " .. concat(args_text, ", ")) end if self._sc and not self._lang then internal_error("Umbrella categories cannot have a script specified.") end end function Category:convert_spec_to_string(desc) if not desc then return desc end local desc_type = type(desc) if desc_type == "string" then return desc elseif desc_type == "number" then return tostring(desc) elseif not is_callable(desc) then internal_error("`desc` must be a string, number, function, callable table or nil; received " .. dump(desc)) end desc = desc { lang = self._lang, sc = self._sc, label = self._info.label, raw = self._info.raw, } if not desc then return desc end desc_type = type(desc) if desc_type == "string" then return desc end internal_error("The value returned by `desc` must be a string or nil; received " .. dump(desc)) end local function add_obj_args(args, obj, obj_type) if obj then args[obj_type .. "code"] = obj:getCode() args[obj_type .. "name"] = obj:getCanonicalName() args[obj_type .. "disp"] = obj:getDisplayForm() args[obj_type .. "cat"] = obj:getCategoryName() args[obj_type .. "link"] = obj:makeCategoryLink() end end -- Expands `desc` like a template, passing values for specs like {{{langname}}}. function Category:substitute_template_specs(desc) -- This may end up happening twice but that's OK as the function is (usually) idempotent. -- FIXME: Not idempotent if a preprocessed template returns wikicode. desc = self:convert_spec_to_string(desc) if not desc then return nil end -- Populate the substitution arguments. local args = {} args.umbrella_msg = "Isa itong ''kataasang'' kategorya. Wala itong entrada ng diksiyonaryo, kundi iba pang kategoryang pangwika na naglalaman ng mga termino sa wikang iyon." --TLCHANGE args.umbrella_meta_msg = "Isa itong ''kataas-taasang'' kategorya, na sinasaklaw ang mga paksang \"lema\", \"pangalan\" o \"salita ayon sa etimolohiya\". Wala itong entrada ng diksiyonaryo, kundi mga kataasang kategorya na sumasaklaw ng mga tiyak na paksa, na naglalaman ng mga kategoryang pangwika para sa parehong paksa." --TLCHANGE add_obj_args(args, self._lang, "lang") add_obj_args(args, self._sc, "sc") return parse(desc, true):expand(args) end function Category:substitute_template_specs_in_args(args) if not args then return args end local pinfo = {} for k, v in pairs(args) do pinfo[self:substitute_template_specs(k)] = self:substitute_template_specs(v) end return pinfo end function Category:make_new(info) info.originating_label = self._info.label info.originating_module = self._data.module info.called_from_inside = true return Category.new(info) end function Category:getBreadcrumbName() local ret if self._lang or self._info.raw then ret = self._data.breadcrumb or self._data.breadcrumb_and_first_sort_base else ret = self._data.umbrella and (self._data.umbrella.breadcrumb or self._data.umbrella.breadcrumb_and_first_sort_base) end if not ret then ret = self._info.label end if type(ret) ~= "table" then ret = {name = ret} end local name = self:substitute_template_specs(ret.name) local nocap = ret.nocap if self._sc then name = name .. " in " .. self._sc:getDisplayForm() end --TLCHANGE to take into account the "na" word, remove it if (name:match("^[Nn]a ")) then name = ucfirst(name:gsub("^[Nn]a ", "")) end return name, nocap end local function expand_toc_template_if(template) local template_obj = new_title(template, 10) if template_obj.exists then return expand_template{title = template_obj.text} end return nil end -- Return the textual expansion of the first existing template among the given templates, first performing -- substitutions on the template name such as replacing {{{langcode}}} with the current language's code (if any). -- If no templates exist after expansion, or if nil is passed in, return nil. If a single string is passed in, -- treat it like a one-element list consisting of that string. function Category:get_template_text(templates) if templates == nil then return nil elseif type(templates) ~= "table" then templates = {templates} end for _, template in ipairs(templates) do if template == false then return false end template = self:substitute_template_specs(template) return expand_toc_template_if(template) end return nil end function Category:getTOC(toc_type) -- Type "none" means everything fits on a single page; in that case, display nothing. if toc_type == "none" then return nil end local templates, fallback_templates -- If TOC type is "full" (more than 2500 entries), do the following, in order: -- 1. look up and expand the `toc_template_full` templates (normal or umbrella, depending on whether there is -- a current language); -- 2. look up and expand the `toc_template` templates (normal or umbrella, as above); -- 3. do the default behavior, which is as follows: -- 3a. look up a language-specific "full" template according to the current language (using English if there -- is no current language); -- 3b. look up a script-specific "full" template according to the first script of current language (using English -- if there is no current language); -- 3c. look up a language-specific "normal" template according to the current language (using English if there -- is no current language); -- 3d. look up a script-specific "normal" template according to the first script of the current language (using -- English if there is no current language); -- 3e. display nothing. -- -- If TOC type is "normal" (between 200 and 2500 entries), do the following, in order: -- 1. look up and expand the `toc_template` templates (normal or umbrella, depending on whether there is -- a current language); -- 2. do the default behavior, which is as follows: -- 2a. look up a language-specific "normal" template according to the current language (using English if there -- is no current language); -- 2b. look up a script-specific "normal" template according to the first script of the current language (using -- English if there is no current language); -- 2c. display nothing. local data_source if self._lang or self._info.raw then data_source = self._data else data_source = self._data.umbrella end if data_source then if toc_type == "full" then templates = data_source.toc_template_full fallback_templates = data_source.toc_template else templates = data_source.toc_template end end local text = self:get_template_text(templates) if text then return text elseif text == false then return nil end text = self:get_template_text(fallback_templates) if text then return text elseif text == false then return nil end local default_toc_templates_to_check = {} local lang, sc = self:getCatfixInfo() local langcode = lang and lang:getCode() or "tl" --TLCHANGE local sccode = sc and sc:getCode() or lang and lang:getScriptCodes()[1] or "Latn" -- FIXME: What is toctemplateprefix used for? local tocname = (self._data.toctemplateprefix or "") .. "categoryTOC" if toc_type == "full" then insert(default_toc_templates_to_check, ("%s-%s/full"):format(langcode, tocname)) insert(default_toc_templates_to_check, ("%s-%s/full"):format(sccode, tocname)) end insert(default_toc_templates_to_check, ("%s-%s"):format(langcode, tocname)) insert(default_toc_templates_to_check, ("%s-%s"):format(sccode, tocname)) for _, toc_template in ipairs(default_toc_templates_to_check) do local toc_template_text = expand_toc_template_if(toc_template) if toc_template_text then return toc_template_text end end return nil end function Category:getInfo() return self._info end function Category:getDataModule() return self._data.module end function Category:canBeEmpty() if self._lang or self._info.raw then return self._data.can_be_empty end return self._data.umbrella and self._data.umbrella.can_be_empty end function Category:isHidden() if self._lang or self._info.raw then return self._data.hidden end return self._data.umbrella and self._data.umbrella.hidden end function Category:getCategoryName() if self._info.raw then return self._info.canonical_name or self._info.label elseif self._lang then local ret = self._lang:getCanonicalName() .. " " .. self._info.label if self._sc then ret = ret .. " in " .. self._sc:getDisplayForm() end return ucfirst(ret) end local ret = ucfirst(self._info.label) if not (self._data.no_by_language or self._data.umbrella and self._data.umbrella.no_by_language) then --TLCHANGE to take into account the "na" word if (ret:match("^[Nn]a ")) then ret = ucfirst(ret:gsub("^[Nn]a ", "")) .. " ayon sa wika" else ret = ret .. " ayon sa wika" --TLCHANGE end end return ret end function Category:getTopright() if self._lang or self._info.raw then return self:substitute_template_specs(self._data.topright) end return self._data.umbrella and self:substitute_template_specs(self._data.umbrella.topright) end function Category:display_title(displaytitle, lang) if type(displaytitle) == "string" then displaytitle = self:substitute_template_specs(displaytitle) else displaytitle = displaytitle(self:getCategoryName(), lang) end mw.getCurrentFrame():callParserFunction("DISPLAYTITLE", "Kategorya:" .. displaytitle) --TLCHANGE "Category:" end function Category:get_labels_categorizing() local m_labels_utilities = require(labels_utilities_module) local pos_cat_labels, sense_cat_labels, use_tlb pos_cat_labels = m_labels_utilities.find_labels_for_category(self._info.label, "pos", self._lang) local sense_label = self._info.label:match("^(.*) terms$") if sense_label then use_tlb = true else sense_label = self._info.label:match("^terms with (.*) senses$") end if not sense_label then return nil end sense_cat_labels = m_labels_utilities.find_labels_for_category(sense_label, "sense", self._lang) if use_tlb then return m_labels_utilities.format_labels_categorizing(pos_cat_labels, sense_cat_labels, self._lang) end local all_labels = pos_cat_labels for k, v in pairs(sense_cat_labels) do all_labels[k] = v end return m_labels_utilities.format_labels_categorizing(all_labels, nil, self._lang) end -- FIXME: this is clunky. local function remove_lang_params(desc) -- Simply remove a language name/code/category from the beginning of the string, but replace the language name -- in the middle of the string with either "specific languages" or "specific-language" depending on whether the -- language name appears to be an attributive qualifier of another noun or to stand by itself. This may be wrong, -- in which case the category in question should supply its own umbrella description. desc = desc:gsub("^{{{langname}}} ", "") :gsub("{{{langname}}} %(", "specific languages (") :gsub("{{{langname}}}([.,])", "specific languages%1") :gsub("{{{langname}}} ", "specific-language ") :gsub("{{{langdisp}}}", "specific languages") :gsub("{{{langlink}}}", "specific languages") return desc end --TLCHANGE ADD THIS FUNCTION TO GET THE ENGLISH NAME function Category:getEnglishName() -- if there is no "english_name" added in the data, then output nil if not self._data.english_name then return nil end --override for specific kinds to remove adding the langname at the start if self._data.english_name:find("Varieties") or self._data.english_name:find("Regional") or self._data.english_name:find("Rhymes") then return self._data.english_name end --if it is a language category if self._lang then --if it is a topic category or a regular language category local code, ___upcase_label = self._info.label:match("^(%l[%a-]*%a):(.+)$") if code then return code .. ":" .. self._data.english_name else -- default to canonical name if no english_name local english_lang_name = self._lang:getData().english_name or self._lang:getCanonicalName() return english_lang_name .. " " .. self._data.english_name end elseif not (self._data.no_by_language or self._data.umbrella and self._data.umbrella.no_by_language) then --if it is an language umbrella category if self._info.label:match("^[Nn]a ") then return ucfirst(self._data.english_name) .. " by language" end return self._data.english_name else return self._data.english_name end end ----- function Category:getDescription(isChild) -- Allows different text in the list of a category's children local isChild = isChild == "child" if self._lang or self._info.raw then if not isChild and self._data.displaytitle then self:display_title(self._data.displaytitle, self._lang) end if self._sc then return self:getCategoryName() .. "." end local desc = self:substitute_template_specs(self._data.description) if not desc then return nil elseif isChild then return desc end return sparse_concat({ self:substitute_template_specs(self._data.preceding), desc, self:substitute_template_specs(self._data.additional), self:substitute_template_specs(self:get_labels_categorizing()), }, "\n\n") end local umbrella = self._data.umbrella if not isChild and umbrella and umbrella.displaytitle then self:display_title(umbrella.displaytitle) end local desc = self:substitute_template_specs(umbrella and umbrella.description) local has_umbrella_desc = not not desc if not desc then desc = self:convert_spec_to_string(self._data.description) if desc then desc = remove_lang_params(desc) desc = lcfirst(desc) desc = desc:gsub("%.$", "") desc = "Categories with " .. desc .. "." else desc = "Categories with " .. self._info.label .. " in various specific languages." end desc = self:substitute_template_specs(desc) end if isChild then return desc end return sparse_concat({ self:substitute_template_specs(umbrella and umbrella.preceding or not has_umbrella_desc and self._data.preceding), desc, self:substitute_template_specs(umbrella and umbrella.additional or not has_umbrella_desc and self._data.additional), self:substitute_template_specs("{{{umbrella_msg}}}"), self:substitute_template_specs(self:get_labels_categorizing()), }, "\n\n") end function Category:new_sortkey(sortkey) local sortkey_type = type(sortkey) if sortkey_type == "string" then sortkey = uupper(sortkey) elseif sortkey_type == "table" then function sortkey:makeSortKey() local sort_func = self.sort_func if sort_func ~= nil then return sort_func(self.sort_base) end local lang = self.lang if lang == nil then return self.sort_base end lang = get_lang(lang, nil, true) if lang == nil then return self.sort_base end local sc = self.sc if sc ~= nil then sc = get_script(sc) end return lang:makeSortKey(self.sort_base, sc) end end return sortkey end function Category:inherit_spec(spec, parent_spec, substitute_result) if spec == false then return nil end local retval = spec or parent_spec if substitute_result then retval = self:substitute_template_specs(retval) end return retval end function Category:canonicalize_parents_children(cats, is_children, fallback_sort_base) if not cats then return nil elseif type(cats) == "table" then if cats.name or cats.module then cats = {cats} elseif #cats == 0 then return nil end else cats = {cats} end local ret = {} for _, cat in ipairs(cats) do if type(cat) ~= "table" or not cat.name and not cat.module then cat = {name = cat} end insert(ret, cat) end local is_umbrella = not self._lang and not self._info.raw local table_type = is_children and "extra_children" or "parents" for i, cat in ipairs(ret) do local raw if self._info.raw or is_umbrella then raw = not cat.is_label else raw = cat.raw end local lang = self:inherit_spec(cat.lang, not raw and self._info.code or nil, "substitute") local sc = self:inherit_spec(cat.sc, not raw and self._info.sc or nil, "substitute") -- Get the sortkey. local sortkey = self:inherit_spec(cat.sort, i == 1 and fallback_sort_base and {sort_base = fallback_sort_base} or nil) if type(sortkey) == "table" then sortkey.sort_base = self:substitute_template_specs(sortkey.sort_base) or internal_error("Missing .sort_base in '" .. table_type .. "' .sort table for '" .. self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'") if sortkey.sort_func then -- Not allowed to give a lang and/or script if sort_func is given. local bad_spec = sortkey.lang and "lang" or sortkey.sc and "sc" or nil if bad_spec then internal_error("Cannot specify both ." .. bad_spec .. " and .sort_func in '" .. table_type .. "' .sort table for '" .. self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'") end else sortkey.lang = self:inherit_spec(sortkey.lang, lang, "substitute") sortkey.sc = self:inherit_spec(sortkey.sc, sc, "substitute") end else sortkey = self:substitute_template_specs(sortkey) end local name if cat.module then -- A reference to a category using another category tree module. if not cat.args then internal_error("Missing .args in '" .. table_type .. "' table with module=\"" .. cat.module .. "\" for '" .. self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'") end name = require("Module:category tree/" .. cat.module).new(self:substitute_template_specs_in_args(cat.args)) else name = cat.name if not name then internal_error("Missing .name in " .. (is_umbrella and "umbrella " or "") .. "'" .. table_type .. "' table for '" .. self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'") elseif type(name) == "string" then -- otherwise, assume it's a category object and use it directly name = self:substitute_template_specs(name) if name:find("^Category:") then -- It's a non-poscatboiler category name. sortkey = sortkey or is_children and name:gsub("^Category:", "") or self:getCategoryName() else -- It's a label. --TLCHANGE sortkey = sortkey or is_children and name or self._info.label add `na` remover sortkey = sortkey or is_children and name or self._info.label:gsub("^na ", "") name = self:make_new{ label = name, code = lang, sc = sc, raw = raw, args = self:substitute_template_specs_in_args(cat.args) } end end end sortkey = sortkey or is_children and " " or self._info.label ret[i] = { name = name, description = is_children and self:substitute_template_specs(cat.description) or nil, sort = self:new_sortkey(sortkey) } end return ret end function Category:getParents() local is_umbrella, ret = not self._lang and not self._info.raw if self._sc then local parent1 = self:make_new{code = self._info.code, label = "terms in " .. self._sc:getCanonicalName() .. " script"} local parent2 = self:make_new{code = self._info.code, label = self._info.label, raw = self._info.raw, args = self._info.args} ret = { {name = parent1, sort = self._sc:getCanonicalName()}, {name = parent2, sort = self._sc:getCanonicalName()}, } else local parents, fallback_sort_base if is_umbrella then parents = self._data.umbrella and self._data.umbrella.parents or self._data.umbrella_parents fallback_sort_base = self._data.umbrella and self._data.umbrella.breadcrumb_and_first_sort_base or nil else parents = self._data.parents fallback_sort_base = self._data.breadcrumb_and_first_sort_base end ret = self:canonicalize_parents_children(parents, nil, fallback_sort_base) if not ret then return nil end end local self_cat = self:getCategoryName() for _, parent in ipairs(ret) do local parent_cat = parent.name.getCategoryName and parent.name:getCategoryName() if self_cat == parent_cat then internal_error(("Infinite loop would occur, as parent category '%s' is the same as the child category"):format(self_cat)) end end return ret end function Category:getChildren() local is_umbrella = not self._lang and not self._info.raw local children = self._data.children local ret = {} if not is_umbrella and children then for _, child in ipairs(children) do child = mw.clone(child) if type(child) ~= "table" then child = {name = child} end if not child.sort then child.sort = child.name end -- FIXME, is preserving the script correct? child.name = self:make_new{code = self._info.code, label = child.name, raw = child.raw, sc = self._info.sc} insert(ret, child) end end local extra_children if is_umbrella then extra_children = self._data.umbrella and self._data.umbrella.extra_children else extra_children = self._data.extra_children end extra_children = self:canonicalize_parents_children(extra_children, "children") if extra_children then for _, child in ipairs(extra_children) do insert(ret, child) end end return #ret > 0 and ret or nil end function Category:getUmbrella() local umbrella = self._data.umbrella if umbrella == false or self._info.raw or not self._lang or self._sc then return nil end -- If `umbrella` is a string, use that; otherwise, use the label. return self:make_new({label = type(umbrella) == "string" and umbrella or self._info.label}) end function Category:getAppendix() return nil end --[=[ TLCHANGE THERE IS NO APPENDIX NAMESPACE (id 100) YET. UNCOMMENT IF THERE IS ALREADY. -- FIXME, this should be customizable. local lang, label = self._lang, self._info.label if self._info.raw or not (lang and label) then return nil end local appendix = make_title(100, lang:getCanonicalName() .. " " .. label) --return appendix.exists and appendix.fullText or nil end ]=] function Category:getCatfixInfo() if self._lang or self._sc or self._info.raw then local langcode, sccode, lang, sc = self._data.catfix, self._data.catfix_sc if langcode then langcode = self:substitute_template_specs(langcode) lang = get_lang(langcode) elseif langcode == nil then -- not false lang = self._lang end if sccode then sccode = self:substitute_template_specs(sccode) sc = get_script(sccode) elseif sccode == nil then -- not false sc = self._sc end return lang, sc elseif not self._data.umbrella then return end -- umbrella local langcode, sccode, lang, sc = self._data.umbrella.catfix, self._data.umbrella.catfix_sc if langcode then langcode = self:substitute_template_specs(langcode) lang = get_lang(langcode) end if sccode then sccode = self:substitute_template_specs(sccode) sc = get_script(sccode) end return lang, sc end function Category:getTOCTemplateName() -- This should only be invoked if getTOC() returns true, meaning to do the default algorithm, but getTOC() -- implements its own default algorithm. internal_error("This should never get called") end local export = {} function export.main(info) local self = setmetatable({_info = info}, Category) self:initCommon() return self._data and self or nil end export.new = Category.new return export 5jrgc74lkgw5bzdyns69fboh1oa8rti Module:category tree/wiktionary maintenance 828 34576 177931 177904 2026-09-13T07:09:10Z Yivan000 4078 177931 Scribunto text/plain local raw_categories = {} local raw_handlers = {} local m_template_parser = require("Module:template parser") local get_lang = require("Module:languages").getByCode local insert = table.insert local is_internal_title = require("Module:pages").is_internal_title local new_title = mw.title.new local split_lang_label = require("Module:category tree").split_lang_label local php_trim = require("Module:Scribunto").php_trim local uses_hidden_category = require("Module:maintenance category").uses_hidden_category ----------------------------------------------------------------------------- -- -- -- RAW CATEGORIES -- -- -- ----------------------------------------------------------------------------- raw_categories["Pagpapanatili ng Wiksiyonaryo"] = { --TLCHANGE description = "Categories containing pages that are being tracked for attention and improvement by editors.", breadcrumb = "Pagpapanatili", --TLCHANGE parents = "Wiksiyonaryo", --TLCHANGE english_name = "Wiktionary maintenance", --TLCHANGE } raw_categories["Kategoryang walang laman"] = { --TLCHANGE topright = "{{shortcut|CAT:EC}}", description = "Categories with no members.", additional = [=[Categories are placed here by [[Module:category tree]] when they contain no pages or subcategories. Empty categories are not necessarily a problem, but they can clutter up their parent categories, or become orphaned if the structure of the category tree changes. This category therefore helps track down such cases, and allows them to be cleaned up. Because of the way the wiki software works, categories will appear here for a while afterwards if they were empty at first but had entries added to them later. This can be fixed by simply performing a "null edit" on the category page: edit the page, and save without making any changes. (Alternatively, use the "null edit" option provided by the "purge tab" [[Special:Preferences#mw-prefsection-gadgets|gadget]].) This can be avoided by adding entries to categories before creating them. It also helps to create categories from the "bottom up": start at the lowest level that has entries, then create its parent categories, then the parent categories of that, and so on.]=], parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, english_name = "Empty categories", --TLCHANGE } raw_categories["Categories with incorrect names"] = { description = "Categories with names that do not match the expected form within the category tree.", additional = [=[This usually happens when additional parameters have been given to {{tl|auto cat}} that don't match the name of the category, or when there is a problem with capitalization or spacing in the category name. ==See also== * [[:Category:Categories that are not defined in the category tree]]]=], parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, } raw_categories["Categories that are not defined in the category tree"] = { description = "Categories which use {{tl|auto cat}}, but which are not registered in the category tree data modules.", additional = [=[See the error box displayed on any of these categories for more info. ==See also== * [[:Category:Categories with incorrect names]]]=], parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, } raw_categories["Kategoryang nakatago"] = { --TLCHANGE custom translated at [[MediaWiki:Hidden-category-category]] description = "Categories using the <code>[[mw:Help:Magic words#HIDDENCAT|<nowiki>__HIDDENCAT__</nowiki>]]</code> behavior switch, which hides the category from the lists of categories in its members and subcategories.", parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, english_name = "Hidden categories", --TLCHANGE } raw_categories["Huge categories"] = { description = "Categories with more than 1 million members.", additional = "Such categories have the [[mw:Extension:DynamicPageList (Wikimedia)|DynamicPageList]] extension disabled, which is normally used to list the newest and oldest pages in a category. This is because categories above that size load very slowly when it is enabled, and in some cases become inaccessible due to timing-out.", parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, } raw_categories["Pahinang naka-index"] = { --TLCHANGE custom translated at [[MediaWiki:Index-category]] description = "Pages using the <code>[[mw:Help:Magic words#INDEX|<nowiki>__INDEX__</nowiki>]]</code> behavior switch, which tells search engines to index the page.", parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, english_name = "Indexed pages", --TLCHANGE } raw_categories["Pahinang naka-noindex"] = { --TLCHANGE custom translated at [[MediaWiki:Noindex-category]] description = "Pages using the <code>[[mw:Help:Magic words#NOINDEX|<nowiki>__NOINDEX__</nowiki>]]</code> behavior switch, which tells search engines not to index the page.", parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, english_name = "Noindexed pages", --TLCHANGE } raw_categories["Pages using deprecated templates"] = { description = "This category contains entries, reconstruction pages, appendixes, sign glosses and citations pages using deprecated templates—templates that have failed our deletion process, and/or that have been replaced by superior templates.", additional = [=[This category is populated by {{tl|deprecated code}} and {{tl|deprecated lang param usage}}. The former is wrapped around templates that have been completely deprecated and remove from mainspace (particularly those in [[:Category:Successfully deprecated templates]]). The latter is wrapped around non-deprecated templates that accept the deprecated {{para|lang}} parameter; any use of that parameter will place the page in [[:Category:Pages using deprecated templates]]. Ideally, this category will be empty. Any pages in this category, particularly those in the mainspace, need to have their deprecated template usages corrected. ]=], breadcrumb = "Using deprecated templates", parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, } 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 = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", 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 = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, } raw_categories["Pahinang may paulong pangwika na hindi magkasunod-sunod"] = { --TLCHANGE description = "Pages in which the headings for each language's entry are in the wrong order.", additional = "Level 2 language headings should be in alphabetical order, except for Translingual and English, which go at the top (in that order).", breadcrumb = "Paulong pangwika na hindi magkasunod-sunod", --TLCHANGE "Language headings in the wrong order", parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, english_name = "Pages with language headings in the wrong order", --TLCHANGE } raw_categories["Pahinang may paulong pangwika na hindi naaayon"] = { --TLCHANGE description = "Pages which contain a level 2 heading which does not match any language's canonical name.", additional = "The level 2 language heading for each language should always be that language's canonical name.", breadcrumb = "Di-naaayong paulong pangwika", --TLCHANGE parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, english_name = "Pages with nonstandard language headings", --TLCHANGE } raw_categories["Pages with unwanted L1 headings"] = { description = "Pages which contain an unwanted level 1 heading.", additional = "Level 1 headings are not used in Wiktionary content pages, and only occur due to user error or vandalism.", breadcrumb = "Unwanted L1 headings", parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, } raw_categories["Pages with raw triple-brace template parameters"] = { description = "Pages which contain raw template parameters in the form of triple braces.", additional = "Triple-brace template parameters (e.g. {{param|param}}) are intended for use in templates, as they are substituted with the relevant template argument when the page is transcluded. Although they can theoretically be used on any page, there are currently no legitimate uses for them in content namespaces.\n\nTemplate parameters usually occur due to typos, or when {{tl|subst:}} has been used with a template that isn't supposed to be substed.", breadcrumb = "Raw template parameters", parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", 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 = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", 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 mainspace or the Reconstruction namespace)." .. "\n\nSee also [[:Category:Pages with DEFAULTSORT conflicts]].", breadcrumb = "DISPLAYTITLE conflicts", parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", 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]]}}." .. "\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 = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, } raw_categories["Pahinang may kamalian sa iskrip"] = { --TLCHANGE custom translated at [[MediaWiki:Scribunto-common-error-category]] 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 \"[[mw:Help:Dummy_edit#A_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:maintenance 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 = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, english_name = "Pages with module errors", --TLCHANGE } 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:maintenance 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 = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", 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 = {"Wiktionary maintenance", "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 invalid parameters when calling templates"] = { description = "Pages that use unrecognized parameters when calling a template.", breadcrumb = "Invalid template parameters", parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, } raw_categories["Pahinang gumagamit ng catfix"] = { --TLCHANGE description = "Pages that use the <code>[[MediaWiki:Gadget-catfix.js|catfix]]</code> gadget.", additional = "This processes links to entries in language-specific categories by adding language-specific formatting, and points them to the language's section of the entry.", parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, english_name = "Pages using catfix", --TLCHANGE } raw_categories["Pahinang tinatawag ang Padron:minitoc"] = { --TLCHANGE description = "Pages that display a mini table of contents by calling {{tl|minitoc}}.", additional = "This is is used on very large pages with many entries, to assist with navigation.", parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, english_name = "Pages calling Template:minitoc", --TLCHANGE } raw_categories["Kategoryang tinatawag ang Padron:auto cat"] = { --TLCHANGE description = "Categories that have been placed in another category by calling {{tl|auto cat}}.", additional = "This is the preferred way for categories to be subcategorized. The chief reason for this category is to facilitate the finding of categories which are not using {{tl|auto cat}} through the use of negative searches (e.g. qualifying a search with {{code|-incategory:\"{{PAGENAME}}\"}}).", parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, english_name = "Categories calling Template:auto cat", --TLCHANGE } raw_categories["Categories with categories using raw markup"] = { description = "Categories that have been placed in another category using raw wiki markup (e.g. {{cl|Wiktionary}}). They should be added to the [[Module:category tree|category tree]] data instead.", parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, } raw_categories["Pages using deprecated source tags"] = { description = "Pages that use the [[mw:Extension:SyntaxHighlight|SyntaxHighlight]] extension with legacy {{wt|source}} tags instead of {{wt|syntaxhighlight}}.", breadcrumb = "Deprecated source tags", parents = "Pagpapanatili ng Wiksiyonaryo", --TLCHANGE "Wiktionary maintenance", can_be_empty = true, hidden = true, } ----- --TLCHANGE CUSTOM CATEGORIES local notice = "'''ITO AY KATEGORYANG ESPESIPIKO SA WIKSIYONARYONG TAGALOG LAMANG.'''<br/><br/>" -- ADD NEW CUSTOM CATEGORY FOR CATEGORIES WITHOUT THE english_name PARAMETER raw_categories["Kategoryang walang pangalan sa Ingles"] = { description = "Mga kategoryang hindi nailagay ang <code>english_name</code> sa kanilang datos.", additional = notice .. "Kapag sinasalin ang mga pangalan ng kategorya, ilagay ang orihinal na pangalan nito sa <code>english_name</code>.", parents = "Pagpapanatili ng Wiksiyonaryo", -- "Wiktionary maintenance", can_be_empty = true, hidden = true, english_name = "Categories that does not have an English translation", } -- CUSTOM CATEGORY FOR PAGES NOT USING THE =={{LANGCODE}}== SYNTAX FOR LANGUAGE HEADERS raw_categories["Pahinang may paulong pangwika na hindi gumagamit ng padron"] = { description = "Mga pahinang hindi gumagamit ng padron sa kanilang paulong pangwika.", additional = notice .. "Dapat palitan ang mga ito upang gumamit ng <code><nowiki>=={{CODE}}==</nowiki></code>", breadcrumb = "Paulong pangwika na hindi gumagamit ng padron", parents = "Pagpapanatili ng Wiksiyonaryo", --"Wiktionary maintenance", can_be_empty = true, hidden = true, english_name = "Pages whose language header does not use a template", } ---- insert(raw_handlers, function(data) local template_type = data.category:match("^Pages using invalid parameters when calling (.+) templates$") if not template_type then return end local parents = {{ name = "Pages using invalid parameters when calling templates", sort = template_type == "general use" and "*" or template_type, }} local lang = require("Module:languages").getByCanonicalName(template_type, nil, true) if lang then insert(parents, {name = "entry maintenance", is_label = true, lang = lang:getCode()}) end return { lang = lang and lang:getCode() or nil, description = "Pages that use unrecognized parameters when calling " .. template_type .. " templates.", parents = parents, breadcrumb = template_type, } end) do local prefixes = require("Module:table").listToSet{"list", "P", "R", "RQ", "table", "U"} local function add_parent(parents, seen, cat_type, sortkey) if seen[cat_type] then return end insert(parents, { name = ("Pages using invalid parameters when calling %s templates"):format(cat_type), sort = sortkey, }) seen[cat_type] = true end insert(raw_handlers, function(data) local template = data.category:match("^Pages using invalid parameters when calling (.+)$") if not template then return end -- Resolve any redirects. template = new_title(template) while template do local redirect = template.redirectTarget if not (redirect and is_internal_title(redirect)) then break end template = redirect end -- Disallow templates which would always hidden maintennace categories (e.g. sandboxes). if not (template and not uses_hidden_category(template)) then return end local prefixed_text, lang = template.prefixedText if template.namespace == 10 then local name = template.text -- Remove the prefix if present (e.g. "R:" or "RQ:"). local prefix, text = name:match("^(.-):(.+)") if not (prefix and prefixes[prefix]) then text = name end -- Check the initial language code, chopping off hyphenated sections until there's a match or they run out. local code = mw.ustring.match(text, "^[a-z][a-zA-Z-]*[a-zA-Z]%f[^%w]") while code do lang = get_lang(code) if lang then break end code = code:match("(.+)%-%a*$") end -- If no match and it's a list: or table: template, check if the template name ends "/CODE". if not lang and (prefix == "list" or prefix == "table") then code = text:match("%f[^/]%l[%a-]*%a$") if code then lang = get_lang(code) end end end local sortkey = template.text local parents, seen = {}, {} -- Categorize as language-specific if a language was found. if lang then add_parent(parents, seen, lang:getCanonicalName(), sortkey) end -- Also grab any language categories from the template page. for _, cat in ipairs(template.categories) do if cat:sub(-10) == " templates" or cat:sub(-13) == " subtemplates" then local cat_lang = split_lang_label(new_title(cat).text) if cat_lang then add_parent(parents, seen, cat_lang:getCanonicalName(), sortkey) end end end -- If none were found, categorize as general use. if #parents == 0 then add_parent(parents, seen, "general use", sortkey) end -- Only add can_be_empty if the template exists and contains checkparams. local content, can_be_empty = template:getContent() if content then -- Check for {{#invoke:checkparams|warn|...}}. -- args[1] is the module and args[2] is the function name, so #INVOKE: will throw an error if either is not present. for template in require("Module:template parser").find_templates(content) do if template:get_name() == "#INVOKE:" then local args = template:get_arguments() local arg_2 = args[2] if arg_2 and php_trim(args[1]) == "checkparams" and php_trim(arg_2) == "warn" then can_be_empty = true break end end end end return { canonical_name = "Pages using invalid parameters when calling " .. prefixed_text, lang = lang and lang:getCode() or nil, description = ("Pages that use unrecognized parameters when calling {{tl|%s}}.") :format(m_template_parser.getTemplateInvocationName(template)), additional = "These template calls should be reviewed and the invalid parameter(s) should be corrected or removed.", breadcrumb = prefixed_text, parents = parents, can_be_empty = can_be_empty, hidden = true, } end) end return {RAW_CATEGORIES = raw_categories, RAW_HANDLERS = raw_handlers} 33kn61upupktfc392urrp3myh6a30ml Module:template cat 828 36935 177913 174271 2026-09-12T13:37:52Z Yivan000 4078 177913 Scribunto text/plain -- Author: Benwing local export = {} local require_when_needed = require("Module:utilities/require when needed") local is_callable = require_when_needed("Module:fun", "is_callable") local format_categories = require_when_needed("Module:utilities", "format_categories") local parse_interface_module = "Module:parse interface" local m_string_utilities = require("Module:string utilities") local und_lang = require("Module:languages").getByCode("und", true) local ugsub = m_string_utilities.gsub local ufind = m_string_utilities.find local split = m_string_utilities.split local insert = table.insert local concat = table.concat local unpack = unpack or table.unpack -- Lua 5.2 compatibility -- This table detects the category type of the template given its name. When this is invoked, the language code has -- already been removed from the beginning, and anything starting with a slash has been truncated. The entries are -- processed in order and are two-element lists of Lua patterns (anchored on both sides; beware of hyphens, which need -- to be %-escaped) and the category type to use. The category types themselves are mapped to categories in -- category_type_to_category. local detect_category_type_list = { -- order is important here -- nouns, proper nouns, pronouns -- (1) unambiguous decl/infl templates {"decl%-.*proper.*", "noun inflection-table"}, {"infl%-.*proper.*", "noun inflection-table"}, {"decl%-.*pron.*", "pronoun inflection-table"}, {"infl%-.*pron.*", "pronoun inflection-table"}, {"decl%-noun.*", "noun inflection-table"}, {"infl%-noun.*", "noun inflection-table"}, -- (2) nouns {"noun", "headword-line"}, {"noun[ -]form", "headword-line"}, {"noun[ -]pl", "headword-line"}, {"noun[ -]plonly", "headword-line"}, -- Some languages, e.g. Urdu, have inflection templates called e.g. [[Template:ur-noun-f-ī]]. They should be called -- [[Template:ur-decl-noun-f-ī]] but we can autodetect them if we exclude the likely cases that are not declension -- templates. {"noun%-.*", "noun inflection-table"}, {"ndecl", "noun inflection-table"}, {"ndecl%-.*", "noun inflection-table"}, -- (3) proper nouns {"proper[ -]?noun", "headword-line"}, {"proper[ -]?noun[ -]form", "headword-line"}, {"proper[ -]?noun[ -]pl", "headword-line"}, {"proper[ -]?noun[ -]plonly", "headword-line"}, {"pnoun", "headword-line"}, {"pnoun[ -]form", "headword-line"}, {"pnoun[ -]pl", "headword-line"}, {"pnoun[ -]plonly", "headword-line"}, {"propn", "headword-line"}, {"propn[ -]form", "headword-line"}, {"propn[ -]pl", "headword-line"}, {"propn[ -]plonly", "headword-line"}, -- See above for inflection templates without 'decl' or 'infl' in them. {"proper[ -]?noun%-.*", "noun inflection-table"}, {"pnoun%-.*", "noun inflection-table"}, {"propn%-.*", "noun inflection-table"}, -- (4) pronouns {"pron", "headword-line"}, {"pronoun", "headword-line"}, {"pron[ -]form", "headword-line"}, {"pronoun[ -]form", "headword-line"}, {"prondecl", "pronoun inflection-table"}, {"prondecl%-.*", "pronoun inflection-table"}, -- adjectives {"decl%-adj.*", "adjective inflection-table"}, {"infl%-adj.*", "adjective inflection-table"}, {"adj", "headword-line"}, {"adjective", "headword-line"}, {"adj[ -]form", "headword-line"}, {"adjective[ -]form", "headword-line"}, {"adj[ -]comp", "headword-line"}, {"adjective[ -]comp", "headword-line"}, {"adj[ -]sup", "headword-line"}, {"adjective[ -]sup", "headword-line"}, -- Some languages, e.g. Urdu and Lithuanian, have inflection templates called e.g. [[Template:ur-adj-1]] and -- [[Template:lt-adj-is]]. They should be called [[Template:ur-decl-adj-1]] and [[Template:lt-decl-adj-is]] but we -- can autodetect them if we exclude the likely cases that are not declension templates. {"adj%-.*", "adjective inflection-table"}, {"adecl", "adjective inflection-table"}, {"adecl%-.*", "adjective inflection-table"}, -- verbs; need to avoid including conjunctions {"verb", "headword-line"}, {"conj", "verb inflection-table"}, {"conj[0-9 -].*", "verb inflection-table"}, {"conjug.*", "verb inflection-table"}, {"infl%-verb.*", "verb inflection-table"}, -- pronunciation {".*IPA.*", "pronunciation"}, {"pronunciation", "pronunciation"}, {"pr", "pronunciation"}, {"p", "pronunciation"}, -- form-of {".*form of", "form-of"}, -- pronominal boxes {".*personal pronouns", "personal pronoun"}, {".*demonstrative.*", "demonstrative"}, {".*interrogative.*", "interrogative"}, {".*possessives", "possessive"}, {".*possessive .*", "possessive"}, {".*reflexives", "reflexive"}, {".*reflexive .*", "reflexive"}, -- these next two should precede 'relative' {".*correlatives", "pro-form"}, {".*correlative .*", "pro-form"}, {".*relative .*", "relative"}, {".*articles", "article"}, {".*prefixes", "affix"}, {".*suffixes", "affix"}, -- TOC tables {".*TOC", "TOC"}, -- numbers, numerals {".*numbers", "number"}, {".*numerals", "number"}, {".*ordinals", "ordinal"}, {".*cardinals", "cardinal"}, {".*digits", "digit"}, -- transliteration {".*xlit", "orthographic conversion"}, {".*translit", "orthographic conversion"}, -- orthographic and regional variants {".*variant", "orthographic variant"}, {".*regional", "regional variant"}, -- sign production templates -- FIXME: We should limit this to sign languages. As it is, we put it near the bottom of the -- pattern list so it doesn't accidentally override other patterns for non-sign languages. {"prod .*", "sign production"}, } -- This table indicates how to convert template category types to categories. It consists of a list of pairs, where the -- first element is the category type and the second element is a key-value table containing the following keys: -- * `aliases`: Optional list of aliases for the category type, which can be used when explicitly specifying the type, -- e.g. {{tcat|hw}} instead of {{tcat|headword-line}}. -- * `cats`: List of categories to add the template to. Each entry either specifies a ''raw'' category (if the category -- name begins with "Category:") or a ''label'' category (for other strings, where e.g. if the label is -- "noun inflection-table", the category name is "LANG noun inflection-table templates"). An entry is either a string, -- directly specifying the category name, or a key-value table with keys `name` (the category name) and `sort` (how to -- generate the sort base). By default, the sort base for raw categories is a comma-separated list of the language -- names (not codes) associated with the template, or the full template name if there are no languages, and the sort -- base for label categories is the template name minus the initial language code. If this isn't correct, the `sort` -- field specifies how to compute the sort base. It is either a function of two arguments, the template name and -- language object, which should return the sort base; or a table of specs telling how to compute the sort base. In -- the case of a function, the template name passed in is the full name for raw categories, but the name minus any -- language code prefix in the case of label categories; and for raw categories, a list of all associated language -- objects is passed in, or {nil} if none, while for label categories, a single language object is passed in. -- (Label categories can only exist if there are associated languages.) In the case where `sort` is a table of specs, -- it is a list where each element is a two-element list of a Lua pattern anchored on both sides and the corresponding -- pattern replacement string. The specs are processed in order. local category_type_to_category = { -- Inflection-table templates {"noun inflection-table", { aliases = {"nouninfl", "noundecl", "ndecl"}, cats = {{name = "pantalahanayan ng pagbabagong-anyo ng pangngalan", sort = { --TLCHANGE "noun inflection-table" {"infl%-(.*)", "%1"}, {"decl%-(.*)", "%1"}, {"noun%-(.*)", "%1"}, -- put this twice to catch noun-decl-* and decl-noun-* {"infl%-(.*)", "%1"}, {"decl%-(.*)", "%1"}, {"noun", "*"}, {"ndecl%-base%-(.*)", " %1"}, {"ndecl%-base", " "}, {"ndecl%-(.*)", "%1"}, {"ndecl", "*"}, {"propndecl%-base%-(.*)", " %1"}, {"propndecl%-base", " "}, {"propndecl%-(.*)", "%1"}, {"propndecl", "*"}, {"proper[ -]?noun%-(.*)", "%1"}, {"propn%-(.*)", "%1"}, {"pnoun%-(.*)", "%1"}, }}}, }}, {"pronoun inflection-table", { aliases = {"proninfl", "prondecl"}, cats = {{name = "pantalahanayan ng pagbabagong-anyo ng panghalip", sort = { --TLCHANGE "pronoun inflection-table" {"infl%-(.*)", "%1"}, {"decl%-(.*)", "%1"}, {"pronoun%-(.*)", "%1"}, {"pron%-(.*)", "%1"}, -- put this twice to catch pron-decl-* and decl-pron-* {"infl%-(.*)", "%1"}, {"decl%-(.*)", "%1"}, {"pronoun", "*"}, {"prondecl%-base%-(.*)", " %1"}, {"prondecl%-base", " "}, {"prondecl%-(.*)", "%1"}, {"prondecl", "*"}, }}}, }}, {"adjective inflection-table", { aliases = {"adjinfl", "adjdecl", "adecl"}, cats = {{name = "pantalahanayan ng pagbabagong-anyo ng pang-uri", sort = { --TLCHANGE "adjective inflection-table" {"infl%-(.*)", "%1"}, {"decl%-(.*)", "%1"}, {"adj%-(.*)", "%1"}, {"adjective%-(.*)", "%1"}, -- put this twice to catch adj-decl-* and decl-adj-* {"infl%-(.*)", "%1"}, {"decl%-(.*)", "%1"}, {"adj", "*"}, {"adjective", "*"}, {"adecl%-base%-(.*)", " %1"}, {"adecl%-base", " "}, {"adecl%-(.*)", "%1"}, {"adecl", "*"}, }}}, }}, {"verb inflection-table", { aliases = {"verbinfl", "conj"}, cats = {{name = "pantalahanayan ng pagbabagong-anyo ng pandiwa", sort = { --TLCHANGE "verb inflection-table" {"infl%-(.*)", "%1"}, {"verb%-(.*)", "%1"}, -- put this twice to catch verb-infl-* and infl-verb-* {"infl%-(.*)", "%1"}, {"conj%-base%-(.*)", " %1"}, {"conj%-base", " "}, -- handle conj2, conj1-c, etc. {"conj%-?(.*)", "%1"}, {"conj", "*"}, }}}, }}, -- Headword-line templates {"headword-line", { aliases = {"hw", "headword"}, cats = {"headword-line"}, }}, -- Definition templates {"definition", { aliases = {"def", "defn"}, cats = {"definition"}, }}, {"form-of", { aliases = {"form of"}, cats = {"form-of"}, }}, -- Etymology and pronunciation templates {"etymology", { aliases = {"etym"}, cats = {"etymology"}, }}, {"morphology", { aliases = {"morph"}, cats = {"etymology", "Category:Language-specific morphology templates"}, }}, {"pronunciation", { aliases = {"pron"}, cats = {"pronunciation"}, }}, {"sign production", { aliases = {"signprod"}, cats = {{name = "sign production", sort = { {"prod (.*)", "%1"}, }}}, }}, -- Pseudo-namespace templates {"reference", { aliases = {"ref"}, cats = {"reference"}, }}, {"quotation", { aliases = {"quote"}, cats = {"quotation"}, }}, {"usage", { cats = {"usage"}, }}, {"list", { cats = {"list"}, }}, {"auto-table", { aliases = {"table"}, cats = {"auto-table"}, }}, -- Navigation templates -- Pro-form box templates {"pro-form", { aliases = {"pro-forms"}, cats = {"pangnabegasyon", "Category:Padrong pangkahong pang-anyong nanghahalip"}, --TLCHANGE {"navigation", "Category:Pro-form box templates"}, }}, {"adposition", { aliases = {"adpositions", "preposition", "prepositions", "postposition", "postpositions"}, cats = {"navigation", "Category:Adposition box templates"}, }}, {"affix", { aliases = {"affixes", "prefix", "prefixes", "suffix", "suffixes"}, cats = {"navigation", "Category:Pro-form affix box templates"}, }}, {"article", { aliases = {"articles"}, cats = {"navigation", "Category:Grammatical article box templates"}, }}, {"demonstrative", { aliases = {"demonstratives"}, cats = {"navigation", "Category:Demonstrative box templates"}, }}, {"interrogative", { aliases = {"interrogatives"}, cats = {"navigation", "Category:Interrogative box templates"}, }}, {"personal pronoun", { aliases = {"perspron", "personal pronouns"}, cats = {"pangnabegasyon", "Category:Padrong pangkahong pampanghalip na panao"}, --TLCHANGE {"navigation", "Category:Personal pronoun box templates"}, }}, {"possessive", { aliases = {"possessives"}, cats = {"navigation", "Category:Possessive pronoun and determiner box templates"}, }}, {"reflexive", { aliases = {"reflexives"}, cats = {"navigation", "Category:Reflexive pronoun and determiner box templates"}, }}, {"relative", { aliases = {"relatives"}, cats = {"navigation", "Category:Relative pronoun and determiner box templates"}, }}, {"navigation", { -- miscellaneous navigation box templates like {{eu-aux verbs}}, {{pt-forms of address}} aliases = {"nav"}, cats = {"navigation"}, }}, {"TOC", { cats = {{name = "navigation", sort = { {"categoryTOC", "TOC"}, }}, "Category:TOC templates"}, }}, {"number", { aliases = {"numbers"}, cats = {"navigation", "Category:Language-specific number templates"}, }}, {"cardinal", { aliases = {"cardinals"}, cats = {"navigation", "Category:Language-specific number templates"}, }}, {"ordinal", { aliases = {"ordinals"}, cats = {"navigation", "Category:Language-specific number templates"}, }}, {"digit", { aliases = {"digits"}, cats = {"list", "Category:Language-specific number templates"}, }}, -- Entry templates {"entry", { cats = {"entry"}, }}, -- Orthographic conversion templates (e.g. for converting between scripts) {"orthographic conversion", { aliases = {"transliteration", "translit", "xlit", "orthconv", "scriptconv"}, cats = {"conversion", "Category:Orthographic conversion templates"}, }}, -- Orthographic and regional variant templates (for displaying orthographic, script and/or regional variants) {"orthographic variant", { aliases = {"orthvar", "scriptvar"}, -- Currently we categorize orthographic and regional variants the same but we could split them if needed cats = {"navigation", "Category:Orthographic and regional variant templates"}, }}, {"regional variant", { aliases = {"regvar"}, cats = {"navigation", "Category:Orthographic and regional variant templates"}, }}, -- Internal link templates {"link", { cats = {"link", "Category:Language-specific internal link templates"}, }}, } local category_type_to_category_map = {} for _, category_type_to_category_spec in ipairs(category_type_to_category) do local category_type, props = unpack(category_type_to_category_spec) category_type_to_category_map[category_type] = props if props.aliases then for _, alias in ipairs(props.aliases) do category_type_to_category_map[alias] = props end end end -- Split an argument on comma, but not comma followed by whitespace; split off sort base after a colon. local function split_on_comma_and_split_off_sort_base(val) local cattypes if val:find(",") then -- Don't optimize more than this because there can be commas backslashed, inside of links or followed by -- whitespace that don't cause splitting. cattypes = require(parse_interface_module).split_on_comma(val) else cattypes = {val} end for i, cattype_spec in ipairs(cattypes) do if cattype_spec:find(":") then local cattype, sort_base = cattype_spec:match("^(.-):(.*)$") sort_base = sort_base:gsub("_", " ") cattypes[i] = {name = cattype, sort_base = sort_base} end end return cattypes end local function get_lang_or_script(code) return code == "-" and code or require("Module:languages").getByCode(code, nil, "allow etym") or require("Module:languages").getByCode(code .. "-pro", nil, "allow etym") or require("Module:scripts").getByCode(code) end local function obj_code(obj) if obj == "-" then return obj end return obj:getCode() end local function get_prefixed_obj(after_prefix) return after_prefix:match("^(%a[%a-]*%a):(.+)$") end local function get_suffixed_obj(after_prefix) local rest, objcode = after_prefix:match("^(.+)/(%a[%a-]*%a)$") return objcode, rest end local pseudo_namespace_templates = { {"R:", { category_type = "reference", get_obj_and_rest = get_prefixed_obj, }}, {"RQ:", { category_type = "quotation", get_obj_and_rest = get_prefixed_obj, }}, {"U:", { category_type = "usage", get_obj_and_rest = get_prefixed_obj, }}, {"list:", { category_type = "list", get_obj_and_rest = get_suffixed_obj, }}, {"table:", { category_type = "auto-table", get_obj_and_rest = get_suffixed_obj, }}, } local function infer_lang_or_script_code_and_category_type(name) if name:find(":") then -- only check for pseudo-namespace prefix when a colon is present for _, pseudo_namespace_spec in ipairs(pseudo_namespace_templates) do local prefix, props = unpack(pseudo_namespace_spec) local after_prefix = name:match("^" .. prefix .. "(.+)$") if after_prefix then local objcode, rest = props.get_obj_and_rest(after_prefix) local obj if objcode then obj = get_lang_or_script(objcode) -- may return nil if not obj then rest = after_prefix end else rest = after_prefix end return obj, rest, props.category_type end end end local hyphen_parts = split(name, "%-") for i = #hyphen_parts - 1, 1, -1 do local code = concat(hyphen_parts, "-", 1, i) local obj = get_lang_or_script(code) if obj then local rest = concat(hyphen_parts, "-", i + 1) return obj, rest, nil end end return nil, name, nil end local function process_sortbase_specs(sortbase, specs) for _, spec in ipairs(specs) do local from, to = unpack(spec) sortbase = ugsub(sortbase, "^" .. from .. "$", to) end return sortbase end local function template_name_minus_langcode_to_category_type(name) for _, type_spec in ipairs(detect_category_type_list) do local pattern, intended_type = unpack(type_spec) if ufind(name, "^" .. pattern .. "$") then return intended_type end end return nil end local function compute_categories_for_template(full_template_name, template_name_minus_langcode, category_type, langs_or_scripts) local overriding_sort_base if type(category_type) == "table" then overriding_sort_base = category_type.sort_base category_type = category_type.name end if not category_type_to_category_map[category_type] then error("Unrecognized template category type: " .. category_type) end local props = category_type_to_category_map[category_type] if not props.cats then error("Internal error: No categories given for category type: " .. category_type) end local categories = {} for _, catspec in ipairs(props.cats) do if type(catspec) == "string" then catspec = {name = catspec} end local rawcat = catspec.name:match("^Category:(.*)") if rawcat then local sortbase -- User-specified sort base does not apply to raw categories, which have a different sort key format -- than language-specific categories. if not catspec.sort then if langs_or_scripts then local langnames = {} for _, lang_or_sc in ipairs(langs_or_scripts) do insert(langnames, lang_or_sc:getCanonicalName()) -- FIXME: or lang:getFullName()? end sortbase = concat(langnames, ",") else sortbase = full_template_name end elseif is_callable(catspec.sort) then sortbase = catspec.sort(full_template_name, langs_or_scripts) else sortbase = process_sortbase_specs(full_template_name, catspec.sort) end insert(categories, {cat = rawcat, lang = und_lang, sort_base = sortbase}) elseif langs_or_scripts then for _, lang_or_sc in ipairs(langs_or_scripts) do local sortbase if overriding_sort_base then sortbase = overriding_sort_base elseif not catspec.sort then sortbase = template_name_minus_langcode elseif is_callable(catspec.sort) then sortbase = catspec.sort(template_name_minus_langcode, lang_or_sc) else sortbase = process_sortbase_specs(template_name_minus_langcode, catspec.sort) end if lang_or_sc:hasType("script") then insert(categories, { cat = ("%s na padron"):format(lang_or_sc:getCategoryName()), lang = und_lang, sc = lang_or_sc, --TLCHANGE "%s templates" sort_base = sortbase, }) else insert(categories, { cat = ("%s na padrong %s"):format(lang_or_sc:getFullName(), catspec.name), lang = lang_or_sc, --TLCHANGE "%s %s templates" sort_base = sortbase, }) end end end end if not categories[1] then error(("No categories generated for template [[Template:%s]] with category type '%s'"):format( full_template_name, category_type)) end return categories end --[==[ Main entry point. ]==] function export.categorize(frame) local params = { [1] = {}, -- comma-separated list of category types; by default, inferred from template name lang = {}, -- comma-separated list of languages; by default, inferred from template name ["pagename"] = {}, -- for testing ["json"] = {type = "boolean"}, -- for testing } local parent_args = frame:getParent().args args = require("Module:parameters").process(parent_args, params) local category_specs = {} local function insert_cat(cat, sort_key) for _, existing_cat in ipairs(category_specs) do if existing_cat.cat == cat then return end end insert(category_specs, {cat = cat, sort_key = sort_key}) end local pagename = args.pagename if not pagename then title = mw.title.getCurrentTitle() pagename = title.fullText end if pagename:find("/documentation$") or pagename:find("/documentation/") then return "" end if pagename:find("^Template:User:") then insert_cat("User sandbox templates", (pagename:gsub("^Template:User:", ""))) elseif pagename:find("^User:") then insert_cat("User sandbox templates", (pagename:gsub("^User:", ""))) else if not pagename:find("^Padron:") then --TLCHANGE "^Template:" error(("This template should only be used in the Template namespace, not on page '%s'"):format(pagename)) end local full_template_name = pagename:gsub("^Padron:", "") --TLCHANGE "^Template:" local rootpage = full_template_name:gsub("/.*", "") if full_template_name:find("/sandbox") then insert_cat("Sandbox templates", full_template_name) elseif full_template_name:find("^sandbox/") then insert_cat("Sandbox templates", full_template_name:gsub("^sandbox/", "")) else local template_objs if args.lang == "-" then template_objs = false elseif args.lang then template_objs = {} for _, code in ipairs(split(args.lang, ",")) do -- We need to have an indicator of families because we allow bare family codes to stand for proto-languages. if code:find("^fam:") then code = code:gsub("^fam:", "") local family = require("Module:families").getByCode(code) or error(("Unrecognized family code '%s' in [[Module:template cat]]"):format(code)) local descendants = family:getDescendantCodes() for _, desc in ipairs(descendants) do local obj = get_lang_or_script(desc) if obj then -- make sure we skip families without proto-languages insert(template_objs, obj) end end else local obj = get_lang_or_script(code) if not obj then error(("Unrecognized language or script code '%s'"):format(code)) end insert(template_objs, obj) end end end local cattypes if args[1] then cattypes = split_on_comma_and_split_off_sort_base(args[1]) end local inferred_obj, inferred_rest, inferred_cattype = infer_lang_or_script_code_and_category_type(rootpage) if template_objs == nil or not cattypes then if template_objs == nil then if not inferred_obj then if not inferred_cattype then error(("Unable to infer language or script from template root page '%s' for template '%s'; specify lang/script and type explicitly"):format( rootpage, pagename)) else error(("Unable to infer language or script from template root page '%s' for template '%s', inferred category type '%s'; specify lang/script explicitly"):format( rootpage, pagename, inferred_cattype)) end else template_objs = {inferred_obj} end end if not cattypes then inferred_cattype = inferred_cattype or template_name_minus_langcode_to_category_type(inferred_rest) if not inferred_cattype then error(("Unable to infer template category type from template remainder (after stripping langcode) '%s' for template '%s'; specify type explicitly"):format( inferred_rest, pagename)) end cattypes = {inferred_cattype} end end for _, cattype in ipairs(cattypes) do local cats = compute_categories_for_template(full_template_name, inferred_rest, cattype, template_objs) for _, cat in ipairs(cats) do insert(category_specs, cat) end end end end -- We are returning categories for templates or user-space pages, so we need to force the output. local retval = format_categories(category_specs, nil, nil, nil, "force_output") if args.json then return require("Module:JSON").toJSON { category_specs = category_specs, retval = mw.text.nowiki(retval), } else return retval end end --[==[Table used in the documentation to {{tl|template cat}}.]==] function export.pattern_to_category_type_table() local parts = {} local function ins(text) insert(parts, text) end ins('{|class="wikitable"') ins("! Pattern !! Inferred category type") for _, detect_spec in ipairs(detect_category_type_list) do local pattern, category_type = unpack(detect_spec) ins("|-") ins(("| <code>%s</code> || <code>%s</code>"):format(pattern, category_type)) end ins("|}") return concat(parts, "\n") end --[==[Table used in the documentation to {{tl|template cat}}.]==] function export.category_type_to_category_table() local parts = {} local function ins(text) insert(parts, text) end local category_types = {} local category_type_to_aliases = {} for _, category_type_to_category_spec in ipairs(category_type_to_category) do local category_type, props = unpack(category_type_to_category_spec) insert(category_types, category_type) category_type_to_aliases[category_type] = {} if props.aliases then for _, alias in ipairs(props.aliases) do insert(category_type_to_aliases[category_type], alias) end table.sort(category_type_to_aliases[category_type]) end end table.sort(category_types) local function get_category_type_categories(category_type) local cats = {} for _, catspec in ipairs(category_type_to_category_map[category_type].cats) do if type(catspec) == "string" then catspec = {name = catspec} end local cat = catspec.name if cat:find("^Category:") then insert(cats, ("<code>%s</code>"):format((cat:gsub("^Category:", "")))) else insert(cats, ("<code><var>LANG</var> %s templates</code>"):format(cat)) end end return concat(cats, ", ") end ins('{|class="wikitable"') ins("! Category type !! Canonical category type !! Categories") for _, category_type in ipairs(category_types) do ins("|-") ins(("| <code>'''%s'''</code> || ''(same)'' || <code>%s</code>"):format( category_type, get_category_type_categories(category_type))) for _, alias in ipairs(category_type_to_aliases[category_type]) do ins("|-") ins(("| <code>%s</code> || <code>'''%s'''</code> || <code>%s</code>"):format( alias, category_type, get_category_type_categories(category_type))) end end ins("|}") return concat(parts, "\n") end return export psp789kec5z60lr6u35a3yhipoqg7v8 aa1 0 38788 177909 2026-09-12T12:57:28Z Hiyuune 5522 Nilikha ang pahina na may '{{also|Aa1}} =={{=yue=}}== ===Pagbigkas=== {{Jyutping-IPA|aa1}} ===Romanisasyon=== {{yue-jyut}} # {{yue-jyutping of|丫}} # {{yue-jyutping of|厂}} # {{yue-jyutping of|𠮩}} # {{yue-jyutping of|吖}} # {{yue-jyutping of|呀}} # {{yue-jyutping of|啊}} # {{yue-jyutping of|啞}} # {{yue-jyutping of|孲}} # {{yue-jyutping of|㝞}} # {{yue-jyutping of|扼}} # {{yue-jyutping of|椏}} # {{yue-jyutping of|㰳}} # {{yue-jyutping of|䃁}} # {{yue-jyutping of|䄅}} # {...' 177909 wikitext text/x-wiki {{also|Aa1}} =={{=yue=}}== ===Pagbigkas=== {{Jyutping-IPA|aa1}} ===Romanisasyon=== {{yue-jyut}} # {{yue-jyutping of|丫}} # {{yue-jyutping of|厂}} # {{yue-jyutping of|𠮩}} # {{yue-jyutping of|吖}} # {{yue-jyutping of|呀}} # {{yue-jyutping of|啊}} # {{yue-jyutping of|啞}} # {{yue-jyutping of|孲}} # {{yue-jyutping of|㝞}} # {{yue-jyutping of|扼}} # {{yue-jyutping of|椏}} # {{yue-jyutping of|㰳}} # {{yue-jyutping of|䃁}} # {{yue-jyutping of|䄅}} # {{yue-jyutping of|錏}} # {{yue-jyutping of|錒}} # {{yue-jyutping of|雅}} # {{yue-jyutping of|鴉}} # {{yue-jyutping of|枒}} # {{yue-jyutping of|厊}} brd13rpk8lmugdh1jw37xe7zk3j8nhq Kategorya:Kantones na anyong di-lema 14 38789 177910 2026-09-12T12:57:57Z Hiyuune 5522 Nilikha ang pahina na may '{{auto cat}}' 177910 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Padrong pangkahong pang-anyong nanghahalip 14 38790 177911 2026-09-12T13:30:28Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177911 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Padron:egl-personal pronouns/documentation 10 38791 177912 2026-09-12T13:34:44Z Yivan000 4078 Nilikha ang pahina na may '{{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> {{tcat}}' 177912 wikitext text/x-wiki {{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> {{tcat}} m8l0vseikdwj9l50rbz9wspysnkw6v1 Padron:tl-personal pronouns/documentation 10 38792 177914 2026-09-12T13:38:46Z Yivan000 4078 Nilikha ang pahina na may '{{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> {{tcat}}' 177914 wikitext text/x-wiki {{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> {{tcat}} m8l0vseikdwj9l50rbz9wspysnkw6v1 Kategorya:Tagalog na padrong pangnabegasyon 14 38793 177918 2026-09-12T13:49:32Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177918 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Tagalog na padrong pangkawing 14 38794 177919 2026-09-12T13:49:49Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177919 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Padrong pangnabegasyon ayon sa wika 14 38795 177920 2026-09-12T13:50:17Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177920 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Katalan na padrong pangnabegasyon 14 38796 177921 2026-09-12T13:51:22Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177921 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Katalan na padrong pangkawing 14 38797 177922 2026-09-12T13:51:44Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177922 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Padrong pangkawing ayon sa wika 14 38798 177923 2026-09-12T13:52:04Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177923 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Ido na padrong pangnabegasyon 14 38799 177924 2026-09-12T13:52:27Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177924 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Ido na padrong pangkawing 14 38800 177925 2026-09-12T13:53:03Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177925 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Ido na padron 14 38801 177926 2026-09-12T13:53:06Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177926 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Esloveno na padrong pangnabegasyon 14 38802 177927 2026-09-12T13:53:47Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177927 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Esloveno na padrong pangkawing 14 38803 177928 2026-09-12T13:53:59Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177928 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx almuranin 0 38804 177929 2026-09-13T06:22:52Z Hiyuune 5522 /* */ 177929 wikitext text/x-wiki =={{=tl=}}== ===Pagbigkas=== {{tl-pr}} ===Pangngalan=== {{tl-noun|b=+}} # {{alt form|tl|alimuranin}} 8ln18mklknr2x3ksjvvnrczx596nxv9 Kategorya:Kategoryang tinatawag ang Padron:auto cat 14 38805 177932 2026-09-13T07:09:44Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177932 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Tagalog na salitang hinango mula sa mga wikang Pilipino 14 38806 177935 2026-09-13T07:29:41Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177935 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Salitang hinango mula sa Proto-Pilipino ayon sa wika 14 38807 177936 2026-09-13T07:30:15Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177936 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Wikang Proto-Pilipino 14 38808 177937 2026-09-13T07:31:09Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177937 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Salitang hinango mula sa mga wikang Pilipino ayon sa wika 14 38809 177938 2026-09-13T07:32:04Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177938 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Ingles na salitang hinango mula sa mga wikang Malayo-Polinesya 14 38810 177939 2026-09-13T07:33:39Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177939 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Salitang hinango mula sa mga wikang Malayo-Polinesya ayon sa wika 14 38811 177940 2026-09-13T07:34:06Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 177940 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx