Module:tin

Από Βικιλεξικό
Μετάβαση στην πλοήγηση Πήδηση στην αναζήτηση

Module:tin >> Module:tin/τεκμηρίωση
Επιλέγει τη σωστή αιτιατική ενικού του θηλυκού άρθρου, για τα ελληνικά.

Καλείται από το Πρότυπο:tin.


-- 2019.05.16. Sarri.greek
      -- θηλυκό άρθρο, αιτιατική ενικού την ή τη
      -- feminine article, accusative singular την or τη
      -- Καλείται από [[Πρότυπο:tin]].
-- 2019.07.24. Thanks to Erutuon

local p = {}

-- by Erutuon: remove error "attempt to call method 'getParent' (a nil value)" by accepting string as argument
function p.tin(arg)
	local term
	if type(arg) == 'table' and type(arg.getParent) == 'function' then
		local frame = arg
		local args = frame:getParent().args
		term = args[1] or ''  -- [[Πρότυπο:tin]] {{#invoke:tin|tin|term=<word>}}
	else
		term = arg
	end

	-- when the lemma is a feminine suffix with -xxx
	if term:sub(1, 1) == '-' then --start at 1st character, stop at 1st character
		return 'τη(ν)'
	end

	-- when the lemma is a feminine word
	-- begninning with βδθφχλρσζΒΔΘΦΧΛΡΣΖ return 'τη'
	if mw.ustring.find(term, '^[βδθφχλρσζΒΔΘΦΧΛΡΣΖ]')
		then
				return 'τη'
				else
	
	-- μ  - μπ
	if mw.ustring.find(term, '^[μΜ][πΠ]')
		then
			return 'την'
			else if mw.ustring.find(term, '^[μΜ]') then return 'τη' end
	end
	-- ν  - ντ
	if mw.ustring.find(term, '^[νΝ][τΤ]')
		then
			return 'την'
			else if mw.ustring.find(term, '^[νΝ]') then return 'τη' end
	end
	-- γ  - γκ
	if mw.ustring.find(term, '^[γΓ][κΚ]')
		then
			return 'την'
			else if mw.ustring.find(term, '^[γΓ]') then return 'τη' end
	end
	
	-- else, if NOT begninning with βδθφχλρσζΒΓΔΘΦΧΛΡΣΖ return 'τηv'
				return 'την'
	end --close beginning with...
end --close function

return p