--[[
This module holds some commonly used functions for the Armenian language.
It contains invokable functions for use in templates.
]]
local export = {}
--find if the last letter is a vowel, so that the declension template can suppress a certain impossible inflected form
function export.vowend(frame)
local vowels = {
["ա"] = true,
["ե"] = true,
["է"] = true,
["ի"] = true,
["ո"] = true,
["օ"] = true,
}
local vowels2 = {["ու"] = true}
local pagename = frame.args[1]
if vowels[mw.ustring.sub(pagename, -1)] then
return "[["..pagename.."ն]]"
end
if vowels2[mw.ustring.sub(pagename, -2)] then
return "[["..pagename.."ն]]"
end
return "[["..pagename.."ը]]/[["..pagename.."ն]]"
end
--check if starts with a vowel except for <ո> [vo]; used for Western verb conjugation
function export.vowstart(frame)
local vowels = {
["ա"] = true,
["ե"] = true,
["է"] = true,
["ի"] = true,
["օ"] = true,
["ը"] = true,
}
local vowels2 = {["ու"] = true}
local pagename = frame.args[1]
if vowels[mw.ustring.sub(pagename, 1,1)] then
return 1
end
if vowels2[mw.ustring.sub(pagename, 1,2)] then
return 1
end
return 0
end
--remove the ending -ել/ալ
function export.elal(frame)
local pagename = frame.args[1]
return mw.ustring.sub(pagename,1,-3)
end
--remove the ending -նել/նալ/չել/ուլ
function export.soskacanc(frame)
local pagename = frame.args[1]
return mw.ustring.sub(pagename,1,-4)
end
--replace the ending -ի with ել
function export.ilToEl(frame)
local pagename = frame.args[1]
local endsinIl = {["իլ"] = true}
if endsinIl[mw.ustring.sub(pagename, -2)] then
return (pagename:gsub("իլ$", "ել"))
end
return ""..pagename..""
end
--remove the ending -ցնել
function export.cnel(frame)
local pagename = frame.args[1]
return mw.ustring.sub(pagename,1,-5)
end
--remove the ending -ություն
function export.utyun(frame)
local pagename = frame.args[1]
return mw.ustring.sub(pagename,1,-8)
end
--remove the ending -ութիւն
function export.utiwn(frame)
local pagename = frame.args[1]
return mw.ustring.sub(pagename,1,-7)
end
--remove the ending -ի for u-declension nouns
function export.i(frame)
local lastvowel = {["ի"] = true}
local pagename = frame.args[1]
if lastvowel[mw.ustring.sub(pagename, -1)] then
return mw.ustring.sub(pagename,1,-2)
end
return ""..pagename..""
end
--remove the ending -ա for i/u-declension nouns in the Yerevan dialect
function export.a(frame)
local lastvowel = {["ա"] = true}
local pagename = frame.args[1]
if lastvowel[mw.ustring.sub(pagename, -1)] then
return mw.ustring.sub(pagename,1,-2)
end
return ""..pagename..""
end
--insert the glide -յ- for nouns ending in -a and -o
function export.glide(frame)
local vowels = {
["ա"] = true,
["ո"] = true,
["օ"] = true,
}
local pagename = frame.args[1]
if vowels[mw.ustring.sub(pagename, -1)] then
return "յ"
end
end
--deletee the glide -յ- for nouns that are polysyllabic and take -ներ (for Western)
function export.glideDelete(frame)
local lastglide = {["յ"] = true}
local pagename = frame.args[1]
if lastglide[mw.ustring.sub(pagename, -1)] then
return mw.ustring.sub(pagename,1,-2)
end
return ""..pagename..""
end
-- replace final -ում with -մ for n-declension nouns
function export.um(frame)
local pagename = frame.args[1]
return (pagename:gsub("ում$", "մ"))
end
-- replace final -իւն with -ե for n-declension nouns in Old Armenian
function export.iwn(frame)
local pagename = frame.args[1]
return (pagename:gsub("իւն$", "ե"))
end
return export