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 (< la) <nowiki>=</nowiki> yanda-] + q <nowiki>=</nowiki> yandaq > yantaq > 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 (< la) <nowiki>=</nowiki> yanda-] + q <nowiki>=</nowiki> yandaq > yantaq > 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