Module:kilta-headword: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 17: Line 17:
end
end


local function plural(word, n)
local function plural(word, n, pos)
local w = split(word, " ")
local w = split(word, " ")
n = tonumber(n)
n = tonumber(n)
if n > #w then error("Word index outside bounds.") end
if n > #w then error("Word index outside bounds.") end
if w[n]:match("[kh]wa$") or w[n]:match("a$") then
if pos == "n" then
w[n] = sub(w[n], 1, -1) .. "úr"
if w[n]:match("[kh]wa$") or w[n]:match("a$") then
elseif w[n]:match("ës$") or w[n]:match("uin$") or w[n]:match("[str]$") then
w[n] = sub(w[n], 1, -1) .. "úr"
w[n] = w[n] .. "á"
elseif w[n]:match("ës$") or w[n]:match("uin$") or w[n]:match("[str]$") then
elseif w[n]:match("[nml]$") then
w[n] = w[n] .. "á"
w[n] = w[n] .. "ur"
elseif w[n]:match("[nml]$") then
w[n] = w[n] .. "ur"
end
elseif pos == "adj" then
if w[n]:match("[kh]win$") then
w[n] = sub(w[n], 1, -3) .. "ú"
elseif w[n]:match("in$") then
w[n] = sub(w[n], 1, -2) .. "u"
end
end
end
Line 61: Line 69:
table.insert(data.inflections, pl)
table.insert(data.inflections, pl)
else
else
table.insert(data.inflections, plural(word, args.n))
table.insert(data.inflections, plural(word, args.n, pos))
end
end
end
end