Modul:Ghybutest
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)
.. ' <i>('.. ser_destpek_translit(kod, sc, nivisCuda) .. ' an '
.. ser_destpek_translit(kod, sc, nivisCuda2) .. ')</i>'
else
nivisaSer = ser_destpek(kod, sc, nivisCuda).. ' <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