Modul:ku-tewîn-nav

Ji Wîkîferheng
Jump to navigation Jump to search
local t = {}

-- FERHENG --
    -- Definite (def) = binavkirî, diyar
    -- Indefinite (indef) = nebinavkirî, nediyar
    -- Singular (s) = Yekjimar / Plural (p) = Pirjimar
    -- Case = Rewş, awa
    
    -- Nominative (nom)= Rewşa (awayê) navkî, netewandî, xwerû
    -- Construct (constr) = Îzafe
    -- Oblique (obl) = Rewşa (awayê) çemandî (tewandî)
    -- Demonstrative oblique (demons_obl) = Rewşa nîşander a çemandî 
    -- Vocativ (voc) = Rewşa bangkirinê

local gsub = mw.ustring.gsub
local find = mw.ustring.find
local g = require('Modul:girêdan').gR

function b(bold)
	return '<b>' .. bold .. '</b>'
end -- nivîsa stûr ji bo paşgira navdêr

function CinavCemandi(z)
	if z == 'mê' then return 'wê' end
	if z == 'nêr' then return 'wî' end
end

function t.tew(navder, zayend, guherto)
	local tew = {}
	
		    tew.def_nom_s = navder
	        tew.def_nom_p = navder
	
	if (find(navder, '[bcçdfghjklmnpqrsştvwxyz]$')) then
		if (zayend == 'nêr') then
	        tew.def_constr_s = gsub(navder, '(.)$', '%1' .. b('ê'))
	        tew.def_constr_p = gsub(navder, '(.)$', '%1' .. b('ên'))
	        tew.def_obl_s = gsub(navder, '(.)$', '%1' .. b('î'))
	        tew.def_obl_p = gsub(navder, '(.)$', '%1' .. b('an'))
	        tew.indef_nom_s = gsub(navder, '(.)$', '%1' .. b('ek'))
	        tew.indef_nom_p = gsub(navder, '(.)$', '%1' .. b('in'))
	        tew.indef_constr_s = gsub(navder, '(.)$', '%1' .. b('ekî'))
	        tew.indef_constr_p = gsub(navder, '(.)$', '%1' .. b('ine'))
	        tew.indef_obl_s = gsub(navder, '(.)$', '%1' .. b('ekî'))
	        tew.indef_obl_p = gsub(navder, '(.)$', '%1' .. b('inan'))
	        tew.voc_s = gsub(navder, '(.)$', '%1' .. b('o'))
	        tew.voc_p = gsub(navder, '(.)$', '%1' .. b('ino'))
	        
	    elseif (zayend == 'mê') then
	        tew.def_constr_s = gsub(navder, '(.)$', '%1' .. b('a'))
	        tew.def_constr_p = gsub(navder, '(.)$', '%1' .. b('ên'))
	        tew.def_obl_s = gsub(navder, '(.)$', '%1' .. b('ê'))
	        tew.def_obl_p = gsub(navder, '(.)$', '%1' .. b('an'))
	        tew.indef_nom_s = gsub(navder, '(.)$', '%1' .. b('ek'))
	        tew.indef_nom_p = gsub(navder, '(.)$', '%1' .. b('in'))
	        tew.indef_constr_s = gsub(navder, '(.)$', '%1' .. b('eke'))
	        tew.indef_constr_p = gsub(navder, '(.)$', '%1' .. b('ine'))
	        tew.indef_obl_s = gsub(navder, '(.)$', '%1' .. b('ekê'))
	        tew.indef_obl_p = gsub(navder, '(.)$', '%1' .. b('inan'))
	        tew.voc_s = gsub(navder, '(.)$', '%1' .. b('ê'))
	        tew.voc_p = gsub(navder, '(.)$', '%1' .. b('ino'))
	    end

    elseif (find(navder, '[aeêiîouû]$') and guherto == '2') then
    	if (zayend == 'nêr') then
	        tew.def_constr_s = gsub(navder, '(.)$', '%1' .. b('yê'))
	        tew.def_constr_p = gsub(navder, '(.)$', '%1' .. b('yên'))
	        if (find(navder, '[î]$')) then
	        	tew.def_obl_s = navder
	        else
	        	tew.def_obl_s = gsub(navder, '(.)$', '%1' .. b('yî'))
	        end
	        tew.def_obl_p = gsub(navder, '(.)$', '%1' .. b('yan'))
	        tew.indef_nom_s = gsub(navder, '(.)$', '%1' .. b('yek'))
	        tew.indef_nom_p = gsub(navder, '(.)$', '%1' .. b('yin'))
	        tew.indef_constr_s = gsub(navder, '(.)$', '%1' .. b('yekî'))
	        tew.indef_constr_p = gsub(navder, '(.)$', '%1' .. b('yine'))
	        tew.indef_obl_s = gsub(navder, '(.)$', '%1' .. b('yekî'))
	        tew.indef_obl_p = gsub(navder, '(.)$', '%1' .. b('yinan'))
	        tew.voc_s = gsub(navder, '(.)$', '%1' .. b('yo'))
	        tew.voc_p = gsub(navder, '(.)$', '%1' .. b('yino'))
	        
	    elseif (zayend == 'mê') then
	        tew.def_constr_s = gsub(navder, '(.)$', '%1' .. b('ya'))
	        tew.def_constr_p = gsub(navder, '(.)$', '%1' .. b('yên'))
	        if (find(navder, '[ê]$')) then
	        	tew.def_obl_s = navder
	        else
	        	tew.def_obl_s = gsub(navder, '(.)$', '%1' .. b('yê'))
	        end
	        tew.def_obl_p = gsub(navder, '(.)$', '%1' .. b('yan'))
	        tew.indef_nom_s = gsub(navder, '(.)$', '%1' .. b('yek'))
	        tew.indef_nom_p = gsub(navder, '(.)$', '%1' .. b('yin'))
	        tew.indef_constr_s = gsub(navder, '(.)$', '%1' .. b('yeke'))
	        tew.indef_constr_p = gsub(navder, '(.)$', '%1' .. b('yine'))
	        tew.indef_obl_s = gsub(navder, '(.)$', '%1' .. b('yekê'))
	        tew.indef_obl_p = gsub(navder, '(.)$', '%1' .. b('yinan'))
	        tew.voc_s = gsub(navder, '(.)$', '%1' .. b('yê'))
	        tew.voc_p = gsub(navder, '(.)$', '%1' .. b('yino'))
	    end
	    
    elseif (find(navder, '[aîoû]$')) then
        if (zayend == 'nêr') then
	        tew.def_constr_s = gsub(navder, '(.)$', '%1' .. b('yê'))
	        tew.def_constr_p = gsub(navder, '(.)$', '%1' .. b('yên'))
	        if (find(navder, '[î]$')) then
	        	tew.def_obl_s = navder
	        else
	        	tew.def_obl_s = gsub(navder, '(.)$', '%1' .. b('yî'))
	        end
	        tew.def_obl_p = gsub(navder, '(.)$', '%1' .. b('yan'))
	        tew.indef_nom_s = gsub(navder, '(.)$', '%1' .. b('yek'))
	        tew.indef_nom_p = gsub(navder, '(.)$', '%1' .. b('yin'))
	        tew.indef_constr_s = gsub(navder, '(.)$', '%1' .. b('yekî'))
	        tew.indef_constr_p = gsub(navder, '(.)$', '%1' .. b('yine'))
	        tew.indef_obl_s = gsub(navder, '(.)$', '%1' .. b('yekî'))
	        tew.indef_obl_p = gsub(navder, '(.)$', '%1' .. b('yinan'))
	        tew.voc_s = gsub(navder, '(.)$', '%1' .. b('yo'))
	        tew.voc_p = gsub(navder, '(.)$', '%1' .. b('yino'))
	        
	    elseif (zayend == 'mê') then
	        tew.def_constr_s = gsub(navder, '(.)$', '%1' .. b('ya'))
	        tew.def_constr_p = gsub(navder, '(.)$', '%1' .. b('yên'))
	        tew.def_obl_s = gsub(navder, '(.)$', '%1' .. b('yê'))
	        tew.def_obl_p = gsub(navder, '(.)$', '%1' .. b('yan'))
	        tew.indef_nom_s = gsub(navder, '(.)$', '%1' .. b('yek'))
	        tew.indef_nom_p = gsub(navder, '(.)$', '%1' .. b('yin'))
	        tew.indef_constr_s = gsub(navder, '(.)$', '%1' .. b('yeke'))
	        tew.indef_constr_p = gsub(navder, '(.)$', '%1' .. b('yine'))
	        tew.indef_obl_s = gsub(navder, '(.)$', '%1' .. b('yekê'))
	        tew.indef_obl_p = gsub(navder, '(.)$', '%1' .. b('yinan'))
	        tew.voc_s = gsub(navder, '(.)$', '%1' .. b('yê'))
	        tew.voc_p = gsub(navder, '(.)$', '%1' .. b('yino'))
	    end
   	
    elseif (find(navder, '[e]$')) then
        if (zayend == 'nêr') then
	        tew.def_constr_s = gsub(navder, '(.)$', b('ê'))
	        tew.def_constr_p = gsub(navder, '(.)$', b('ên'))
	        tew.def_obl_s = gsub(navder, '(.)$', b('î'))
	        tew.def_obl_p = gsub(navder, '(.)$', b('an'))
	        tew.indef_nom_s = gsub(navder, '(.)$', 'e' .. b('k'))
	        tew.indef_nom_p = gsub(navder, '(.)$', b('in'))
	        tew.indef_constr_s = gsub(navder, '(.)$', 'e' .. b('kî'))
	        tew.indef_constr_p = gsub(navder, '(.)$', b('ine'))
	        tew.indef_obl_s = gsub(navder, '(.)$', 'e' .. b('kî'))
	        tew.indef_obl_p = gsub(navder, '(.)$', b('inan'))
	        tew.voc_s = gsub(navder, '(.)$', b('o'))
	        tew.voc_p = gsub(navder, '(.)$', b('ino'))
	        
	    elseif (zayend == 'mê') then
	        tew.def_constr_s = gsub(navder, '(.)$', b('a'))
	        tew.def_constr_p = gsub(navder, '(.)$', b('ên'))
	        tew.def_obl_s = gsub(navder, '(.)$', b('ê'))
	        tew.def_obl_p = gsub(navder, '(.)$', b('an'))
	        tew.indef_nom_s = gsub(navder, '(.)$', 'e' .. b('k'))
	        tew.indef_nom_p = gsub(navder, '(.)$', b('in'))
	        tew.indef_constr_s = gsub(navder, '(.)$', 'e' .. b('ke'))
	        tew.indef_constr_p = gsub(navder, '(.)$', b('ine'))
	        tew.indef_obl_s = gsub(navder, '(.)$', 'e' .. b('kê'))
	        tew.indef_obl_p = gsub(navder, '(.)$', b('inan'))
	        tew.voc_s = gsub(navder, '(.)$', b('ê'))
	        tew.voc_p = gsub(navder, '(.)$', b('ino'))
	    end
   	
    elseif (find(navder, '[ê]$')) then
        if (zayend == 'nêr') then
	        tew.def_constr_s = gsub(navder, '(.)$', b('iyê'))
	        tew.def_constr_p = gsub(navder, '(.)$', b('iyên'))
	        tew.def_obl_s = gsub(navder, '(.)$', b('iyî'))
	        tew.def_obl_p = gsub(navder, '(.)$', b('iyan'))
	        tew.indef_nom_s = gsub(navder, '(.)$', b('iyek'))
	        tew.indef_nom_p = gsub(navder, '(.)$', b('iyin'))
	        tew.indef_constr_s = gsub(navder, '(.)$', b('iyekî'))
	        tew.indef_constr_p = gsub(navder, '(.)$', b('iyine'))
	        tew.indef_obl_s = gsub(navder, '(.)$', b('iyekî'))
	        tew.indef_obl_p = gsub(navder, '(.)$', b('iyinan'))
	        tew.voc_s = gsub(navder, '(.)$', b('iyo'))
	        tew.voc_p = gsub(navder, '(.)$', b('iyino'))
	        
	    elseif (zayend == 'mê') then
	        tew.def_constr_s = gsub(navder, '(.)$', b('iya'))
	        tew.def_constr_p = gsub(navder, '(.)$', b('iyên'))
	        if (find(navder, '[ê]$')) then
	        	tew.def_obl_s = navder
	        else
	        	tew.def_obl_s = gsub(navder, '(.)$', b('iyê'))
	        end
	        tew.def_obl_p = gsub(navder, '(.)$', b('iyan'))
	        tew.indef_nom_s = gsub(navder, '(.)$', b('iyek'))
	        tew.indef_nom_p = gsub(navder, '(.)$', b('iyin'))
	        tew.indef_constr_s = gsub(navder, '(.)$', b('iyeke'))
	        tew.indef_constr_p = gsub(navder, '(.)$', b('iyine'))
	        tew.indef_obl_s = gsub(navder, '(.)$', b('iyekê'))
	        tew.indef_obl_p = gsub(navder, '(.)$', b('iyinan'))
	        tew.voc_s = gsub(navder, '(.)$', b('iyê'))
	        tew.voc_p = gsub(navder, '(.)$', b('iyino'))
	    end
	end
	
	-- îy --> iy + girêdan
	for i, v in pairs(tew) do
		tew[i] = gsub(tew[i], 'î<b>y', '<b>iy')
		tew[i] = g(tew[i])
	end
	
	-- zêdekirina cînavên wê/wî/wan
	tew.def_demons_obl_s = g(CinavCemandi(zayend)) .. ' ' .. tew.def_obl_s
	tew.def_demons_obl_p = g('wan') .. ' ' .. tew.def_obl_p
	
	return  tew
