বিষয়বস্তুতে চলুন

মডিউল:hy-common

উইকিঅভিধান, মুক্ত অভিধান থেকে

এই মডিউলের জন্য মডিউল:hy-common/নথি-এ নথিপত্র তৈরি করা হয়ে থাকতে পারে

--[[
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.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