Modul:rêziman
- Ev belge ji Modul:rêziman/belge hatiye girtin.
Bikaranîn
[biguhêre]Di nav şablonên da tê bikaranîn
{{#invoke:rêziman|cure|nav=}}
{{#invoke:rêziman|cure|nav=|kat=}}
Hemû parametreyan:
{{#invoke:rêziman|cure|nav=|navcure=|kat=|link=}}
Bo şablonan, bnr.
Çewtiyên koda zimanî:
Mijarên têkildar:
Şablon |
{{navdêr}} · {{serenav}} · {{lêker}} · {{rengdêr}} · {{hoker}} · {{cînav}} · {{girêdek}} · {{daçek}} · {{pêşdaçek}} · {{paşdaçek}} · {{bazinedaçek}} · {{artîkel}} · {{pirtik}} · {{baneşan}} · {{navgir}} · {{paşgir}} · {{pêşgir}} · {{reh}} · {{biwêj}} · {{hevok}} · {{gp}} (gotineke pêşiyan) · {{hejmar}} · {{tîp}} · {{sembol}} · {{kurtenav}} |
---|---|
Têkildar |
|
-- 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")
local m_scriptutils = require("Modul:script utilities")
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'},
['m/n'] = {navz = 'mê yan nêr', sernav = 'Zayend: mê yan nêr', kurte ='m/n'},
['g'] = {navz = 'giştî', sernav = 'Zayend: common genger', kurte ='g'},
['y'] = {navz = 'yekjimar', sernav = 'Jimar: yekjimar', kurte ='yj'},
['p'] = {navz = 'pirjimar', sernav = 'Jimar: pirjimar', kurte ='pj'},
['tp'] = {navz = 'tenê pirjimar', sernav = 'Jimar: tenê pirjimar', kurte ='tp'},
['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 p.cure(frame)
local args = frame:getParent().args
local kod = args[1]
local nivisCuda = args[2]
local tr = args['tr']
local sc = (args["sc"] and (require("Module:scripts").getByCode(args["sc"]) or error("The script code \"" .. args["sc"] .. "\" is not valid.")) or nil)
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 2
local n3 = args['n3'] -- forma nêr 3
local nt = args['nt'] -- forma nêtar
local p = args['p'] -- forma pirjimar
local p2 = args['p2'] -- forma pirjimar 2
local p3 = args['p3'] -- forma pirjimar 3
local y = args['y'] -- forma pirjimar
local np = args['np'] -- forma nêr ya pirjimar
local np2 = args['np2'] -- forma nêr ya pirjimar 2
local np3 = args['np3'] -- forma nêr ya pirjimar 3
local mp = args['mp'] -- forma mê ya pirjimar
local mp2 = args['mp2'] -- forma mê ya pirjimar 2
local mp3 = args['mp3'] -- forma mê ya pirjimar 3
local lk = args['lk'] -- forma lêker
local nd = args['nd'] -- forma navdêr
local niha = args['niha'] -- rehê dema niha
local niha2 = args['niha2'] -- rehê dema niha 2
local niha3 = args['niha3'] -- rehê dema niha 3
local bori = args['borî'] -- rehê dema borî
local bori2 = args['borî2'] -- rehê dema borî 2
local subj = args['subj'] -- rehê dema bilanî
local subj2 = args['subj2'] -- rehê dema bilanî 2
local komp = args['komp'] -- forma komparatîv
local sup = args['sûp'] -- forma sûperlatîv
local gir = args['gir'] -- tîpa girek
local hur = args['hûr'] -- tîpa hûrek
local form = args['form'] -- form=êrê, ji bo formên tewandiyên navdêr, lêker, rengdêr, hoker an cînavan
local nav = frame.args['nav']
local kat = frame.args['kat']
local nivisaSer = ''
local formatNivisaSer = ''
local ziman = ""
if not kod or kod == "" then
return "<span style='color:red;font-size:85%;'>'''Ji kerema xwe koda zimanî di parametreya 1 de lê zêde bikin.'''</span>"
.. b.bike_kategori_naverok('Rûpelên bi çewtiyên koda zimanî')
elseif m_languages.getByCode(kod) == nil then
return "<span style='font-size:85%;'>\"" .. kod .. "\"</span><span style='color:red;font-size:85%;'>''' nayê zanîn. Divê [[Wîkîferheng:Lîsteya zimanan|koda zimanî]] be.'''</span>"
.. b.bike_kategori_naverok('Rûpelên bi çewtiyên koda zimanî')
end
local lang = m_languages.getByCode(kod)
local ziman = lang:getCanonicalName()
----------------------------------------------------------------------------
----------------------------- ÇÊKIRINA SERNIVÎSÊ ---------------------------
----------------------------------------------------------------------------
local nivis
if nivisCuda then
nivis = nivisCuda
else
nivis = mw.title.getCurrentTitle().subpageText
end
if not sc then
sc = require("Modul:scripts").findBestScript(nivis, lang)
end
if mw.title.getCurrentTitle().nsText == "Jinûvesazî" then
local nivisJ = "*" .. nivis
nivisaSer = m_scriptutils.tag_text(nivisJ, lang, sc, "head", nil, id)
else
nivisaSer = m_scriptutils.tag_text(nivis, lang, sc, "head", nil, id)
end
--- translit
local translit
if (tr and tr ~= '-' and tr ~= '') then
nivisaSer = nivisaSer .. ' <i>(' .. tr .. ')</i>'
elseif (tr == '-') then
nivisaSer = nivisaSer
elseif sc then
if not (sc:getCode():find("Latn", nil, true) or sc:getCode() == "Latinx" or sc:getCode() == "None") and (not sc or sc:getCode() ~= "Imag") then
translit = lang:transliterate(require("Modul:links").remove_links(nivis), sc)
if translit then
-- Link to the transliteration entry for languages that require this
if translit and lang:link_tr() then
translit = require("Modul:links").full_link{
term = translit,
lang = lang,
sc = require("Modul:scripts").getByCode("Latn"),
tr = "-"
}
end
nivisaSer = nivisaSer .. ' <i>(' .. translit .. ')</i>'
else
nivisaSer = nivisaSer
end
else
nivisaSer = nivisaSer
end
else
nivisaSer = nivisaSer
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î}, ... }
--- rehên lêkeran (rehê dema niha, borî, subj.)
if (gir or hur or m or n or nt or y or p or np or mp or nd or lk or komp or sup or niha or bori or subj) then
local tab = {
{ {gir}, 'girek', 'tîp', tr_tab ={'girtr'} },
{ {hur}, 'hûrek', 'tîp', tr_tab ={'hûrtr'} },
{ {m, m2, m3}, 'forma mê', tr_tab = {'mtr', 'm2tr', 'm3tr'} },
{ {n, n2, n3}, 'forma nêr', tr_tab = {'ntr', 'n2tr', 'n3tr'} },
{ {nt}, 'forma nêtar', tr_tab = {'nttr', 'nt2tr', 'nt3tr'} },
{ {y}, 'forma yekjimar', tr_tab = {'ytr', 'y2tr', 'y3tr'} },
{ {p, p2, p3}, 'forma pirjimar', tr_tab = {'ptr', 'p2tr', 'p3tr'} },
{ {np, np2, np3}, 'forma nêr a pirjimar', tr_tab = {'nptr', 'np2tr', 'np3tr'} },
{ {mp, mp2, mp3}, 'forma mê ya pirjimar', tr_tab = {'mptr', 'mp2tr', 'mp3tr'} },
{ {nd}, 'forma navdêr', tr_tab ={} },
{ {lk}, 'forma lêker', tr_tab ={} },
{ {komp}, 'forma komparatîv', tr_tab ={'komptr'} },
{ {sup}, 'forma sûperlatîv', tr_tab ={'sûptr'} },
{ {niha, niha2, niha3}, 'rehê dema niha', tr_tab ={'nihatr', 'niha2tr', 'niha3tr'} },
{ {bori, bori2}, 'rehê dema borî', tr_tab ={'borîtr', 'borî2tr'} },
{ {subj, subj2}, 'rehê dema bilanî', tr_tab ={'subj', 'subj2tr'} }
}
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),
accel = {form = v[2], lemma = nivisCuda, gender = z, translit = args[tab[i].tr_tab[j]], lemma_translit = tr},
tr = args[tab[i].tr_tab[j]],
}
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
-- Ji bo hiyeroglîfan: [[phab:T210695]] / [[Gotûbêja_MediaWiki:Common.js#phab:T210695]]
if kod == 'egy' then nivisaSer = '<p>' .. nivisaSer .. '</p>' 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
local naveRupele = mw.title.getCurrentTitle().subpageText
local is_reconstructed = mw.title.getCurrentTitle().nsText == "Jinûvesazî"
if is_reconstructed then
default_head = require("Modul:utilities").plain_gsub(naveRupele, kod .. "/", "")
else
default_head = naveRupele
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 )
elseif (nav == 'navgir' or nav == 'paşgir') then
naveRupele = naveRupele:gsub('^-', "")
kat = b.bike_kategori_naverok(b.ucfirst(nav) .. ' bi ' .. ziman, naveRupele)
else
if mw.title.getCurrentTitle().nsText == "Jinûvesazî" then
kat = b.bike_kategori_naverok(b.ucfirst(nav) .. ' bi ' .. ziman, default_head)
else
kat = b.bike_kategori_naverok(b.ucfirst(nav) .. ' bi ' .. ziman )
end
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',
['g'] = 'giştî', -- common gender (c)
['p+'] = 'ku bi gelemperî pirjimar in',
['j'] = 'jimarbar',
['j+'] = 'jimarbar',
['nj+'] = 'nejimarbar',
['nj'] = 'nejimarbar',
}
if not form then -- heke form=erê/- be kategorî neke
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 (z == 'm/n') then
kat = kat .. b.bike_kategori_naverok(b.ucfirst(nav) .. 'ên mê bi ' .. ziman )
kat = kat .. b.bike_kategori_naverok(b.ucfirst(nav) .. 'ên nêr 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
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
-- ji bo [[:Kategorî:Palîndrom]]
if mw.title.getCurrentTitle().nsText ~= "Jinûvesazî" and mw.ustring.len(mw.title.getCurrentTitle().subpageText)>1
and require('Modul:palindromes').is_palindrome(
mw.title.getCurrentTitle().subpageText, lang, sc
) then
kat = kat .. b.bike_kategori_naverok('Palîndrom bi ' .. ziman )
end
-- Kategorî ji bo zimanê kurmancî
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 ('.. ziman .. ')')
end
-- Lêkerên kurmancî bê cure.
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 ('.. ziman .. ')')
end
-- Lêkerên kurmancî li gor paşgirê.
if (kod == 'ku' and nav == 'lêker' and form ~= 'erê' and sc ~= 'Arab') then
pagename = mw.title.getCurrentTitle().text
suffix_verb = {'în', 'andin', 'endin', 'tin', 'in', 'an', 'ûn', 'n'}
if c then
cure_ku = mw.text.split(c, '-')
else
cure_ku = ''
end
for i, suffix in ipairs(suffix_verb) do
if mw.ustring.find(pagename, suffix .. '$') then
if mw.ustring.find(pagename, ' ') then
kat = kat .. b.bike_kategori_naverok('Lêkerên hevedudanî yên ' .. ziman .. ' bi paşgira -' .. suffix)
elseif cure_ku[1] == 'p' or cure_ku[2] == 'p' then
kat = kat .. b.bike_kategori_naverok('Lêkerên pêkhatî yên ' .. ziman .. ' bi paşgira -' .. suffix)
else
kat = kat .. b.bike_kategori_naverok('Lêkerên ' .. ziman .. ' bi paşgira -' .. suffix)
end
break
elseif i == #suffix_verb then
kat = kat .. b.bike_kategori_naverok('Lêkerên ' .. ziman .. ' bi çewtiya paşgirê')
end
end
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