Difference between revisions 43613 and 43614 on shnwiktionary-- FIXME: Needs to be converted to use the standard [[မေႃႇၵျူး:headword]] module local m_headword = require("Module:headword") local m_gen = { codes = { ["?"] = {type = "other", display = '<abbr title="gender incomplete">?</abbr>'}, ["m"] = {type = "gender", display = '<abbr title="masculine gender">m</abbr>'}, ["f"] = {type = "gender", display = '<abbr title="feminine gender">f</abbr>'}, ["p"] = {type = "number", display = '<abbr title="plural number">pl</abbr>'}, } } function splitter(s, c) if (s == nil or c == nil) then return nil end local t = {} local cpos = mw.ustring.find(s, c) while (cpos ~= nil) do table.insert(t, mw.ustring.sub(s, 1, cpos-1)) s = mw.ustring.sub(s, cpos+1) cpos = mw.ustring.find(s, c) end table.insert(t, s) return t end function m_gen.format_list(list) local s = "" list = splitter(list[1], "-") for n, g in ipairs(list) do if (n > 1) then s = s .. " " end s = s .. m_gen.codes[g].display end s = "<span class=\"gender\">" .. s .. "</span>" return s end local m_plural = require("Module:pt-plural") local lang = require("Module:languages").getByCode("pt") local export = {} local cats = {} local PAGENAME, NAMESPACE function export.show(frame) local args = frame:getParent().args PAGENAME = mw.title.getCurrentTitle().text NAMESPACE = mw.title.getCurrentTitle().nsText -- for compatibility with old pt-noun if (args[2] == "s") then args[2] = PAGENAME .. "s" elseif (args[2] == "es") then args[2] = PAGENAME .. "es" end local is_plural = get_is_plural(args[1], args["g2"]) local items = {} table.insert(items, get_countability(args, is_plural)) table.insert(items, get_lemma_plurals(args, is_plural)) table.insert(items, get_feminine(args["f"], args["qual_f"], is_plural)) table.insert(items, get_feminine_plural(args["f"], args["fpl"], args["qual_fpl"], args[2] == "-", is_plural)) table.insert(items, get_feminine(args["f2"], args["qual_f2"], is_plural)) table.insert(items, get_feminine_plural(args["f2"], args["fpl2"], args["qual_fpl2"], args[2] == "-", is_plural)) return get_headword(args["head"]) .. get_genders(args[1], args["g2"], args["qual_g1"], args["qual_g2"]) .. get_inflection(items) .. get_categories() end -- Returns the headword. If the pagename contains spaces or hyphens, its -- constituents are wikified. function get_headword(head) if (head == nil) then head = PAGENAME local has_head_links = false if head:find(" ", nil, false) then head = mw.text.split(head, " ", true) head = table.concat(head, "]] [[") has_head_links = true end if (head:find("-", nil, false)) then head = mw.text.split(head, "-", true) head = table.concat(head, "]]-[[||") has_head_links = true end if (has_head_links == true) then head = "[[" .. head .. "]]" end end return m_headword.full_headword({lang = lang, pos_category = "ႁိၵ်ႈ", heads = {head}, categories = {}}) end -- Returns the text containing the gender information. -- If no gender is provided, or if the gender is '?', the entry is added to -- [[ပိူင်ထၢၼ်ႈ:Portuguese nouns lacking gender]] and a request is returned. -- If two genders are provided, the entry is added to [[ပိူင်ထၢၼ်ႈ:Portuguese -- nouns with varying gender]]. -- If two genders are provided, but there are no qualifier for either, the -- string (in variation) is added after the second, per [[WT:T:APT]]. function get_genders(g1, g2, g1q, g2q) if (g1 == "" or g1 == "?" or g1 == nil) then table.insert(cats, "terms with incomplete gender") return " " .. please_add("gender") end if (g1 == "morf") then g1 = "m" g2 = "f" elseif (g1 == "mf") then g1 = "m-f" end if (g2 == "mf") then g2 = "m-f" end local text = " " .. m_gen.format_list({g1}) .. qualifier(g1q) if (g2 ~= "" and g2 ~= nil) then text = text .. " or " .. m_gen.format_list({g2}) .. qualifier(g2q) table.insert(cats, "nouns with varying gender") if (g2q == nil and g1q == nil) then text = text .. qualifier("in variation") end end return text end -- Returns a boolean indicating whether the noun is a plurale tantum. -- If true, it also adds the entry to [[ပိူင်ထၢၼ်ႈ:Portuguese pluralia tantum]]. function get_is_plural(g1, g2) g1 = g1 or "" g2 = g2 or "" if (mw.ustring.find(g1, "p") ~= nil or mw.ustring.find(g2, "p") ~= nil) then table.insert(cats, "pluralia tantum") return true end return false end -- Returns text indicating a special status with regards to countability. These -- are plurale tantum, uncountable and usually uncountable. function get_countability(args, is_plural) if (is_plural == true) then return "''plurale tantum''" end if (args[2] == "-") then return "''uncountable''" end if (args["unc"] ~= nil) then return "''usually uncountable''" end return nil end -- Returns the text with the description, link and qualifier of a plural -- (i.e. "feminine plural of [[||example]] (qualifier)"). If the plural is not -- present as a parameter, [[မေႃႇၵျူး:pt-plural]] is used to automatically figure -- it out from the lemma. If that is impossible, a request is returned and the -- entry is added to [[ပိူင်ထၢၼ်ႈ:Portuguese nouns needing inflection]]. function get_primary_plural(lemma, pl, description, class, qualifier) if (pl == "" or pl == nil) then pl = m_plural.get_plural(lemma) end if (pl == "" or pl == nil) then table.insert(cats, "nouns needing inflection") return please_add(description) end return merge(description, class, pl, qualifier) end -- Returns the text with the desciption (always "or"), link and qualifier of an -- alternative plural. If none is provided, nil is returned. function get_secondary_plural(pl, class, qualifier) if (pl ~= nil and pl ~= "") then return merge(" or", class, pl, qualifier) end return "" end -- Puts together the text of the lemma's primary and two secondary plurals. function get_lemma_plurals(args, is_plural) if (is_plural == true) then return nil end local class = "plural-form-of" local pl = args[2]; if (pl == nil or pl == "") then pl = args["pl"] end if (pl == "?") then table.insert(cats, "nouns needing inflection") return please_add("plural") elseif (pl ~= "-") then local text = get_primary_plural(PAGENAME, pl, "plural", class, args["qual_pl"]) text = text .. get_secondary_plural(args["pl2"], class, args["qual_pl2"]) text = text .. get_secondary_plural(args["pl3"], class, args["qual_pl3"]) return text end return nil end function get_feminine(f, qualifier, is_plural) if (f == "" or f == nil) then return nil end local class = "feminine-form-of gender-f" if is_plural then class = class .. "pl" end return merge("feminine", class, f, qualifier) end function get_feminine_plural(f, fpl, qualifier, is_unc, is_plural) if (is_plural == true or is_unc == true or f == nil or f == "") then return nil end local class = "feminine-form-of gender-fpl" return get_primary_plural(f, fpl, "feminine plural", class, qualifier) end -- Returns the parenthetical part of the headword line (plurals and feminines). function get_inflection(items) if (table.getn(items) == 0) then return "" end local text = " (" for c = 1, table.getn(items) do if (c > 1) then text = text .. ", " end text = text .. items[c] end return text .. ")" end -- Returns the text containing the categories that the entry will be added to. function get_categories() if (NAMESPACE ~= "") then return "" end local text = "" for c = 1, table.getn(cats) do text = text .. "[[ပိူင်ထၢၼ်ႈ:ၽႃႇသႃႇပေႃးတူႉၵၢဝ်ႇ " .. cats[c] .. "]]" end return text; end -- Nerges the form description (e.g. “plural”, “feminine”), word, its class -- (e.g. “plural-form-of gender-mpl”) and qualifier if any. -- FIXME: Needs better parameter names. function merge(f, c, w, q) if (w == nil or w == "") then return "" end text = "" text = text .. "''" .. f .. "'' " text = text .. '<span class="form-of ' .. c .. ' lang-pt" lang="pt">' text = text .. make_link(w) .. "</span>" if (q ~= nil and q ~= "") then text = text .. qualifier(q) end return text end -- Returns a piece of text boldened and wikified (unless it is the same as the -- pagename). -- FIXME: Convert to use [[မေႃႇၵျူး:links]] function make_link(text) if (PAGENAME == text) then return "'''" .. text .. "'''" end return "'''[[||" .. text .. "#Portuguese|" .. text .. "]]'''" end -- Returns a text with a request for lacking information. function please_add(text) --table.insert(cats, "terms needing attention") return "<sup><small><span style='color:#AAAAAA;'>please add " .. text .. "</span></small></sup>" end function qualifier(text) if (text == nil or text == "") then return "" end return ' <span class="ib-brac"><span class="qualifier-brac">(</span></span><span class="ib-content"><span class="qualifier-content">' .. text .. '</span></span><span class="ib-brac"><span class="qualifier-brac">)</span></span>' end return export All content in the above text box is licensed under the Creative Commons Attribution-ShareAlike license Version 4 and was originally sourced from https://shn.wiktionary.org/w/index.php?diff=prev&oldid=43614.
![]() ![]() This site is not affiliated with or endorsed in any way by the Wikimedia Foundation or any of its affiliates. In fact, we fucking despise them.
|