Vikilug‘at uzwiktionary https://uz.wiktionary.org/wiki/Bosh_sahifa MediaWiki 1.43.0-wmf.28 case-sensitive Media Maxsus Munozara Foydalanuvchi Foydalanuvchi munozarasi Vikilug‘at Vikilug‘at munozarasi Fayl Fayl munozarasi MediaWiki MediaWiki munozarasi Andoza Andoza munozarasi Yordam Yordam munozarasi Turkum Turkum munozarasi TimedText TimedText talk Modul Modul munozarasi mehnat 0 13562 628608 626792 2024-10-26T16:04:08Z 92.63.205.148 628608 wikitext text/x-wiki = {{-uz-}} = == Morfologik va sintaktik xususiyatlari == '''meh-nat''' == A == Etimologiyasi == == Maʼnoviy xususiyatlari == === Maʼnosi === ''\a.'' - — sinov; mashaqqat, ogʻirchilik] 1 Biror maqsad uchun qaratil-gan aqliy yoki jismoniy faoliyat; ish. {{misol|Ats,shy {{ajrat|mehnat}}. Jismoniy {{ajrat|mehnat}}. Mehnat intizo-mi. Mehnatda chiniqmoq. Mehnat — {{ajrat|mehnat}}-ning tagirohat.|[[w:Maqol|Maqol]]}}. ■■ {{misol|Mehnatgaoʻrgan-gan kishi {{ajrat|mehnat}}siz qolsa, {{ajrat|mehnat}} xumor qiladi.|[[w:M. Ismoiliy|M. Ismoiliy]]|Fargʻona tong otguncha}}. 2 Biror maqsad uchun sarflanadigan kuch, gʻayrat, harakat. {{misol|Bir tomondan, raisning ob-roʻsini saqlash, ikkinchi tomondan, bu tad-birdan qattiq norozi boʻlgan odamlarga bu-ning mohiyatini tushuntirish kerak boʻlib qoldi. Oʻrmonjon bunga xiylagina vaqt va {{ajrat|mehnat}} sarf qildi.|[[w:A. Qahhor|A. Qahhor]]|Qoʻshchinor chiroqlari}}. :Mehnat qilmoq Ish-harakat bilan mash-gʻul boʻlmoq; ishlamoq. {{misol|{{ajrat|Mehnat}} qilgan odam doim boshqalarning yuziga dadil qaraydi.|[[w:T. Ashurov|T. Ashurov]]|Oq ot}}. :Mehnat kuni ''(yoki'' mehnat) {{tar.|uz}} Kolxoz-chining kolxoz daromadidagi hissasini bel-gilovchi, mehnatini hisobga olish birligi. {{misol|Endi {{ajrat|mehnat}} kuniga ham oz-moz don tegsa kerak.|[[w:O. Yoqubov|O. Yoqubov]]|Er boshiga ish tushsa}}. {{misol|Kol-xozchilar {{ajrat|mehnat}} kunlariga hech vaqt hozir-gidan koʻp haq olmagan.|[[w:R. Fayziy|R. Fayziy]]|Choʻlga ba-hor keldi}}. === Sinonimlari === # [[ish]] === Antonimlari === {{OʻTIL|МЕҲНАТ}} == Tarjimalari == {{uz-ism}} *{{en}}: [[shell-work]] *{{de}}: [[arbeiten]] {{Tarjimalar |ru = }} {{Tarjimalar |tur = keng |ru = '''mehnat'''<br /> [[труд]], [[работа]]; // [[трудовой]]; {{tarjmisoli|Bu boqqa juda koʻp ~imiz singgan }} (Ойбек, «Ќутлуѓ ќон») В этот сад нами вложено много труда; {{tarjmisoli|aqliy ~}} умственный труд; {{tarjmisoli|behuda ~ }} напрасный труд; {{tarjmisoli|jismoniy ~}} физический труд; {{tarjmisoli|ishbay asosidagi ~ }} сдельная работа; {{tarjmisoli|unumli ~ }} производительный труд; {{tarjmisoli|qoʻl ~i }} ручной труд, ручная работа; {{tarjmisoli|halol ~ }} честный труд; {{tarjmisoli|~ ahli }} рабочий люд; {{tarjmisoli|~ daftarchasi }} трудовая книжка; {{tarjmisoli|~ intizomi }} трудовая дисциплина; {{tarjmisoli|~ kuni }} трудодень; '''Mehnat qizil bayroq ordeni '''орден Трудового Красного Знамени; {{tarjmisoli|~ taqsimoti }} разделение труда; {{tarjmisoli|~ unumi }} производительность труда; {{tarjmisoli|~ shartnomasi }} трудовое соглашение; {{tarjmisoli|~ qobiliyati }} трудоспособность; {{tarjmisoli|~ quroli }} орудие труда; {{tarjmisoli|~ qilmoq }} трудиться, работать; {{tarjmisoli|~ bilan topmoq }} зарабатывать трудом; добывать трудом; {{tarjmisoli|~ bilan topilgan pul }} трудовые деньги; {{tarjmisoli|~da chiniqmoq }} закаляться в труде; {{tarjmisoli|esiz ~ }} жалко труда; пропал труд; {{tarjmisoli|~im kuymaydi }} не пропадёт мой труд; {{tarjmisoli|~ - rohat }} {{izoh|посл}}. ({{izoh|букв}}. труд - удовольствие) труд приносит удовольствие; {{tarjmisoli|~ning tagi rohat }} {{izoh|погов}}. отдых венчает труд; {{tarjmisoli|birni birov beradi, koʻpni - ~ }} {{izoh|посл}}. что-нибудь может дать кто-нибудь, а труд даст многое (всё); {{tarjmisoli|xazina gʻoyibdan emas, ~dan }} {{izoh|посл}}. богатство из небытия не берётся, а трудом достаётся.<br /> }} a8n6gdiury2qztqeg8d6dpdj8swid3a sulola 0 50051 628611 612950 2024-10-27T08:21:49Z 188.113.197.187 Maʼnosi 628611 wikitext text/x-wiki = {{-uz-}} = == Morfologik va sintaktik xususiyatlari == '''su-lo-la''' == Aytilishi == == Etimologiyasi == ''[[w:Arab tili|a.]]'' "-IU-sh — nasl, zot, zurriyot; avlod, bolalar; urugʻ, oila == Maʼnosi == === Maʼnosi === 1 Bir avloddan tarqalib, vorislik, valiahdlik huquqiga asosan birin-ketin taxtga oʻtirgan pod-mojyiap, amirlar, xonlar va sh.k; dinastiya. {{misol|Somoniylar {{ajrat|sulola}}si. Gʻaznaviylar {{ajrat|sulola}}si. yat Badiuzzamon, Temur {{ajrat|sulola}}siga mansub bir koʻp shohlar, shahzodalar kabi, sheʼrdan zavq-lanar, oʻzi ham goho-goho biror narsa yozib qoʻyardi.|[[w:Oybek|Oybek]]|Navoiy}}. 2 Ish-faoliyat anʼanalarini, mahorat sirlarini davom ettiruvchi avlod, nasl. {{misol|Hindiston kinematografiyasining dovrugʻiga dovruq qoʻshayotgan sanʼatkorlar orasida Ka-purlar {{ajrat|sulola}}si alohida ajralib turadi. |[[w:Gazetadan|Gazetadan]]}}. {{misol|Unga [Toshpoʻlat otaga] qarilik yoʻl bermadi. Lekin farzandining fojiasi Gʻoziboy darbozlar {{ajrat|sulola}}sini davom etishdan toʻxtatdi.|[[w:Mirmuhsin|Mirmuhsin]]|Qahramonnoma}}. === Sinonimlari === === Antonimlari === {{OʻTIL|СУЛОЛА}} == Tarjimalari == {{Tarjimalar |ru = }} {{Tarjimalar |tur = keng |ru = '''sulola'''<br /> '''1 '''[[род]], [[династия]]; {{tarjmisoli|Badiuzzamon, Temur sulolasiga mansub bir koʻp shohlar, shahzodalar kabi, sheʼrdan zavqlanar edi }} (Ойбек, «Навоий») Бадиуззаман, как и многие шахи и принцы из династии Тимура, восторгался стихами;<br /> '''2 '''[[потомство]].<br /> }} [[Turkum:Oʻzbekchada arabchadan oʻzlashgan soʻzlar]] q2bn2aebdnjvk6hcmmiedztks5x9odp 628612 628611 2024-10-27T08:22:24Z Borhan 11881 Undid edits by [[Special:Contribs/188.113.197.187|188.113.197.187]] ([[User talk:188.113.197.187|talk]]) to last version by Muzaffar Murodovich 628612 wikitext text/x-wiki = {{-uz-}} = == Morfologik va sintaktik xususiyatlari == '''su-lo-la''' == Aytilishi == == Etimologiyasi == ''[[w:Arab tili|a.]]'' "-IU-sh — nasl, zot, zurriyot; avlod, bolalar; urugʻ, oila == Maʼnoviy xususiyatlari == === Maʼnosi === 1 Bir avloddan tarqalib, vorislik, valiahdlik huquqiga asosan birin-ketin taxtga oʻtirgan pod-mojyiap, amirlar, xonlar va sh.k; dinastiya. {{misol|Somoniylar {{ajrat|sulola}}si. Gʻaznaviylar {{ajrat|sulola}}si. yat Badiuzzamon, Temur {{ajrat|sulola}}siga mansub bir koʻp shohlar, shahzodalar kabi, sheʼrdan zavq-lanar, oʻzi ham goho-goho biror narsa yozib qoʻyardi.|[[w:Oybek|Oybek]]|Navoiy}}. 2 Ish-faoliyat anʼanalarini, mahorat sirlarini davom ettiruvchi avlod, nasl. {{misol|Hindiston kinematografiyasining dovrugʻiga dovruq qoʻshayotgan sanʼatkorlar orasida Ka-purlar {{ajrat|sulola}}si alohida ajralib turadi. |[[w:Gazetadan|Gazetadan]]}}. {{misol|Unga [Toshpoʻlat otaga] qarilik yoʻl bermadi. Lekin farzandining fojiasi Gʻoziboy darbozlar {{ajrat|sulola}}sini davom etishdan toʻxtatdi.|[[w:Mirmuhsin|Mirmuhsin]]|Qahramonnoma}}. === Sinonimlari === === Antonimlari === {{OʻTIL|СУЛОЛА}} == Tarjimalari == {{Tarjimalar |ru = }} {{Tarjimalar |tur = keng |ru = '''sulola'''<br /> '''1 '''[[род]], [[династия]]; {{tarjmisoli|Badiuzzamon, Temur sulolasiga mansub bir koʻp shohlar, shahzodalar kabi, sheʼrdan zavqlanar edi }} (Ойбек, «Навоий») Бадиуззаман, как и многие шахи и принцы из династии Тимура, восторгался стихами;<br /> '''2 '''[[потомство]].<br /> }} [[Turkum:Oʻzbekchada arabchadan oʻzlashgan soʻzlar]] qyspvojkv4guqsqvdiumbe17d0otpk5 yantoq 0 59657 628609 596207 2024-10-27T02:38:56Z Qilchinoqium 11897 /* Etimologiyasi */Xatoni toʻgʻirladim 628609 wikitext text/x-wiki = {{-uz-}} = == Morfologik va sintaktik xususiyatlari == '''yan-toq''' == Aytilishi == == Etimologiyasi == {{OʻTEL|I|YANTOQ 'dukkakliklarga mansub tikanli oʻt’. Quritilgan yantoq qishda qoʻyga ham juda yaxshi ozuqa boʻladi. Bu oʻt qadimgi turkiy tilda "alanga oʻt"-’ maʼnosini anglattan yan-feʼlidan —daq qoʻshimchasi bilan yasalgan deb taxmin qilinadi (ЭСТЯ, IV, 117). Bu ot asli yan- feʼlining kuchaytirish maʼnosini ifodalovchi -da(-la) qoʻshimchasi bilan hosil qilingan shaklidan -q qoʻshimchasi bilan yasalgan; keyinroq d undoshi t undoshiga (ДС, 232), oʻzbek tilida birinchi boʻgʻindagi a unlisi ä unlisiga, q undoshi oldidagi a unlisi â unlisiga almashgan: [yan- + da (&lt; la) <nowiki>=</nowiki> yanda-] + q <nowiki>=</nowiki> yandaq &gt;&nbsp;yantaq &gt;&nbsp;yäntâq.}} == Maʼnoviy xususiyatlari == === Maʼnosi === :Choʻllarda oʻsadigan, dukkakli-larga mansub, tikanli koʻp yillik begona oʻt. {{misol|Tu yaga {{ajrat|yantoq}} kerak boʻlsa, boʻynini choʻzadi. |[[w:Maqol|Maqol]]}}. === Sinonimlari === === Antonimlari === {{OʻTIL|ЯНТОҚ}} == Tarjimalari == {{Tarjimalar |ru = }} {{Tarjimalar |tur = keng |ru = '''yantoq'''<br /> {{izoh|бот}}. [[янтак]] ({{izoh|верблюжья колючка}}); {{tarjmisoli|tuyaga yantoq kerak boʻlsa, boʻynini choʻzadi }} {{izoh|посл}}. если верблюду нужна колючка, он вытянет шею, {{izoh|соотв}}. хлеб за брюхом не ходит.<br /> }} 0jtgu4hzv2k7pt0u1nioh0xoqia59qs 628610 628609 2024-10-27T02:39:46Z Qilchinoqium 11897 /* Etimologiyasi */Xatoni togirladim 628610 wikitext text/x-wiki = {{-uz-}} = == Morfologik va sintaktik xususiyatlari == '''yan-toq''' == Aytilishi == == Etimologiyasi == {{OʻTEL|I|YANTOQ 'dukkakliklarga mansub tikanli oʻt’. Quritilgan yantoq qishda qoʻyga ham juda yaxshi ozuqa boʻladi. Bu oʻt qadimgi turkiy tilda "alanga oʻt"- maʼnosini anglatgan yan-feʼlidan —daq qoʻshimchasi bilan yasalgan deb taxmin qilinadi (ЭСТЯ, IV, 117). Bu ot asli yan- feʼlining kuchaytirish maʼnosini ifodalovchi -da(-la) qoʻshimchasi bilan hosil qilingan shaklidan -q qoʻshimchasi bilan yasalgan; keyinroq d undoshi t undoshiga (ДС, 232), oʻzbek tilida birinchi boʻgʻindagi a unlisi ä unlisiga, q undoshi oldidagi a unlisi â unlisiga almashgan: [yan- + da (&lt; la) <nowiki>=</nowiki> yanda-] + q <nowiki>=</nowiki> yandaq &gt;&nbsp;yantaq &gt;&nbsp;yäntâq.}} == Maʼnoviy xususiyatlari == === Maʼnosi === :Choʻllarda oʻsadigan, dukkakli-larga mansub, tikanli koʻp yillik begona oʻt. {{misol|Tu yaga {{ajrat|yantoq}} kerak boʻlsa, boʻynini choʻzadi. |[[w:Maqol|Maqol]]}}. === Sinonimlari === === Antonimlari === {{OʻTIL|ЯНТОҚ}} == Tarjimalari == {{Tarjimalar |ru = }} {{Tarjimalar |tur = keng |ru = '''yantoq'''<br /> {{izoh|бот}}. [[янтак]] ({{izoh|верблюжья колючка}}); {{tarjmisoli|tuyaga yantoq kerak boʻlsa, boʻynini choʻzadi }} {{izoh|посл}}. если верблюду нужна колючка, он вытянет шею, {{izoh|соотв}}. хлеб за брюхом не ходит.<br /> }} bqc7vmt63fb8e3qhbwe438k30muzzld Modul:te-headword 828 160341 628584 2024-10-26T12:58:15Z Umarxon III 1502 „local export = {} local pos_functions = {} local match = mw.ustring.match local gsub = mw.ustring.gsub local lang = require("Module:languages").getByCode("te") local PAGENAME = mw.title.getCurrentTitle().text local script = require("Module:scripts").getByCode("Telu") function export.show(frame) local args = frame:getParent().args local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module...“ yozuvi orqali yangi sahifa yaratildi 628584 Scribunto text/plain local export = {} local pos_functions = {} local match = mw.ustring.match local gsub = mw.ustring.gsub local lang = require("Module:languages").getByCode("te") local PAGENAME = mw.title.getCurrentTitle().text local script = require("Module:scripts").getByCode("Telu") function export.show(frame) local args = frame:getParent().args local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.") local data = {lang = lang, sc = script, pos_category = poscat, categories = {}, heads = {args["head"]}, genders = {}, inflections = {}} if pos_functions[poscat] then pos_functions[poscat](args, data) end return require("Module:headword").full_headword(data) end -- TODO local function pluralize(sn) local pn -- do not swap if match(sn, "ుడు$") then -- -uDu > -ulu pn = gsub(sn, "ుడు$", "ులు") elseif match(sn, "డ్డ[ిు]$") then -- -DDi,-DDu > -Dlu pn = gsub(sn, "డ్డ[ిు]$", "డ్లు") elseif match(sn, "డి$") then -- -Di > -LLu pn = gsub(sn, "డి$", "ళ్ళు") elseif match(sn, "[డరల]ు$") then -- -Du,-lu,-ru > -LLu pn = gsub(sn, "[డరల]ు$", "ళ్ళు") elseif match(sn, "ట్ట[ిు]$") then -- -TTi,-TTu > -Tlu pn = gsub(sn, "ట్ట[ిు]$", "ట్లు") elseif match(sn, "టు$") then -- -Tu > -Tlu pn = gsub(sn, "టు$", "ట్లు") elseif match(sn, "([అక-హౘ-ౚ])ం$") then -- -aM > -Alu pn = gsub(sn, "([అక-హౘ-ౚ])ం$", "%1ాలు") elseif match(sn, "ెం$") then -- -eM > -Elu pn = gsub(sn, "ెం$", "ేలు") elseif match(sn, "ి$") then -- -i > -ulu pn = gsub(sn, "ి$", "ులు") else pn = sn .. "లు" end return pn end pos_functions["nouns"] = function(args, data) local plurals = {label = "plural"} if not args[1] then table.insert(plurals, pluralize(PAGENAME)) table.insert(data.inflections, plurals) elseif args[1] == "-" then table.insert(data.inflections, {label = "singular only"}) table.insert(data.categories, "Telugu singularia tantum") elseif args[1] == "+" then table.insert(data.inflections, {label = "plural only"}) table.insert(data.categories, "Telugu pluralia tantum") else for _,par in ipairs(args) do table.insert(plurals, par) end table.insert(data.inflections, plurals) end table.insert(data.genders, args["g"] or "?") end pos_functions["proper nouns"] = function(args, data) local plurals = {label = "plural"} if not args[1] then -- do nothing elseif args[1] == "+" then table.insert(data.inflections, {label = "plural only"}) table.insert(data.categories, "Telugu pluralia tantum") else for _,par in ipairs(args) do table.insert(plurals, par) end table.insert(data.inflections, plurals) end table.insert(data.genders, args["g"] or "?") end return export pa1ch7ob99hmruuejviaoitu5aoytt5 Modul:th-headword 828 160342 628585 2024-10-26T12:59:10Z Umarxon III 1502 „local export = {} local pos_functions = {} local lang = require("Module:languages").getByCode("th") local script = require('Module:scripts').getByCode("Thai") local PAGENAME = mw.title.getCurrentTitle().text local pron = require("Module:th-pron") function export.show(frame) local args = frame:getParent().args local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.") loc...“ yozuvi orqali yangi sahifa yaratildi 628585 Scribunto text/plain local export = {} local pos_functions = {} local lang = require("Module:languages").getByCode("th") local script = require('Module:scripts').getByCode("Thai") local PAGENAME = mw.title.getCurrentTitle().text local pron = require("Module:th-pron") function export.show(frame) local args = frame:getParent().args local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.") local data = {lang = lang, sc = script, pos_category = poscat, categories = {}, heads = {args["head"]}, inflections = {}, sort_key = args["sort"]} if args["cat2"] then table.insert(data.categories, "Thai " .. args["cat2"]) end if args["cat3"] then table.insert(data.categories, "Thai " .. args["cat3"]) end if pos_functions[poscat] then pos_functions[poscat](args, data) end local content = mw.title.new(PAGENAME):getContent() if content then local phon local code = mw.ustring.match(content, '{{th%-pron[^o}]*}}') local false_positive = mw.ustring.match(content, 'note=') or mw.ustring.match(content, 'obsolete spelling of') or mw.ustring.match(content, 'obsolete form of') or mw.ustring.match(content, 'alternative spelling of') or mw.ustring.match(content, 'archaic spelling of') or mw.ustring.match(PAGENAME, 'Unsupported') if not code then phon = args["phon"] or args["mono"] or "-" data.translits = {pron.translit(phon , "th", "Thai", "paiboon")} if not false_positive then table.insert(data.categories, "Thai terms without th-pron template") end else phon = args["phon"] or args["mono"] or mw.ustring.match(code, '|([^|}]+)') or PAGENAME -- detects only first one data.translits = {pron.translit(phon, "th", "Thai", "paiboon")} end local code2 = mw.ustring.match(content, '{{audio|th|[^}]*}}') if code2 then table.insert(data.categories, "Thai terms with redundant audio template") end end if mw.ustring.match(PAGENAME, '.-[ก-ฮ](รร)$') or mw.ustring.match(PAGENAME, '.-[ก-ฮ](รร)[^ะ-ฺๅ็-๎].-') then if PAGENAME ~= 'วงจรรวม' and PAGENAME ~= 'สรรวง' then table.insert(data.categories, "Thai terms spelled with รร") end end local letter = true local specialLetter = mw.ustring.gmatch(PAGENAME, '.-([ฤฦ]ๅ?).-') while true do letter = specialLetter() if (not letter) then break end table.insert(data.categories, "Thai terms spelled with " .. letter) end local specialLetter2 = mw.ustring.gmatch(PAGENAME, '.-([/%+%-ฃ๊ฅ๋ฆ็ฌฎฏฐฑฒภฬฮใๆ]).-') while true do letter = specialLetter2() if (not letter) then break end if letter == "๊" or letter == "๋" or letter == "็" then table.insert(data.categories, "Thai terms spelled with ◌" .. letter) -- add dotted circle for above/below marks else table.insert(data.categories, "Thai terms spelled with " .. letter) end if letter == "ๆ" and PAGENAME ~= "ๆ" then table.insert(data.categories, "Thai reduplications") end end --"Category:Thai terms spelled with ทร read as ซ" is detected in Module:th-pron local specialLetter3 = mw.ustring.gmatch(PAGENAME, '.-([ิุ]์).-') -- I or U + KARAN while true do letter = specialLetter3() if (not letter) then break end table.insert(data.categories, "Thai terms spelled with ◌" .. letter) end if mw.ustring.find(PAGENAME, '[0-9⁰¹²³⁴-⁹₀-₉๐-๙]') then table.insert(data.categories, "Thai terms spelled with numbers") end return require("Module:headword").full_headword(data) end pos_functions["nouns"] = function(args, data) local classifiers = {label = "classifier"} if args[1] then for _,par in ipairs(args) do if par == "*" then table.insert(classifiers, PAGENAME) -- shorthand table.insert(data.categories, "Thai classifiers") table.insert(data.categories, "Thai nouns classified by " .. PAGENAME) else table.insert(classifiers, par) table.insert(data.categories, "Thai nouns classified by " .. par) end end table.insert(data.inflections, classifiers) end end pos_functions["verbs"] = function(args, data) local par1 = args[1]; if par1 == "" then par1 = nil end local par2 = args[2]; if par2 == "" then par2 = nil end local par3 = args[3]; if par3 == "" then par3 = nil end local abstract_forms = {label = "abstract noun", accel = {pos = "noun", form = "abstract-noun"}} if par1 ~= "-" then if not par1 then table.insert(abstract_forms, "การ" .. PAGENAME) else if par1 == "~" then table.insert(abstract_forms, "การ" .. PAGENAME) table.insert(abstract_forms, "ความ" .. PAGENAME) else table.insert(abstract_forms, par1) table.insert(abstract_forms, par2) table.insert(abstract_forms, par3) end end table.insert(data.inflections, abstract_forms) end end pos_functions["adjectives"] = function(args, data) local par1 = args[1]; if par1 == "" then par1 = nil end local par2 = args[2]; if par2 == "" then par2 = nil end local par3 = args[3]; if par3 == "" then par3 = nil end local abstract_forms = {label = "abstract noun", accel = {pos = "noun", form = "abstract-noun"}} if par1 ~= "-" then if not par1 then table.insert(abstract_forms, "ความ" .. PAGENAME) else table.insert(abstract_forms, par1) table.insert(abstract_forms, par2) table.insert(abstract_forms, par3) end table.insert(data.inflections, abstract_forms) end end -- same logic pos_functions["adverbs"] = pos_functions["adjectives"] -- same logic pos_functions["proper nouns"] = pos_functions["nouns"] return export 1jvlkgsi24qny5oqdq187h3m3y0vsp7 Modul:ti-headword 828 160343 628586 2024-10-26T13:00:21Z Umarxon III 1502 „local export = {} local is_sequence = require "Module:table".isArray local function parse_args(args) local parsed = {} for k, v in pairs(args) do if type(k) == "string" then local word, number = k:match "^(%l+)(%d*)$" if not word then error("Invalid parameter key " .. k) end number = tonumber(number) or 1 parsed[word] = parsed[word] or {} if parsed[word][number] then error("Two values for " .. k) end parsed[wor...“ yozuvi orqali yangi sahifa yaratildi 628586 Scribunto text/plain local export = {} local is_sequence = require "Module:table".isArray local function parse_args(args) local parsed = {} for k, v in pairs(args) do if type(k) == "string" then local word, number = k:match "^(%l+)(%d*)$" if not word then error("Invalid parameter key " .. k) end number = tonumber(number) or 1 parsed[word] = parsed[word] or {} if parsed[word][number] then error("Two values for " .. k) end parsed[word][number] = v else parsed[k] = v end end return parsed end local function validate_args(key_info, args) local invalid_keys = {} local should_not_be_list = {} local should_be_sequence = {} for key, values in pairs(args) do if not key_info[key] then table.insert(invalid_keys, key) elseif not (key_info[key] == "multiple" or key_info[key] == "sequence") and require "Module:table".length(values) > 1 then table.insert(should_not_be_list, key) end end for key, info in pairs(key_info) do if info == "sequence" and args[k] and not is_sequence(args[k]) then table.insert(should_be_sequence, key) end end local msg = {} if #invalid_keys > 0 then table.insert(msg, "Invalid parameters: " .. table.concat(invalid_keys, ", ")) end if #should_not_be_list > 0 then table.insert(msg, "The following arguments don't accept numbered parameters: " .. table.concat(should_not_be_list, ", ")) end if #should_be_sequence > 0 then table.insert(msg, "The following arguments have gaps: " .. table.concat(should_be_sequence, ", ")) end if #msg > 0 then error(table.concat(msg, " ")) end for key in pairs(key_info) do args[key] = args[key] or {} end end function export.noun(frame) local parameters = { head = "sequence", g = "multiple", tr = "multiple", pl = "sequence", pltr = "multiple", sort = true, } local args = frame:getParent().args local parsed_args = parse_args(args) validate_args(parameters, parsed_args) local lang = require "Module:languages".getByCode("ti") local plurals = { label = "plural" } for i, plural in pairs(parsed_args.pl) do plurals[i] = { term = plural, translit = parsed_args.pltr[i], } end for i in pairs(parsed_args.pltr) do if not parsed_args.pl[i] then error("|pltr" .. i .. " with no corresponding |pl" .. i) end end local data = { lang = lang, heads = parsed_args.head or {}, translits = parsed_args.tr, genders = parsed_args.g, inflections = #plurals > 0 and { enable_auto_translit = true, plurals } or {}, pos_category = "nouns", categories = {}, sort_key = parsed_args.sort[1], } return require("Module:headword").full_headword(data) end return export bjwlnspnuninp0j3j0fo0mygscbibzi Modul:mul-headword 828 160344 628587 2024-10-26T13:01:15Z Umarxon III 1502 „local m_head = require("Module:headword") local mul = require("Module:languages").getByCode("mul") local export = {} local labels = {f = "feminine", n = "neuter"} local function add_form(data,form,inflected) data.inflections = data.inflections or {} table.insert(data.inflections, { label = labels[form], accel = {form = form}, inflected }) end function export.adjectives(frame) local args = frame:getParent().args local pagename = args....“ yozuvi orqali yangi sahifa yaratildi 628587 Scribunto text/plain local m_head = require("Module:headword") local mul = require("Module:languages").getByCode("mul") local export = {} local labels = {f = "feminine", n = "neuter"} local function add_form(data,form,inflected) data.inflections = data.inflections or {} table.insert(data.inflections, { label = labels[form], accel = {form = form}, inflected }) end function export.adjectives(frame) local args = frame:getParent().args local pagename = args.pagename or mw.title.getCurrentTitle().text local infl = args[1] local nocat = args.nocat local data = { lang = mul, pagename = pagename, pos_category = "adjectives", } if infl then if infl == "~" then infl = pagename end data.genders = {"m"} add_form(data,"f",infl.."a") add_form(data,"n",infl.."um") elseif pagename:sub(-2) == "us" then local stem = pagename:sub(1,-3) data.genders = {"m"} add_form(data,"f",stem.."a") add_form(data,"n",stem.."um") elseif pagename:sub(-2) == "is" then local stem = pagename:sub(1,-3) data.genders = {"m", "f"} add_form(data,"n",stem.."e") else data.genders = {"m", "f", "n"} end return m_head.full_headword(data) .. (nocat and "" or "[[Category:Specific epithets]]") end function export.show(frame) local pos = frame.args[1] return export[pos](frame) end return export pumx7sko6szrxumibkl5bnicb9tsfhi Modul:mul-letter 828 160345 628588 2024-10-26T13:03:25Z Umarxon III 1502 „local export = {} local PAGENAME = mw.title.getCurrentTitle().text local function getCasing(char, variant) if not variant then variant = "common" end local casing = require("Module:mul-letter/data")[variant][char] if not casing then if mw.ustring.len(char) > 1 then casing = {mw.ustring.lower(char), mw.ustring.upper(mw.ustring.sub(char, 1, 1)) .. mw.ustring.lower(mw.ustring.sub(char, 2, -1)), mw.ustring.upper(char)} else casing = {m...“ yozuvi orqali yangi sahifa yaratildi 628588 Scribunto text/plain local export = {} local PAGENAME = mw.title.getCurrentTitle().text local function getCasing(char, variant) if not variant then variant = "common" end local casing = require("Module:mul-letter/data")[variant][char] if not casing then if mw.ustring.len(char) > 1 then casing = {mw.ustring.lower(char), mw.ustring.upper(mw.ustring.sub(char, 1, 1)) .. mw.ustring.lower(mw.ustring.sub(char, 2, -1)), mw.ustring.upper(char)} else casing = {mw.ustring.lower(char), mw.ustring.upper(char), mw.ustring.upper(char)} end end return casing end function export.show(frame) local args = frame:getParent().args local head = args["head"] or PAGENAME local lang = require("Module:languages").getByCode("mul") local scriptCode = args["sc"] or args["script"] or require("Module:scripts").findBestScriptWithoutLang(head):getCode() local script = scriptCode and require("Module:scripts").getByCode(scriptCode) or lang:findBestScript(head) local variant = args["var"] if args.script then require("Module:debug").track("mul-letter/script-param") end local data = { lang = lang, sc = script, pos_category = "letters", categories = {}, heads = {head}, no_redundant_head_cat = not args.head, inflections = {} } local casing = getCasing(head, variant) if casing[1] ~= head then table.insert(data.inflections, {label = "lower case", casing[1]}) end if casing[2] ~= head and casing[2] ~= casing[3] then table.insert(data.inflections, {label = "mixed case", casing[2]}) end if casing[3] ~= head then table.insert(data.inflections, {label = "upper case", casing[3]}) end return require("Module:headword").full_headword(data) .. require("Module:utilities").format_categories({ script:getCategoryName() .. " characters", }, lang) end return export rnfzaev4oz8twezetj33t9mrr2pv8b4 Modul:mul-letter/data 828 160346 628589 2024-10-26T13:09:36Z Umarxon III 1502 „local u = require("Module:string/char") local casing = { ['common'] = { -- Internally unsupported mappings ['DŽ'] = {'dž', 'Dž', 'DŽ'}, -- LATIN CAPITAL LETTER DZ WITH CARON ['Dž'] = {'dž', 'Dž', 'DŽ'}, -- LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON ['dž'] = {'dž', 'Dž', 'DŽ'}, -- LATIN SMALL LETTER DZ WITH CARON ['LJ'] = {'lj', 'Lj', 'LJ'}, -- LATIN CAPITAL LETTER LJ ['Lj'] = {'lj...“ yozuvi orqali yangi sahifa yaratildi 628589 Scribunto text/plain local u = require("Module:string/char") local casing = { ['common'] = { -- Internally unsupported mappings ['DŽ'] = {'dž', 'Dž', 'DŽ'}, -- LATIN CAPITAL LETTER DZ WITH CARON ['Dž'] = {'dž', 'Dž', 'DŽ'}, -- LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON ['dž'] = {'dž', 'Dž', 'DŽ'}, -- LATIN SMALL LETTER DZ WITH CARON ['LJ'] = {'lj', 'Lj', 'LJ'}, -- LATIN CAPITAL LETTER LJ ['Lj'] = {'lj', 'Lj', 'LJ'}, -- LATIN CAPITAL LETTER L WITH SMALL LETTER J ['lj'] = {'lj', 'Lj', 'LJ'}, -- LATIN SMALL LETTER LJ ['NJ'] = {'nj', 'Nj', 'NJ'}, -- LATIN CAPITAL LETTER NJ ['Nj'] = {'nj', 'Nj', 'NJ'}, -- LATIN CAPITAL LETTER N WITH SMALL LETTER J ['nj'] = {'nj', 'Nj', 'NJ'}, -- LATIN SMALL LETTER NJ ['DZ'] = {'dz', 'Dz', 'DZ'}, -- LATIN CAPITAL LETTER DZ ['Dz'] = {'dz', 'Dz', 'DZ'}, -- LATIN CAPITAL LETTER D WITH SMALL LETTER Z ['dz'] = {'dz', 'Dz', 'DZ'}, -- LATIN SMALL LETTER DZ ['Ꞌ'] = {'ꞌ', 'Ꞌ', 'Ꞌ'}, -- LATIN CAPITAL LETTER SALTILLO ['ꞌ'] = {'ꞌ', 'Ꞌ', 'Ꞌ'}, -- LATIN SMALL LETTER SALTILLO -- http://www.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt -- Unconditional mappings ['ß'] = {'ß', 'Ss', 'SS'}, -- LATIN SMALL LETTER SHARP S --['İ'] = {'i'..u(0x0307), 'İ', 'İ'}, -- LATIN CAPITAL LETTER I WITH DOT ABOVE ['ff'] = {'ff', 'Ff', 'FF'}, -- LATIN SMALL LIGATURE FF ['fi'] = {'fi', 'Fi', 'FI'}, -- LATIN SMALL LIGATURE FI ['fl'] = {'fl', 'Fl', 'FL'}, -- LATIN SMALL LIGATURE FL ['ffi'] = {'ffi', 'Ffi', 'FFI'}, -- LATIN SMALL LIGATURE FFI ['ffl'] = {'ffl', 'Ffl', 'FFL'}, -- LATIN SMALL LIGATURE FFL ['ſt'] = {'ſt', 'St', 'ST'}, -- LATIN SMALL LIGATURE LONG S T ['st'] = {'st', 'St', 'ST'}, -- LATIN SMALL LIGATURE ST ['և'] = {'և', 'Եւ', 'ԵՒ'}, -- ARMENIAN SMALL LIGATURE ECH YIWN ['ﬓ'] = {'ﬓ', 'Մն', 'ՄՆ'}, -- ARMENIAN SMALL LIGATURE MEN NOW ['ﬔ'] = {'ﬔ', 'Մե', 'ՄԵ'}, -- ARMENIAN SMALL LIGATURE MEN ECH ['ﬕ'] = {'ﬕ', 'Մի', 'ՄԻ'}, -- ARMENIAN SMALL LIGATURE MEN INI ['ﬖ'] = {'ﬖ', 'Վն', 'ՎՆ'}, -- ARMENIAN SMALL LIGATURE VEW NOW ['ﬗ'] = {'ﬗ', 'Մխ', 'ՄԽ'}, -- ARMENIAN SMALL LIGATURE MEN XEH ['ʼn'] = {'ʼn', 'ʼN', 'ʼN'}, -- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE ['ΐ'] = {'ΐ', 'Ι'..u(0x0308)..u(0x0301), 'Ι'..u(0x0308)..u(0x0301)}, -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS ['ΰ'] = {'ΰ', 'Υ'..u(0x0308)..u(0x0301), 'Υ'..u(0x0308)..u(0x0301)}, -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS ['ǰ'] = {'ǰ', 'J'..u(0x030C), 'J'..u(0x030C)}, -- LATIN SMALL LETTER J WITH CARON ['ẖ'] = {'ẖ', 'H'..u(0x0331), 'H'..u(0x0331)}, -- LATIN SMALL LETTER H WITH LINE BELOW ['ẗ'] = {'ẗ', 'T'..u(0x0308), 'T'..u(0x0308)}, -- LATIN SMALL LETTER T WITH DIAERESIS ['ẘ'] = {'ẘ', 'W'..u(0x030A), 'W'..u(0x030A)}, -- LATIN SMALL LETTER W WITH RING ABOVE ['ẙ'] = {'ẙ', 'Y'..u(0x030A), 'Y'..u(0x030A)}, -- LATIN SMALL LETTER Y WITH RING ABOVE ['ẚ'] = {'ẚ', 'Aʾ', 'Aʾ'}, -- LATIN SMALL LETTER A WITH RIGHT HALF RING ['ὐ'] = {'ὐ', 'Υ'..u(0x0313), 'Υ'..u(0x0313)}, -- GREEK SMALL LETTER UPSILON WITH PSILI ['ὒ'] = {'ὒ', 'Υ'..u(0x0313)..u(0x0300), 'Υ'..u(0x0313)..u(0x0300)}, -- GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA ['ὔ'] = {'ὔ', 'Υ'..u(0x0313)..u(0x0301), 'Υ'..u(0x0313)..u(0x0301)}, -- GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA ['ὖ'] = {'ὖ', 'Υ'..u(0x0313)..u(0x0342), 'Υ'..u(0x0313)..u(0x0342)}, -- GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI ['ᾶ'] = {'ᾶ', 'Α'..u(0x0342), 'Α'..u(0x0342)}, -- GREEK SMALL LETTER ALPHA WITH PERISPOMENI ['ῆ'] = {'ῆ', 'Η'..u(0x0342), 'Η'..u(0x0342)}, -- GREEK SMALL LETTER ETA WITH PERISPOMENI ['ῒ'] = {'ῒ', 'Ι'..u(0x0308)..u(0x0300), 'Ι'..u(0x0308)..u(0x0300)}, -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA ['ΐ'] = {'ΐ', 'Ι'..u(0x0308)..u(0x0301), 'Ι'..u(0x0308)..u(0x0301)}, -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA ['ῖ'] = {'ῖ', 'Ι'..u(0x0342), 'Ι'..u(0x0342)}, -- GREEK SMALL LETTER IOTA WITH PERISPOMENI ['ῗ'] = {'ῗ', 'Ι'..u(0x0308)..u(0x0342), 'Ι'..u(0x0308)..u(0x0342)}, -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI ['ῢ'] = {'ῢ', 'Υ'..u(0x0308)..u(0x0300), 'Υ'..u(0x0308)..u(0x0300)}, -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA ['ΰ'] = {'ΰ', 'Υ'..u(0x0308)..u(0x0301), 'Υ'..u(0x0308)..u(0x0301)}, -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA ['ῤ'] = {'ῤ', 'Ρ'..u(0x0313), 'Ρ'..u(0x0313)}, -- GREEK SMALL LETTER RHO WITH PSILI ['ῦ'] = {'ῦ', 'Υ'..u(0x0342), 'Υ'..u(0x0342)}, -- GREEK SMALL LETTER UPSILON WITH PERISPOMENI ['ῧ'] = {'ῧ', 'Υ'..u(0x0308)..u(0x0342), 'Υ'..u(0x0308)..u(0x0342)}, -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI ['ῶ'] = {'ῶ', 'Ω'..u(0x0342), 'Ω'..u(0x0342)}, -- GREEK SMALL LETTER OMEGA WITH PERISPOMENI ['ᾀ'] = {'ᾀ', 'ᾈ', 'ἈΙ'}, -- GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI ['ᾁ'] = {'ᾁ', 'ᾉ', 'ἉΙ'}, -- GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI ['ᾂ'] = {'ᾂ', 'ᾊ', 'ἊΙ'}, -- GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI ['ᾃ'] = {'ᾃ', 'ᾋ', 'ἋΙ'}, -- GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI ['ᾄ'] = {'ᾄ', 'ᾌ', 'ἌΙ'}, -- GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI ['ᾅ'] = {'ᾅ', 'ᾍ', 'ἍΙ'}, -- GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI ['ᾆ'] = {'ᾆ', 'ᾎ', 'ἎΙ'}, -- GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI ['ᾇ'] = {'ᾇ', 'ᾏ', 'ἏΙ'}, -- GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI ['ᾈ'] = {'ᾀ', 'ᾈ', 'ἈΙ'}, -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI ['ᾉ'] = {'ᾁ', 'ᾉ', 'ἉΙ'}, -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI ['ᾊ'] = {'ᾂ', 'ᾊ', 'ἊΙ'}, -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI ['ᾋ'] = {'ᾃ', 'ᾋ', 'ἋΙ'}, -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI ['ᾌ'] = {'ᾄ', 'ᾌ', 'ἌΙ'}, -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI ['ᾍ'] = {'ᾅ', 'ᾍ', 'ἍΙ'}, -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI ['ᾎ'] = {'ᾆ', 'ᾎ', 'ἎΙ'}, -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI ['ᾏ'] = {'ᾇ', 'ᾏ', 'ἏΙ'}, -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI ['ᾐ'] = {'ᾐ', 'ᾘ', 'ἨΙ'}, -- GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI ['ᾑ'] = {'ᾑ', 'ᾙ', 'ἩΙ'}, -- GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI ['ᾒ'] = {'ᾒ', 'ᾚ', 'ἪΙ'}, -- GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI ['ᾓ'] = {'ᾓ', 'ᾛ', 'ἫΙ'}, -- GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI ['ᾔ'] = {'ᾔ', 'ᾜ', 'ἬΙ'}, -- GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI ['ᾕ'] = {'ᾕ', 'ᾝ', 'ἭΙ'}, -- GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI ['ᾖ'] = {'ᾖ', 'ᾞ', 'ἮΙ'}, -- GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI ['ᾗ'] = {'ᾗ', 'ᾟ', 'ἯΙ'}, -- GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI ['ᾘ'] = {'ᾐ', 'ᾘ', 'ἨΙ'}, -- GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI ['ᾙ'] = {'ᾑ', 'ᾙ', 'ἩΙ'}, -- GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI ['ᾚ'] = {'ᾒ', 'ᾚ', 'ἪΙ'}, -- GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI ['ᾛ'] = {'ᾓ', 'ᾛ', 'ἫΙ'}, -- GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI ['ᾜ'] = {'ᾔ', 'ᾜ', 'ἬΙ'}, -- GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI ['ᾝ'] = {'ᾕ', 'ᾝ', 'ἭΙ'}, -- GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI ['ᾞ'] = {'ᾖ', 'ᾞ', 'ἮΙ'}, -- GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI ['ᾟ'] = {'ᾗ', 'ᾟ', 'ἯΙ'}, -- GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI ['ᾠ'] = {'ᾠ', 'ᾨ', 'ὨΙ'}, -- GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI ['ᾡ'] = {'ᾡ', 'ᾩ', 'ὩΙ'}, -- GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI ['ᾢ'] = {'ᾢ', 'ᾪ', 'ὪΙ'}, -- GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI ['ᾣ'] = {'ᾣ', 'ᾫ', 'ὫΙ'}, -- GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI ['ᾤ'] = {'ᾤ', 'ᾬ', 'ὬΙ'}, -- GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI ['ᾥ'] = {'ᾥ', 'ᾭ', 'ὭΙ'}, -- GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI ['ᾦ'] = {'ᾦ', 'ᾮ', 'ὮΙ'}, -- GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI ['ᾧ'] = {'ᾧ', 'ᾯ', 'ὯΙ'}, -- GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI ['ᾨ'] = {'ᾠ', 'ᾨ', 'ὨΙ'}, -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI ['ᾩ'] = {'ᾡ', 'ᾩ', 'ὩΙ'}, -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI ['ᾪ'] = {'ᾢ', 'ᾪ', 'ὪΙ'}, -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI ['ᾫ'] = {'ᾣ', 'ᾫ', 'ὫΙ'}, -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI ['ᾬ'] = {'ᾤ', 'ᾬ', 'ὬΙ'}, -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI ['ᾭ'] = {'ᾥ', 'ᾭ', 'ὭΙ'}, -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI ['ᾮ'] = {'ᾦ', 'ᾮ', 'ὮΙ'}, -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI ['ᾯ'] = {'ᾧ', 'ᾯ', 'ὯΙ'}, -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI ['ᾳ'] = {'ᾳ', 'ᾼ', 'ΑΙ'}, -- GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI ['ᾼ'] = {'ᾳ', 'ᾼ', 'ΑΙ'}, -- GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI ['ῃ'] = {'ῃ', 'ῌ', 'ΗΙ'}, -- GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI ['ῌ'] = {'ῃ', 'ῌ', 'ΗΙ'}, -- GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI ['ῳ'] = {'ῳ', 'ῼ', 'ΩΙ'}, -- GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI ['ῼ'] = {'ῳ', 'ῼ', 'ΩΙ'}, -- GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI ['ᾲ'] = {'ᾲ', 'Ὰ'..u(0x0345), 'ᾺΙ'}, -- GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI ['ᾴ'] = {'ᾴ', 'Ά'..u(0x0345), 'ΆΙ'}, -- GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI ['ῂ'] = {'ῂ', 'Ὴ'..u(0x0345), 'ῊΙ'}, -- GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI ['ῄ'] = {'ῄ', 'Ή'..u(0x0345), 'ΉΙ'}, -- GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI ['ῲ'] = {'ῲ', 'Ὼ'..u(0x0345), 'ῺΙ'}, -- GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI ['ῴ'] = {'ῴ', 'Ώ'..u(0x0345), 'ΏΙ'}, -- GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI ['ᾷ'] = {'ᾷ', 'Α'..u(0x0342)..u(0x0345), 'Α'..u(0x0342)..'Ι'}, -- GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI ['ῇ'] = {'ῇ', 'Η'..u(0x0342)..u(0x0345), 'Η'..u(0x0342)..'Ι'}, -- GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI ['ῷ'] = {'ῷ', 'Ω'..u(0x0342)..u(0x0345), 'Ω'..u(0x0342)..'Ι'}, -- GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI }, ['lt'] = { ['I'] = {'i'..u(0x0307), 'I', 'I'}, -- LATIN CAPITAL LETTER I ['J'] = {'j'..u(0x0307), 'J', 'J'}, -- LATIN CAPITAL LETTER J ['Į'] = {'į'..u(0x0307), 'Į', 'Į'}, -- LATIN CAPITAL LETTER I WITH OGONEK ['Ì'] = {'i'..u(0x0307)..u(0x0300), 'Ì', 'Ì'}, -- LATIN CAPITAL LETTER I WITH GRAVE ['Í'] = {'i'..u(0x0307)..u(0x0301), 'Í', 'Í'}, -- LATIN CAPITAL LETTER I WITH ACUTE ['Ĩ'] = {'i'..u(0x0307)..u(0x0303), 'Ĩ', 'Ĩ'}, -- LATIN CAPITAL LETTER I WITH TILDE }, ['tr&az'] = { ['I'] = {'ı', 'I', 'I'}, -- LATIN CAPITAL LETTER I ['ı'] = {'ı', 'I', 'I'}, -- LATIN SMALL LETTER DOTLESS I ['İ'] = {'i', 'İ', 'İ'}, -- LATIN CAPITAL LETTER I WITH DOT ABOVE ['i'] = {'i', 'İ', 'İ'}, -- LATIN SMALL LETTER I }, } return casing g0dmqa33xutpebv48q4z8hp8zh9unwu Modul:ddo-headword 828 160347 628590 2024-10-26T13:10:34Z Umarxon III 1502 „local export = {} local lang = require('Module:languages').getByCode('ddo') function export.show(frame) local params = { [1] = {alias_of = 'head'}, [3] = {alias_of = 'tr'}, [2] = {alias_of = 'g'}, [4] = {alias_of = 'erg'}, [6] = {alias_of = 'pl'}, ['head'] = {list = true}, ['tr'] = {list = true}, ['ts'] = {list = true}, ['g'] = {list = true, default = '?'}, ['erg'] = {list = true}, ['pl'] = {list = true}, } local args = requi...“ yozuvi orqali yangi sahifa yaratildi 628590 Scribunto text/plain local export = {} local lang = require('Module:languages').getByCode('ddo') function export.show(frame) local params = { [1] = {alias_of = 'head'}, [3] = {alias_of = 'tr'}, [2] = {alias_of = 'g'}, [4] = {alias_of = 'erg'}, [6] = {alias_of = 'pl'}, ['head'] = {list = true}, ['tr'] = {list = true}, ['ts'] = {list = true}, ['g'] = {list = true, default = '?'}, ['erg'] = {list = true}, ['pl'] = {list = true}, } local args = require('Module:parameters').process(frame:getParent().args,params) local data = { lang = lang, heads = args['head'], translits = args['tr'], transcriptions = args['ts'], genders = args['g'], inflections = {}, pos_category = "nouns", categories = {}} if args['erg'][1] then args.erg.label = 'ergative' table.insert(data.inflections, args['erg']) end if args['pl'][1] then args.pl.label = 'plural' table.insert(data.inflections, args['pl']) end return require('Module:headword').full_headword(data) end return export mhqgfg75jvj805l37hwo36bm906m7w3 Modul:tmh-headword 828 160348 628591 2024-10-26T13:11:28Z Umarxon III 1502 „local list_to_set = require("Module:table").listToSet local lang = require("Module:languages").getByCode("tmh") local export = {} local pos_functions = {} local dialects = { ["ght"] = { "Ghat" }, ["thv"] = { "Tamahaq" }, ["taq"] = { "Tamasheq" }, ["ttq"] = { "Tawellemmet" }, ["thz"] = { "Tayert" }, } local function parse_qualifiers(quals) if quals == nil then return nil end local list = mw.text.split(quals, ',%s*') local qualifiers...“ yozuvi orqali yangi sahifa yaratildi 628591 Scribunto text/plain local list_to_set = require("Module:table").listToSet local lang = require("Module:languages").getByCode("tmh") local export = {} local pos_functions = {} local dialects = { ["ght"] = { "Ghat" }, ["thv"] = { "Tamahaq" }, ["taq"] = { "Tamasheq" }, ["ttq"] = { "Tawellemmet" }, ["thz"] = { "Tayert" }, } local function parse_qualifiers(quals) if quals == nil then return nil end local list = mw.text.split(quals, ',%s*') local qualifiers = { } for _, qual in ipairs(list) do if dialects[qual] then table.insert(qualifiers, dialects[qual][1]) else table.insert(qualifiers, qual) end end return table.concat(qualifiers, ", ") end ----------------------- -- Utility functions -- ----------------------- -- If Not Empty local function ine(arg) if arg == "" then return nil else return arg end end -- version of mw.ustring.gsub() that discards all but the first return value function rsub(term, foo, bar) local retval = mw.ustring.gsub(term, foo, bar) return retval end local function append_cat(data, pos) table.insert(data.categories, lang:getCanonicalName() .. " " .. pos) end function remove_links(text) text = rsub(text, "%[%[[^|%]]*|", "") text = rsub(text, "%[%[", "") text = rsub(text, "%]%]", "") return text end local function make_unused_key_tracker(t) local unused_keys = require "Module:table".listToSet( require "Module:table".keysToList(t)) local mt = { __index = function(_, key) if key ~= nil then unused_keys[key] = nil end return t[key] end, __newindex = function(_, key, value) t[key] = value end } local proxy_table = setmetatable({}, mt) return proxy_table, unused_keys end -- The main entry point. function export.show(frame) local PAGENAME = mw.title.getCurrentTitle().text local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.") local args, unused_keys = make_unused_key_tracker(frame:getParent().args) -- Gather parameters local data = { lang = lang, pos_category = poscat, categories = {}, heads = {}, translits = {}, genders = {}, inflections = { enable_auto_translit = true } } local head = args["head"] or PAGENAME or "" local translit = ine(args["tr"]) local i = 1 while head do table.insert(data.heads, head) data.translits[#data.heads] = translit i = i + 1 head = ine(args["head" .. i]) translit = ine(args["tr" .. i]) end if pos_functions[poscat] then pos_functions[poscat].func(args, data) end local unused_key_list = require "Module:table".keysToList(unused_keys) if #unused_key_list > 0 then local unused_key_string = require "Module:array"(unused_key_list):map( function(key) return "|" .. key .. "=" .. args[key] end) :concat("\n") error("Unused arguments: " .. unused_key_string) end return require("Module:headword").full_headword(data) end local function getargs(args, argpref, defgender, position) -- Gather parameters local forms = {} local form if ine(args[position]) then form = ine(args[position]) else form = ine(args[argpref]) end local translit = ine(args[argpref .. "tr"]) local gender = ine(args[argpref .. "g"]) local gender2 = ine(args[argpref .. "g2"]) local qualifiers = ine(args[argpref .. "qual"]) local i = 1 while form do local genderlist = (gender or gender2) and { gender, gender2 } or defgender and { defgender } or nil table.insert(forms, { term = form, translit = translit, gender = genderlist, qualifiers = parse_qualifiers(qualifiers) }) i = i + 1 form = ine(args[argpref .. i]) translit = ine(args[argpref .. i .. "tr"]) gender = ine(args[argpref .. i .. "g"]) gender2 = ine(args[argpref .. i .. "g2"]) qualifiers = ine(args[argpref .. i .. "qual"]) end return forms end local function handle_infl(args, data, argpref, label, defgender, position) local newinfls = getargs(args, argpref, defgender, position) newinfls.label = label if #newinfls > 0 then table.insert(data.inflections, newinfls) end end local function handle_all_infl(args, data, argpref, label, nobase, position) if not nobase and argpref ~= "" then handle_infl(args, data, argpref, label, nil, position) end local labelsp = label == "" and "" or label .. " " handle_infl(args, data, argpref .. "cons", labelsp .. "construct state") end local function handle_noun_plural(args, data) if args["pl"] == "-" then table.insert(data.inflections, { label = "usually [[Appendix:Glossary#uncountable|uncountable]]" }) append_cat(data, "uncountable nouns") else handle_infl(args, data, "pl", "plural") end end local valid_genders = list_to_set{ "m", "f", "m-p", "f-p", "p" } local function handle_gender(args, data, default, nonlemma) local g = ine(args[1]) or default local g2 = ine(args["g2"]) local function process_gender(gender) if not gender then table.insert(data.genders, "?") elseif valid_genders[gender] then table.insert(data.genders, gender) else error("Unrecognized gender: " .. gender) end end process_gender(g) if g2 then process_gender(g2) end if nonlemma then return end if g and g2 then append_cat(data, "terms with multiple genders") end end -- Part-of-speech functions pos_functions["adjectives"] = { func = function(args, data) handle_all_infl(args, data, "", "") handle_all_infl(args, data, "f", "feminine") handle_all_infl(args, data, "pl", "masculine plural") handle_all_infl(args, data, "fpl", "feminine plural") end } function handle_noun_infls(args, data, singonly) handle_all_infl(args, data, "", "") if not singonly then handle_noun_plural(args, data) handle_all_infl(args, data, "pl", "plural", "nobase") end handle_all_infl(args, data, "f", "feminine") handle_all_infl(args, data, "m", "masculine") end pos_functions["nouns"] = { func = function(args, data) handle_gender(args, data) handle_noun_infls(args, data) end } pos_functions["verbs"] = { func = function(args, data) data.pos_category = "verbs" handle_all_infl(args, data, "imperf", "imperfective", nil, 1) handle_all_infl(args, data, "perf", "perfective", nil, 2) end } pos_functions["numerals"] = { func = function(args, data) append_cat(data, "cardinal numbers") handle_gender(args, data) handle_noun_infls(args, data) end } pos_functions["proper nouns"] = { func = function(args, data) handle_gender(args, data) handle_noun_infls(args, data, "singular only") end } pos_functions["pronouns"] = { params = { ["g"] = {} }, func = function(args, data) handle_gender(args, data) handle_all_infl(args, data, "sa", "subject affix") end } return export mpb8s1itoiqhso9n12d0km9fjdk66di Modul:tum-headword 828 160349 628592 2024-10-26T13:12:24Z Umarxon III 1502 „local export = {} local lang = require("Module:languages").getByCode("tum") local plural_classes = { ["1"] = "c2", ["1a"] = "c2", ["3"] = "c4", ["7"] = "c8", ["9"] = "c10", ["11"] = "c6", ["12"] = "c13", ["5"] = "c6", ["1a/6"] = "c6", ["9/6"] = "c6", ["14"] = "c14", ["14/6"] = "c6"} local plural_rules = { ["1"] = {[1] = {"mw", "ŵ", 3}, [2] = {"mu", "ŵa", 3}, [3] = { "m", "ŵa", 2}}, ["1a"] = {[1] = { "", "ŵa", 1}}, ["1a...“ yozuvi orqali yangi sahifa yaratildi 628592 Scribunto text/plain local export = {} local lang = require("Module:languages").getByCode("tum") local plural_classes = { ["1"] = "c2", ["1a"] = "c2", ["3"] = "c4", ["7"] = "c8", ["9"] = "c10", ["11"] = "c6", ["12"] = "c13", ["5"] = "c6", ["1a/6"] = "c6", ["9/6"] = "c6", ["14"] = "c14", ["14/6"] = "c6"} local plural_rules = { ["1"] = {[1] = {"mw", "ŵ", 3}, [2] = {"mu", "ŵa", 3}, [3] = { "m", "ŵa", 2}}, ["1a"] = {[1] = { "", "ŵa", 1}}, ["1a/6"] = {[1] = { "", "ma", 1}}, ["3"] = {[1] = {"mu", "mi", 3}, [2] = {"mw", "miy", 3}, [3] = {"mo", "miyo", 3}, [4] = { "m", "mi", 2}}, ["5"] = {[1] = {"th", "mat", 3}, [2] = {"ph", "map", 3}, [3] = {"kh", "mak", 3}, [4] = {"", "ma", 1}}, --incomplete? ["7"] = {[1] = {"ci", "vi", 3}, [2] = {"c", "vy", 2}}, ["9"] = {[1] = { "", "", 1}}, ["9/6"] = {[1] = { "", "ma", 1}}, ["11"] = {[1] = { "", "ma", 1}}, ["14/6"] = {[1] = { "", "ma", 1}} } function export.noun(frame) local params = { [1] = {required=true}, [2] = {}, ["head"] = {}, ["h"] = {alias_of = "head"} } local args = require("Module:parameters").process(frame:getParent().args, params) local data = {lang = lang, pos_category = "nouns", categories = {}, heads = {args["head"]}, genders = {mw.text.split(args[1], "%/")[1]}, inflections = {}} table.insert(data.categories, lang:getCanonicalName() .. " class " .. data.genders[1] .. " nouns") if args[2] ~= "-" and plural_classes[args[1]] then local infl_plural = {label = "plural", accel = {form = "p", gender = plural_classes[args[1]]}, request = true} -- If no plural was provided, generate one if not args[2] then local singular = args["head"] and require("Module:links").remove_links(args["head"]) or mw.title.getCurrentTitle().text args[2] = export.generate_plural(singular, args[1]) end if args[2] then table.insert(infl_plural, {term = args[2], genders = {plural_classes[args[1]]}}) end table.insert(data.inflections, infl_plural) end return require("Module:headword").full_headword(data) end function match_case(string1, string2) local c1 = mw.ustring.sub(string1, 1, 1) local c2 = mw.ustring.sub(string2, 1, 1) if (mw.ustring.lower(c1) == c1) then return mw.ustring.lower(c2) .. mw.ustring.sub(string2, 2) else return mw.ustring.upper(c2) .. mw.ustring.sub(string2, 2) end end function export.generate_plural(singular, class) if plural_rules[class] then for k, v in ipairs(plural_rules[class]) do if mw.ustring.find(mw.ustring.lower(singular), "^" .. v[1]) then return match_case(singular, v[2] .. mw.ustring.sub(singular, v[3])) end end end end return export dvuzkfrx1scub92z8neptn8l4ft8off Modul:tr-headword 828 160350 628593 2024-10-26T13:13:15Z Umarxon III 1502 „local export = {} local function track(page) require("Module:debug").track("tr-headword/" .. page) return true end function export.adjectives(frame) local params = { head = {}, [1] = {}, -- hyphen (-) ["int"] = {}, -- intensive form } local args = require("Module:parameters").process(frame:getParent().args, params) local lang = require("Module:languages").getByCode("tr") local poscat = "adjectives" local positive_form = args.head...“ yozuvi orqali yangi sahifa yaratildi 628593 Scribunto text/plain local export = {} local function track(page) require("Module:debug").track("tr-headword/" .. page) return true end function export.adjectives(frame) local params = { head = {}, [1] = {}, -- hyphen (-) ["int"] = {}, -- intensive form } local args = require("Module:parameters").process(frame:getParent().args, params) local lang = require("Module:languages").getByCode("tr") local poscat = "adjectives" local positive_form = args.head or mw.title.getCurrentTitle().text local data = { lang = lang, pos_category = poscat, categories = {}, heads = {positive_form}, no_redundant_head_cat = not args.head, inflections = {} } if args[1] == "-" then track("adj is not comparable") table.insert(data.inflections, { label = "not comparable" }) end if args["int"] then track("adj has an intensive form") table.insert(data.inflections, { label = "intensive", args["int"] .. positive_form }) end return require("Module:headword").full_headword(data) end return export 8gohxfqpheowemicz96lljlz49yd6y0 Modul:tru-headword 828 160351 628594 2024-10-26T13:14:10Z Umarxon III 1502 „local lang = require("Module:languages").getByCode("tru") local list_to_set = require("Module:table").listToSet local export = {} local pos_functions = {} local u = mw.ustring.char ----------------------- -- Utility functions -- ----------------------- -- If Not Empty local function ine(arg) if arg == "" then return nil else return arg end end -- version of mw.ustring.gsub() that discards all but the first return value function rsub(te...“ yozuvi orqali yangi sahifa yaratildi 628594 Scribunto text/plain local lang = require("Module:languages").getByCode("tru") local list_to_set = require("Module:table").listToSet local export = {} local pos_functions = {} local u = mw.ustring.char ----------------------- -- Utility functions -- ----------------------- -- If Not Empty local function ine(arg) if arg == "" then return nil else return arg end end -- version of mw.ustring.gsub() that discards all but the first return value function rsub(term, foo, bar) local retval = mw.ustring.gsub(term, foo, bar) return retval end local rfind = mw.ustring.find -- Tracking functions local trackfn = require("Module:debug").track function track(page) trackfn("tru-headword/" .. page) return true end local function append_cat(data, pos) table.insert(data.categories, lang:getCanonicalName() .. " " .. pos) end function remove_links(text) text = rsub(text, "%[%[[^|%]]*|", "") text = rsub(text, "%[%[", "") text = rsub(text, "%]%]", "") return text end local function make_unused_key_tracker(t) local unused_keys = require"Module:table".listToSet( require"Module:table".keysToList(t)) local mt = { __index = function(self, key) if key ~= nil then unused_keys[key] = nil end return t[key] end, __newindex = function(self, key, value) t[key] = value end } local proxy_table = setmetatable({}, mt) return proxy_table, unused_keys end -- The main entry point. function export.show(frame) local PAGENAME = mw.title.getCurrentTitle().text local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.") local params = { [1] = {list = "head", allow_holes = true, default = ""}, ["head"] = {default = ""}, ["tr"] = {list = true, allow_holes = true}, } local args, unused_keys = make_unused_key_tracker(frame:getParent().args) -- Gather parameters local data = {lang = lang, pos_category = poscat, categories = {}, heads = {}, translits = {}, genders = {}, inflections = { enable_auto_translit = true }} local head = args[1] or args["head"] or PAGENAME or "" local translit = ine(args["tr"]) local i = 1 local irreg_translit = false while head do table.insert(data.heads, head) data.translits[#data.heads] = translit i = i + 1 head = ine(args["head" .. i]) translit = ine(args["tr" .. i]) end if pos_functions[poscat] then pos_functions[poscat].func(args, data) end local unused_key_list = require"Module:table".keysToList(unused_keys) if #unused_key_list > 0 then local unused_key_string = require "Module:array"(unused_key_list):map( function(key) return "|" .. key .. "=" .. args[key] end):concat("\n") error("Unused arguments: " .. unused_key_string) end return require("Module:headword").full_headword(data) end local function getargs(args, argpref, defgender) -- Gather parameters local forms = {} if ine(args[position]) then form = ine(args[position]) else form = ine(args[argpref]) end local translit = ine(args[argpref .. "tr"]) local gender = ine(args[argpref .. "g"]) local gender2 = ine(args[argpref .. "g2"]) local i = 1 while form do local genderlist = (gender or gender2) and {gender, gender2} or defgender and {defgender} or nil table.insert(forms, {term = form, translit = translit, genders = genderlist}) i = i + 1 form = ine(args[argpref .. i]) translit = ine(args[argpref .. i .. "tr"]) gender = ine(args[argpref .. i .. "g"]) gender2 = ine(args[argpref .. i .. "g2"]) end return forms end local function handle_infl(args, data, argpref, label, defgender, position) local newinfls = getargs(args, argpref, defgender, position) newinfls.label = label if #newinfls > 0 then table.insert(data.inflections, newinfls) end end local function handle_all_infl(args, data, argpref, label, nobase, position) if not nobase and argpref ~= "" then handle_infl(args, data, argpref, label, nil, position) end local labelsp = label == "" and "" or label .. " " end -- Handle the case where pl=-, indicating an uncountable noun. local function handle_noun_plural(args, data) if args["pl"] == "-" then table.insert(data.inflections, {label = "usually [[Appendix:Glossary#uncountable|uncountable]]"}) append_cat(data, "uncountable nouns") else handle_infl(args, data, "pl", "plural") handle_infl(args, data, "pauc", "paucal") end end local valid_genders = list_to_set( {"s", "m", "m-s", "f", "f-s", "m-p", "f-p", "p", "mf" }) local function is_masc_sg(g) return g == "m" or g == "m-s" or g == "m-p" or g == "mf" end local function is_fem_sg(g) return g == "f" or g == "f-s" or g == "f-p" or g == "mf" end local function handle_gender(args, data, default, nonlemma) local PAGENAME = mw.title.getCurrentTitle().text local g = ine(args[2]) or ine(args["g"]) or default local g2 = ine(args["g2"]) local function process_gender(g) if not g then table.insert(data.genders, "?") elseif valid_genders[g] then table.insert(data.genders, g) else error("Unrecognized gender: " .. g) end end process_gender(g) if g2 then process_gender(g2) end if nonlemma then return end end -- Part-of-speech functions function handle_noun_infls(args, data, singonly) handle_all_infl(args, data, "", "") if not singonly then handle_noun_plural(args, data) handle_all_infl(args, data, "pl", "plural", "nobase") end handle_all_infl(args, data, "f", "feminine") handle_all_infl(args, data, "m", "masculine") end pos_functions["nouns"] = { func = function(args, data) handle_gender(args, data) handle_noun_infls(args, data) local g = ine(args["g"]) or default local g2 = ine(args["g2"]) if is_masc_sg(g) or is_masc_sg(g2) then append_cat(data, "masculine nouns") elseif is_fem_sg(g) or is_fem_sg(g2) then append_cat(data, "feminine nouns") end end } pos_functions["numerals"] = { func = function(args, data) append_cat(data, "cardinal numbers") handle_gender(args, data) handle_noun_infls(args, data) end } pos_functions["proper nouns"] = { func = function(args, data) handle_gender(args, data) end } pos_functions["pronouns"] = { params = { ["g"] = {}, ["g2"] = {} }, func = function(args, data) if ine(args["g"]) or ine(args["g2"]) then handle_gender(args, data) end handle_all_infl(args, data, "f", "feminine") handle_all_infl(args, data, "p", "plural") end } pos_functions["adjectives"] = { func = function(args, data) handle_all_infl(args, data, "f", "feminine singular") handle_all_infl(args, data, "p", "masculine plural") handle_all_infl(args, data, "fp", "feminine plural") end } return export lnmvt849j3gvr5uunn9x2px4zw2dma7 Modul:uk-be-headword 828 160352 628595 2024-10-26T13:15:02Z Umarxon III 1502 „local export = {} local lang, langcode, langname local com local iut = require("Module:inflection utilities") local m_links = require("Module:links") local m_string_utilities = require("Module:string utilities") local m_table = require("Module:table") local rfind = mw.ustring.find local pos_functions = {} local function track(page) require("Module:debug").track(langcode .. "-headword/" .. page) return true end local function check_if_acce...“ yozuvi orqali yangi sahifa yaratildi 628595 Scribunto text/plain local export = {} local lang, langcode, langname local com local iut = require("Module:inflection utilities") local m_links = require("Module:links") local m_string_utilities = require("Module:string utilities") local m_table = require("Module:table") local rfind = mw.ustring.find local pos_functions = {} local function track(page) require("Module:debug").track(langcode .. "-headword/" .. page) return true end local function check_if_accents_needed(list, data) for _, val in ipairs(list) do val = m_links.remove_links(val) if com.needs_accents(val) then if langcode == "uk" and not data.unknown_stress then error("Stress must be supplied using an acute accent: '" .. val .. "' (use unknown_stress=1 if stress is truly unknown)") end local pos = m_string_utilities.singularize(data.pos_category) table.insert(data.categories, "Requests for accents in " .. langname .. " " .. pos .. " entries") end if com.is_multi_stressed(val) then error("Multi-stressed form '" .. val .. "' not allowed") end end end -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local args = frame:getParent().args local PAGENAME = mw.loadData("Module:headword/data").pagename local iparams = { [1] = {required = true}, ["lang"] = {required = true}, } local iargs = require("Module:parameters").process(frame.args, iparams) local poscat = iargs[1] langcode = iargs.lang if langcode ~= "uk" and langcode ~= "be" then error("This module currently only works for lang=uk and lang=be") end lang = require("Module:languages").getByCode(langcode) langname = langcode == "uk" and "Ukrainian" or "Belarusian" com = langcode == "uk" and require("Module:uk-common") or require("Module:be-common") local data = {lang = lang, pos_category = poscat, categories = {}, genders = {}, inflections = {}} local params = { [1] = {list = "head"}, ["tr"] = {list = true, allow_holes = true}, ["unknown_stress"] = {type = "boolean"}, } if pos_functions[poscat] then for key, val in pairs(pos_functions[poscat].params) do params[key] = val end end local parargs = frame:getParent().args local args = require("Module:parameters").process(parargs, params) local heads = args[1] if #heads == 0 then heads = {PAGENAME} end data.heads = heads data.translits = args.tr data.unknown_stress = args.unknown_stress data.frame = frame if args.unknown_stress then table.insert(data.inflections, {label = "unknown stress"}) end if pos_functions[poscat] and not pos_functions[poscat].no_check_head_accents then check_if_accents_needed(heads, data) end if pos_functions[poscat] then pos_functions[poscat].func(args, data) end return require("Module:headword").full_headword(data) .. (data.extra_text or "") end local function make_gloss_text(text) return '<span class="gloss-brac">(</span>' .. '<span class="gloss-content">' .. text .. '</span><span class="gloss-brac">)</span>' end local function get_noun_pos(is_proper) return { params = { [2] = {alias_of = "g"}, [3] = {list = "gen"}, [4] = {list = "pl"}, [5] = {list = "genpl"}, ["lemma"] = {list = true}, ["g"] = {list = true}, ["m"] = {list = true}, ["f"] = {list = true}, ["adj"] = {list = true}, ["dim"] = {list = true}, ["aug"] = {list = true}, ["pej"] = {list = true}, ["dem"] = {list = true}, ["fdem"] = {list = true}, ["unknown_gender"] = {type = "boolean"}, ["unknown_animacy"] = {type = "boolean"}, ["id"] = {}, }, -- set this to avoid problems with cases like {{uk-noun|((ґандж<>,ґандж<F>))}}, -- which will otherwise throw an error no_check_head_accents = true, func = function(args, data) local genitives, plurals, genitive_plurals if rfind(data.heads[1], "<") then local parargs = data.frame:getParent().args local alternant_spec = require("Module:" .. langcode .. "-noun").do_generate_forms(parargs, nil, true) args = alternant_spec.args local footnote_obj local function get_raw_forms(forms) local raw_forms = {} if forms then for _, form in ipairs(forms) do local text = langcode == "uk" and com.remove_monosyllabic_stress(form.form) or com.remove_monosyllabic_accents(form.form) if form.footnotes then if not footnote_obj then footnote_obj = iut.create_footnote_obj() end local footnote_text = iut.get_footnote_text(form.footnotes, footnote_obj) if rfind(text, "%[%[") then text = text .. footnote_text else text = "[[" .. text .. "]]" .. footnote_text end end table.insert(raw_forms, text) end end if #raw_forms == 0 then raw_forms = {"-"} end return raw_forms end if alternant_spec.number == "pl" then data.heads = #args.lemma > 0 and args.lemma or get_raw_forms(alternant_spec.forms.nom_p_linked) genitives = get_raw_forms(alternant_spec.forms.gen_p) plurals = {"-"} genitive_plurals = {"-"} else data.heads = #args.lemma > 0 and args.lemma or get_raw_forms(alternant_spec.forms.nom_s_linked) genitives = get_raw_forms(alternant_spec.forms.gen_s) if alternant_spec.number == "sg" then plurals = {"-"} genitive_plurals = {"-"} else plurals = get_raw_forms(alternant_spec.forms.nom_p) genitive_plurals = get_raw_forms(alternant_spec.forms.gen_p) end end if #args.g > 0 then data.genders = args.g else data.genders = alternant_spec.genders end local notes_segments = {} if footnote_obj then for _, note in ipairs(footnote_obj.notes) do table.insert(notes_segments, " " .. make_gloss_text(note)) end end data.extra_text = table.concat(notes_segments, "") else check_if_accents_needed(data.heads, data) data.genders = args.g if #data.genders == 0 then if mw.title.getCurrentTitle().nsText ~= "Template" then error("Gender must be specified") else table.insert(data.genders, "m-in") end end genitives = args[3] plurals = args[4] genitive_plurals = args[5] if genitives[1] ~= "-" then -- don't track for indeclinables, which legitimately use the old-style syntax track(langcode .. "-noun-old-style") end end -- Process the genders local singular_genders = {} local plural_genders = {} local allowed_genders = {"m", "f", "n", "mf", "mfbysense"} if langcode == "be" or args.unknown_gender then table.insert(allowed_genders, "?") end local allowed_animacies = {"pr", "anml", "in"} if langcode == "be" or args.unknown_animacy then table.insert(allowed_animacies, "?") end for _, gender in ipairs(allowed_genders) do for _, animacy in ipairs(allowed_animacies) do singular_genders[gender .. "-" .. animacy] = true plural_genders[gender .. "-" .. animacy .. "-p"] = true end end if langcode == "be" then singular_genders["?"] = true plural_genders["?-p"] = true end local seen_gender = nil local seen_animacy = nil for i, g in ipairs(data.genders) do if not singular_genders[g] and not plural_genders[g] then if g:match("%-an%-") or g:match("%-an$") then error("Invalid animacy 'an'; use 'pr' for people, 'anml' for animals: " .. g) end error("Unrecognized gender: " .. g .. " (should be e.g. 'm-pr' for masculine personal, 'f-anml-p' for feminine animal plural, or 'n-in' for neuter inanimate)") end data.genders[i] = g end -- Add the genitive forms if genitives[1] == "-" then table.insert(data.inflections, {label = "[[Appendix:Glossary#indeclinable|indeclinable]]"}) table.insert(data.categories, langname .. " indeclinable nouns") else genitives.label = "genitive" genitives.request = true check_if_accents_needed(genitives, data) table.insert(data.inflections, genitives) end -- Add the plural forms -- If the noun is plural only, then ignore the 4th and 5th parameters altogether if genitives[1] == "-" then -- do nothing elseif plural_genders[data.genders[1]] then table.insert(data.inflections, {label = "[[Appendix:Glossary#plural only|plural only]]"}) elseif plurals[1] == "-" then table.insert(data.inflections, {label = "[[Appendix:Glossary#uncountable|uncountable]]"}) table.insert(data.categories, langname .. " uncountable nouns") else plurals.label = "nominative plural" plurals.request = true check_if_accents_needed(plurals, data) table.insert(data.inflections, plurals) if #genitive_plurals > 0 then -- allow the genitive plural to be unsupplied; formerly there -- was no genitive plural param if genitive_plurals[1] == "-" then -- handle case where there's no genitive plural (e.g. ага́) table.insert(data.inflections, {label = "no genitive plural"}) else genitive_plurals.label = "genitive plural" check_if_accents_needed(genitive_plurals, data) table.insert(data.inflections, genitive_plurals) end end end local function handle_infl(arg, label) local vals = args[arg] if #vals > 0 then vals.label = label check_if_accents_needed(vals, data) table.insert(data.inflections, vals) end end handle_infl("m", "masculine") handle_infl("f", "feminine") handle_infl("adj", "relational adjective") handle_infl("dim", "diminutive") handle_infl("aug", "augmentative") handle_infl("pej", "pejorative") handle_infl("dem", "demonym") handle_infl("fdem", "female demonym") data.id = args.id end } end pos_functions["proper nouns"] = get_noun_pos(true) pos_functions["nouns"] = get_noun_pos(false) pos_functions["verbs"] = { params = { [2] = {default = "?"}, ["pf"] = {list = true}, ["impf"] = {list = true}, }, func = function(args, data) -- Aspect local aspect = args[2] if aspect == "both" then aspect = "biasp" elseif aspect ~= "pf" and aspect ~= "impf" and aspect ~= "biasp" and aspect ~= "?" then error("Unrecognized aspect: '" .. aspect .. "'") end table.insert(data.genders, aspect) -- Get the imperfective parameters local imperfectives = args["impf"] -- Get the perfective parameters local perfectives = args["pf"] check_if_accents_needed(imperfectives, data) check_if_accents_needed(perfectives, data) -- Add the imperfective forms if #imperfectives > 0 then if aspect == "impf" then error("Can't specify imperfective counterparts for an imperfective verb") end imperfectives.label = "imperfective" table.insert(data.inflections, imperfectives) end -- Add the perfective forms if #perfectives > 0 then if aspect == "pf" then error("Can't specify perfective counterparts for a perfective verb") end perfectives.label = "perfective" table.insert(data.inflections, perfectives) end end } pos_functions["adjectives"] = { params = { [2] = {list = "comp"}, [3] = {list = "sup"}, ["adv"] = {list = true}, ["absn"] = {list = true}, ["dim"] = {list = true}, ["indecl"] = {type = "boolean"}, }, func = function(args, data) local comps = args[2] local sups = args[3] local adverbs = args["adv"] local abstract_nouns = args["absn"] local diminutives = args["dim"] if args.indecl then table.insert(data.inflections, {label = "indeclinable"}) table.insert(data.categories, langname .. " indeclinable adjectives") end if #comps > 0 then if comps[1] == "-" then table.insert(data.inflections, {label = "no comparative"}) else check_if_accents_needed(comps, data) comps.label = "comparative" table.insert(data.inflections, comps) end end if #sups > 0 then check_if_accents_needed(sups, data) sups.label = "superlative" table.insert(data.inflections, sups) end if #adverbs > 0 then check_if_accents_needed(adverbs, data) adverbs.label = "adverb" table.insert(data.inflections, adverbs) end if #abstract_nouns > 0 then check_if_accents_needed(abstract_nouns, data) abstract_nouns.label = "abstract noun" table.insert(data.inflections, abstract_nouns) end if #diminutives > 0 then check_if_accents_needed(diminutives, data) diminutives.label = "diminutive" table.insert(data.inflections, diminutives) end end } pos_functions["adverbs"] = { params = { [2] = {list = "comp"}, [3] = {list = "sup"}, ["dim"] = {list = true}, }, func = function(args, data) local comps = args[2] local sups = args[3] local diminutives = args["dim"] if #comps > 0 then if comps[1] == "-" then table.insert(data.inflections, {label = "no comparative"}) else check_if_accents_needed(comps, data) comps.label = "comparative" table.insert(data.inflections, comps) end end if #sups > 0 then check_if_accents_needed(sups, data) sups.label = "superlative" table.insert(data.inflections, sups) end if #diminutives > 0 then check_if_accents_needed(diminutives, data) diminutives.label = "diminutive" table.insert(data.inflections, diminutives) end end } return export l41hs7m0yr7wrdrmycfd9164kbr2oi2 Modul:hsb-dsb-headword 828 160353 628596 2024-10-26T13:16:21Z Umarxon III 1502 „local export = {} local pos_functions = {} local function track(page) require("Module:debug").track("hsb-dsb-headword/" .. page) return true end local function glossary_link(entry, text) text = text or entry return "[[Appendix:Glossary#" .. entry .. "|" .. text .. "]]" end -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local iparams = { [1] = {required = true}, ["la...“ yozuvi orqali yangi sahifa yaratildi 628596 Scribunto text/plain local export = {} local pos_functions = {} local function track(page) require("Module:debug").track("hsb-dsb-headword/" .. page) return true end local function glossary_link(entry, text) text = text or entry return "[[Appendix:Glossary#" .. entry .. "|" .. text .. "]]" end -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local iparams = { [1] = {required = true}, ["lang"] = {required = true}, } local iargs = require("Module:parameters").process(frame.args, iparams) local poscat = iargs[1] langcode = iargs.lang if langcode ~= "hsb" and langcode ~= "dsb" then error("This module currently only works for lang=hsb and lang=dsb") end local lang = require("Module:languages").getByCode(langcode) local langname = lang:getCanonicalName() local params = { ["head"] = {list = true}, ["nolink"] = {type = "boolean"}, ["nolinkhead"] = {type = "boolean", alias_of = "nolink"}, ["suffix"] = {type = "boolean"}, ["nosuffix"] = {type = "boolean"}, ["json"] = {type = "boolean"}, ["pagename"] = {}, -- for testing } if pos_functions[poscat] then for key, val in pairs(pos_functions[poscat].params) do params[key] = val end end local parargs = frame:getParent().args local args = require("Module:parameters").process(parargs, params) local pagename = args.pagename or mw.loadData("Module:headword/data").pagename local user_specified_heads = args.head local heads = user_specified_heads if args.nolink then if #heads == 0 then heads = {pagename} end end local data = { lang = lang, langname = langname, pos_category = poscat, categories = {}, heads = heads, user_specified_heads = user_specified_heads, no_redundant_head_cat = #user_specified_heads == 0, genders = {}, inflections = {}, categories = {}, pagename = pagename, id = args.id, force_cat_output = force_cat, } data.is_suffix = false if args.suffix or ( not args.nosuffix and pagename:find("^%-") and poscat ~= "suffixes" and poscat ~= "suffix forms" ) then data.is_suffix = true data.pos_category = "suffixes" local singular_poscat = require("Module:string utilities").singularize(poscat) table.insert(data.categories, langname .. " " .. singular_poscat .. "-forming suffixes") table.insert(data.inflections, {label = singular_poscat .. "-forming suffix"}) end if pos_functions[poscat] then pos_functions[poscat].func(args, data) end if args.json then return require("Module:JSON").toJSON(data) end return require("Module:headword").full_headword(data) end local function get_noun_pos(is_proper) local noun_inflection_specs = { {"gen", "genitive singular"}, {"du", "nominative dual"}, {"pl", "nominative plural"}, {"genpl", "genitive plural"}, {"f", "feminine"}, {"m", "masculine"}, {"dim", "diminutive"}, {"pej", "pejorative"}, {"aug", "augmentative"}, {"adj", "related adjective"}, {"dem", "demonym"}, {"fdem", "female demonym"}, } local params = { ["indecl"] = {type = "boolean"}, [1] = {list = "g"}, } for _, spec in ipairs(noun_inflection_specs) do local param, desc = unpack(spec) params[param] = {list = true, disallow_holes = true} params[param .. "\1q"] = {list = true, allow_holes = true} end return { params = params, func = function(args, data) -- Compute allowed genders, and map incomplete genders to specs with a "?" in them. local genders = {false, "m", "mf", "mfbysense", "f", "n"} local animacies = {false, "in", "anml", "pr"} local numbers = {false, "d", "p"} local allowed_genders = {} for _, g in ipairs(genders) do for _, an in ipairs(animacies) do for _, num in ipairs(numbers) do local source_gender_parts = {} local dest_gender_parts = {} local function ins_part(part, partname) if part then table.insert(source_gender_parts, part) table.insert(dest_gender_parts, part) elseif partname == "g" and num == false or partname == "an" and (data.lang:getCode() == "dsb" or g ~= "f" and g ~= "n") then -- allow incomplete gender duale tantum and plurale tantum nouns; also allow incomplete -- animacy in Upper Sorbian for fem/neut, where it makes no difference for agreement -- purposes); otherwise insert a ? to indicate incomplete gender spec table.insert(dest_gender_parts, "?") end end ins_part(g, "g") ins_part(an, "an") ins_part(num, "num") if #source_gender_parts == 0 then allowed_genders["?"] = "?" else allowed_genders[table.concat(source_gender_parts, "-")] = table.concat(dest_gender_parts, "-") end end end end -- Gather genders data.genders = args[1] -- Validate and canonicalize genders for i, g in ipairs(data.genders) do if not allowed_genders[g] then error("Unrecognized " .. data.langname .. " gender: " .. g) else data.genders[i] = allowed_genders[g] end end local function process_inflection(label, infls, qs, frob) infls.label = label for i, infl in ipairs(infls) do if frob then infl = frob(infl) end if qs[i] then infls[i] = {term = infl, q = {qs[i]}} end end if #infls > 0 then table.insert(data.inflections, infls) end end if args.indecl then table.insert(data.inflections, {label = glossary_link("indeclinable")}) end -- Process all inflections. for _, spec in ipairs(noun_inflection_specs) do local param, desc = unpack(spec) process_inflection(desc, args[param], args[param .. "q"]) end end } end pos_functions["nouns"] = get_noun_pos(false) pos_functions["proper nouns"] = get_noun_pos(true) return export f5y4jan2m5itll134da1pgmyyjedqf6 Modul:ur-headword 828 160354 628597 2024-10-26T13:17:16Z Umarxon III 1502 „local export = {} local pos_functions = {} local m_links = require("Module:links") local m_labels = require("Module:labels") local m_scripts = require("Module:scripts") local lang = require("Module:languages").getByCode("ur") local hi_lang = require("Module:languages").getByCode("hi") local hi_sc = require("Module:scripts").getByCode("Deva") local PAGENAME = mw.title.getCurrentTitle().text local rfind = mw.ustring.find local rmatch = mw.ustring.m...“ yozuvi orqali yangi sahifa yaratildi 628597 Scribunto text/plain local export = {} local pos_functions = {} local m_links = require("Module:links") local m_labels = require("Module:labels") local m_scripts = require("Module:scripts") local lang = require("Module:languages").getByCode("ur") local hi_lang = require("Module:languages").getByCode("hi") local hi_sc = require("Module:scripts").getByCode("Deva") local PAGENAME = mw.title.getCurrentTitle().text local rfind = mw.ustring.find local rmatch = mw.ustring.match local rsplit = mw.text.split local usub = mw.ustring.sub local gender_to_full = { ["m"] = "masculine", ["f"] = "feminine" } local function glossary_link(anchor, text) text = text or anchor return "[[Appendix:Glossary#" .. anchor .. "|" .. text .. "]]" end local function track(page) require("Module:debug").track("ur-headword/" .. page) end local function process_hindis(hindis) local inflection = {} for _, hindi in ipairs(hindis) do table.insert(inflection, {term = m_links.remove_links(hindi), lang = hi_lang, sc = hi_sc, translit = "-"}) end inflection.label = "Hindi spelling" return inflection end -- Auto-add links to a "space word" (after splitting on spaces). We split off -- final punctuation, and then split on hyphens if split_hyphen is given. -- Code ported from [[Module:fr-headword]]. local function add_space_word_links(space_word, split_hyphen) local space_word_no_punct, punct = rmatch(space_word, "^(.*)([,;:?!])$") space_word_no_punct = space_word_no_punct or space_word punct = punct or "" local words -- don't split prefixes and suffixes if not split_hyphen or rfind(space_word_no_punct, "^%-") or rfind(space_word_no_punct, "%-$") then words = {space_word_no_punct} else words = rsplit(space_word_no_punct, "%-") end local linked_words = {} for _, word in ipairs(words) do word = "[[" .. word .. "]]" table.insert(linked_words, word) end return table.concat(linked_words, "-") .. punct end -- Auto-add links to a lemma. We split on spaces, and also on hyphens -- if split_hyphen is given or the word has no spaces. We don't always -- split on hyphens because of cases like "आदान-प्रदान करना" where -- "आदान-प्रदान" should be linked as a whole. If there's no space, however, then -- it makes sense to split on hyphens by default. local function add_lemma_links(lemma, split_hyphen) if not rfind(lemma, " ") then split_hyphen = true end local words = rsplit(lemma, " ") local linked_words = {} for _, word in ipairs(words) do table.insert(linked_words, add_space_word_links(word, split_hyphen)) end local retval = table.concat(linked_words, " ") -- If we ended up with a single link consisting of the entire lemma, -- remove the link. local unlinked_retval = rmatch(retval, "^%[%[([^%[%]]*)%]%]$") return unlinked_retval or retval end function export.show(frame) PAGENAME = mw.title.getCurrentTitle().text local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.") local params = { ["head"] = {list = true}, ["tr"] = {list = true, allow_holes = true}, ["sort"] = {}, ["hi"] = {list = true}, ["splithyphen"] = {type = "boolean"}, } if PAGENAME:find(" ") then track("space") end if pos_functions[poscat] then for key, val in pairs(pos_functions[poscat].params) do params[key] = val end end local parargs = frame:getParent().args local args = require("Module:parameters").process(parargs, params) local data = {lang = lang, sc = current_script, pos_category = poscat, heads = args["head"], translits = args["tr"], categories = {}, genders = {}, inflections = {enable_auto_translit = true}, sort_key = args["sort"], } if #data.translits > 0 then track("manual-translit/" .. poscat) end local heads = data.heads local auto_linked_head = add_lemma_links(PAGENAME, args["splithyphen"]) if #heads == 0 then data.heads = {auto_linked_head} else for _, head in ipairs(heads) do if head == auto_linked_head then track("redundant-head") end end end if pos_functions[poscat] then pos_functions[poscat].func(args, data) end if #args["hi"] > 0 then table.insert(data.inflections, process_hindis(args["hi"])) else if #heads > 0 then local hindis = {} for _, head in ipairs(heads) do table.insert(hindis, require("Module:ur-hi-convert").tr(head)) end table.insert(data.inflections, process_hindis(hindis)) end end return require("Module:headword").full_headword(data) end pos_functions.adjectives = { params = { ["comparative"] = {}, ["superlative"] = {}, [1] = {alias_of = "comparative"}, [2] = {alias_of = "superlative"}, ["f"] = {list = true}, ["m"] = {list = true}, ["ind"] = {type = "boolean"}, }, func = function(args, data) if args["ind"] then table.insert(data.inflections, {label = glossary_link("indeclinable")}) table.insert(data.categories, "Urdu indeclinable adjectives") end if args["comparative"] then table.insert(data.inflections, {label = "comparative", args["comparative"]}) end if args["superlative"] then table.insert(data.inflections, {label = "superlative", args["superlative"]}) end if #args["m"] > 0 then args["m"].label = "masculine" table.insert(data.inflections, args["m"]) end if #args["f"] > 0 then args["f"].label = "feminine" table.insert(data.inflections, args["f"]) end end, } local function process_genders(data, genders) for _, g in ipairs(genders) do if g == "m" or g == "f" or g == "m-p" or g == "f-p" or g == "mf" or g == "mf-p" or g == "mfbysense" or g == "mfbysense-p" or g == "?" then table.insert(data.genders, g) else error("Invalid gender: " .. (g or "(nil)")) end end end local function nouns(plpos) return { params = { ["g"] = {list = true, default = "?"}, ["f"] = {list = true}, ["m"] = {list = true}, ["pl"] = {list = true}, ["ind"] = {type = "boolean"}, }, func = function(args, data) process_genders(data, args["g"]) if args["ind"] then table.insert(data.inflections, {label = glossary_link("indeclinable")}) table.insert(data.categories, "Urdu indeclinable " .. plpos) end if #args["pl"] > 0 then args["pl"].label = "formal plural" table.insert(data.inflections, args["pl"]) end if #args["m"] > 0 then args["m"].label = "masculine" table.insert(data.inflections, args["m"]) end if #args["f"] > 0 then args["f"].label = "feminine" table.insert(data.inflections, args["f"]) end end, } end pos_functions.nouns = nouns("nouns") pos_functions["proper nouns"] = nouns("proper nouns") pos_functions.pronouns = { params = { ["g"] = {list = true}, }, func = function(args, data) process_genders(data, args["g"]) end, } pos_functions.verbs = { params = { [1] = {}, ["g"] = {list = true}, }, func = function(args, data) data.genders = args["g"] if args[1] then local label, cat if args[1] == "t" then label = "transitive" table.insert(data.categories, "Urdu transitive verbs") elseif args[1] == "i" then label = "intransitive" table.insert(data.categories, "Urdu intransitive verbs") elseif args[1] == "d" then label = "ditransitive" table.insert(data.categories, "Urdu ditransitive verbs") elseif args[1] == "it" or args[1] == "ti" or args[1] == "a" then label = "ambitransitive" table.insert(data.categories, "Urdu ambitransitive verbs") table.insert(data.categories, "Urdu transitive verbs") table.insert(data.categories, "Urdu intransitive verbs") else error("Unrecognized param 1=" .. args[1] .. ": Should be 'i' = intransitive, 't' = transitive, or 'it'/'ti'/'a' = ambitransitive") end table.insert(data.inflections, {label = glossary_link(label)}) end local head = data.heads[1] if head:find(" ") then local base_verb = m_links.remove_links(head):gsub("^.* ", "") table.insert(data.categories, "Urdu compound verbs formed with " .. lang:makeEntryName(base_verb)) end end, } local function pos_with_gender() return { params = { ["g"] = {list = true}, }, func = function(args, data) data.genders = args["g"] end, } end pos_functions.numerals = pos_with_gender() pos_functions.suffixes = pos_with_gender() pos_functions["adjective forms"] = pos_with_gender() pos_functions["noun forms"] = pos_with_gender() pos_functions["pronoun forms"] = pos_with_gender() pos_functions["determiner forms"] = pos_with_gender() pos_functions["verb forms"] = pos_with_gender() pos_functions["postposition forms"] = pos_with_gender() return export ab2nwd0nam4bj2lmnss6rxq7kewwcf6 Modul:ug-headword 828 160355 628598 2024-10-26T13:18:05Z Umarxon III 1502 „local export = {} local m_com = require("Module:ug-common") local pos_functions = {} local lang = require("Module:languages").getByCode("ug") local PAGENAME = mw.title.getCurrentTitle().text local suffix_categories = { ["adjectives"] = true, ["adverbs"] = true, ["nouns"] = true, ["verbs"] = true, } local function track(page) require("Module:debug").track("ug-headword/" .. page) return true end function export.make_plural_noun(singular,...“ yozuvi orqali yangi sahifa yaratildi 628598 Scribunto text/plain local export = {} local m_com = require("Module:ug-common") local pos_functions = {} local lang = require("Module:languages").getByCode("ug") local PAGENAME = mw.title.getCurrentTitle().text local suffix_categories = { ["adjectives"] = true, ["adverbs"] = true, ["nouns"] = true, ["verbs"] = true, } local function track(page) require("Module:debug").track("ug-headword/" .. page) return true end function export.make_plural_noun(singular, vv, change) local base, v, c = m_com.getLast(singular) if not v then return nil end if change == "yes" then if vv ~= nil and vv ~= "" then v = vv else if c == "" and (v == "ا" or v == "ە") then v = "ى" end end end local term = base .. v .. c local tongue = m_com.checkTongue(singular) if tongue == "front" then return term .. "لەر" elseif tongue == "back" then return term .. "لار" else -- [[Special:WhatLinksHere/Wiktionary:Tracking/ug-headword/central vowels]] track("central vowels") end return nil end -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.") local params = { ["head"] = {list = true}, ["suff"] = {type = "boolean"}, } if mw.ustring.find(PAGENAME, " ") then -- [[Special:WhatLinksHere/Wiktionary:Tracking/ug-headword/space]] track("space") end if pos_functions[poscat] then for key, val in pairs(pos_functions[poscat].params) do params[key] = val end end local args = require("Module:parameters").process(frame:getParent().args, params) local data = {lang = lang, pos_category = poscat, categories = {}, heads = args["head"], genders = {}, inflections = {enable_auto_translit = true}, categories = {}} if args["suff"] then data.pos_category = "suffixes" if suffix_categories[poscat] then local singular_poscat = poscat:gsub("s$", "") table.insert(data.categories, lang:getCanonicalName() .. " " .. singular_poscat .. "-forming suffixes") else error("No category exists for suffixes forming " .. poscat .. ".") end end if pos_functions[poscat] then pos_functions[poscat].func(args, data) end return require("Module:headword").full_headword(data) end -- Display additional inflection information for a noun pos_functions["nouns"] = { params = { [1] = {}, -- Vowel, if there is a change ["pl"] = {}, --plural override ["change"] = {}, -- yes or (else:no) }, func = function(args, data) local pl = args["pl"] or nil local change = args["change"] or "yes" if pl == "-" then table.insert(data.inflections, {label = "[[Appendix:Glossary#uncountable|uncountable]]"}) table.insert(data.categories, "Uyghur uncountable nouns") else table.insert(data.categories, "Uyghur countable nouns") if not pl then local plural = export.make_plural_noun(PAGENAME, args[1], change) if plural then pl = plural else table.insert(data.categories, "Uyghur nouns with unpredictable plurals") end end if pl then local infl = {label = 'plural', {term=pl}} table.insert(data.inflections, infl) -- else -- table.insert(data.categories, "Uyghur nouns needing plural inflection") end end if pl and not mw.title.new(pl).exists then table.insert(data.categories, "Uyghur nouns with red links in their headword lines") end end } pos_functions["proper nouns"] = { params = { [1] = {}, -- Vowel, if there is a change ["pl"] = {}, --plural override ["change"] = {}, -- yes or (else:no) }, func = function(args, data) local pl = args["pl"] or nil local change = args["change"] or "yes" if pl == "-" then table.insert(data.inflections, {label = "[[Appendix:Glossary#uncountable|uncountable]]"}) table.insert(data.categories, "Uyghur uncountable proper nouns") else table.insert(data.categories, "Uyghur countable proper nouns") if not pl then local plural = export.make_plural_noun(PAGENAME, args[1], change) if plural then pl = plural else table.insert(data.categories, "Uyghur proper nouns with unpredictable plurals") end end if pl then local infl = {label = 'plural', {term=pl}} table.insert(data.inflections, infl) -- else -- table.insert(data.categories, "Uyghur nouns needing plural inflection") end end if pl and not mw.title.new(pl).exists then table.insert(data.categories, "Uyghur proper nouns with red links in their headword lines") end end } function export.noun(frame) local params = { [1] = {}, -- Vowel, if there is a change ["pl"] = {}, --plural override ["head"] = {}, ["change"] = {}, -- yes or (else:no) } local args = require("Module:parameters").process(frame:getParent().args, params) local data = { lang = lang, pos_category = "nouns", categories = {}, heads = {args["head"]}, inflections = {enable_auto_translit = true} } local pl = args["pl"] or nil local change = args["change"] or "yes" if pl == "-" then table.insert(data.inflections, {label = "[[Appendix:Glossary#uncountable|uncountable]]"}) table.insert(data.categories, "Uyghur uncountable nouns") else if not pl then local plural = export.make_plural_noun(PAGENAME, args[1], change) if plural then pl = plural else table.insert(data.categories, "Uyghur nouns with unpredictable plurals") end end if pl then local infl = {label = 'impersonal nominative plural', {term=pl}} table.insert(data.inflections, infl) -- else -- table.insert(data.categories, "Uyghur nouns needing plural inflection") end end if pl and not mw.title.new(pl).exists then table.insert(data.categories, "Uyghur nouns with red links in their headword lines") end return require("Module:headword").full_headword(data) end return export epc0jqpkdpstimye8x7lseq1qjnijtz Modul:uz-headword 828 160356 628599 2024-10-26T13:18:59Z Umarxon III 1502 „local export = {} local lang = require("Module:languages").getByCode("uz") function export.adjectives(frame) local params = { head = {}, [1] = {} -- intensive form } local args = require("Module:parameters").process(frame:getParent().args, params) local lang = require("Module:languages").getByCode("uz") local title = mw.title.getCurrentTitle() local sc = lang:findBestScript(title.subpageText) local poscat = "adjectives"...“ yozuvi orqali yangi sahifa yaratildi 628599 Scribunto text/plain local export = {} local lang = require("Module:languages").getByCode("uz") function export.adjectives(frame) local params = { head = {}, [1] = {} -- intensive form } local args = require("Module:parameters").process(frame:getParent().args, params) local lang = require("Module:languages").getByCode("uz") local title = mw.title.getCurrentTitle() local sc = lang:findBestScript(title.subpageText) local poscat = "adjectives" local positive_form = args.head or mw.title.getCurrentTitle().text local data = { lang = lang, pos_category = poscat, categories = {}, heads = {positive_form}, inflections = {} } if sc:getCode() == "Latn" then table.insert(data.inflections, {label = "comparative", positive_form .. "roq"}) table.insert(data.inflections, {label = "superlative", "[[eng]] " .. positive_form}) if args[1] then table.insert(data.inflections, {label = "intensive", args[1]}) end elseif sc:getCode() == "Cyrl" then table.insert(data.inflections, {label = "comparative", positive_form .. "роқ"}) table.insert(data.inflections, {label = "superlative", "[[энг]] " .. positive_form}) if args[1] then table.insert(data.inflections, {label = "intensive", args[1]}) end end return require("Module:headword").full_headword(data) end return export bmjrdsq6814qoaf42bhf6nr9e5qnvdr Modul:xvn-headword 828 160357 628600 2024-10-26T13:19:51Z Umarxon III 1502 „local export = {} local pos_functions = {} local lang = require("Module:languages").getByCode("xvn") -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) PAGENAME = mw.title.getCurrentTitle().text local args = frame:getParent().args local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.") local cat = args[...“ yozuvi orqali yangi sahifa yaratildi 628600 Scribunto text/plain local export = {} local pos_functions = {} local lang = require("Module:languages").getByCode("xvn") -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) PAGENAME = mw.title.getCurrentTitle().text local args = frame:getParent().args local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.") local cat = args["cat"]; if cat == "" then cat = nil end local cat2 = args["cat2"]; if cat2 == "" then cat2 = nil end local cat3 = args["cat3"]; if cat3 == "" then cat3 = nil end local head = args["head"]; if head == "" then head = nil end local tr = args["tr"]; if tr == "" then tr = nil end local data = {lang = lang, pos_category = cat or poscat, categories = {}, heads = {head}, translits = {tr}, genders = {}, inflections = {}} if cat2 then table.insert(data.categories, "Vandalic " .. cat2) end if cat3 then table.insert(data.categories, "Vandalic " .. cat3) end if pos_functions[poscat] then pos_functions[poscat](args, data) end return require("Module:headword").full_headword(data) end pos_functions["nouns"] = function(args, data) -- Iterate over all gn parameters (g2, g3 and so on) until one is empty local g = args[1] or ""; if g == "" then g = "?" end local i = 2 while g ~= "" do -- If any of the specifications is a "?", add the entry -- to a cleanup category. if g == "m-p" or g == "f-p" or g == "n-p" then table.insert(data.categories, "Vandalic pluralia tantum") end table.insert(data.genders, g) g = args["g" .. i] or "" i = i + 1 end if #data.genders == 0 then table.insert(data.genders, "?") end end pos_functions["proper nouns"] = pos_functions["nouns"] pos_functions["adjectives"] = function(args, data) local comparative = args[1]; if comparative == "" then comparative = nil end local superlative = args[2]; if superlative == "" then superlative = nil end if comparative then table.insert(data.inflections, {label = "comparative", comparative}) end if superlative then table.insert(data.inflections, {label = "superlative", superlative}) end end pos_functions["adverbs"] = pos_functions["adjectives"] return export 1qzramv0wm4v2vs74e236zvg7a5a856 Modul:wa-headword 828 160358 628601 2024-10-26T13:20:58Z Umarxon III 1502 „local export = {} function export.adjectives(frame) local title = mw.title.getCurrentTitle() local masculine_singular, feminine_singular, masculine_plural, feminine_plural = 'm2', 'f', 'mp', 'pf' -- inconsistent! local params = { head = { default = title.text }, [1] = {}, -- gender [masculine_singular] = {}, -- masculine singular before vowel [feminine_singular] = { list = true }, -- feminine singular feminine = { alias_of = feminin...“ yozuvi orqali yangi sahifa yaratildi 628601 Scribunto text/plain local export = {} function export.adjectives(frame) local title = mw.title.getCurrentTitle() local masculine_singular, feminine_singular, masculine_plural, feminine_plural = 'm2', 'f', 'mp', 'pf' -- inconsistent! local params = { head = { default = title.text }, [1] = {}, -- gender [masculine_singular] = {}, -- masculine singular before vowel [feminine_singular] = { list = true }, -- feminine singular feminine = { alias_of = feminine_singular }, sf = { alias_of = feminine_singular }, [masculine_plural] = {}, mplural = { alias_of = masculine_plural }, [feminine_plural] = { list = true }, fplural = { alias_of = feminine_plural }, current = {}, -- current pagename? sort = {}, cat = { alias_of = 'sort' }, } local args = require "Module:parameters".process(frame:getParent().args, params) local headword = { lang = require "Module:languages".getByCode "wa", } local stem = args.current or title.text if not args[feminine_singular][1] then args[feminine_singular][1] = stem .. 'e' end args[masculine_plural] = args[masculine_plural] or stem .. 's' for i, f_form in ipairs(args[feminine_singular]) do if not args[feminine_plural][i] then args[feminine_plural][i] = f_form[i] .. 's' end end local info = { [masculine_singular] = { accel = {form = "m"}, label = 'masculine before vowel' }, [feminine_singular] = { accel = {form = "f|s"}, label = 'feminine singular' }, [masculine_plural] = { accel = {form = "m|p"}, label = 'masculine plural' }, [feminine_plural] = { accel = {form = "f|p"}, label = 'feminine plural' }, } headword.heads = { args.head } headword.inflections = {} for _, form in ipairs { masculine_singular, masculine_plural, feminine_singular, feminine_plural } do local data = info[form] local inflection if type(args[form]) == 'table' then inflection = { unpack(args[form]) } else inflection = { args[form] } end inflection.label = data.label inflection.accel = data.accel table.insert(inflections, inflection) end return require 'Module:headword'.full_headword(headword) end return export 4zslb8skyub6n2defhaq1enuh906z1n Modul:cy-headword 828 160359 628602 2024-10-26T13:21:51Z Umarxon III 1502 „local export = {} local pos_functions = {} local m_links = require("Module:links") local m_table = require("Module:table") local lang = require("Module:languages").getByCode("cy") local langname = lang:getCanonicalName() local PAGENAME = mw.loadData("Module:headword/data").pagename local suffix_categories = { ["adjectives"] = true, ["adverbs"] = true, ["nouns"] = true, ["verbs"] = true, } local function track(page) require("Module:debug")...“ yozuvi orqali yangi sahifa yaratildi 628602 Scribunto text/plain local export = {} local pos_functions = {} local m_links = require("Module:links") local m_table = require("Module:table") local lang = require("Module:languages").getByCode("cy") local langname = lang:getCanonicalName() local PAGENAME = mw.loadData("Module:headword/data").pagename local suffix_categories = { ["adjectives"] = true, ["adverbs"] = true, ["nouns"] = true, ["verbs"] = true, } local function track(page) require("Module:debug").track("cy-headword/" .. page) return true end local function glossary_link(entry, text) text = text or entry return "[[Appendix:Glossary#" .. entry .. "|" .. text .. "]]" end local function do_inflection(data, forms, label, accel) if forms and #forms > 0 then forms.label = label if accel then forms.accel = accel end table.insert(data.inflections, forms) end end -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local tracking_categories = {} local poscat = frame.args[1] or error("Plural part of speech e.g. 'nouns' has not been specified. Please pass parameter 1 to the module invocation.") local params = { ["head"] = {list = true}, ["id"] = {}, ["sort"] = {}, ["suff"] = {type = "boolean"}, } local parargs = frame:getParent().args if pos_functions[poscat] then local posparams if type(pos_functions[poscat].params) == "function" then posparams = pos_functions[poscat].params(parargs) else posparams = pos_functions[poscat].params end for key, val in pairs(posparams) do params[key] = val end end local args = require("Module:parameters").process(parargs, params) local data = { lang = lang, pos_category = poscat, categories = {}, heads = args["head"], genders = {}, inflections = {}, id = args["id"], sort_key = args["sort"], categories = {} } if args["suff"] then data.pos_category = "suffixes" if suffix_categories[poscat] then local singular_poscat = poscat:gsub("s$", "") table.insert(data.categories, langname .. " " .. singular_poscat .. "-forming suffixes") else error("No category exists for suffixes forming " .. poscat .. ".") end end if pos_functions[poscat] then pos_functions[poscat].func(args, data, tracking_categories) end if params.mut then local mutable if args.mut then mutable = true elseif args.nomut then mutable = false else local head = m_links.remove_links(data.heads[1] or PAGENAME) local mutdata = require("Module:cy-mut").get_mutation_data(head) if not mutdata.mut1 and not mutdata.mut2 and not mutdata.mut3 then mutable = false end end if mutable == false then table.insert(data.inflections, {label = "not mutable"}) table.insert(data.categories, langname .. " non-mutable terms") end end for _, inflection_set in ipairs(data.inflections) do for _, inflection in ipairs(inflection_set) do if not inflection:find("%[%[") then local title = mw.title.new(inflection) if title and not title.exists then table.insert(tracking_categories, langname .. " " .. poscat .. " with red links in their headword lines") end end end end return require("Module:headword").full_headword(data) .. require("Module:utilities").format_categories(tracking_categories, lang) end pos_functions["verbs"] = { params = { [1] = {list = "stem"}, ["1s"] = {list = true}, ["irr"] = {type = "boolean"}, ["nomut"] = {type = "boolean"}, ["mut"] = {type = "boolean"}, }, func = function(args, data, tracking_categories) if #args["1s"] == 0 then args["1s"] = {"+"} end local first_singular = {} for _, arg1s in ipairs(args["1s"]) do if arg1s == "+" then local stems = args[1] if #stems == 0 and #data.heads > 0 then stems = {} for _, head in ipairs(data.heads) do m_table.insertIfNot(stems, m_links.remove_links(head)) end end if #stems == 0 then stems = {PAGENAME} end for _, stem in ipairs(stems) do m_table.insertIfNot(first_singular, stem .. "af") end else m_table.insertIfNot(first_singular, arg1s) end end do_inflection(data, first_singular, "first-person singular present", {form = "1|s|pres:ind//fut"}) if args.irr then table.insert(data.categories, langname .. " irregular verbs") end end } pos_functions["adjectives"] = { params = { ["f"] = {list = true}, ["pl"] = {list = true}, [1] = {}, ["eq"] = {list = true}, ["comp"] = {list = true}, ["sup"] = {list = true}, ["stem"] = {list = true}, ["nomut"] = {type = "boolean"}, ["mut"] = {type = "boolean"}, }, func = function(args, data, tracking_categories) if #args.f == 0 then args.f = mw.clone(data.heads) end if #args.f == 0 then args.f = {PAGENAME} end do_inflection(data, args.f, "feminine singular", {form = "f|s"}) if #args.pl == 0 then args.pl = mw.clone(data.heads) end if #args.pl == 0 then args.pl = {PAGENAME} end do_inflection(data, args.pl, "plural", {form = "p"}) local eqs, comps, sups if args[1] == "-" then table.insert(data.inflections, {label = "not " .. glossary_link("comparable")}) table.insert(data.categories, langname .. " uncomparable adjectives") else local function copy_heads_with_prefix(source, prefix, mutate_head) local dest = {} local heads = source local can_mutate = false if #heads == 0 then heads = data.heads can_mutate = true end if #heads == 0 then heads = {PAGENAME} can_mutate = true end for _, head in ipairs(heads) do if not head:find("%[%[") then if can_mutate and mutate_head then head = mutate_head(head) end head = "[[" .. head .. "]]" end head = prefix .. head m_table.insertIfNot(dest, head) end return dest end local function copy_heads_with_suffix(source, suffix) if #source > 0 then return source end local dest = {} local heads = args.stem if #heads == 0 then heads = data.heads end if #heads == 0 then heads = {PAGENAME} end for _, head in ipairs(heads) do head = m_links.remove_links(head) .. suffix m_table.insertIfNot(dest, head) end return dest end local function mutate_equative(form) local mutdata = require("Module:cy-mut").get_mutation_data(form) if mutdata.mut1 and mutdata.initial ~= "ll" and mutdata.initial ~= "rh" then return mutdata.mut1 .. mutdata.final else return form end end if args[1] == "mwy" then eqs = copy_heads_with_prefix(args.eq, "mor ", mutate_equative) comps = copy_heads_with_prefix(args.comp, "mwy ") sups = copy_heads_with_prefix(args.sup, "mwyaf ") elseif args[1] == "ach" then eqs = copy_heads_with_suffix(args.eq, "ed") comps = copy_heads_with_suffix(args.comp, "ach") sups = copy_heads_with_suffix(args.sup, "af") else table.insert(data.inflections, {label = '<span style="color: #ff0000;">unknown comparative</span>'}) table.insert(data.categories, "Requests for inflections in " .. langname .. " adjective entries") end end -- Don't add accelerator for multiword equative/comparative/superlative, or the mutated portion of the -- equative will end up with an accelerated entry. local need_accel = args[1] == "ach" do_inflection(data, eqs, glossary_link("equative"), need_accel and {form = "equative"} or nil) do_inflection(data, comps, glossary_link("comparative"), need_accel and {form = "comparative"} or nil) do_inflection(data, sups, glossary_link("superlative"), need_accel and {form = "superlative"} or nil) end } local allowed_genders = { ["m"] = true, ["f"] = true, ["mf"] = true, ["mfbysense"] = true, ["p"] = true, ["m-p"] = true, ["f-p"] = true, ["mf-p"] = true, ["mfbysense-p"] = true, } local function noun_params(args) local params = { [1] = {alias_of = "g"}, ["g"] = {list = true}, --gender(s) ["f"] = {list = true}, --feminine form(s) ["m"] = {list = true}, --masculine form(s) ["dim"] = {list = true}, --diminutive(s) ["nomut"] = {type = "boolean"}, ["mut"] = {type = "boolean"}, } if args[1] and args[1]:find("p$") then params[2] = {alias_of = "sg"} params["sg"] = {list = true} params["msg"] = {list = true} params["fsg"] = {list = true} else params[2] = {alias_of = "pl"} params["pl"] = {list = true} end return params end local function do_nouns(pos, args, data, tracking_categories) local genders = {} for _, g in ipairs(args.g) do if not allowed_genders[g] then error("Unrecognized gender: " .. g) end table.insert(genders, g) end local plpos = require("Module:string utilities").pluralize(pos) -- Check for special plural signals local mode = nil if args.pl then -- not a plurale tantum if args.pl[1] == "?" or args.pl[1] == "!" or args.pl[1] == "-" or args.pl[1] == "~" or args.pl[1] == "#" then mode = args.pl[1] table.remove(args.pl, 1) -- Remove the mode parameter end local countable, uncountable if mode == "?" then -- Plural is unknown table.insert(data.categories, langname .. " " .. plpos .. " with unknown or uncertain plurals") elseif mode == "!" then -- Plural is not attested table.insert(data.inflections, {label = "plural not attested"}) table.insert(data.categories, langname .. " " .. plpos .. " with unattested plurals") return elseif mode == "-" then -- Uncountable noun; may occasionally have a plural uncountable = true -- If plural forms were given explicitly, then show "usually" if #args.pl > 0 then table.insert(data.inflections, {label = "usually " .. glossary_link("uncountable")}) countable = true else table.insert(data.inflections, {label = glossary_link("uncountable")}) end elseif mode == "~" then -- Mixed countable/uncountable noun, always has a plural table.insert(data.inflections, {label = glossary_link("countable") .. " and " .. glossary_link("uncountable")}) uncountable = true countable = true elseif mode == "#" or pos == "noun" then -- Countable nouns; the default for regular nouns but not proper nouns if mode == "#" then table.insert(data.inflections, {label = glossary_link("countable")}) end countable = true end if countable then table.insert(data.categories, langname .. " countable " .. plpos) end if uncountable and pos == "noun" then table.insert(data.categories, langname .. " uncountable " .. plpos) end if #args.pl > 0 then local plurals = {} for _, pl in ipairs(args.pl) do if pl == "au" then local heads = data.heads if #heads == 0 then heads = {PAGENAME} end for _, head in ipairs(heads) do head = m_links.remove_links(head) .. "au" m_table.insertIfNot(plurals, head) end else m_table.insertIfNot(plurals, pl) end end do_inflection(data, plurals, "plural", {form = "p"}) end else -- plurale tantum or collective local function has_singulative(sgargs) return #sgargs > 0 and sgargs[1] ~= "-" end if has_singulative(args.sg) or has_singulative(args.msg) or has_singulative(args.fsg) then local new_g = {} for _, g in ipairs(genders) do if g ~= "p" then g = g:gsub("%-p$", "") table.insert(new_g, g) end end genders = new_g table.insert(data.inflections, {label = glossary_link("collective")}) table.insert(data.categories, langname .. " collective " .. plpos) end local function do_singulative(sgargs, label, accel) if sgargs then if sgargs[1] == "-" then table.insert(data.inflections, {label = "no " .. label}) else do_inflection(data, sgargs, label, accel) end end end do_singulative(args.sg, glossary_link("singulative"), {form = "singulative"}) do_singulative(args.msg, "masculine " .. glossary_link("singulative")) do_singulative(args.fsg, "feminine " .. glossary_link("singulative")) end do_inflection(data, args.f, "feminine") do_inflection(data, args.m, "masculine") do_inflection(data, args.dim, glossary_link("diminutive")) data.genders = genders end pos_functions["nouns"] = { params = noun_params, func = function(args, data, tracking_categories) return do_nouns("noun", args, data, tracking_categories) end, } pos_functions["proper nouns"] = { params = noun_params, func = function(args, data, tracking_categories) return do_nouns("proper noun", args, data, tracking_categories) end, } local function pos_with_gender() return { params = { ["g"] = {list = true}, ["nomut"] = {type = "boolean"}, ["mut"] = {type = "boolean"}, }, func = function(args, data) data.genders = args["g"] end, } end pos_functions.numerals = pos_with_gender() pos_functions["adjective forms"] = pos_with_gender() pos_functions["determiner forms"] = pos_with_gender() pos_functions["noun forms"] = pos_with_gender() pos_functions["noun plural forms"] = pos_with_gender() pos_functions["numeral forms"] = pos_with_gender() pos_functions["pronoun forms"] = pos_with_gender() pos_functions["singulatives"] = pos_with_gender() pos_functions["verb forms"] = pos_with_gender() return export hd9fwsci8nvrs1bci1h9z3buons4lmj Modul:vls-headword 828 160360 628603 2024-10-26T13:22:45Z Umarxon III 1502 „local export = {} local pos_functions = {} local lang = require("Module:languages").getByCode("vls") -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) PAGENAME = mw.title.getCurrentTitle().text -- The part of speech. This is also the name of the category that -- entries go in. However, the two are separate (the "cat" parameter) -- because you sometimes want something to be...“ yozuvi orqali yangi sahifa yaratildi 628603 Scribunto text/plain local export = {} local pos_functions = {} local lang = require("Module:languages").getByCode("vls") -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) PAGENAME = mw.title.getCurrentTitle().text -- The part of speech. This is also the name of the category that -- entries go in. However, the two are separate (the "cat" parameter) -- because you sometimes want something to behave as an adjective without -- putting it in the adjectives category. local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.") local params = { ["head"] = {list = true}, } if pos_functions[poscat] then for key, val in pairs(pos_functions[poscat].params) do params[key] = val end end local args = require("Module:parameters").process(frame:getParent().args, params) local data = {lang = lang, pos_category = poscat, categories = {}, heads = args["head"], genders = {}, inflections = {}, tracking_categories = {}} if pos_functions[poscat] then pos_functions[poscat].func(args, data) end return require("Module:headword").full_headword(data) .. require("Module:utilities").format_categories(data.tracking_categories, lang, nil) end -- Display additional inflection information for an adjective pos_functions["adjectives"] = { params = { [1] = {list = "comp"}, [2] = {list = "sup"}, [3] = {}, }, func = function(args, data) local mode = args[1][1] if mode == "inv" then table.insert(data.inflections, {label = "[[Appendix:Glossary#invariable|invariable]]"}) table.insert(data.categories, "West Flemish invariable adjectives") args[1][1] = args[2][1] args[2][1] = args[3] elseif mode == "pred" then table.insert(data.inflections, {label = "used only [[predicative]]ly"}) table.insert(data.categories, "West Flemish predicative-only adjectives") args[1][1] = args[2][1] args[2][1] = args[3] end local comp_mode = args[1][1] if comp_mode == "-" then table.insert(data.inflections, {label = "not [[Appendix:Glossary#comparable|comparable]]"}) else -- Gather parameters local comparatives = args[1] comparatives.label = "[[Appendix:Glossary#comparative|comparative]]" local superlatives = args[2] superlatives.label = "[[Appendix:Glossary#superlative|superlative]]" -- Generate forms if none were given if #comparatives == 0 then if mode == "inv" or mode == "pred" then table.insert(comparatives, "peri") else table.insert(comparatives, require("Module:vls-adjectives").make_comparative(PAGENAME)) end end if #superlatives == 0 then if mode == "inv" or mode == "pred" then table.insert(superlatives, "peri") else -- Add preferred periphrastic superlative, if necessary if PAGENAME:find("[iï]de$") or PAGENAME:find("[^eio]e$") or PAGENAME:find("s$") or PAGENAME:find("sch$") or PAGENAME:find("x$") or PAGENAME:find("sd$") or PAGENAME:find("st$") or PAGENAME:find("sk$") then table.insert(superlatives, "peri") end table.insert(superlatives, require("Module:vls-adjectives").make_superlative(PAGENAME)) end end -- Replace "peri" with phrase for key, val in ipairs(comparatives) do if val == "peri" then comparatives[key] = "[[meer]] " .. PAGENAME end end for key, val in ipairs(superlatives) do if val == "peri" then superlatives[key] = "[[meest]] " .. PAGENAME end end table.insert(data.inflections, comparatives) table.insert(data.inflections, superlatives) end end } -- Display additional inflection information for an adverb pos_functions["adverbs"] = { params = { [1] = {}, [2] = {}, }, func = function(args, data) local comp = args[1] local sup = args[2] if comp then if not sup then sup = PAGENAME .. "st" end table.insert(data.inflections, {label = "[[Appendix:Glossary#comparative|comparative]]", comp}) table.insert(data.inflections, {label = "[[Appendix:Glossary#superlative|superlative]]", sup}) end end } -- Display information for a noun's gender -- This is separate so that it can also be used for proper nouns function noun_gender(args, data) for _, g in ipairs(args[1]) do if g == "c" then table.insert(data.categories, "West Flemish nouns with common gender") elseif g == "p" then table.insert(data.categories, "West Flemish pluralia tantum") elseif g ~= "m" and g ~= "f" and g ~= "n" then g = nil end table.insert(data.genders, g) end if #data.genders == 0 then table.insert(data.genders, "?") end -- Most nouns that are listed as f+m should really have only f if data.genders[1] == "f" and data.genders[2] == "m" then table.insert(data.categories, "West Flemish nouns with f+m gender") end end pos_functions["proper nouns"] = { params = { [1] = {list = "g"}, }, func = function(args, data) noun_gender(args, data) end } -- Display additional inflection information for a noun pos_functions["nouns"] = { params = { [1] = {list = "g"}, [2] = {list = "pl"}, [3] = {list = "dim"}, ["f"] = {list = true}, ["m"] = {list = true}, }, func = function(args, data) noun_gender(args, data) local plurals = args[2] local diminutives = args[3] local feminines = args["f"] local masculines = args["m"] -- Plural if data.genders[1] == "p" then table.insert(data.inflections, {label = "[[Appendix:Glossary#plural only|plural only]]"}) elseif plurals[1] == "-" then table.insert(data.inflections, {label = "[[Appendix:Glossary#uncountable|uncountable]]"}) table.insert(data.categories, "West Flemish uncountable nouns") else local generated = generate_plurals(PAGENAME) -- Process the plural forms for i, p in ipairs(plurals) do -- Is this a shortcut form? if p:sub(1,1) == "-" then if not generated[p] then error("The shortcut plural " .. p .. " could not be generated.") end if p:sub(-2) == "es" then table.insert(data.categories, "West Flemish nouns with plural in -es") elseif p:sub(-1) == "s" then table.insert(data.categories, "West Flemish nouns with plural in -s") elseif p:sub(-4) == "eren" then table.insert(data.categories, "West Flemish nouns with plural in -eren") else table.insert(data.categories, "West Flemish nouns with plural in -en") end if p:sub(2,2) == ":" then table.insert(data.categories, "West Flemish nouns with lengthened vowel in the plural") end p = generated[p] -- Not a shortcut form, but the plural form specified directly. else local matches = {} for pi, g in pairs(generated) do if g == p then table.insert(matches, pi) end end if #matches > 0 then table.insert(data.tracking_categories, "vls-noun plural matches generated form") elseif not PAGENAME:find("[ -]") then if p == PAGENAME then table.insert(data.categories, "West Flemish invariable nouns") elseif p == PAGENAME .. "den" or p == PAGENAME:gsub("ee$", "eden") or p == PAGENAME .. "des" or p == PAGENAME:gsub("ee$", "edes") then table.insert(data.categories, "West Flemish nouns with plural in -den") elseif p == PAGENAME:gsub("([ao])$", "%1%1ien") or p == PAGENAME:gsub("oe$", "oeien") then table.insert(data.categories, "West Flemish nouns with glide vowel in plural") elseif p == PAGENAME:gsub("y$", "ies") then table.insert(data.categories, "West Flemish nouns with English plurals") elseif p == PAGENAME:gsub("a$", "ae") or p == PAGENAME:gsub("[ei]x$", "ices") or p == PAGENAME:gsub("is$", "es") or p == PAGENAME:gsub("men$", "mina") or p == PAGENAME:gsub("ns$", "ntia") or p == PAGENAME:gsub("o$", "ones") or p == PAGENAME:gsub("o$", "onen") or p == PAGENAME:gsub("s$", "tes") or p == PAGENAME:gsub("us$", "era") or p == mw.ustring.gsub(PAGENAME, "[uü]s$", "i") or p == mw.ustring.gsub(PAGENAME, "[uü]m$", "a") or p == PAGENAME:gsub("x$", "ges") then table.insert(data.categories, "West Flemish nouns with Latin plurals") elseif p == PAGENAME:gsub("os$", "oi") or p == PAGENAME:gsub("on$", "a") or p == PAGENAME:gsub("a$", "ata") then table.insert(data.categories, "West Flemish nouns with Greek plurals") else table.insert(data.categories, "West Flemish irregular nouns") end if plural and not mw.title.new(plural).exists then table.insert(data.categories, "West Flemish nouns with missing plurals") end end end plurals[i] = p end -- Add the plural forms plurals.label = "plural" plurals.accel = {form = "p"} plurals.request = true table.insert(data.inflections, plurals) end -- Add the diminutive forms if diminutives[1] == "-" then -- do nothing else -- Process the diminutive forms for i, p in ipairs(diminutives) do diminutives[i] = {term = p, genders = {"n"}} end diminutives.label = "[[Appendix:Glossary#diminutive|diminutive]]" diminutives.request = true table.insert(data.inflections, diminutives) end -- Add the feminine forms if #feminines > 0 then feminines.label = "feminine" table.insert(data.inflections, feminines) end -- Add the masculine forms if #masculines > 0 then masculines.label = "masculine" table.insert(data.inflections, masculines) end end } -- Display additional inflection information for a diminutive noun pos_functions["diminutive nouns"] = { params = { [1] = {}, [2] = {list = "pl"}, }, func = function(args, data) if not (args[1] == "n" or args[1] == "p") then args[1] = {"n"} else args[1] = {args[1]} end if #args[2] == 0 then args[2] = {"-s"} end args[3] = {"-"} args["f"] = {} args["m"] = {} pos_functions["nouns"].func(args, data) end } function generate_plurals(PAGENAME) local m_common = require("Module:vls-common") local generated = {} generated["-s"] = PAGENAME .. "s" generated["-'s"] = PAGENAME .. "'s" local stem_FF = m_common.add_e(PAGENAME, false, false) local stem_TF = m_common.add_e(PAGENAME, true, false) local stem_FT = m_common.add_e(PAGENAME, false, true) generated["-es"] = stem_FF .. "s" generated["-@es"] = stem_TF .. "s" generated["-:es"] = stem_FT .. "s" generated["-en"] = stem_FF .. "n" generated["-@en"] = stem_TF .. "n" generated["-:en"] = stem_FT .. "n" generated["-eren"] = m_common.add_e(PAGENAME .. (PAGENAME:find("n$") and "d" or ""), false, false) .. "ren" generated["-:eren"] = stem_FT .. "ren" if PAGENAME:find("f$") then local stem = PAGENAME:gsub("f$", "v") local stem_FF = m_common.add_e(stem, false, false) local stem_TF = m_common.add_e(stem, true, false) local stem_FT = m_common.add_e(stem, false, true) generated["-ves"] = stem_FF .. "s" generated["-@ves"] = stem_TF .. "s" generated["-:ves"] = stem_FT .. "s" generated["-ven"] = stem_FF .. "n" generated["-@ven"] = stem_TF .. "n" generated["-:ven"] = stem_FT .. "n" generated["-veren"] = stem_FF .. "ren" generated["-:veren"] = stem_FT .. "ren" elseif PAGENAME:find("s$") then local stem = PAGENAME:gsub("s$", "z") local stem_FF = m_common.add_e(stem, false, false) local stem_TF = m_common.add_e(stem, true, false) local stem_FT = m_common.add_e(stem, false, true) generated["-zes"] = stem_FF .. "s" generated["-@zes"] = stem_TF .. "s" generated["-:zes"] = stem_FT .. "s" generated["-zen"] = stem_FF .. "n" generated["-@zen"] = stem_TF .. "n" generated["-:zen"] = stem_FT .. "n" generated["-zeren"] = stem_FF .. "ren" generated["-:zeren"] = stem_FT .. "ren" elseif PAGENAME:find("heid$") then generated["-heden"] = PAGENAME:gsub("heid$", "heden") end return generated end pos_functions["past participles"] = { params = { [1] = {}, }, func = function(args, data) if args[1] == "-" then table.insert(data.inflections, {label = "not used adjectivally"}) table.insert(data.categories, "West Flemish non-adjectival past participles") end end } pos_functions["verbs"] = { params = { [1] = {}, }, func = function(args, data) if args[1] == "-" then table.insert(data.inflections, {label = "not inflected"}) table.insert(data.categories, "West Flemish uninflected verbs") end end } return export nwpwllvm5eqmqv8c341ptz0n4exakwq Modul:xh-headword 828 160361 628604 2024-10-26T13:23:39Z Umarxon III 1502 „local export = {} local lang = require("Module:languages").getByCode("xh") -- A list of valid noun classes -- The value is the corresponding plural class. -- True means the class is uncountable. local singular_classes = { ["1"] = "2", ["1a"] = "2a", ["3"] = "4", ["5"] = "6", ["7"] = "8", ["9"] = "10", ["11"] = "10", ["14"] = true, ["15"] = true, ["17"] = true, } local plural_classes = { ["2"] = true, ["2a"] = true, ["4"] = true, [...“ yozuvi orqali yangi sahifa yaratildi 628604 Scribunto text/plain local export = {} local lang = require("Module:languages").getByCode("xh") -- A list of valid noun classes -- The value is the corresponding plural class. -- True means the class is uncountable. local singular_classes = { ["1"] = "2", ["1a"] = "2a", ["3"] = "4", ["5"] = "6", ["7"] = "8", ["9"] = "10", ["11"] = "10", ["14"] = true, ["15"] = true, ["17"] = true, } local plural_classes = { ["2"] = true, ["2a"] = true, ["4"] = true, ["6"] = true, ["8"] = true, ["10"] = true, } local prefixes = { ["1"] = {"um(.)"}, ["1a"] = {"u([^aeiou])"}, ["2"] = {"aba([^aeiou])", "abe([^aeiou])"}, ["2a"] = {"oo([^aeiou])"}, ["3"] = {"um(.)"}, ["4"] = {"imi([^aeiou])", "im([aeiou])"}, ["5"] = {"ili([^aeiou])", "i([^aeiou])"}, ["6"] = {"ama([^aeiou])", "am([aeiou])"}, ["7"] = {"isi([^aeiou])", "is([aeiou])"}, ["8"] = {"izi([^aeiou])", "iz([aeiou])"}, ["9"] = {"in([^aeiou])", "im([^aeiou])", "i([mn][aeiou])", "i[^aeiou]"}, ["10"] = {"izin([^aeiou])", "izim([^aeiou])", "iim([^aeiou])", "iin([^aeiou])", "ii([^aeiou])"}, ["11"] = {"ulu([^aeiou])", "u([^aeiou])"}, ["14"] = {"ubu([^aeiou])", "utyw(a)", "uty(a)"}, ["15"] = {"uku([^aeiou])", "ukw([aeiou])"}, ["17"] = {"uku([^aeiou])", "ukw([aeiou])"}, } local function remove_prefix(word, class) if not class or not prefixes[class] then return nil end -- If there is a capital letter in the word, -- assume that it's the first letter of the stem and remove everything before it if word:find("[A-Z]") then return word:gsub("^[a-z]+", "") else for key, prefix in ipairs(prefixes[class]) do word = word:gsub("^" .. prefix, "%1") end return word:gsub("^-", "") end end function export.noun(frame) local params = { [1] = {}, [2] = {}, [3] = {}, [4] = {list = true}, } local args = require("Module:parameters").process(frame:getParent().args, params) local data = {lang = lang, pos_category = "nouns", categories = {}, heads = {args[1]}, genders = {}, inflections = {}} if not args[1] then data.heads[1] = mw.title.getCurrentTitle().subpageText:gsub("^-", "") .. "<sup title=\"tones missing\">?</sup>" table.insert(data.categories, "Requests for tone in " .. lang:getCanonicalName() .. " noun entries") end -- Singular if not singular_classes[args[2]] and not plural_classes[args[2]] then args[2] = nil end table.insert(data.genders, "c" .. (args[2] or "?")) -- Plural if args[3] ~= "-" and (#args[4] > 0 or type(singular_classes[args[2]] ~= true) == "string") then if not plural_classes[args[3]] then args[3] = nil end local plural = {label = "plural", request = true} for _, form in ipairs(args[4]) do table.insert(plural, {term = form, genders = {"c" .. (args[3] or "?")}}) end table.insert(data.inflections, plural) end data.sort_key = remove_prefix(mw.title.getCurrentTitle().subpageText, args[2]) return require("Module:headword").full_headword(data) end function export.adjective(frame) local params = { [1] = {}, } local args = require("Module:parameters").process(frame:getParent().args, params) local data = {lang = lang, pos_category = "adjectives", categories = {}, heads = {args[1]}, inflections = {}} if not args[1] then data.heads[1] = mw.title.getCurrentTitle().subpageText:gsub("^-", "") .. "<sup title=\"tones missing\">?</sup>" table.insert(data.categories, "Requests for tone in " .. lang:getCanonicalName() .. " adjective entries") end data.heads[1] = "-" .. data.heads[1] return require("Module:headword").full_headword(data) end function export.relative(frame) local params = { [1] = {}, } local args = require("Module:parameters").process(frame:getParent().args, params) local data = {lang = lang, pos_category = "relatives", categories = {}, heads = {args[1]}, inflections = {}} if not args[1] then data.heads[1] = mw.title.getCurrentTitle().subpageText:gsub("^-", "") .. "<sup title=\"tones missing\">?</sup>" table.insert(data.categories, "Requests for tone in " .. lang:getCanonicalName() .. " relative entries") end data.heads[1] = "-" .. data.heads[1] return require("Module:headword").full_headword(data) end function export.ideophone(frame) local params = { [1] = {}, } local args = require("Module:parameters").process(frame:getParent().args, params) local data = {lang = lang, pos_category = "ideophones", categories = {}, heads = {args[1]}, inflections = {}} if not args[1] then data.heads[1] = mw.title.getCurrentTitle().subpageText:gsub("^-", "") .. "<sup title=\"tones missing\">?</sup>" table.insert(data.categories, "Requests for tone in " .. lang:getCanonicalName() .. " ideophone entries") end return require("Module:headword").full_headword(data) end function export.verb(frame) local params = { [1] = {}, } local args = require("Module:parameters").process(frame:getParent().args, params) local data = {lang = lang, pos_category = "verbs", categories = {}, heads = {args[1]}, inflections = {}} if not args[1] then data.heads[1] = mw.title.getCurrentTitle().subpageText:gsub("^-", "") .. "<sup title=\"tones missing\">?</sup>" table.insert(data.categories, "Requests for tone in " .. lang:getCanonicalName() .. " verb entries") end data.heads[1] = "-" .. data.heads[1] return require("Module:headword").full_headword(data) end return export bk6ihs1k46f6gn9itf8pn83lqxv5w4c Modul:yej-headword 828 160362 628605 2024-10-26T13:24:59Z Umarxon III 1502 „local export = {} local lang = require("Module:languages").getByCode("yej") local function get_params_list(args, argprefix) local export = {} i = 1 term = argprefix while args[term] ~= nil and args[term] ~= "" do table.insert(export, term) i = i + 1 term = argprefix .. i end return export end local function get_params_list(args, argprefix) local export = {} i = 1 term = argprefix while args[term] ~= nil and args[term] ~= "" d...“ yozuvi orqali yangi sahifa yaratildi 628605 Scribunto text/plain local export = {} local lang = require("Module:languages").getByCode("yej") local function get_params_list(args, argprefix) local export = {} i = 1 term = argprefix while args[term] ~= nil and args[term] ~= "" do table.insert(export, term) i = i + 1 term = argprefix .. i end return export end local function get_params_list(args, argprefix) local export = {} i = 1 term = argprefix while args[term] ~= nil and args[term] ~= "" do table.insert(export, term) i = i + 1 term = argprefix .. i end return export end local function otherscript(inflections, args) local sc = lang:findBestScript(mw.title.getCurrentTitle().subpageText) local other_sc if sc:getCode() == "Grek" then other_sc = "Hebr" elseif sc:getCode() == "Hebr" then other_sc = "Grek" end other_sc = require("Module:scripts").getByCode(other_sc) local inflection = {label = other_sc:getCanonicalName() .. " spelling"} for i, head in ipairs(args["head"]) do if head == "" then head = mw.title.getCurrentTitle().subpageText end table.insert(inflection, {term = tr, sc = other_sc}) end table.insert(inflections, inflection) end function export.basic(frame) local params = { ["head"] = {list = true, default = ""}, ["tr"] = {list = true, allow_holes = true}, } local args = require("Module:parameters").process(frame:getParent().args, params) local data = {lang = lang, pos_category = frame.args[1], categories = {}, heads = args["head"], genders = {}, inflections = {}} otherscript(data.inflections, args) return require("Module:headword").full_headword(data) end function export.adjective(frame) local params = { ["comp"] = {}, ["def"] = {}, ["head"] = {list = true, default = ""}, ["tr"] = {list = true, allow_holes = true}, } local args = require("Module:parameters").process(frame:getParent().args, params) local data = {lang = lang, pos_category = "adjectives", categories = {}, heads = args["head"], genders = {}, inflections = {}} if args["def"] then table.insert(data.inflections, {label = "definite", args["def"]}) end if args["comp"] then table.insert(data.inflections, {label = "comparative", args["comp"]}) end otherscript(data.inflections, args) return require("Module:headword").full_headword(data) end local gender_cats = { ["m"] = "masculine", ["f"] = "feminine", ["n"] = "neuter", ["m-p"] = "masculine", ["f-p"] = "feminine", ["n-p"] = "neuter", } function export.noun(frame) local params = { ["g"] = {list = true, default = "?"}, ["head"] = {list = true, default = ""}, ["tr"] = {list = true, allow_holes = true}, } local args = require("Module:parameters").process(frame:getParent().args, params) local data = {lang = lang, pos_category = "nouns", categories = {}, heads = args["head"], genders = args["g"], inflections = {}} for i, gender in ipairs(data.genders) do if gender_cats[gender] then table.insert(data.categories, lang:getCanonicalName() .. " " .. gender_cats[gender] .. " nouns") else data.genders[i] = "?" end end otherscript(data.inflections, args) return require("Module:headword").full_headword(data) end --[[ local data = {lang = lang, pos_category = poscat, categories = {}, heads = make_params_array(args, get_params_list(args, "head")), translits = make_params_array(args, get_params_list(args, "tr")), genders = {}, inflections = {}} local head = args["head"]; if head == "" then head = nil end; data.heads[1] = head --]] function export.propernoun(frame) local params = { ["g"] = {list = true, default = "?"}, ["head"] = {list = true, default = ""}, ["tr"] = {list = true, allow_holes = true}, } local args = require("Module:parameters").process(frame:getParent().args, params) local data = {lang = lang, pos_category = "proper nouns", categories = {}, heads = args["head"], genders = args["g"], inflections = {}} for i, gender in ipairs(data.genders) do if gender_cats[gender] then table.insert(data.categories, lang:getCanonicalName() .. " " .. gender_cats[gender] .. " nouns") else data.genders[i] = "?" end end otherscript(data.inflections, args) return require("Module:headword").full_headword(data) end function export.verb(frame) local params = { ["a"] = {}, ["head"] = {list = true, default = ""}, ["tr"] = {list = true, allow_holes = true}, } local args = require("Module:parameters").process(frame:getParent().args, params) local data = {lang = lang, pos_category = "verbs", categories = {}, heads = args["head"], genders = {}, inflections = {}} if args["a"] == "impf" or args["a"] == "pf" then table.insert(data.genders, args["a"]) elseif args["a"] == "impf-pf" or args["a"] == "pf-impf" or args["a"] == "dual" or args["a"] == "ip" then table.insert(data.genders, "impf") table.insert(data.genders, "pf") else table.insert(data.genders, "?") end otherscript(data.inflections, args) return require("Module:headword").full_headword(data) end return export h6cm2dokjg810iohu5oqyb5qw9qzpr3 Modul:yi-headword 828 160363 628606 2024-10-26T13:25:48Z Umarxon III 1502 „local com = require("Module:yi-common") local lang = require("Module:languages").getByCode("yi") local Latn = require("Module:scripts").getByCode("Latn") local u = mw.ustring local export = {} local pos_functions = {} -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) SUBPAGENAME = mw.title.getCurrentTitle().subpageText local args = {} for key, val in pairs(frame:getParent()....“ yozuvi orqali yangi sahifa yaratildi 628606 Scribunto text/plain local com = require("Module:yi-common") local lang = require("Module:languages").getByCode("yi") local Latn = require("Module:scripts").getByCode("Latn") local u = mw.ustring local export = {} local pos_functions = {} -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) SUBPAGENAME = mw.title.getCurrentTitle().subpageText local args = {} for key, val in pairs(frame:getParent().args) do if val ~= "" then args[key] = val end end local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.") local data = {lang = lang, pos_category = poscat, categories = {}, heads = {args["head"]}, translits = {args["tr"]}, genders = {}, inflections = {}, sort_key = args["sort"]} -- Call POS-specific function if pos_functions[poscat] then pos_functions[poscat](args, data) end return require("Module:headword").full_headword(data) end -- if func(form, formtr) is nil or returns nil, then the default get_form will be used local function get_form_custom(func, args, argname, trname) local form = args[argname] if form then local formtr = args[trname or (argname .. "tr")] local ret = func and func(form, formtr) if ret == nil then ret = com.form(form, args[trname or (argname .. "tr")]) end return ret else return form end end local function get_form(args, argname, trname) return get_form_custom(func, args, argname, trname) end local function get_numbered_forms_custom(func, args, argname, startat, output) output = output or {} while true do local form = get_form_custom(func, args, argname .. startat) if form then table.insert(output, form) else break end startat = startat + 1 end return output end local function get_numbered_forms(args, argname, startat, output) return get_numbered_forms_custom(nil, args, argname, startat, output) end local function add_inflections(inflections, ...) for _, inflection in ipairs({...}) do if inflection[1] then for i, form in ipairs(inflection) do if form == "-" then inflection[i] = {term = "—", translit = "-", nolink = true, sc = Latn} else inflection[i] = {term = form.text, translit = form.tr} end end table.insert(inflections, inflection) end end end pos_functions["adjectives"] = function(args, data) local comparatives = {get_form(args, 1, "ctr"), label = "comparative", enable_auto_translit = true} if comparatives[1] then get_numbered_forms(args, "c", 2, comparatives) end local superlatives = {get_form(args, 2, "str"), label = "superlative", enable_auto_translit = true} if superlatives[1] then get_numbered_forms(args, "s", 2, superlatives) end add_inflections(data.inflections, comparatives, superlatives) end pos_functions["verbs"] = function(args, data) local past_participles = {get_form(args, 1, 2), label = "past participle", enable_auto_translit = true, accel = {form = "past-participle"}} if past_participles[1] then get_numbered_forms(args, "p", 2, past_participles) end add_inflections(data.inflections, past_participles) end local compound_genders = { ["mp"] = {"m-p"}, ["np"] = {"n-p"}, ["fp"] = {"f-p"}, ["mn"] = {"m", "n"}, ["mf"] = {"m", "f"}, ["fn"] = {"f", "n"}, ["mnp"] = {"m-p", "n-p"}, ["mfp"] = {"m-p", "f-p"}, ["fnp"] = {"f-p", "n-p"}, ["mfn"] = {"m", "f", "n"}, ["mfnp"] = {"m-p", "f-p", "n-p"}, } local plural_suffixes = { ["n"] = "ן", ["en"] = "ען", ["s"] = "ס", ["es"] = "עס", ["er"] = "ער", ["ekh"] = "עך", } local plural_getter = {} function plural_getter:__call(f, ftr) if f == "+" then return com.form(self.head, ftr) elseif plural_suffixes[f] then return com.form(com.suffix(self.head, plural_suffixes[f]), ftr) else return nil end end local dim_suffixes = { ["l"] = "ל", ["kl"] = "כל", ["ele"] = "עלע", } local dim_getter = {} function dim_getter:__call(f, ftr) if dim_suffixes[f] then return com.form(com.suffix(self.head, dim_suffixes[f]), ftr) else return nil end end local gender_endings = { ["עכץ"] = "n", ["עניש"] = "n", } local gender_getter = {} function gender_getter:__call() for k, v in pairs(gender_endings) do if u.match(self.head, k .. "$") then return v end end return nil end pos_functions["nouns"] = function(args, data) local gs = compound_genders[args["g"]] if gs then for _, g in ipairs(gs) do table.insert(data.genders, g) end elseif args["g"] then table.insert(data.genders, args["g"]) local i = 2 while args["g" .. i] do table.insert(data.genders, args["g" .. i]) i = i + 1 end else local get_gender = {head = com.form(args["head"] or SUBPAGENAME, args["tr"])} setmetatable(get_gender, gender_getter) data.genders = {get_gender()} end local get_plural = {head = com.form(args["head"] or SUBPAGENAME, args["tr"])} setmetatable(get_plural, plural_getter) local plurals = {get_form_custom(get_plural, args, "pl"), label = "plural", enable_auto_translit = true} if plurals[1] then get_numbered_forms_custom(get_plural, args, "pl", 2, plurals) end add_inflections(data.inflections, plurals) local get_dim = {head = com.form(args["head"] or SUBPAGENAME, args["tr"])} setmetatable(get_dim, dim_getter) local dims = {get_form_custom(get_dim, args, "dim"), label = "diminutive", enable_auto_translit = true} if dims[1] then get_numbered_forms_custom(get_dim, args, "dim", 2, dims) end add_inflections(data.inflections, dims) end pos_functions["prepositions"] = function(args, data) local dem_forms = {get_form(args, "dem", "demtr"), label = "contracted ''dem''-form", enable_auto_translit = true} if dem_forms[1] == "-" then dem_forms.label = "no " .. dem_forms.label dem_forms[1] = nil table.insert(data.inflections, dem_forms) elseif dem_forms[1] then get_numbered_forms(args, "dem", 2, dem_forms) add_inflections(data.inflections, dem_forms) end end return export fxibmxztl1imwzp3ig06bka94h9640q Modul:zu-headword 828 160364 628607 2024-10-26T13:26:40Z Umarxon III 1502 „local export = {} local lang = require("Module:languages").getByCode("zu") -- A list of valid noun classes -- The value is the corresponding plural class. -- True means the class is uncountable. local singular_classes = { ["1"] = "2", ["1a"] = "2a", ["3"] = "4", ["3a"] = "4a", ["5"] = "6", ["7"] = "8", ["9"] = "10", ["11"] = "10", ["14"] = true, ["15"] = true, ["17"] = true, } local plural_classes = { ["2"] = true, ["2a"] = true,...“ yozuvi orqali yangi sahifa yaratildi 628607 Scribunto text/plain local export = {} local lang = require("Module:languages").getByCode("zu") -- A list of valid noun classes -- The value is the corresponding plural class. -- True means the class is uncountable. local singular_classes = { ["1"] = "2", ["1a"] = "2a", ["3"] = "4", ["3a"] = "4a", ["5"] = "6", ["7"] = "8", ["9"] = "10", ["11"] = "10", ["14"] = true, ["15"] = true, ["17"] = true, } local plural_classes = { ["2"] = true, ["2a"] = true, ["4"] = true, ["4a"] = true, ["6"] = true, ["8"] = true, ["10"] = true, } local prefixes = { ["1"] = {"umu([^aeiou])", "um(.)", "u(n)"}, ["1a"] = {"u([^aeiou])"}, ["2"] = {"aba([^aeiou])", "abe([^aeiou])"}, ["2a"] = {"o([^aeiou])"}, ["3"] = {"umu([^aeiou])", "um(.)", "u(n)"}, ["3a"] = {"u([^aeiou])"}, ["4"] = {"imi([^aeiou])", "im([aeiou])"}, ["4a"] = {"imi([^aeiou])", "im([aeiou])"}, ["5"] = {"ili([^aeiou])", "i([^aeiou])"}, ["6"] = {"ama([^aeiou])", "am([aeiou])"}, ["7"] = {"isi([^aeiou])", "is([aeiou])"}, ["8"] = {"izi([^aeiou])", "iz([aeiou])"}, ["9"] = {"in([^aeiou])", "im([^aeiou])", "i([mn][aeiou])"}, ["10"] = {"izin([^aeiou])", "izim([^aeiou])", "izi([^aeiou])", "iz([aeiou])"}, ["11"] = {"ulu([^aeiou])", "u([^aeiou])"}, ["14"] = {"ubu([^aeiou])", "utshw(a)", "utsh(a)"}, ["15"] = {"uku([^aeiou])", "ukw([aeiou])"}, ["17"] = {"uku([^aeiou])", "ukw([aeiou])"}, } local function remove_prefix(word, class) if not class or not prefixes[class] then return nil end -- If there is a capital letter in the word, -- assume that it's the first letter of the stem and remove everything before it if word:find("[A-Z]") then return word:gsub("^[a-z]+", "") else for key, prefix in ipairs(prefixes[class]) do word = word:gsub("^" .. prefix, "%1") end return word:gsub("^-", "") end end function export.noun(frame) local params = { [1] = {}, [2] = {}, [3] = {}, [4] = {list = true}, } local args = require("Module:parameters").process(frame:getParent().args, params) local data = {lang = lang, pos_category = "nouns", categories = {}, heads = {args[1]}, genders = {}, inflections = {}} if not args[1] then data.heads[1] = mw.title.getCurrentTitle().subpageText:gsub("^-", "") .. "<sup title=\"tones missing\">?</sup>" table.insert(data.categories, "Requests for tone in " .. lang:getCanonicalName() .. " noun entries") end -- Singular if not singular_classes[args[2]] and not plural_classes[args[2]] then args[2] = nil end table.insert(data.genders, "c" .. (args[2] or "?")) -- Plural if args[3] ~= "-" and (#args[4] > 0 or type(singular_classes[args[2]] ~= true) == "string") then if not plural_classes[args[3]] then args[3] = nil end local plural = {label = "plural", request = true} for _, form in ipairs(args[4]) do table.insert(plural, {term = form, genders = {"c" .. (args[3] or "?")}}) end table.insert(data.inflections, plural) end data.sort_key = remove_prefix(mw.title.getCurrentTitle().subpageText, args[2]) return require("Module:headword").full_headword(data) end function export.adjective(frame) local params = { [1] = {}, } local args = require("Module:parameters").process(frame:getParent().args, params) local data = {lang = lang, pos_category = "adjectives", categories = {}, heads = {args[1]}, inflections = {}} if not args[1] then data.heads[1] = mw.title.getCurrentTitle().subpageText:gsub("^-", "") .. "<sup title=\"tones missing\">?</sup>" table.insert(data.categories, "Requests for tone in " .. lang:getCanonicalName() .. " adjective entries") end data.heads[1] = "-" .. data.heads[1] return require("Module:headword").full_headword(data) end function export.relative(frame) local params = { [1] = {}, } local args = require("Module:parameters").process(frame:getParent().args, params) local data = {lang = lang, pos_category = "relatives", categories = {}, heads = {args[1]}, inflections = {}} if not args[1] then data.heads[1] = mw.title.getCurrentTitle().subpageText:gsub("^-", "") .. "<sup title=\"tones missing\">?</sup>" table.insert(data.categories, "Requests for tone in " .. lang:getCanonicalName() .. " relative entries") end data.heads[1] = "-" .. data.heads[1] return require("Module:headword").full_headword(data) end function export.ideophone(frame) local params = { [1] = {}, } local args = require("Module:parameters").process(frame:getParent().args, params) local data = {lang = lang, pos_category = "ideophones", categories = {}, heads = {args[1]}, inflections = {}} if not args[1] then data.heads[1] = mw.title.getCurrentTitle().subpageText:gsub("^-", "") .. "<sup title=\"tones missing\">?</sup>" table.insert(data.categories, "Requests for tone in " .. lang:getCanonicalName() .. " ideophone entries") end return require("Module:headword").full_headword(data) end function export.verb(frame) local params = { [1] = {}, } local args = require("Module:parameters").process(frame:getParent().args, params) local data = {lang = lang, pos_category = "verbs", categories = {}, heads = {args[1]}, inflections = {}} if not args[1] then data.heads[1] = mw.title.getCurrentTitle().subpageText:gsub("^-", "") .. "<sup title=\"tones missing\">?</sup>" table.insert(data.categories, "Requests for tone in " .. lang:getCanonicalName() .. " verb entries") end data.heads[1] = "-" .. data.heads[1] return require("Module:headword").full_headword(data) end return export o8x9lrgu6fuxfaehkyzpqyjm8umaxfi