A modult a Modul:ka-headword/doc lapon tudod dokumentálni
local export = {}
local lang = require("Module:languages").getByCode("ka")
local m_headword = require("Module:headword")
pos_functions = {}
local forms = {}
local template = [===[<!--<div class="NavFrame" style="float: right; min-width: 290px; max-width: 40%;">
<div class="NavHead">] of {pagename}</div>
<div class="NavContent">
{| border="1px solid #505050" style="border-collapse:collapse; background:#FAFAFA; text-align:center; width:100%" class="inflection-table"
|-
! style="background:#BBC9D0; width: 100px;" | Case
! style="background:#BBC9D0" | adjective
|-
! style="background:#BBC9D0" | nominative, genitive, instrumental
| {nominative}
|-
! style="background:#BBC9D0" | ergative
| {ergative}
|-
! style="background:#BBC9D0" | dative, adverbial
| {dative}
|-
! style="background:#BBC9D0" | vocative
| {vocative}
|}</div></div>-->]===]
function get_adjectival_declension()
local make_link = require("Module:links").full_link
local term = mw.title.getCurrentTitle().text
local erg = mw.ustring.sub(term, 0, -2) .. "მა"
local dat = mw.ustring.sub(term, 0, -2)
local voc = mw.ustring.sub(term, 0, -2) .. "ო"
local last = mw.ustring.sub(term, -1, -1)
local beforeLast = mw.ustring.sub(term, -2, -2)
if mw.ustring.match(last, "") or mw.ustring.match(beforeLast, "") then
return ===]
end
forms = term
forms = make_link({lang = lang, term = term})
forms = make_link({lang = lang, term = erg})
forms = make_link({lang = lang, term = dat})
forms = make_link({lang = lang, term = voc})
return require("Module:string utilities").format(template, forms)
end
function export.show(frame)
local args = frame:getParent().args
local poscat = frame.args
local data = {lang = lang, pos_category = poscat, categories = {}, heads = {args or args}, inflections = {}}
return pos_functions(args, data)
end
pos_functions = function(args, data)
if args == "-" then --then hope there is no diminutive
table.insert(data.inflections, {label = "not ]"})
--table.insert(data.categories, "Georgian uncomparable adjectives")
else
local diminutive = args
local comparative = args or "] " .. (args or mw.title.getCurrentTitle().text)
local superlative = args or "] " .. (args or mw.title.getCurrentTitle().text)
table.insert(data.inflections, {label = "]", comparative})
table.insert(data.inflections, {label = "]", superlative})
if diminutive then
table.insert(data.inflections, {label = "]", diminutive})
end
end
return get_adjectival_declension() .. m_headword.full_headword(data)
end
function getModernPlural(term) --detect ჟოკეი too
local lastLetter = mw.ustring.sub(term, -1)
if lastLetter == "ი" or lastLetter == "ა" then
return mw.ustring.sub(term, 0, -2) .. "ები"
elseif lastLetter == "ე" or lastLetter == "ო" or lastLetter == "უ" then
return term .. "ები"
end
end
function getArchaicPlural(term)
local lastLetter = mw.ustring.sub(term, -1)
if lastLetter == "ი" then
return mw.ustring.sub(term, 0, -2) .. "ნი"
else
return term .. "ნი"
end
end
pos_functions = function(args, data)
if args ~= nil then
if args == "-" then --არც გაატრაკო ტო
table.insert(data.inflections, {label = "]"})
else
table.insert(data.inflections, {label = "tsz.", args})
--table.insert(data.categories, "Georgian countable proper nouns")
end
end
return m_headword.full_headword(data)
end
pos_functions = function(args, data)
local a, b, c = args, args, args
local wordArg = nil
local isUncountAndCount = a == "~" or b == "~" or c == "~"
local hasDash = a == "-" or b == "-" or c == "-"
local hasQuestion = a == "?" or b == "?" or c == "?"
if hasQuestion then
return m_headword.full_headword(data)
end
if a and mw.ustring.match(a, "") then wordArg = a end
if b and mw.ustring.match(b, "") then wordArg = b end
if c and mw.ustring.match(c, "") then wordArg = c end
local hasArchaic = a == "+" or b == "+" or c == "+"
local hasPlural = a == "0" or b == "0" or c == "0" or not hasDash or wordArg
local archaic = hasArchaic and getArchaicPlural(args or mw.title.getCurrentTitle().text) or nil
local plural = hasPlural and (wordArg or getModernPlural(args or mw.title.getCurrentTitle().text)) or nil
if hasDash then
if plural or archaic then
table.insert(data.inflections, {label = "usually ]"})
else
table.insert(data.inflections, {label = "]"})
end
else
--table.insert(data.categories, "Georgian countable nouns")
if isUncountAndCount then
table.insert(data.inflections, {label = "] és ]"})
end
end
if hasDash or isUncountAndCount then
--table.insert(data.categories, "Georgian megszámlálhatatlan nouns")
end
if plural then
table.insert(data.inflections, {label = "tsz.", plural, accel = {form = "p"}})
end
if archaic then
table.insert(data.inflections, {label = "archaic plural", archaic})
end
return m_headword.full_headword(data)
end
return export