Modul:girêdan

Ji Wîkîferheng
Jump to navigation Jump to search
Template-info.png Belgekirina modulê[nîşan bide] [biguherîne] [nûkirin]
Ev belge ji Modul:girêdan/belge hatiye girtin.

Bikaranîn[biguherîne]

Di nav Modulan de
g = require('Modul:girêdan').giredan
g(kod, peyv, cuda)

+ translîterasyon

g = require('Modul:girêdan').giredan_translit
g(kod, peyv, cuda, tr, wate)

Dema ku peyv tûne ye, girêdayî dernakevî.

g = require('Modul:girêdan').gR
gR(kod, peyv, cuda, tr, wate)
Şablon
  • {{g}}
--- bêkod
local p = {}

function bekod(str)
	str = str or ""
	str = mw.ustring.gsub(str, "<[^>]*>", "")
	str = mw.ustring.gsub(str, "'''?", "")
	return str
end

function p.bekod_sablon(frame)
	local str = frame.args[1] or ""
	str = mw.ustring.gsub(str, "<[^>]*>", "")
	str = mw.ustring.gsub(str, "'''?", "")
	return str
end

-- zim ([[Şablon:zim]])
function zim(kod, peyv)
	return '<span lang="' .. kod .. '" xml:lang="' .. kod ..'" class="lang-' .. kod .. '">' ..peyv .. '</span>'
end

-- translîterasyon
function g_translit(g_kod, g_peyv, g_tr)
	local title = tostring(g_kod .. '-translit')
	local translitLink = tostring('Modul:' .. title)
	
	if mw.title.new( title, 'Modul' ).exists == true then
		translit = require(translitLink).tr
	end
	
	if (g_tr and g_tr ~= '-' and g_tr ~= '') then
		return g_tr
	elseif (g_tr == '-') then
		return ''
	elseif ( (g_tr == '' or g_tr == nil) and translit and translit(g_peyv)) then
		return translit(g_peyv)
	else
		return ''
	end
end

-- girêdan
function p.giredan(kod, peyv, cuda)
	local grd
	
	if ( peyv == nil or peyv == '' ) then
		peyv = kod
		kod = 'ku'
	end
	
	if (peyv and kod) then
		if (cuda ~= nil and cuda ~= '') then
			grd = '[[' .. bekod(peyv) .. '#' .. kod .. '|' .. cuda .. ']]'
		else
			grd = '[[' .. bekod(peyv) .. '#' .. kod .. '|' .. peyv .. ']]'
		end
	end
	
	grd = zim(kod, grd)
	return grd
end

-- girêdan + translit + wate
function p.giredan_translit(kod, peyv, cuda, tr, wate)
	local grd_translit
	local gtranslit
	
	if ( peyv == nil or peyv == '' ) then
		peyv = kod
		kod = 'ku'
	end
	
	-- translît.
	if (cuda ~= nil and cuda ~= '') then
		gtranslit = g_translit(kod, cuda, tr)
	else
		gtranslit = g_translit(kod, peyv, tr)
	end

	if (gtranslit and gtranslit ~='') then
		if (wate and wate ~= '') then
			grd_translit = p.giredan(kod, peyv, cuda) .. '&nbsp;' .. '(<i>' .. gtranslit ..'</i>, "' .. wate .. '")'
		else
			grd_translit = p.giredan(kod, peyv, cuda) .. '&nbsp;' .. '(<i>' .. gtranslit .. ')</i>'
		end
	else
	-- wate û "tr" ne htiye nivîsandin
		if (wate and wate ~= '') then
			grd_translit = p.giredan(kod, peyv, cuda) .. '&nbsp;' .. '("' .. wate .. '")'
		else
			grd_translit = p.giredan(kod, peyv, cuda)
		end
	end
	
	return grd_translit
end

-- Dema ku peyv tûne ye, girêdayî dernakevî (bo şablonan hatiye çêkirin).
function p.gR(kod, peyv, cuda, tr, wate)
	
	if ( peyv == nil or peyv == '' ) then
		peyv = kod
		kod = 'ku'
	end

	peyv_bekod = bekod(peyv)
	
	if ( mw.title.new( peyv_bekod, mw.site.namespaces[0].name ).exists == true ) then
		return p.giredan_translit(kod, peyv, cuda, tr, wate)
	else
		cuda = '<span style="color:#222">' .. peyv .. '</span>'
		return p.giredan_translit(kod, peyv, cuda, tr, wate)
	end
end

-- Ji bo [[Şablon:g]]
function p.g(frame)
	local args = frame:getParent().args
	local kod  = args[1]
	local peyv  = args[2]
	local cuda  = args['cuda']
	local tr  = args['tr']
	local wate  = args['wate'] or args['w']
	
	return p.giredan_translit(kod, peyv, cuda, tr, wate)
end

-- Ji bo [[Şablon:g-]]
function p.gRes(frame)
	local args = frame:getParent().args
	local kod  = args[1]
	local peyv  = args[2]
	local cuda  = args['cuda']
	local tr  = args['tr']
	local wate  = args['wate'] or args['w']
	
	return p.gR(kod, peyv, cuda, tr, wate)
end


return p