Modul:Ghybutest

Ji Wîkîferhengê
Belgekirina modulê[nîşan bide] [biguhêre] [rojane bike]
Ev belge ji Modul:Ghybutest/belge hatiye girtin.

Binêre:

-- Modul bo şablonên: {{navdêr}}, {{lêker}}, {{rengdêr}},  {{hoker}}
-- {{serenav}}, {{cînav}}, {{paşgir}}, {{pêşgir}}, {{navgir}}
-- {{hejmar}}, {{kurtenav}}, {{gp}}, ...
b = require('Modul:bingeh')
m_languages = require("Modul:ziman")
formatZiman = require('Modul:girêdan').formatZiman

local p = {}

--- kurtenav zayend + jimar
function kurtenav(zj)
	local navz
	local sernav
	local kurte
	local nivis = ''
	
	local k_tab = {
		['m'] = {navz = 'mê', sernav = 'Zayend: mê', kurte ='m'},
		['n'] = {navz = 'nêr', sernav = 'Zayend: nêr', kurte ='n'},
		['nt'] = {navz = 'nêtar', sernav = 'Zayend: nêtar', kurte ='nt'},
		['mn'] = {navz = 'mê û nêr', sernav = 'Zayend: mê û nêr', kurte ='m&n'},
		['c'] = {navz = 'common genger', sernav = 'Zayend: common genger', kurte ='c'},
		['y'] = {navz = 'yekjimar', sernav = 'Jimar: yekjimar', kurte ='yj'},
		['p'] = {navz = 'pirjimar', sernav = 'Jimar: pirjimar', kurte ='pj'},
		['j'] = {navz = '[[jimarbar]]', sernav = 'Jimar: jimarbar', kurte ='j'},
		['nj'] = {navz = '[[nejimarbar]]', sernav = 'Jimar: nejimarbar', kurte ='nj'},
		['j/nj'] = {navz = '[[jimarbar]] û [[nejimarbar]]', sernav = 'Jimar: jimarbar û nejimarbar', kurte ='j/nj'},
	}
	
	if (mw.ustring.find(zj, '(%+)$')) then
		local zj_kem = mw.ustring.gsub(zj, '(%+)$', '')
		k_tab[zj] = {
			navz = 'bi gelemperî ' .. k_tab[zj_kem].navz,
			sernav = 'Zayend: bi gelemperî ' .. k_tab[zj_kem].navz .. ' e',
			kurte = k_tab[zj_kem].navz,
		}
	end
	
	if (k_tab[zj]) then
		nivis =  {
			'<i>'.. k_tab[zj].navz ..'</i>',
			'<abbr style="font-style:italic;" title="' .. k_tab[zj].sernav .. '">' .. k_tab[zj].kurte .. '</abbr>'
		}
	elseif (zj == '?') then
		nivis = {'<span style="background-color:#FFDDDD; font-size:small;">'
		 		.. 'zayend pêwîst e (z=m: mê, z=n: nêr, z=mn: mê û nêr, z=nt: nêtar)</span>'}
	elseif (zj == '-' or zj == nil or zj == '') then
		nivis = {''}
	else
		nivis = {'<span style="background-color:#FFDDDD; font-size:small;">'
		 		.. 'parametre: z=m: mê, z=n: nêr, z=mn: m û nêr, z=nt: nêtar</span>'}
	end
	
	return nivis
	
end

