Module:kilta-headword: Difference between revisions

no edit summary
No edit summary
No edit summary
(17 intermediate revisions by the same user not shown)
Line 17: Line 17:
end
end


local function plural(word, n)
local function plural(word, n, pos)
local w = split(word, "%s")
local w = split(word, " ")
n = tonumber(n)
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
end]]
w[n] = w[n] .. "ur"
end
w[2] = w[2] .. "aaa"
elseif pos == "adj" then
if w[n]:match("[kh]win$") then
w[n] = sub(w[n], 1, -4) .. "ú"
elseif w[n]:match("in$") then
w[n] = sub(w[n], 1, -3) .. "u"
end
end
return {label = "plural", table.concat(w, " ")}
return {label = "plural", table.concat(w, " ")}
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