end

local function zayendTablo(zayend)
 	if (zayend == 'nêr') then return ' Zayenda nêr a'
 	elseif  (zayend == 'mê') then return ' Zayenda mê ya'
    end
end

function t.tewandin(frame)
   local args = frame:getParent().args
   local navder = args[1]
   local zayend = args[2]
   local yekjimar = args[3]
   local guherto = args['guherto']

   tew_mn = require('Modul:ku-tewîn-nav/mê û nêr').mn
   tew_yekjimar = require('Modul:ku-tewîn-nav/yekjimar').yekjimar

   if (zayend == 'mê û nêr') then
       return tew_mn(navder, guherto)
   elseif (yekjimar == 'y') then
       return tew_yekjimar(navder, zayend, guherto)
   else
       return 
  '{| class="wikitable" colspan="5" border="1" style="float:right; margin:0.5em 0 0.5em 0.5em; background-color:white; clear: right;"'
   ..'\n|-'
   ..'\n! colspan="3" align="center" |' .. zayendTablo(zayend) .. ' binavkirî'
   ..'\n|-'
   ..'\n! style="background-color:#FFFFE0;  text-align:left;" | Rewş'
   ..'\n! colspan="1" style="background-color:#FFFFE0;" | Yekjimar'
   ..'\n! colspan="1" style="background-color:#FFFFE0;" | Pirjimar'
   ..'\n|-'
   ..'\n| style="background-color:#f8f9fa; text-align:left;" | [[Alîkarî:Tewandina navdêran#Rewşa navkî|Navkî]]'
   ..'\n|' .. t.tew(navder, zayend, guherto)["def_nom_s"]
   ..'\n|' .. t.tew(navder, zayend, guherto)["def_nom_p"]
   ..'\n|-'
   ..'\n| style="background-color:#f8f9fa; text-align:left;" | [[Alîkarî:Tewandina navdêran#Ravek|Ravek]]'
   ..'\n|' .. t.tew(navder, zayend, guherto)["def_constr_s"]
   ..'\n|' .. t.tew(navder, zayend, guherto)["def_constr_p"]
   ..'\n|-'
   ..'\n| style="background-color:#f8f9fa; text-align:left;" | [[Alîkarî:Tewandina navdêran#Rewşa çemandî|Çemandî]]'
   ..'\n|' .. t.tew(navder, zayend, guherto)["def_obl_s"]
   ..'\n|' .. t.tew(navder, zayend, guherto)["def_obl_p"]
   ..'\n|-'
   ..'\n| style="background-color:#f8f9fa; text-align:left;" | [[Alîkarî:Tewandina navdêran#Rewşa nîşanderê ya çemandî|Nîşandera çemandî]]'
   ..'\n|' .. t.tew(navder, zayend, guherto)["def_demons_obl_s"]
   ..'\n|' .. t.tew(navder, zayend, guherto)["def_demons_obl_p"]
   ..'\n|-'
   ..'\n| style="background-color:#f8f9fa; text-align:left;" | [[Alîkarî:Tewandina navdêran#Rewşa bangkirinê|Bangkirin]]'
   ..'\n|' .. t.tew(navder, zayend, guherto)["voc_s"]
   ..'\n|' .. t.tew(navder, zayend, guherto)["voc_p"]
   ..'\n|-'
   ..'\n! colspan="5" align="center" |' .. zayendTablo(zayend) .. ' nebinavkirî'
   ..'\n|-'
   ..'\n!style="background-color:#FFFFE0; text-align:left;" | Rewş'
   ..'\n!colspan="1" style="background-color:#FFFFE0;" | Yekjimar'
   ..'\n!colspan="1" style="background-color:#FFFFE0;" | Pirjimar'
   ..'\n|-'
   ..'\n| style="background-color:#f8f9fa; text-align:left;" | [[Alîkarî:Tewandina navdêran#Rewşa navkî 2|Navkî]]'
   ..'\n|' .. t.tew(navder, zayend, guherto)["indef_nom_s"]
   ..'\n|' .. t.tew(navder, zayend, guherto)["indef_nom_p"]
   ..'\n|-'
   ..'\n| style="background-color:#f8f9fa; text-align:left;" | [[Alîkarî:Tewandina navdêran#Îzafe 2|Îzafe]]'
   ..'\n|' .. t.tew(navder, zayend, guherto)["indef_constr_s"]
   ..'\n|' .. t.tew(navder, zayend, guherto)["indef_constr_p"]
   ..'\n|-'
   ..'\n| style="background-color:#f8f9fa; text-align:left;" | [[Alîkarî:Tewandina navdêran#Rewşa çemandî 2|Çemandî]]'
   ..'\n|' .. t.tew(navder, zayend, guherto)["indef_obl_s"]
   ..'\n|' .. t.tew(navder, zayend, guherto)["indef_obl_p"]
   ..'\n|}'
      end   
end

---------------------------------------------------------------------------
-- Bo tabloyên formên lêkeran.
-- Binêre: [[Şablon:tew-nav-ku]]
---------------------------------------------------------------------------
function t.tew2(frame)
   local args = frame:getParent().args
   local pos = frame.args['pos']
   local navder = args[1]
   local zayend = args[2]
   local guherto = args['guherto']
   
   return t.tew(navder, zayend, guherto)[pos]
end

function t.tew3(frame)
   local args = frame:getParent().args
   local pos = frame.args['pos']
   local zayend = frame.args[1]
   local navder = args[1]
   local guherto = args['guherto']
   
   return t.tew(navder, zayend, guherto)[pos]
end

return t