--- lêkerCure
function leker_cure(lc, ziman)
	local c_tab = {
					['x'] = 'xwerû',
					['p'] = 'pêkhatî',
					['h'] = 'hevedudanî',
					['b'] = 'biwêjî',
					['gh'] = 'gerguhêz',
					['ngh'] = 'negerguhêz'
	}
	local lc_tab = mw.text.split(lc, '-')
	local c1 = lc_tab[1]
	local c2 = lc_tab[2]
	local navc = ''
	local katc = ''
	
	if (c_tab[c1] and c_tab[c2]) then
		navc = 'lêkera ' .. c_tab[c1] .. ', ' .. c_tab[c2]
		katc = b.bike_kategori_naverok('Lêkerên '.. c_tab[c1] .. ' bi ' ..  ziman)
		.. b.bike_kategori_naverok('Lêkerên '.. c_tab[c2] .. ' bi ' ..  ziman)
		.. b.bike_kategori_naverok('Lêkerên ' .. c_tab[c1] .. ' yên ' .. c_tab[c2] .. ' bi ' ..  ziman )
	elseif (c_tab[c1] and not c_tab[c2]) then
		if (mw.ustring.find(c_tab[c1], '^[xphb]')) then
			navc = 'lêkera ' .. c_tab[c1]
		else
			navc = c_tab[c1]
		end
		katc = b.bike_kategori_naverok('Lêkerên '.. c_tab[c1] .. ' bi ' ..  ziman)
	elseif (c1 == '?') then
		navc = '<span style="background-color:#FFDDDD;font-size:small;">'
				.. 'cureyê lêkerê pêwîst e (c=gh: gerguhêz, c=ngh: negerguhêz, bo parametreyên din: [[Şablon:lêker#Bikaranîn]])</span>'
	else
		navc = '<span style="background-color:#FFDDDD;font-size:small;">'
				.. 'parametre: c=gh: gerguhêz, c=ngh: negerguhêz, bo parametreyên din: [[Şablon:lêker#Bikaranîn]]</span>'
	end
	
	return {'<i>'.. navc ..'</i>', katc}
end


function ser_destpek(kod, sc, nivisCuda)
	local nivisaSer = ''
	
	if mw.title.getCurrentTitle().nsText == "Jinûvesazî" then
		if (nivisCuda) then
			nivisaSer = '<strong>*' .. formatZiman(kod, nivisCuda, sc) .. '</strong>'
		else
			nivisaSer = '<strong>*' .. formatZiman(kod, mw.title.getCurrentTitle().subpageText, sc) .. '</strong>'
		end		
	else	
		if (nivisCuda) then
			nivisaSer = '<strong>' .. formatZiman(kod, nivisCuda, sc) .. '</strong>'
		else
			nivisaSer = '<strong>' .. formatZiman(kod, mw.title.getCurrentTitle().subpageText, sc) .. '</strong>'
		end
	end
return nivisaSer	
end

function ser_destpek_translit(kod, sc, nivisCuda)
	--- translit
	local nivisaSer = ''
	local translit
	local t_kod
	
	if (sc) then
		t_kod = kod .. '-' .. sc 
	else
		t_kod = kod
	end
	
	if (t_kod ~= nil) then
		local title = tostring(t_kod .. '-translit')
		local translitLink = tostring('Modul:' .. title)
       
		if mw.title.new( title, 'Modul' ).exists == true then
			translit = require(translitLink).tr
		end
	end
 
	if (tr and tr ~= '-' and tr ~= '') then
		nivisaSer = tr
	elseif (tr == '-') then
		nivisaSer = nivisaSer
	elseif ( (tr == '' or tr == nil) and translit ) then
		if (nivisCuda and translit(nivisCuda)) then
			nivisaSer = translit(nivisCuda)
		else
			if (translit(mw.title.getCurrentTitle().subpageText)) then
				nivisaSer = translit(mw.title.getCurrentTitle().subpageText)
			else
				nivisaSer = nivisaSer
			end
		end
	else
		nivisaSer = nivisaSer
	end

return nivisaSer
end
  
function p.cure(frame)
    local args = frame:getParent().args
    local kod  = args[1]
    local nivisCuda  = args[2]
    local nivisCuda2  = args[3]
    local tr  = args['tr']
    local sc = args['sc'] -- alfabe/script
    local z  = args['z'] -- zayend
    local j  = args['j'] -- jimar
    local c  = args['c'] -- cure

    local m  = args['m'] -- forma mê
    local m2  = args['m2'] -- forma mê
    local m3  = args['m3'] -- forma mê
    local n  = args['n'] -- forma nêr
    local n2  = args['n2'] -- forma nêr
    local n3  = args['n3'] -- forma nêr
    local nt  = args['nt'] -- forma nêtar
    local p  = args['p'] -- forma pirjimar
    local p2  = args['p2'] -- forma pirjimar
    local p3  = args['p3'] -- forma pirjimar
    local y  = args['y'] -- forma pirjimar
    local np  = args['np'] -- forma nêr ya pirjimar
    local np2  = args['np2'] -- forma nêr ya pirjimar
    local np3  = args['np3'] -- forma nêr ya pirjimar
    local mp  = args['mp'] -- forma mê ya pirjimar
	local mp2  = args['mp2'] -- forma mê ya pirjimar
	local mp3  = args['mp3'] -- forma mê ya pirjimar
    local lk = args['lk'] -- forma lêker
    local nd = args['nd'] -- forma navdêr
    
    local gir = args['gir'] -- tîpa girek
    local hur = args['hûr'] -- tîpa hûrek
    
    local g  = args['g'] -- guherto
    local form  = args['form'] -- form=êrê, ji bo formên tewandiyên navdêr, lêker, rengdêr, hoker an cînavan
	local lang = m_languages.getByCode(kod)
	local ziman = lang:getCanonicalName()
    local nav = frame.args['nav']
    local kat = frame.args['kat']
    
    local nivisaSer = ''
    local formatNivisaSer = ''
	----------------------------------------------------------------------------
	----------------------------- ÇÊKIRINA SERNIVÎSÊ ---------------------------
	----------------------------------------------------------------------------
	if nivisCuda2 then
		nivisaSer = ser_destpek(kod, sc, nivisCuda) .. ' an ' .. ser_destpek(kod, sc, nivisCuda2)
					.. '&nbsp;<i>('.. ser_destpek_translit(kod, sc, nivisCuda) .. ' an '
					.. ser_destpek_translit(kod, sc, nivisCuda2) .. ')</i>'
	else
		nivisaSer = ser_destpek(kod, sc, nivisCuda).. '&nbsp;<i>(' .. ser_destpek_translit(kod, sc, nivisCuda2) .. ')</i>'
	end
   
	--- cure
	if (c and c ~= '' and nav == 'lêker') then
		nivisaSer = nivisaSer .. ' ' .. leker_cure(c, ziman)[1]
	else
		nivisaSer = nivisaSer
	end
	
	--- zayend
	if (z) then
		nivisaSer = nivisaSer .. ' ' .. kurtenav(z)[1]
	end
	
	--- jimar	
	if (j) then
		nivisaSer = nivisaSer .. ' ' .. kurtenav(j)[1]
	end

	--- rengdêr qiyasbar an na 	
	if form == "-" and nav == "rengdêr" then
		nivisaSer = nivisaSer .. ' <i>([[Nimînok:Ferhengok#neqiyasbar|neqiyasbar]])</i>' 
	end

	--- formên din (mê, nêr, nêtar) // Format: { {parametre, nivîs, navê cureyî}, ... }
	if (gir or hur or m or n or nt or y or p or np or mp or nd or lk) then
		local tab = { 	
						{ {gir}, 'girek', 'tîp'}, 
						{ {hur}, 'hûrek', 'tîp'},
						{ {m, m2, m3}, 'forma mê'}, 
						{ {n, n2, n3}, 'forma nêr'}, 
						{ {nt}, 'forma nêtar'},
						{ {y}, 'forma yekjimar'}, 
						{ {p, p2, p3}, 'forma pirjimar'}, 
						{ {np, np2, np3}, 'forma nêr a pirjimar'},
						{ {mp, mp2, mp3}, 'forma mê ya pirjimar'}, 
						{ {nd}, 'forma navdêr'}, 
						{ {lk}, 'forma lêker'}
		}

		nivisaSer = nivisaSer .. ' <i>(</i>'
		
		for i, v in ipairs(tab) do
			if ( #v[1] >= 1 and (nav == v[3] or v[3] == nil ) ) then
				nivisaSer = nivisaSer .. '<i>' .. v[2] .. '</i> '
				for j, t in ipairs(v[1]) do
					nivisaSer = nivisaSer ..  require("Module:links").full_link{
						term = t,
						lang = require("Module:ziman").getByCode(kod)
					}
					if j == #v[1] then 
						nivisaSer = nivisaSer .. ', '
					else
						nivisaSer = nivisaSer .. ' <i>an</i> '
					end
				end
			end
		end
		nivisaSer = nivisaSer .. '<i>)</i>'
		nivisaSer = mw.ustring.gsub(nivisaSer, ', <i>%)</i>', '<i>)</i>')
	end
	----------------------------------------------------------------------------
	----------------------------- ÇEKIRINA KATEGORIYAN -------------------------
	----------------------------------------------------------------------------
	-- çêkirina kategoriyan (koda zimanî ne hatiye nivîsandin)
	if (kod == nil or kod == '') then 
		if (kat ~= nil) then nav = kat end
		kat =  b.bike_kategori_naverok('Şablonên rêzimanî yên bê koda zimanî')
		return nivisaSer .. kat
	end
  
	-- Çêkirina kategoriyan (koda zimanî hatiye nivîsandin)
	if (ziman ~= nil) then
		if (kat == 'nekat') then
			kat = ''
		else
			if (kat ~= nil and kat ~= 'nekat') then
				nav = kat
			end
			
			-- Kategoriya YEKEM [[Kategorî:nav (ziman)]] 
			-- Bo formên tewandî (form=êrê) kategorî ([[Kategorî:nav (ziman)]]) nayê çêkirin.
			if ( (nav == 'navdêr' or nav == 'lêker' or nav == 'rengdêr' or nav == 'hoker' or nav == 'cînav' or nav == 'serenav') and form == 'erê') then
				kat = b.bike_kategori_naverok('Formên ' .. nav .. 'an' .. ' bi ' ..  ziman )
			else
				kat =  b.bike_kategori_naverok(b.ucfirst(nav) .. ' bi ' ..  ziman )
			end
	    	
	    	-- Kategorî li gorî zayên (z=) û jimarê (j=)
			local zj_tab = {
							['m'] = 'mê',
							['m+'] = 'ku bi gelemperî mê ne',
							['n'] = 'nêr',
							['n+'] = 'ku bi gelemperî nêr in',
							['nt'] = 'nêtar',
							['mn'] = 'mê û nêr',
							['p+'] = 'ku bi gelemperî pirjimar in',
							['j'] = 'jimarbar',
							['nj'] = 'nejimarbar',
			}
				              
			if (zj_tab[z]) then
				kat = kat .. b.bike_kategori_naverok(b.ucfirst(nav) .. 'ên ' .. zj_tab[z] .. ' bi ' ..  ziman )
			elseif (zj_tab[j]) then
				kat = kat .. b.bike_kategori_naverok(b.ucfirst(nav) .. 'ên ' .. zj_tab[j] .. ' bi ' ..  ziman )
			elseif (j == 'j/nj') then
				kat = kat .. b.bike_kategori_naverok(b.ucfirst(nav) .. 'ên jimarbar bi ' ..  ziman )
				kat = kat .. b.bike_kategori_naverok(b.ucfirst(nav) .. 'ên nejimarbar bi ' ..  ziman )
			end
			
		end
		
    	-- cure
		if (c and c ~= '' and nav == 'lêker') then
			kat = kat .. leker_cure(c, ziman)[2]
		end
		
			--- rengdêr qiyasbar an na 	
		if form == "-" and nav == "rengdêr" then
			kat = kat .. b.bike_kategori_naverok('Rengdêrên neqiyasbar bi ' ..  ziman )
		end

		
		-- Kategorî ji bo zimanê kurdî
		if (kod == 'ku' and nav == 'navdêr' and (z == "-") and form ~= 'erê') then
			kat =  kat
		elseif (kod == 'ku' and nav == 'navdêr' and (z == nil or z == '' or z == '?') and form ~= 'erê') then
			kat =  kat .. b.bike_kategori_naverok('Navdêrên bêzayend (kurdî)')
		end
		if (kod == 'ku' and nav == 'lêker' and (c == nil or c == '' or c == '?') and form ~= 'erê') then
			kat =  kat .. b.bike_kategori_naverok('Lêkerên bêcure (kurdî)')
		end
		
		return nivisaSer .. kat
     
	else
		return  '<span style="color:red;font-size:85%;"><i>(çewtiya koda zimanî, bnr. [[Modul:ziman/dane|*]])</i></span>' .. b.bike_kategori_naverok('Rûpelên bi çewtiyên koda zimanî')
	end
end

return p