Wîkîferheng kuwiktionary https://ku.wiktionary.org/wiki/Destp%C3%AAk MediaWiki 1.47.0-wmf.15 case-sensitive Medya Taybet Gotûbêj Bikarhêner Gotûbêja bikarhêner Wîkîferheng Gotûbêja Wîkîferhengê Wêne Gotûbêja wêneyî MediaWiki Gotûbêja MediaWiki Şablon Gotûbêja şablonê Alîkarî Gotûbêja alîkariyê Kategorî Gotûbêja kategoriyê Pêvek Gotûbêja pêvekê Nimînok Gotûbêja nimînokê Portal Gotûbêja portalê Tewandin Gotûbêja tewandinê Jinûvesazî Gotûbêja jinûvesaziyê TimedText TimedText talk Modul Gotûbêja modulê Event Event talk jin 0 2964 6329795 6328312 2026-08-12T22:40:54Z Wikihez 7344 6329795 wikitext text/x-wiki {{bnr-h|jîn|Jîn}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36368 (kur)-Dildadil-jin.wav|Deng|dever=Amed}} * {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-jin.wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr === [[Wêne:Collage of famous women (cropped).jpg|thumb|Çend '''jinên''' navdar:<br> {{w|Sacagawea}}, {{w|Marie Curie}}, {{w|Marilyn Monroe}}, {{w|Mata Hari}}, {{w|Wu Zetian}}, {{w|Jeanne d'Arc}}, {{w|Nefertîtî}}, {{w|Indira Gandhi}} ]] {{navdêr|ku|z=m}} # Mirovên [[mê]] (bi taybetî yên [[mezin]]). #: {{hevmaneyên peyvê|ku|xanim|afret|kuflet|kulfet|pîrek}} #: {{jornav|ku|mirov}} #: {{mk|ku|[[jin]]eke [[ciwan]] / [[cehêl]], [[jin]]eke [[navsere]], [[jin]]eke [[pîr]]}} #: {{mk|ku|Du '''jin''' û sê zelam bûn.}} #: {{mk|ku|Êdî ne [[keçik]] e, bûye [[jin]]'''.}} #* {{jêder-pirtûk|ku|jêgirtin=Dîtin ko şer kete nêzûka malan, ew '''jin''' jî bi wan istûnkonan diçine şerî û yariya mêran dikin.|nivîskar=Mele Mehmûdê Bayezîdî|amadekar=Jan Dost|sernav=Adat û Rusûmatnameê Ekradiye|weşanxane=Weşanxaneya Nûbihar|sal=2010|rûpel=46|isbn=9789944360678}} # Kesa [[zewicî]], kesa [[şû]]kirî, [[hevser]]a [[mêr]]ekî, [[hevjîn]]a [[zelam]]ekî. #: {{hevmaneyên peyvê|ku|kebanî|kevanî|bermalî|pîrek|kuflet|kulfet|zewce}} #: {{jornav|ku|hevjîn|hevser|jinûmêr}} #: {{mk|ku|Ew û '''jina''' xwe hatin.}} #: {{mk|ku|'''Jina''' wî ne kurd e.}} #: {{mk|ku|'''Jina''' Azadî keça Şemsedînî ye.}} #* {{jêder|ku|jêgirtin=Wî kêfxweşî û bextewerî bi '''jina''' xwe re nedîtibû, lê bi awayekî giştî, ew hînî wê bûbû û jiyana xwe wilo pê re derbas dikir.|''[[w:Biyanî|Biyanî]]'', [[w:Albert Camus|Albert Camus]], Weşanên [[w:Nûdem|Nûdem]]}} ==== Ji wêjeya klasîk ==== * {{jêder|ku|{{Jêgirtin/Ehmedê Xanî/Mem û Zîn}}|jêgirtin=Şiklê ku we dîtî bêmeal e<br />Meyla we bi qismê '''jin''' mehal e<br />Meyla beşerî beşer divêtin}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|ژن}} * {{ku-kr|жьн}} ==== Formên alternatîv ==== {{kol3|ku |{{herwiha|ku|jink}} |{{herwiha|ku|jinik}} |{{herwiha|ku|jinkok|w=ji bo jinên nejidil yan zahirî, jinên ku karên xwe nejidil dikin}} }} ==== Jêrnav ==== {{kol3|ku |{{g|ku|bîjin}} |{{g|ku|dayik}} |{{g|ku|hewî}} |{{g|ku|pîrejin}} }} ==== Jê ==== {{kol3|ku|cure=Jê |jinane |jinbaz |jinbazî |jinik |jinî |jinkî |jinnas |jinnasî |jinparêz |jinparêzî |jinperist |jinperistî |jinperwer |jinperwerî |jinûmêr |jinûmêrî |jinzan |jinzanî }} ==== Etîmolojî ==== Ji {{mîr|ine-pro|ku|*gʷḗn}}, forma çemandî ya {{q|ine-pro|*gʷnéh₂-}}. Hevreha {{hv|ckb|ژن‎}}, [[kurdiya başûrî]] ''jin'', lekî ''jin, [[jen]]'', goranî/hewramî ''[[jenî]]'', zazakî ''[[cenî]], [[cinî]]'', partî [[𐫋𐫗‎]] (j'n), belûçî {{g|bal|جن|tr=cen}}, {{hv|fa|زن|tr=zen}}, tacikî [[зан]] (zan), {{hv|pal|𐫉𐫗‎|tr=zen}}, bextiyariya kevn [[ζινο]] (zino), {{hv|ae|𐬘𐬇𐬥𐬌‎|tr=jə̄ni, /ceni/}} û [[𐬘𐬀𐬌𐬥𐬌]]‎ (jaini, /ceyni/) û [[𐬘𐬄𐬥𐬌‎]] (jąni, /ceni/) û [[𐬔𐬆𐬥𐬁‎]] (gənā) û [[𐬖𐬆𐬥𐬁]]‎ (γənā), {{hv|sa|जनि}} (jáni), {{hv|os|зæнæг|tr=[[zarok]], [[dûndeh]]}}, {{hv|ru|жена́ }} (žená, /jêna/), {{hv|bg|жена́ |tr=žená, /jêna/}}, çekî û slovakî ''[[žena]]'', serbokroatî ''[[жѐна]] / [[žèna]]'', {{hv|pl|żona}}, {{hv|grc|γυνή}} (gunê), {{hv|hy|կին}} (kin), {{hv|sv|kvinna}}, {{hv|no|kone}}, {{hv|da|kvinde}}, {{hv|en|queen|w=[[şabanû]], [[qiralîçe]]}}... Berovajî baweriya berbelav, ne hevreha peyvên ''[[jîn]], [[jiyan]]'' e. Hevmaneyên wê ''[[afret]], [[kulfet]]/[[kuflet]], [[hurmet]]'' ji erebî hatine wergirtin û wek li cihê peyva "jin" hatine bikaranîn ji ber ku "jin" peyveke nîv-[[tabû]] ye/bû. {{veşêre-ser|Çavkanî}} ;{{biçûk| * {{Chyet}} * {{Horn}} * {{Lubotsky}} * {{MacKenzie}} * {{Pokorny}} * {{The Tower of Babel}} * {{Tsabolov}} * {{Watkins}} }} {{veşêre-bin}} ==== Herwiha binêre ==== {{stûn| * {{g|ku|mêr}} * {{g|ku|zelam}} * {{g|ku|dayik}} * {{g|ku|keç}} * {{g|ku|qîz}} * {{g|ku|xama}} * {{g|ku|zerî}} }} ==== Bi zaravayên din ==== * {{Z|ckb}}: jin, afret * {{Z|sdh}}: jin * {{Z|lki}}: jin, [[jen]] * {{Z|hac}}: {{W-|hac|jenî|sc=Latn}} * {{Z|zza}}: {{W-|zza|cenî}}, [[cinî]] ==== Werger ==== {{werger-ser|mirovên mê (1)}} * {{Z|ab}}: {{W-|ab|аԥҳәыс}} * {{Z|aca}}: {{W-|aca|íina}}, {{W-|aca|íineɻu}} * {{Z|ace}}: {{W-|ace|inong}} * {{Z|acu}}: {{W-|acu|nuwa}} * {{Z|ade}}: {{W-|ade|ɛna}} * {{Z|ady}}: {{W-|ady|бзылъфыгъ}} * {{Z|aa}}: {{W-|aa|barra}} * {{Z|af}}: {{W+|af|vrou|m}} * {{Z|agd}}: {{W-|agd|anaati}} * {{Z|aif}}: {{W-|aif|wukora}} * {{Z|agt}}: {{W-|agt|babbay}}, {{W-|agt|babae}} * {{Z|aht}}: {{W-|aht|ts'akae}} * {{Z|mmq}}: {{W-|mmq|abi}} * {{Z|akk}}: {{W-|akk|𒊩|m|tr=sinništu, MUNUS}} * {{Z|tpx}}: {{W-|tpx|aʔgu}} * {{Z|akl}}: {{W-|akl|babaye|cuda=babáye}} * {{Z|akt}}: {{W-|akt|elim}} * {{Z|miw}}: {{W-|miw|apäki}} * {{Z|bey}}: {{W-|bey|sakwoto}} * {{Z|alw}}: {{W-|alw|máncu}} * {{Z|akz}}: {{W-|akz|tayyi}} * {{Z|alk}}: {{W-|alk|akan}}, {{W-|alk|kan}} * {{Z|alh}}: {{W-|alh|girija}} * {{Z|sq}}: {{W+|sq|grua|m}}, {{W+|sq|femër|m}} * {{Z|de}}: {{W+|de|Frau|m}}, {{W+|de|Weib|nt}}, {{W+|de|Weibchen|nt}}, {{W+|de|Weibsperson|m}} *: {{Z|gmw-rfr}}: {{W-|gmw-rfr|Fraa}} * {{Z|an}}: {{W+|an|muller|m}} * {{Z|akr}}: {{W-|akr|p̈ira}} * {{Z|arc}}: *: {{Z|syc}}: {{W-|syc|ܐܢܬܬܐ|m|tr=ʔantətɑʔ}} * {{Z|as}}: {{W-|as|মাইকী মানুহ}} * {{Z|ay}}: {{W-|ay|palla}} * {{Z|eu}}: {{W+|eu|andre}}, {{W+|eu|emakume}} * {{Z|ba}}: {{W-|ba|ҡатын}} * {{Z|bn}}: {{W+|bn|নারী}}, {{W+|bn|মহিলা}} * Berberî: *: {{Z|tzm}}: {{W-|tzm|ⵜⴰⵎⵟⵟⵓⵜ|m}} *: {{Z|shi}}: {{W-|shi|tamɣart|m}}, {{W-|shi|tawtmt|m}} * {{Z|bi}}: {{W-|bi|woman}}, {{W-|bi|wuman}} * {{Z|br}}: {{W+|br|maouez|m}} * {{Z|mbb}}: {{W-|mbb|bahi}} * {{Z|bg}}: {{W+|bg|жена́|m}} * {{Z|my}}: {{W+|my|မိန်းမ}}, {{W+|my|အမျိုးသမီး}} * {{Z|ce}}: {{W-|ce|зуда}} * {{Z|cs}}: {{W+|cs|žena|m}} * {{Z|ny}}: {{W-|ny|mkazi}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|女人|tr=neoi5 jan4-2}}, {{W-|yue|女性|tr=neoi5 sing3}} *: {{Z|dng}}: {{W-|dng|нүжын}}, {{W-|dng|фунү}} *: {{Z|hak}}: {{W-|hak|女人|tr=ńg-ngìn}} *: {{Z|cmn}}: {{W+|cmn|婦女|tr=fùnǚ}}, {{W+|cmn|女人|tr=nǚrén}}, {{W+|cmn|女性|tr=nǚxìng}}, {{W+|cmn|女的|tr=nǚ de}} *: {{Z|cdo}}: {{W-|cdo|女界|tr=nṳ̄-gái}} *: {{Z|nan}}: {{W+|nan|查某人|tr=cha-bó͘-lâng}}, {{W+|nan|女人|tr=lí-jîn}}, {{W+|nan|女性|tr=lú-sèng, lí-sèng}} *:: Teochew: {{W+|nan|查某人|tr=za1 bhou2 nang5}}, {{W-|nan|姿娘|tr=ze1 nion5}} *: {{Z|wuu}}: {{W-|wuu|女人}}, {{W-|wuu|女性}} * {{Z|cv}}: {{W-|cv|хӗрарӑм}} * {{Z|gmw-jdt}}: {{W-|gmw-jdt|vrow}} * {{Z|dv}}: {{W-|dv|އަންހެންމީހާ}} * {{Z|id}}: {{W+|id|perempuan}}, {{W+|id|wanita}} * {{Z|ar}}: {{W+|ar|اِمْرَأَة|m}} *: {{Z|acw}}: {{W-|acw|حُرْمة|m|tr=ḥurma}} *: {{Z|apc}}: {{W-|apc|مرة|m|tr=mara}} *: {{Z|arz}}: {{W-|arz|ست|m|tr=sitt}} *: {{Z|ary}}: {{W-|ary|مراة|m|tr=mrā}} *: {{Z|ajp}}: {{W-|ajp|مرة|m|tr=mara}}, {{W-|ajp|مرأة|m|tr=marʔa}}, {{W-|ajp|ست|m|tr=sitt}} * {{Z|hy}}: {{W+|hy|կին}} * {{Z|ee}}: {{W-|ee|nyɔnu|cuda=nyɔ́nu}} * {{Z|fa}}: {{W+|fa|زَن|tr=zan}}, {{W+|fa|خانُم|tr=xânom}}, {{W+|fa|خاتون|tr=xatūn}} * {{Z|fo}}: {{W+|fo|kona|m}} * {{Z|fj}}: {{W+|fj|marama}} * {{Z|fi}}: {{W+|fi|nainen}} * {{Z|fr}}: {{W+|fr|femme|m}} *: {{Z|frm}}: {{W-|frm|femme|m}}, {{W-|frm|dame|m}} * {{Z|fy}}: {{W+|fy|frou}}, {{W+|fy|wiif}} * {{Z|ff}}: {{W-|ff|debbo}} * {{Z|gd}}: {{W+|gd|bean|m}}, {{W-|gd|boireannach|n}} * {{Z|gl}}: {{W+|gl|muller}} * {{Z|gu}}: {{W+|gu|સ્ત્રી}} * {{Z|gul}}: {{W-|gul|ooman}} * {{Z|gnn}}: {{W-|gnn|baṯami}} * {{Z|ka}}: {{W+|ka|ქალი} * {{Z|gn}}: {{W+|gn|kuña}} * {{Z|ht}}: {{W-|ht|fanm}} * {{Z|hss}}: {{W-|hss|teṭ}} * {{Z|haw}}: {{W-|haw|wahine}} * {{Z|ha}}: {{W-|ha|mace}}, {{W-|ha|mata}} * {{Z|xed}}: {{W-|xed|marakw}} * {{Z|hid}}: {{W-|hid|mia}} * {{Z|mba}}: {{W-|mba|bahe}} * {{Z|hi}}: {{W+|hi|महिला|m}}, {{W+|hi|नारी|m}}, {{W+|hi|स्त्री|m}}, {{W+|hi|औरत|m}}, {{W+|hi|जनि|m}}, {{W-|hi|ख़ातून|m}}, {{W-|hi|ज़न|m}}, {{W-|hi|ज़नानी|m}} * {{Z|nl}}: {{W+|nl|vrouw|m}} * {{Z|tts}}: {{W-|tts|ญิง}} * {{Z|szv}}: {{W-|szv|mwaitu}} * {{Z|he}}: {{W+|he|אישה|m|tr=ishá|cuda=אישה \ אִשָּׁה}} * {{Z|io}}: {{W+|io|muliero}}, {{W+|io|homino}} * {{Z|inz}}: {{W-|inz|eneq}} * {{Z|aig}}: {{W-|aig|uman}} * {{Z|en}}: {{W+|en|woman}} * {{Z|izh}}: {{W-|izh|nain}} * {{Z|ia}}: {{W+|ia|femina}} * {{Z|iu}}: {{W-|iu|ᐊᕐᓇᖅ}}, {{W-|iu|arnaq}} * {{Z|ass}}: {{W-|ass|ɑt}} * {{Z|ill}}: {{W-|ill|babai}} * {{Z|irk}}: {{W-|irk|/ameeni|m}} * {{Z|ga}}: {{W+|ga|bean|m}} * {{Z|isd}}: {{W-|isd|babay|cuda=babáy}} * {{Z|itv}}: {{W-|itv|babay|cuda=babáy}} * {{Z|itz}}: {{W-|itz|ixchʼup}} * {{Z|iwm}}: {{W-|iwm|wik}} * {{Z|ixl}}: {{W-|ixl|ixoj}} * {{Z|uiv}}: {{W-|uiv|okɑs}} * {{Z|ijc}}: {{W-|ijc|eré}} * {{Z|ja}}: {{W+|ja|女の人|tr=おんなのひと, onna no hito}}, {{W+|ja|女|tr=おんな, onna}}, {{W+|ja|女性|tr=じょせい, josei}}, {{W+|ja|女人|tr=にょにん, nyonin}} * {{Z|jra}}: {{W-|jra|đah-kơmơi}} * {{Z|ojv}}: {{W-|ojv|hine}} * {{Z|jv}}: {{W+|jv|wong wadon}}, {{W+|jv|wedok}}, {{W+|jv|wanita}} * {{Z|jeb}}: {{W-|jeb|shaya'}}, {{W-|jeb|ku'a'per}} * {{Z|jhi}}: {{W-|jhi|baboʔ}} * {{Z|tow}}: {{W-|tow|ˀówa}} * {{Z|jig}}: {{W-|jig|nayu}} * {{Z|kl}}: {{W-|kl|arnaq}} * {{Z|kn}}: {{W+|kn|ನಾರಿ}}, {{W+|kn|ಸ್ತ್ರೀ}}, {{W+|kn|ಹೆಂಗಸು}} * Keşmîrî: {{Z|ks}}: {{W-|ks|زَنان|m}} {{W-|ks|‍ज़नान|m}} * {{Z|kkz}}: {{W-|kkz|gedeni}} * {{Z|gva}}: {{W-|gva|vavina}} * {{Z|khs}}: {{W-|khs|kesale}} * {{Z|csb}}: {{W-|csb|białka|m}} * {{Z|roa-oca}}: {{W-|roa-oca|dona|m}} * {{Z|ca}}: {{W+|ca|dona|m}} * {{Z|chc}}: {{W-|chc|inya}} * {{Z|nai-kat}}: {{W-|nai-kat|aqakílak}} * {{Z|ktw}}: {{W-|ktw|tc'ek}} * {{Z|xaw}}: {{W-|xaw|momoˀo}} * {{Z|ktx}}: {{W-|ktx|šampï}} * {{Z|ky}}: {{W+|ky|аял}} * {{Z|kiy}}: {{W-|kiy|ko}} * {{Z|kii}}: {{W-|kii|cakwákt}} * {{Z|ki}}: {{W-|ki|mũtumia|c1}} * {{Z|kij}}: {{W-|kij|vivila}} * {{Z|si}}: {{W-|si|ගෑනි}} * {{Z|kge}}: {{W-|kge|bɑy}}, {{W-|kge|obɑy}}, {{W-|kge|sobɑy}} * {{Z|bkm}}: {{W-|bkm|wi}} * {{Z|kvh}}: {{W-|kvh|ata wine}} * {{Z|koa}}: {{W-|koa|fafni}} * {{Z|nai-knm}}: {{W-|nai-knm|kihinapxik|cuda=kihínàpxī́k}} * {{Z|coe}}: {{W-|coe|pãi-o}}, {{W-|coe|'romi-o}} * {{Z|ko}}: {{W+|ko|여성}}, {{W+|ko|계집}}, {{W+|ko|여자}}, {{W+|ko|녀성}}, {{W+|ko|녀자}}, {{W+|ko|여인}}, {{W+|ko|녀인}} * {{Z|kw}}: {{W-|kw|benyn}} * {{Z|bpr}}: {{W-|bpr|libun}} * {{Z|co}}: {{W+|co|donna|m}}, {{W-|co|ronna|m}}, {{W-|co|lonna|m}} * {{Z|zko}}: {{W-|zko|alat}} * {{Z|lou}}: {{W-|lou|fam}}, {{W-|lou|fenm}} * {{Z|icr}}: {{W-|icr|uman}} * {{Z|vkp}}: {{W-|vkp|mulɛr}} * {{Z|mcm}}: {{W-|mcm|muleh}}, {{W-|mcm|mulé}} * {{Z|cr}}: {{W-|cr|ᐃᐢᑫᐧᐤ}} * {{Z|mus}}: {{W-|mus|hoktē}} * {{Z|kxb}}: {{W-|kxb|sì}} * {{Z|ykn}}: {{W-|ykn|ʔɿ⁵⁵nɯ⁵⁵}} * {{Z|yku}}: {{W-|yku|zua²¹ma²¹zu²¹}} * {{Z|qua}}: {{W-|qua|waxˀó}} * {{Z|qyp}}: {{W-|qyp|squah}} * {{Z|nee}}: {{W-|nee|thaamwa}} * {{Z|kue}}: {{W-|kue|ambu}} * {{Z|kut}}: {{W-|kut|paⱡki}} * {{Z|qui}}: {{W-|qui|wisatʼsopat|cuda=wisatʼsó·pat}} * {{Z|kwd}}: {{W-|kwd|geni}} * {{Z|xwa}}: {{W-|xwa|tay}} * {{Z|kwe}}: {{W-|kwe|is}} * {{Z|kmo}}: {{W-|kmo|miːma}} * {{Z|lbb}}: {{W-|lbb|hane}} * {{Z|lld}}: {{W-|lld|femena|m}}, {{W-|lld|ëila|m}} * {{Z|lad}}: {{W-|lad|mujer|m}} * {{Z|lhu}}: {{W-|lhu|mâ}} * {{Z|lkt}}: {{W-|lkt|wíŋyaŋ}} * {{Z|lay}}: {{W-|lay|jɯ̃³³jĩ²¹}} * {{Z|lmy}}: {{W-|lmy|lawai}} * {{Z|lev}}: {{W-|lev|manne}} * {{Z|ljp}}: {{W-|ljp|bɑi}} * {{Z|alo}}: {{W-|alo|rupae}} * {{Z|ltg}}: {{W-|ltg|sīvīte|m}} * {{Z|la}}: {{W+|la|fēmina|m}}, {{W+|la|mulier|m}} * {{Z|lv}}: {{W+|lv|sieviete|m}} * {{Z|lvk}}: {{W-|lvk|aira}} * {{Z|lbx}}: {{W-|lbx|bawe}} * {{Z|lo}}: {{W+|lo|ຜູ້ຍິງ}} * {{Z|roa-ole}}: {{W-|roa-ole|muyer}} * {{Z|roa-leo}}: {{W-|roa-leo|muyer|m}} * {{Z|lep}}: {{W-|lep|ᰊᰣᰤᰪ}} * {{Z|lez}}: {{W-|lez|паб}} * {{Z|ljl}}: {{W-|ljl|fai}} * {{Z|lil}}: {{W-|lil|s-yáqcaˀ}}, {{W-|lil|s-múɬac}} * {{Z|lmc}}: {{W-|lmc|uginy}} * {{Z|ln}}: {{W+|ln|mwasi}} * {{Z|lij}}: {{W-|lij|donna|m}} * {{Z|li}}: {{W+|li|vrouw|m}}, {{W-|li|vrommesj|nt}} * {{Z|lsd}}: {{W-|lsd|בכתא}} * {{Z|lt}}: {{W+|lt|moteris|m}} * {{Z|liv}}: {{W-|liv|nai}} * {{Z|lht}}: {{W-|lht|leqëvine}} * {{Z|lmo}}: {{W-|lmo|dona|m}}, {{W-|lmo|femna|m}} * {{Z|los}}: {{W-|los|pihin}} * {{Z|roa-lor}}: {{W-|roa-lor|fomme}} * {{Z|uvl}}: {{W-|uvl|héi}} * {{Z|loj}}: {{W-|loj|pein}} * {{Z|vnk}}: {{W-|vnk|nene}} * {{Z|khb}}: {{W-|khb|ᦍᦲᧂ}} * {{Z|lg}}: {{W-|lg|omukazi|c1}} * {{Z|lgg}}: {{W-|lgg|oku}} * {{Z|lb}}: {{W+|lb|Fra|m}} * {{Z|mkz}}: {{W-|mkz|tufurae}} * {{Z|mk}}: {{W+|mk|же́на|m}} * {{Z|mg}}: {{W+|mg|barera}} * {{Z|sai-mal}}: {{W-|sai-mal|ajente}} * {{Z|ml}}: {{W+|ml|സ്ത്രീ}}, {{W+|ml|പെണ്ണ്}}, {{W+|ml|വനിത}}, {{W+|ml|മഹിള}} * {{Z|pqm}}: {{W-|pqm|ehpit}} * {{Z|ms}}: {{W+|ms|wanita}} * {{Z|mgq}}: {{W-|mgq|lyantanda}} * {{Z|mt}}: {{W+|mt|mara}} * {{Z|gv}}: {{W-|gv|ben|m}} * {{Z|zmr}}: {{W-|zmr|peku}} * {{Z|sai-mar}}: {{W-|sai-mar|chiguat}} * {{Z|mr}}: {{W-|mr|बाइको|m}}, {{W+|mr|स्त्री|m}} * {{Z|mrt}}: {{W-|mrt|mala}} * {{Z|mrc}}: {{W-|mrc|sny'ak}} * {{Z|mrq}}: {{W-|mrq|vehine}} * {{Z|mqm}}: {{W-|mqm|vehine}} * {{Z|sai-msk}}: {{W-|sai-msk|ihntá}} * {{Z|wam}}: {{W-|wam|squàws}} * {{Z|mat}}: {{W-|mat|xúwi}} * {{Z|met}}: {{W-|met|hain}} * {{Z|mcf}}: {{W-|mcf|chido}} * {{Z|mjk}}: {{W-|mjk|pain}} * {{Z|mhl}}: {{W-|mhl|emeria}} * {{Z|mbl}}: {{W-|mbl|ũn}} * {{Z|mop}}: {{W-|mop|chʼup}} * {{Z|yua}}: {{W-|yua|koʼolel}}, {{W-|yua|chʼuup}} * {{Z|ayz}}: {{W-|ayz|fai}} * {{Z|mzn}}: {{W-|mzn|زنا|tr=zenā}} * {{Z|mna}}: {{W-|mna|waine}} * {{Z|gun}}: {{W-|gun|kunha}} * {{Z|hu}}: {{W+|hu|nő}}, {{W+|hu|asszony}} * {{Z|mei}}: {{W-|mei|ìddì}} * {{Z|hna}}: {{W-|hna|wàl}} * {{Z|hto}}: {{W-|hto|rɯ́-ŋo}} * {{Z|vmg}}: {{W-|vmg|vavina}} * {{Z|egy}}: {{W-egy|zt|m|h=z:t*B1}}, {{W-egy|ḥmt|m|h=N41:t-B1}}, {{W-egy|zt-ḥmt|m|h=z:t:N41*t-B1}} * {{Z|lmw}}: {{W-|lmw|pôtsi}}, {{W-|lmw|p̓ócci}} * {{Z|mxb}}: {{W-|mxb|ñaha}} * {{Z|mvi}}: {{W-|mvi|midun}} * {{Z|crg}}: {{W-|crg|faam}} * {{Z|mic}}: {{W-|mic|e'pit}}, {{W-|mic|ebit}} * {{Z|min}}: {{W-|min|padusi}} * {{Z|mwl}}: {{W-|mwl|mulhier}} * {{Z|mjg-mgl}}: {{W-|mjg-mgl|[[nine]] [[kun]]}} * {{Z|buy}}: {{W-|buy|nɔ̀làkán}} * {{Z|omc}}: {{W-|omc|mecherque}} * {{Z|xpq}}: {{W-|xpq|sqá}} * {{Z|mox}}: {{W-|mox|vavine}} * {{Z|mnd}}: {{W-|mnd|wanzet}} * {{Z|mn}}: {{W+|mn|эм}}, {{W+|mn|эхнэр}}, {{W-|mn|эмэгтэй хүн}}, {{W+|mn|эмэгтэй}} * Nahwatlî: *: Klasîk: {{W-|nci|cihuātl}} *: {{Z|nhx}}: {{W-|nhx|sihua̱'}} *: {{Z|ncj}}: {{W-|ncj|sihuatl}} * {{Z|wkd}}: {{W-|wkd|mafani}} * {{Z|npl}}: {{W-|npl|tekomare}} * {{Z|nak}}: {{W-|nak|tavile}} * {{Z|nss}}: {{W-|nss|pihin}} * {{Z|naq}}: {{W-|naq|darekhues}} * {{Z|nab}}: {{W-|nab|txu¹su²}} * {{Z|gld}}: {{W-|gld|эктэнӣ}} * {{Z|nnt}}: {{W-|nnt|ochquau}} * {{Z|nap}}: {{W-|nap|femmena|m}} * {{Z|xnt}}: {{W-|xnt|squaw}} * {{Z|ncn}}: {{W-|ncn|pehin}} * {{Z|nv}}: {{W-|nv|asdzáán}}, {{W-|nv|asdzą́ą́}} * {{Z|nwr}}: {{W-|nwr|aweta}} * {{Z|nwa}}: {{W-|nwa|hihi'i}} * {{Z|nsn}}: {{W-|nsn|kuah}} * {{Z|yrk}}: {{W-|yrk|не}} * {{Z|ne}}: {{W+|ne|आइमाई|m}}, {{W+|ne|स्त्री|m}} * {{Z|no}}: *: {{Z|nb}}: {{W+|nb|kvinne|n|m}}, {{W+|nb|dame|n|m}} *: {{Z|nn}}: {{W+|nn|kvinne|m}}, {{W+|nn|dame|m}} * {{Z|ntw}}: {{W-|ntw|ekening}} * {{Z|onw}}: {{W-|onw|ⲉⲧ̅ⲧ-}} * {{Z|kcn}}: {{W-|kcn|marya}} * {{Z|mbr}}: {{W-|mbr|nɨ⁴mat¹}} * {{Z|nkr}}: {{W-|nkr|hahine}} * {{Z|paa-nun}}: {{W-|paa-nun|oe}} * {{Z|nyn}}: {{W-|nyn|omukazi|c1}} * {{Z|nzd}}: {{W-|nzd|okaar|cuda=okáàr}} * {{Z|ood}}: {{W-|ood|'oks}}, {{W-|ood|'uwĭ}} * {{Z|obi}}: {{W-|obi|tsiyuʟ}} * {{Z|oca}}: {{W-|oca|maami}} * {{Z|cst}}: {{W-|cst|mukurma}} * {{Z|css}}: {{W-|css|mucurma}} * {{Z|oj}}: {{W-|oj|ikwe}} * {{Z|okn}}: {{W-|okn|女子|tr=をぅなぐ, wunagu, いぃなぐ, yinagu}} * {{Z|ryu}}: {{W-|ryu|女子|tr=ゐなぐ, winagu}} * {{Z|pro}}: {{W-|pro|domna}} * {{Z|oc}}: {{W+|oc|femna|m}} * {{Z|ong}}: {{W-|ong|moːto}} * {{Z|one}}: {{W-|one|yakukwé}} * {{Z|bxe}}: {{W-|bxe|ˀayma}} * {{Z|onn}}: {{W-|onn|ido}} * {{Z|ore}}: {{W-|ore|dõbĩ-o}}, {{W-|ore|nomio ago}} * {{Z|or}}: {{W-|or|ଯୁବା}}, {{W-|or|ସ୍ତ୍ରୀ}} * {{Z|om}}: {{W-|om|dubarti}} * {{Z|osa}}: {{W-|osa|wakˀó}} * {{Z|os}}: {{W-|os|ус}} * {{Z|ota}}: {{W-|ota|خاتون|tr=hatun}}, {{W-|ota|قادین|tr=qadin}}, {{W-|ota|زن|tr=zen}}, {{W-|ota|عورت|tr=avret}} * {{Z|uta}}: {{W-|uta|ɔkwɑs}} * {{Z|sai-oto}}: {{W-|sai-oto|ugua}}, {{W-|sai-oto|ondua}} * {{Z|ug}}: {{W+|ug|ئايال}} * {{Z|uz}}: {{W+|uz|ayol}} * {{Z|pma}}: {{W-|pma|ahin}} * {{Z|pbb}}: {{W-|pbb|uʔj}} * {{Z|lgt}}: {{W-|lgt|tawa}} * {{Z|pwn}}: {{W-|pwn|vavayan}} * {{Z|pln}}: {{W-|pln|mujé}} * {{Z|pi}}: {{W-|pi|itthi|m}} * {{Z|ple}}: {{W-|ple|wai}} * {{Z|hih}}: {{W-|hih|epiov}} * {{Z|pbh}}: {{W-|pbh|wïnkïj}} * {{Z|pnr}}: {{W-|pnr|aid}} * {{Z|ppn}}: {{W-|ppn|maunu}} * {{Z|ppu}}: {{W-|ppu|pai}} * {{Z|pap}}: {{W-|pap|muhé}}, {{W-|pap|muher}} * {{Z|aap}}: {{W-|aap|pumiɛ}} * {{Z|pak}}: {{W-|pak|koxoa}} * {{Z|asa}}: {{W-|asa|mche}} * {{Z|pab}}: {{W-|pab|ohiro}} * {{Z|gfk}}: {{W-|gfk|hahin}} * {{Z|pad}}: {{W-|pad|gamo}} * {{Z|paw}}: {{W-|paw|capaat}}, {{W-|paw|capat}} * {{Z|ata}}: {{W-|ata|sema}} * {{Z|aoc}}: {{W-|aoc|wiɾiʔ}} * {{Z|pek}}: {{W-|pek|pehin}} * {{Z|aaq}}: {{W-|aaq|phanem}} * {{Z|pip}}: {{W-|pip|kpeemun|cuda=kpéemùn}} * {{Z|ps}}: {{W+|ps|ښځه|m|tr=ṧëża}} * {{Z|pok}}: {{W-|pok|bóhó-kó}}, {{W-|pok|dõbĩ́ṍ}}, {{W-|pok|dũbĩ'õ}} * {{Z|pl}}: {{W+|pl|kobieta|m}}, {{W+|pl|żona|m}}, {{W+|pl|kobiecina|m}}, {{W+|pl|baba}}, {{W+|pl|babka|m}} * {{Z|roa-opt}}: {{W-|roa-opt|moller|m}} * {{Z|pt}}: {{W+|pt|mulher|m}} * {{Z|pot}}: {{W-|pot|kwé}} * {{Z|pim}}: {{W-|pim|krenepo}} * Prakrîtî: *: {{Z|pra-sau}}: {{W-|pra-sau|इत्थी}} * {{Z|pre}}: {{W-|pre|mye}} * {{Z|prg}}: {{W-|prg|genno}} * {{Z|pui}}: {{W-|pui|den}} * Puncabî: *: Şaxmuxî: {{W-|pa|عورت}} *: Gurmuxî: {{W+|pa|ਤਰੀਮਤ|m}}, {{W+|pa|ਔਰਤ|m}}, {{W-|pa|ਜ਼ਨਾਨੀ|m}} * {{Z|pua}}: {{W-|pua|uárhi}}, {{W-|pua|warhi}} * {{Z|pyu}}: {{W-|pyu|babayan}} * {{Z|kk}}: {{W-|kk|қатын}}, {{W+|kk|әйел}} * {{Z|cop}}: {{W-|cop|ⲥϩⲓⲙⲉ}} * {{Z|rah}}: {{W-|rah|méca}} * {{Z|lml}}: {{W-|lml|vavine}} * {{Z|rma}}: {{W-|rma|kuma}} * {{Z|rai}}: {{W-|rai|tabuan}} * {{Z|rap}}: {{W-|rap|vahine}} * {{Z|rar}}: {{W-|rar|va'ine}} * {{Z|rac}}: {{W-|rac|kuru}} * {{Z|rel}}: {{W-|rel|arame}} * {{Z|mnv}}: {{W-|mnv|hahine}} * {{Z|rgr}}: {{W-|rgr|ináadó}} * {{Z|res}}: {{W-|res|u-dono}} * {{Z|rkb}}: {{W-|rkb|wytyk}} * {{Z|rgn}}: {{W-|rgn|dona}}, {{W-|rgn|dòna|m}}, {{W-|rgn|dóna|m}} * {{Z|rm}}: {{W-|rm|duonna|m}}, {{W-|rm|femna|m}} * {{Z|ru}}: {{W+|ru|же́нщина|m}}, {{W+|ru|жена́|m}}, {{W+|ru|ба́ба|m}} * Samî: *: {{Z|smn}}: {{W-|smn|nissoon}} *: {{Z|se}}: {{W-|se|nisu}} * {{Z|sm}}: {{W-|sm|fafine}} * {{Z|smq}}: {{W-|smq|sobo}} * {{Z|skd}}: {{W-|skd|ˀoh·a-}}, {{W-|skd|pócci}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|жена|m}}, {{W-|sh|ба̏ба|m}} *: Latînî: {{W+|sh|žena|m}}, {{W+|sh|bȁba|m}} * {{Z|sri}}: {{W-|sri|bã'sá-kó}}, {{W-|sri|dõ'bẽ́-ṍ}} * {{Z|ssd}}: {{W-|ssd|pino}} * {{Z|sso}}: {{W-|sso|tamein}} * {{Z|syl}}: {{W-|syl|ꠛꠦꠐꠤ}} * {{Z|sco}}: {{W-|sco|wumman}} * {{Z|cu}}: *: Kirîlî: {{W-|cu|жена|m}}, {{W-|sh|ба̏ба|m}} *: Glagolîtîk: {{W-|cu|ⰶⰵⱀⰰ|m}} * {{Z|orv}}: {{W-|orv|жена|m}} * {{Z|sk}}: {{W+|sk|žena|m}} * {{Z|sl}}: {{W+|sl|ženska|m}}, {{W+|sl|žena|m}} * {{Z|sob}}: {{W-|sob|mefne}} * {{Z|cso}}: {{W-|cso|cá²mɨ³}} * {{Z|so}}: {{W+|so|afo}}, {{W+|so|naag}} * {{Z|ysg}}: {{W-|ysg|zo²¹ma²¹}} * {{Z|ses}}: {{W-|ses|woy}} * {{Z|teu}}: {{W-|teu|gwas-at}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|žeńska|m}}, {{W-|dsb|žona|m}} *: {{Z|hsb}}: {{W+|hsb|žona|m}}, {{W-|hsb|žónska|m}} * {{Z|sbh}}: {{W-|sbh|bibiŋ}} * {{Z|st}}: {{W+|st|mosadi}} * {{Z|es}}: {{W+|es|mujer|m}} *: {{Z|osp}}: {{W-|osp|mugier|m}} * {{Z|szp}}: {{W-|szp|órewo}} * {{Z|swp}}: {{W-|swp|waihin}} * {{Z|su}}: {{W+|su|awewe}}, {{W+|su|istri}}, {{W+|su|wanoja}} * {{Z|suz}}: {{W-|suz|मिश}} * {{Z|sux}}: {{W-|sux|𒊩|ts=munus}} * {{Z|sw}}: {{W+|sw|mwanamke}} * {{Z|sv}}: {{W+|sv|kvinna|g}} * {{Z|roa-cha}}: {{W-|roa-cha|fanme}}, {{W-|roa-cha|fonme}}, {{W-|roa-cha|fomme}} * {{Z|shn}}: {{W-|shn|ယိင်း}} * {{Z|zdj}}: {{W-|zdj|mzaɗe|c1|c2}} * {{Z|sn}}: {{W-|sn|mukadzi}} * {{Z|shh}}: {{W-|shh|waipe}} * {{Z|knv}}: {{W-|knv|kamena}} * {{Z|tg}}: {{W+|tg|зан}} * {{Z|tl}}: {{W+|tl|babae}} * {{Z|ty}}: {{W-|ty|vahine}} * {{Z|nho}}: {{W-|nho|ffine}} * {{Z|tbc}}: {{W-|tbc|pein}} * {{Z|tly}}: {{W-|tly|ژن|tr=žen}}, {{W-|tly|ژن|tr=žen}} * {{Z|tlr}}: {{W-|tlr|vaivine}} * {{Z|ta}}: {{W+|ta|பெண்}} * {{Z|txn}}: {{W-|txn|konar}} * {{Z|nai-taw}}: {{W-|nai-taw|néăh}} * {{Z|th}}: {{W+|th|ผู้หญิง}}, {{W+|th|ญิง}} * {{Z|te}}: {{W+|te|ఆడది}}, {{W+|te|స్త్రీ}}, {{W+|te|మహిళ}} * {{Z|pah}}: {{W-|pah|kunha}} * {{Z|stp}}: {{W-|stp|'uví}} * {{Z|tfr}}: {{W-|tfr|walë}} * {{Z|tft}}: {{W-|tft|foheka}} * {{Z|crh}}: {{W-|crh|bike}}, {{W-|crh|qadın}} * {{Z|tt}}: {{W+|tt|хатын}} * {{Z|tet}}: {{W-|tet|feto}} * {{Z|tbj}}: {{W-|tbj|ten}} * {{Z|tvo}}: {{W-|tvo|fayaa}} * {{Z|ti}}: {{W-|ti|ሰበይቲ}}, {{W-|ti|ሴት}} * {{Z|tjm}}: {{W-|tjm|nia}} * {{Z|nai-tip}}: {{W-|nai-tip|nyech'ak}} * {{Z|cir}}: {{W-|cir|mwie|cuda=mwîê}} * {{Z|tr}}: {{W+|tr|kadın}} * {{Z|tk}}: {{W-|tk|aýaal}}, {{W-|tk|heleý}}, {{W-|tk|zenaan}} * {{Z|tiy}}: {{W-|tiy|libun}} * {{Z|ttv}}: {{W-|ttv|pein}} * {{Z|tiv}}: {{W-|tiv|kwɑse}} * {{Z|bo}}: {{W-|bo|སྐྱེས་དམན}}, {{W-|bo|བུད་མེད}}, {{W-|bo|ཉག་མོ}} * {{Z|ocu}}: {{W-|ocu|wuetxu}} * {{Z|tli}}: {{W-|tli|ša'wát}}, {{W-|tli|shawút}} * {{Z|mlu}}: {{W-|mlu|kini}} * {{Z|asu}}: {{W-|asu|kósoa}}, {{W-|asu|hée}} * {{Z|tkl}}: {{W-|tkl|fafine}} * {{Z|tpi}}: {{W-|tpi|meri}} * {{Z|ksd}}: {{W-|ksd|vavina}} * {{Z|dto}}: {{W-|dto|yàaná}} * {{Z|to}}: {{W-|to|fefine}} * {{Z|tqw}}: {{W-|tqw|gwa·n}} * {{Z|ttu}}: {{W-|ttu|baine}} * {{Z|tdv}}: {{W-|tdv|afiya}} * {{Z|tos}}: {{W-|tos|puscāt}} * {{Z|tlc}}: {{W-|tlc|sinaat}} * {{Z|bag}}: {{W-|bag|okótó}} * {{Z|rak}}: {{W-|rak|pihin}} * {{Z|tmq}}: {{W-|tmq|tamen}} * {{Z|lcm}}: {{W-|lcm|aina}} * {{Z|tun}}: {{W-|tun|nuxtci}} * {{Z|tjg}}: {{W-|tjg|wawe}} * {{Z|tpn}}: {{W-|tpn|kunhã}} , {{W+|tr|karı}} * {{Z|tus}}: {{W-|tus|kanę̀·węˀ}} * {{Z|tvl}}: {{W-|tvl|fafine}} * {{Z|tyv}}: {{W-|tyv|херээжен}}, {{W-|tyv|кадай}}, {{W-|tyv|эшпи}} * {{Z|tue}}: {{W-|tue|baso-'kó}}, {{W-|tue|dũbĩ'ṍ}} * {{Z|tpw}}: {{W-|tpw|kunhã}} * {{Z|tzh}}: {{W-|tzh|'anc}} * {{Z|tzo}}: {{W-|tzo|ants}} * {{Z|tzj}}: {{W-|tzj|ixoq}} * {{Z|ubr}}: {{W-|ubr|jever}} * {{Z|ude}}: {{W-|ude|анта}} * {{Z|udm}}: {{W-|udm|кышномурт}} * {{Z|uga}}: {{W-|uga|𐎀𐎘𐎚}} * {{Z|svb}}: {{W-|svb|tein}} * {{Z|unm}}: {{W-|unm|xkwe}} * {{Z|bbn}}: {{W-|bbn|tavine}} * {{Z|uln}}: {{W-|uln|Frau}} * {{Z|ura}}: {{W-|ura|eene}} * {{Z|urt}}: {{W-|urt|tuwei}} * {{Z|uur}}: {{W-|uur|yarvin}} * {{Z|ur}}: {{W-|ur|عَوْرَت|m|tr='aurat}}, {{W-|ur|خاتُون|m|tr=xātūn}}, {{W+|ur|زَنانی|m|tr=zanānī}}, {{W-|ur|زَن|m|tr=zan}} * {{Z|urz}}: {{W-|urz|kunhangwera}}, {{W-|urz|kunha}} * {{Z|urb}}: {{W-|urb|kunjã}}, {{W-|urb|mirixo}} * {{Z|duk}}: {{W-|duk|ajau}} * {{Z|uk}}: {{W+|uk|жі́нка|m}}, {{W-|uk|жона́|m}}, {{W+|uk|ба́ба|m}} * {{Z|ve}}: {{W-|ve|musadzi}} * {{Z|vec}}: {{W+|vec|fémena|m}}, {{W+|vec|siora|m}} * {{Z|vep}}: {{W-|vep|naine}} * {{Z|vi}}: {{W+|vi|phụ nữ}}, {{W+|vi|đàn bà}} * {{Z|wiv}}: {{W-|wiv|tavine}} * {{Z|vo}}: {{W-|vo|jimen}}, {{W+|vo|vom}} * {{Z|msn}}: {{W-|msn|reqe}} * {{Z|wab}}: {{W-|wab|pain}} * {{Z|fad}}: {{W-|fad|as}} * {{Z|lgl}}: {{W-|lgl|geli}} * {{Z|wls}}: {{W-|wls|fafine}} * {{Z|wa}}: {{W+|wa|kimere|m}}, {{W+|wa|feme|m}} * {{Z|wad}}: {{W-|wad|babin}} * {{Z|war}}: {{W-|war|babaye|cuda=babáye}} * {{Z|wrr}}: {{W-|wrr|bangbun}} * {{Z|gae}}: {{W-|gae|neyawa}} * {{Z|wrs}}: {{W-|wrs|ungevlirini}} * {{Z|wbp}}: {{W-|wbp|karnta}} * {{Z|wrg}}: {{W-|wrg|warrngo}} * {{Z|wau}}: {{W-|wau|toneju}} * {{Z|wbl}}: {{W-|wbl|könd}} * {{Z|oym}}: {{W-|oym|wajwĩ}}, {{W-|oym|waĩwĩ}} * {{Z|guc}}: {{W-|guc|hiérɨ}} * {{Z|wed}}: {{W-|wed|wavine}} * {{Z|cy}}: {{W+|cy|benyw|m}}, {{W+|cy|dynes|m}} * {{Z|wic}}: {{W-|wic|kaahiik'a}} * {{Z|mbp}}: {{W-|mbp|mena}} * {{Z|wym}}: {{W-|wym|fraoj|m}}, {{W-|wym|bōv}} * {{Z|woc}}: {{W-|woc|veine}} * {{Z|woe}}: {{W-|woe|faifil}} * {{Z|wlo}}: {{W-|wlo|bawine}} * {{Z|wo}}: {{W-|wo|jigéen}} * {{Z|wro}}: {{W-|wro|wangayinya}} * {{Z|noa}}: {{W-|noa|ɯɯi}} * {{Z|wuv}}: {{W-|wuv|pifine}} * {{Z|kca}}: {{W-|kca|ими}}, {{W-|kca|нє}}, {{W-|kca|нєхуят}} * {{Z|km}}: {{W+|km|ស្រី|tr=srəy}}, {{W+|km|ឃរណី}} * {{Z|asn}}: {{W-|asn|kuñỹ}}, {{W-|asn|mirika}} * {{Z|xh}}: {{W-|xh|umfazi}} * {{Z|iyx}}: {{W-|iyx|ǹ-khéĕto}}, {{W-|iyx|ǹ-khéĕtu}} * {{Z|ygr}}: {{W-|ygr|a'}} * {{Z|ykm}}: {{W-|ykm|tamiŋ}} * {{Z|ybh}}: {{W-|ybh|mamu}} * {{Z|yag}}: {{W-|yag|kípa}} * {{Z|ame}}: {{W-|ame|coyanesha'}} * {{Z|guu}}: {{W-|guu|suwë}} * {{Z|yaq}}: {{W-|yaq|hámut}} * {{Z|yrb}}: {{W-|yrb|aweta}} * {{Z|ywr}}: {{W-|ywr|jarndu}} * {{Z|ylg}}: {{W-|ylg|mijowi}} * {{Z|yey}}: {{W-|yey|kazi}} * {{Z|yii}}: {{W-|yii|buɲa}} * {{Z|yi}}: {{W-|yi|פֿרוי|m}} * {{Z|yee}}: {{W-|yee|narmaŋ}} * {{Z|yol}}: {{W-|yol|mawen}} * {{Z|yox}}: {{W-|yox|女子|tr=ふなぐ, funagu, をぅなぐ, wunagu}} * {{Z|xyy}}: {{W-|xyy|marrai}} *: {{Z|el}}: {{W+|el|γυναίκα|m}} *: Kevn: {{W-|grc|γυνή|m}} * {{Z|yo}}: {{W-|yo|obìnrin}} * {{Z|ycn}}: {{W-|ycn|inanáru}} * {{Z|yux}}: {{W-|yux|paj}} * {{Z|yup}}: {{W-|yup|woréʔpa}} * {{Z|esu}}: {{W-|esu|arnaq}} * {{Z|sai-yur}}: {{W-|sai-yur|quitina}} * {{Z|yui}}: {{W-|yui|baso'kó}}, {{W-|yui|'dṍbĩõ}} * {{Z|zag}}: {{W-|zag|bago}} * {{Z|zne}}: {{W-|zne|de}} * {{Z|zau}}: {{W-|zau|པུམོ}} * {{Z|zae}}: {{W-|zae|nuila}} * {{Z|zpq}}: {{W-|zpq|no'ol}}, {{W-|zpq|nool}} * {{Z|zea}}: {{W-|zea|vrouwe|m}}, {{W-|zea|wuuf|nt}} * {{Z|za}}: {{W-|za|caeuzyah}}, {{W-|za|dihmeh}}, {{W-|za|dozyah}} * {{Z|zu}}: {{W+|zu|umfazi|c1|c2}} * {{Z|khi-kun}}: {{W-|khi-kun|de}}, {{W-|khi-kun|zau}} * {{Z|nmn}}: {{W-|nmn|tâa qáe}} {{werger-bin}} :{{werger çavkanî|en|woman|oldid=75613105|beş=Ev qismê Wergerê}} {{werger-ser|jina mêrekî}} * {{Z|ab}}: {{W-|ab|аҳәса}}, {{W-|ab|аԥҳәыс}} * {{Z|af}}: {{W+|af|vrou}} * {{Z|akk}}: {{W-|akk|𒁮|m|tr=aššatu}} * {{Z|sq}}: {{W+|sq|grua|m}} * {{Z|de}}: {{W+|de|Ehefrau|m}}, {{W+|de|Frau|m}}, {{W+|de|Eheweib|nt}}, {{W+|de|Weib|nt}}, {{W+|de|Gemahlin|m}}, {{W+|de|Gattin|m}} * {{Z|abs}}: {{W-|abs|maitua}} * {{Z|am}}: {{W+|am|ሚስት}} * {{Z|rup}}: {{W-|rup|ãnveastã|m}}, {{W-|rup|sutsãlji}}, {{W-|rup|nicuchirã|m}} * {{Z|as}}: {{W-|as|ঘৈণী}}, {{W-|as|পত্নী}} * {{Z|ast}}: {{W+|ast|muyer|m}}, {{W+|ast|esposa|m}} * {{Z|av}}: {{W-|av|лъади|csecond}} * {{Z|ain}}: {{W-|ain|マチ|tr=maci}} * {{Z|az}}: {{W+|az|arvad}}, {{W-|az|zövcə}}, {{W-|az|əyal}} * {{Z|eu}}: {{W+|eu|emazte}} * {{Z|ba}}: {{W-|ba|ҡатын}} * {{Z|bbl}}: {{W-|bbl|ფსტუ}} * {{Z|be}}: {{W-|be|жо́нка|m}} * {{Z|bn}}: {{W+|bn|বিবি}}, {{W+|bn|বেগম}}, {{W+|bn|বউ}}, {{W+|bn|আহলিয়া}}, {{W+|bn|আওরত}}, {{W+|bn|জরু}}, {{W+|bn|স্ত্রী}}, {{W+|bn|পত্নী}} * {{Z|bew}}: {{W-|bew|bini}} * {{Z|br}}: {{W+|br|gwreg|m}} * {{Z|bg}}: {{W+|bg|жена́|m}}, {{W+|bg|съпру́га|m}} * {{Z|my}}: {{W+|my|မယား}}, {{W+|my|ဇနီး}} * {{Z|bua}}: {{W-|bua|һамган}} * {{Z|cjm}}: {{W-|cjm|ꨨꨕꨳꨪꩇ|tr=hadi`ip}} * {{Z|ce}}: {{W-|ce|зуда}} * {{Z|cs}}: {{W+|cs|manželka|m}}, {{W+|cs|žena|m}}, {{W+|cs|choť|m}} * {{Z|cic}}: {{W-|cic|imihoo}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|妻子}}, {{W-|yue|老婆}}, {{W-|yue|太太}} *: {{Z|dng}}: {{W-|dng|чижын}}, {{W-|dng|чи}}, {{W-|dng|пәе}} *: {{Z|hak}}: {{W-|hak|餔娘|tr=pû-ngiòng}}, {{W-|hak|太太|tr=thai-thai}}, {{W-|hak|老姐|tr=ló-chiá}} *: {{Z|cmn}}: {{W+|cmn|妻子|tr=qīzi}}, {{W+|cmn|老婆|tr=lǎopo}}, {{W+|cmn|愛人}}, {{W+|cmn|太太}}, {{W+|cmn|內人}} *: {{Z|nan}}: {{W+|nan|某|tr=bóo}}, {{W+|nan|某囝|tr=bó͘-kiáⁿ}}, {{W+|nan|家後|tr=ke-āu}}, {{W+|nan|牽手|tr=khan-chhiú}}, {{W-|nan|牽的|tr=khan--ê}}, {{W+|nan|太太|tr=thài-thài}}, {{W+|nan|查某人|tr=cha-bó͘-lâng}} *:: Teochew: {{W+|nan|某|tr=bhou2}}, {{W-|nan|老婆|tr=lao6 pua5}} * {{Z|ckt}}: {{W-|ckt|ӈэвъэн|tr=ṇėvʺėn}} * {{Z|dlm}}: {{W-|dlm|mojer|m}}, {{W-|dlm|molier|m}}, {{W-|dlm|mulir|n}} * {{Z|da}}: {{W+|da|hustru|g}}, {{W+|da|kone|g}}, {{W+|da|frue|g}} * {{Z|avd}}: {{W-|avd|زینه|tr=zine}} * {{Z|id}}: {{W+|id|istri}} * {{Z|ar}}: {{W-|ar|زَوْجَة|m}}, {{W+|ar|اِمْرَأَة|m}} *: {{Z|arz}}: {{W-|arz|زوجَة|m|tr=zōga}}, {{W-|arz|مرات|m|tr=merāt}} *: {{Z|acw}}: {{W-|acw|زُوجَة|m|tr=zōja}} *: {{Z|ajp}}: {{W-|ajp|مرا|m|tr=mara}}, {{W-|ajp|زوجَة|m|tr=zōje}} * {{Z|hy}}: {{W+|hy|կին}} * {{Z|myv}}: {{W-|myv|ни}} * {{Z|eo}}: {{W+|eo|edzino}} * {{Z|et}}: {{W+|et|naine}} * {{Z|evn}}: {{W-|evn|аси}} * {{Z|xfa}}: {{W-|xfa|uxo}} * {{Z|fa}}: {{W+|fa|زَن|tr=zan}}, {{W+|fa|زُوجِه|tr=zowje}} * {{Z|fo}}: {{W+|fo|kona|m}}, {{W-|fo|vív|nt}} * {{Z|fi}}: {{W+|fi|vaimo}}, {{W+|fi|aviovaimo}} * {{Z|fro}}: {{W-|fro|fame|m}}, {{W-|fro|fam|m}} * {{Z|fr}}: {{W+|fr|femme|m}}, {{W+|fr|épouse|m}} * {{Z|fur}}: {{W-|fur|femine|m}}, {{W-|fur|muîr|m}}, {{W-|fur|cristiane|m}} * {{Z|fy}}: {{W+|fy|wiif}}, {{W+|fy|frou}} * {{Z|gd}}: {{W-|gd|bean-chèile|m}}, {{W+|gd|bean-phòsda|m}} * {{Z|gl}}: {{W+|gl|esposa|m}}, {{W+|gl|muller|m}}, {{W-|gl|dona|m}} * {{Z|got}}: {{W-|got|𐌵𐌴𐌽𐍃|m}} * {{Z|gu}}: {{W-|gu|પત્ની|m}} * {{Z|ka}}: {{W-|ka|ცოლი}} * {{Z|gn}}: {{W-|gn|embireko}} * {{Z|haw}}: {{W-|haw|wahine}} * {{Z|ha}}: {{W-|ha|matar aure}} * {{Z|mba}}: {{W-|mba|asawa}} * {{Z|hi}}: {{W+|hi|पत्नी|m}}, {{W+|hi|बीवी|m}}, {{W+|hi|गृहणी|m}}, {{W+|hi|भार्या|m}}, {{W+|hi|वल्लभा|m}}, {{W+|hi|वधू|m}}, {{W+|hi|स्त्री|m}}, {{W+|hi|गृहिणी|m}}, {{W+|hi|जाया|m}}, {{W+|hi|जनि|m}}, {{W+|hi|जन|m}}, {{W+|hi|जौजा|m}}, {{W+|hi|जोरू|m}}, {{W+|hi|घरवाली|m}} * {{Z|mww}}: {{W-|mww|pojniam}} * {{Z|nl}}: {{W+|nl|vrouw|m}}, {{W+|nl|echtgenote|m}} * {{Z|he}}: {{W+|he|אִשָּׁה|m|tr=ishá}}, {{W+|he|בַּת זוּג|m|tr=bat zúg}} * {{Z|io}}: {{W+|io|spozino}} * {{Z|ang}}: {{W-|ang|wīf|nt}} * {{Z|en}}: {{W+|en|wife}} * {{Z|ia}}: {{W-|ia|sponsa}}, {{W-|ia|sposa}}, {{W-|ia|uxor}} * {{Z|ga}}: {{W+|ga|bean|m}}, {{W-|ga|bean chéile|m}} *: {{Z|sga}}: {{W-|sga|ben|m}}, {{W-|sga|séitig|m}} * {{Z|ist}}: {{W-|ist|muier|m}} * {{Z|it}}: {{W+|it|sposa|m}}, {{W+|it|moglie|m}} * {{Z|is}}: {{W+|is|eiginkona|m}}, {{W+|is|kona|m}} * {{Z|ja}}: {{W+|ja|妻|tr=つま, tsuma}}, {{W+|ja|家内|tr=かない, kanai}}, {{W+|ja|ワイフ|tr=waifu}}, {{W+|ja|奥さん|tr=おくさん, okusan}}, {{W+|ja|奥様|tr=おくさま, okusama}}, {{W+|ja|夫人|tr=ふじん, fujin}}, {{W-|ja|ご夫人|tr=ごふじん, go-fujin}} * {{Z|jv}}: {{W+|jv|rabi}}, {{W-|jv|bojo wadon}}, {{W-|jv|garwa putri}} * {{Z|kl}}: {{W-|kl|nuliaq}} * {{Z|kam}}: {{W-|kam|kiveti}} * {{Z|kn}}: {{W+|kn|ಪತ್ನಿ}} * {{Z|krc}}: {{W-|krc|юй бийче}}, {{W-|krc|юйдеги}}, {{W-|krc|къатын}} * {{Z|ca}}: {{W+|ca|dona|m}}, {{W+|ca|muller|m}} * {{Z|kgp}}: {{W-|kgp|mré nĩ fi}} * {{Z|ks}}: {{W+|ks|آشَنؠ|tr=āśan'}}, {{W-|ks|آشێنؠ|tr=āśen'}}, {{W+|ks|کۄلَے}}, {{W-|ks|خانہٕ دارێنؠ|tr=xānụdāren'}}, {{W+|ks|رٔنؠ|tr=rạn'}}, {{W-|ks|زَنان}}, {{W+|ks|گَرواجیٚنؠ|tr=garvājen'}} * {{Z|ky}}: {{W+|ky|аял}}, {{W-|ky|катын}} * {{Z|ki}}: {{W-|ki|mũka|c1}}, {{W-|ki|mũtumia|c1}} * {{Z|si}}: {{W-|si|බිරිඳ}}, {{W-|si|භාර්යාව}}, {{W+|si|පවුල}} * {{Z|ko}}: {{W+|ko|아내}}, {{W+|ko|집사람}}, {{W+|ko|안사람}}, {{W+|ko|안해}}, {{W+|ko|마누라}}, {{W-|ko|와이프}}, {{W+|ko|부인}} * {{Z|kw}}: {{W-|kw|gwreg}} * {{Z|kri}}: {{W-|kri|wef}} * {{Z|ltg}}: {{W-|ltg|sīva|m}} * {{Z|la}}: {{W+|la|uxor|m}}, {{W-|la|nupta|m}}, {{W+|la|femina|m}}, {{W+|la|mulier|m}}, {{W-|la|marita|m}}, {{W+|la|coniunx|m}}, {{W-|la|matrona}} * {{Z|lv}}: {{W+|lv|sieva}}, {{W-|lv|dzīvesbiedre|m}}, {{W-|lv|dzīvesbiedrene|m}} * {{Z|lo}}: {{W-|lo|ເມຍ}} * {{Z|lzz}}: {{W-|lzz|ჩილი}} * {{Z|xlc}}: {{W-|xlc|𐊍𐊀𐊅𐊀}} * {{Z|lt}}: {{W+|lt|pati|m}}, {{W+|lt|žmona|m}} * {{Z|khb}}: {{W-|khb|ᦵᦙ}} * {{Z|lg}}: {{W-|lg|mukyala wange}} * {{Z|mk}}: {{W+|mk|же́на|m}}, {{W-|mk|со́пруга|m}} * {{Z|mg}}: {{W+|mg|andefimandry}}, {{W+|mg|tokantrano}} * {{Z|ml}}: {{W+|ml|ഭാര്യ}}, {{W+|ml|പത്നി|m}} * {{Z|ms}}: {{W+|ms|isteri}}, {{W+|ms|bini}} * {{Z|mt}}: {{W+|mt|mara|m}} * {{Z|mnc}}: {{W-|mnc|ᠰᠠᡵᡤᠠᠨ}} * {{Z|gv}}: {{W-|gv|ben-phoost}} * {{Z|mi}}: {{W-|mi|hoa wahine}}, {{W+|mi|wahine}}, {{W-|mi|hoa rangatira}} * {{Z|mr}}: {{W-|mr|नवरी|m}} * {{Z|xmf}}: {{W-|xmf|ოსური}}, {{W-|xmf|ჩილი}} * {{Z|egy}}: {{W-egy|ḥmt|m|h=N41:t-B1}}, {{W-egy|ḥbsyt|m|h=H-b-s-i-i-t-S28-B1}}, {{W-egy|snt|m|h=sn-n:t-B1}} * {{Z|mn}}: *: Kirîlî: {{W+|mn|гэргий}}, {{W+|mn|эхнэр}} * {{Z|nv}}: {{W-|nv|hweʼesdzáán}} * {{Z|nds}}: *: {{Z|nds-de}}: {{W-|nds-de|Ehfro|m}}, {{W-|nds-de|Fro|m}}, {{W-|nds-de|Ehfru|m}}, {{W-|nds-de|Fru|m}} * {{Z|ne}}: {{W-|ne|पत्नी}} * {{Z|nrf}}: {{W-|nrf|faume|m}}, {{W-|nrf|bouônnefemme|m}} * {{Z|no}}: *: {{Z|nb}}: {{W-|nb|hustru|n|m}}, {{W+|nb|kone|n|m}}, {{W+|nb|frue|n|m}} *: {{Z|nn}}: {{W-|nn|hustru|m}}, {{W-|nn|kone|m}}, {{W-|nn|frue|m}} * {{Z|cst}}: {{W-|cst|háw̄a}} * {{Z|oj}}: {{W-|oj|niwiidigemaagan}} * {{Z|oc}}: {{W+|oc|femna|m}} * {{Z|or}}: {{W-|or|ସ୍ତ୍ରୀ}} * {{Z|om}}: {{W+|om|niitii}} * {{Z|os}}: {{W-|os|бинойнаг}}, {{W-|os|ус}} * {{Z|ug}}: {{W-|ug|خوتۇن}} * {{Z|uz}}: {{W+|uz|xotin}} * {{Z|blk}}: {{W-|blk|မာ}} * {{Z|ps}}: {{W+|ps|ښځه|m|tr=ӽᶕja}}, {{W+|ps|زوجه|m|tr=zawja}}, {{W-|ps|ورتينه|m|tr=wərtina}} * {{Z|pdt}}: {{W-|pdt|Wief|m}} * {{Z|pl}}: {{W+|pl|żona|m}}, {{W+|pl|małżonka|m}} * {{Z|pt}}: {{W+|pt|esposa|m}}, {{W+|pt|mulher|m}} * {{Z|pa}}: {{W-|pa|ਪਤਨੀ}} * {{Z|kk}}: {{W+|kk|әйел}}, {{W-|kk|жар}}, {{W-|kk|қатын}} * {{Z|cop}}: *: Bohaîrî: {{W-|cop|ⲥϩⲓⲙⲉ|m}} *: Sahîdî: {{W-|cop|ϩⲓⲙⲉ|m}} * {{Z|rhg}}: {{W-|rhg|bou}} * {{Z|rm}}: {{W-|rm|dunna|m}}, {{W-|rm|duonna|m}}, {{W-|rm|cunsorta|m}}, {{W-|rm|duna|m}}, {{W-|rm|donna|m}} * {{Z|rom}}: {{W-|rom|rromni|m}} * {{Z|ro}}: {{W+|ro|soție|m}}, {{W+|ro|nevastă|m}}, {{W+|ro|muiere}} * {{Z|ru}}: {{W+|ru|жена́|m}}, {{W+|ru|супру́га|m}}, {{W+|ru|жёнка|m}} * {{Z|ksw}}: {{W-|ksw|မါ}} * {{Z|sa}}: {{W+|sa|पत्नी|m}}, {{W+|sa|भार्या|m}}, {{W+|sa|दयिता|m}}, {{W+|sa|जाया|m}}, {{W+|sa|वल्लभा|m}} * {{Z|sat}}: {{W-|sat|ᱨᱤᱱᱤᱡ}}, {{W-|sat|ᱮᱨᱚ}} * {{Z|sc}}: {{W-|sc|mugere|m}}, {{W-|sc|mullei|m}}, {{W-|sc|mulleri|m}}, {{W-|sc|mutzere|m}}, {{W-|sc|muzere|m}} * {{Z|scn}}: {{W+|scn|mugghieri|m}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|жѐна|m}}, {{W-|sh|су̏пруга|m}} *: Latînî: {{W+|sh|žèna|m}}, {{W+|sh|sȕpruga|m}} * {{Z|sco}}: {{W-|sco|guidwife}} * {{Z|cu}}: *: Kirîlî: {{W-|cu|жена|m}} *: Glagolîtîk: {{W-|cu|ⰶⰵⱀⰰ|m}} * {{Z|orv}}: {{W-|orv|жена|m}} * {{Z|sk}}: {{W+|sk|manželka|m}}, {{W+|sk|žena|m}} * {{Z|sl}}: {{W+|sl|žéna|m}}, {{W-|sl|soproga|m}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|žeńska|m}}, {{W-|dsb|žona|m}} *: {{Z|hsb}}: {{W+|hsb|žona|m}} * {{Z|es}}: {{W+|es|esposa|m}}, {{W+|es|mujer|m}} * {{Z|su}}: {{W-|su|garwa}}, {{W-|su|bojo}}, {{W+|su|pamajikan}} * {{Z|sva}}: {{W-|sva|ხეხუ̂}} * {{Z|sw}}: {{W+|sw|mke}} * {{Z|sv}}: {{W+|sv|hustru}}, {{W+|sv|maka}}, {{W+|sv|fru}} * {{Z|tab}}: {{W-|tab|хпиб}} * {{Z|tg}}: {{W+|tg|зан}}, {{W-|tg|завҷа}} * {{Z|tl}}: {{W+|tl|esposa}}, {{W-|tl|babaeng asawa}} * {{Z|tly}}: {{W-|tly|ژن|tr=žen}} * {{Z|ta}}: {{W+|ta|மனைவி}}, {{W+|ta|பெண்டாட்டி}} * {{Z|twf}}: {{W-|twf|łȉwéna}} * {{Z|roa-tar}}: {{W-|roa-tar|mugghìere|m}} * {{Z|rif}}: {{W-|rif|tamɣart|m}} * {{Z|tsg}}: {{W-|tsg|asawa}} * {{Z|blt}}: {{W-|blt|ꪣꪸ}} * {{Z|th}}: {{W+|th|ภริยา}}, {{W+|th|ภรรยา}}, {{W+|th|เมีย}} * {{Z|te}}: {{W+|te|పెళ్ళాం}}, {{W+|te|భార్య}}, {{W+|te|ఆలి}} * {{Z|tt}}: {{W+|tt|хатын}} * {{Z|tet}}: {{W-|tet|feen}} * {{Z|ti}}: {{W-|ti|ሰበይቲ}}, {{W-|ti|ብዓልቲ ቤት}} * {{Z|tr}}: {{W+|tr|karı}}, {{W+|tr|avrat}} * {{Z|tk}}: {{W+|tk|aýal}} * {{Z|bo}}: {{W-|bo|སྐྱེ་དམན}} * {{Z|uga}}: {{W-|uga|𐎀𐎘𐎚}} * {{Z|ur}}: {{W-|ur|بیوی|m|tr=bīvī}}, {{W-|ur|پَتْنی|m|tr=patnī}}, {{W-|ur|بیگم|tr=begam}}, {{W-|ur|اہلیہ|tr=ahliya}}, {{W-|ur|زوجہ|tr=zoja}}, {{W-|ur|خاتون خانہ|tr=xātūn-e-xāna}}, {{W-|ur|خانم|tr=xānam}} * {{Z|uk}}: {{W+|uk|дружи́на|m}}, {{W+|uk|жі́нка|m}}, {{W-|uk|супру́га|m}} * {{Z|vec}}: {{W-|vec|mojer|m}}, {{W-|vec|mojere|m}} * {{Z|vi}}: {{W+|vi|vợ}} * {{Z|vo}}: {{W+|vo|jimatan}} * {{Z|wa}}: {{W+|wa|feme|m}} * {{Z|cy}}: {{W+|cy|gwraig|m}}, {{W+|cy|gwragedd|m-p}} * {{Z|wo}}: {{W-|wo|jabar ji}}, {{W-|wo|iyawo}} * {{Z|km}}: {{W+|km|ប្រពន្ធ}}, {{W+|km|ភរិយា}}, {{W+|km|ឃរណី}} * {{Z|yi}}: {{W-|yi|ווײַב|nt}}, {{W-|yi|פֿרוי|m}} * {{Z|ii}}: {{W-|ii|ꀋꃀꀉꑳ}} * {{Z|yo}}: {{W-|yo|iyawo}}, {{W-|yo|aya}} * {{Z|el}}: {{W+|el|σύζυγος|m}}, {{W+|el|γυναίκα|m}}, {{W+|el|συμβία|m}} *: Kevn: {{W-|grc|γαμετή|m}}, {{W-|grc|δάμαρ|m}}, {{W-|grc|ὄαρ|m}} * {{Z|zea}}: {{W-|zea|vrouwe|m}}, {{W-|zea|wuuf|nt}} * {{Z|za}}: {{W-|za|baz}}, {{W-|za|yah}} * {{Z|zu}}: {{W-|zu|umka|cuda=umka-|c1a|c2a}}, {{W+|zu|inkosikazi|c9|c6}}, {{W-|zu|unkosikazi|c1a|c2a}} {{werger-bin}} :{{werger çavkanî|en|wife|oldid=75626502|beş=Ev qismê Wergerê}} 505und3yb6hgmrrk5ewgyy6lisfkz2w kurdî 0 3096 6329665 6329271 2026-08-12T16:41:03Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329665 wikitext text/x-wiki {{bnr-h|kurdi|kürdi|Kurdi|Kurdî}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA|k(h)urdî}} * {{deng|ku|LL-Q36163_(kmr)-Key Mîrza-kurdî.wav|dever=Wan}} * {{ku-kîte}} === Navdêr === [[Wêne:Map of Kurds demography.png|thumb|250px|Deverên ku '''kurdî''' lê zimanê serekî ye.]] {{wp}} {{navdêr|ku|z=m}} # {{f|ku|ziman}} [[ziman|Zimanek]] [[hindo-ewropî]] yê ji babika [[zimanên îranî]]. [[ziman|Zimanê]] [[kurd]]an, [[ziman]]ê [[kurd]] pê diaxivin. #* {{jêder-pirtûk|ku|jêgirtin=Hatiye gotin ku serrista fermanrewayên soran mirovekî bi "Kelos" navdar bûye. Kelos di '''kurdiyê''' de tê wateya kesê ku diranên wî yên pêşîn tunene.|nivîskar=بابا مردوخ روحانى|wergêr=M. Reşît Irgat, M. İsmet Kılıçaslan|sernav=Dîroka Navdarên Kurd (Mîrek û Xanedan)|weşanxane=Nûbihar|sal=2020|rûpel=442|isbn=9786059413923, 6059413927}} #* {{jêder|ku|jêgirtin=Belê Gulavêjê gotiye: "bi zimanî kurdî Botan". Gelo ji gotina "kurdiya Botan" mexsed çi ye? Bê şik mexsed '''kurdiya''' ko di cihê Botan de pê tête axaftin e.|Kovara ''{{w|Ronahî (kovar)|Ronahî}}'', 1942}} #* {{jêder-kovar|ku|jêgirtin=Min xwest gotara xwe bi '''kurdî''' û bi zaravê ya ku ez bi rojane bikartînim pêşkeş bikim. Heman demî gelek hizrên min yên wekê ku yên '''kurdî''' nizanin biaxivin an jî bi '''kurdiyekê''' bi bandor û piştgiriya tirkî ve diaxivin hebûn.|kovar={{w|Bîrnebûn}}|hejmar=72|sal=2018|nivîskar=Haci Akman|sernav=Kurdên Anatoliya Navîn: Parastina nasnameya kurd û asimîlasyona wê|url=https://birnebun.eu/kurden-anatoliya-navin-parastina-nasnameya-kurd-u-asimilasyona-we/}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|کوردی}} ==== Jê ==== {{kol3|ku|cure=Jê |kurdî kirin<q:lêker> |kurdîkirin<q:navdêr> |kurdîkirî<q:rengdêr> |kurdîaxêv |kurdîaxêvî |kurdîaxiv |kurdîaxivî |kurdîpeyiv |kurdîpeyivî |kurdîzar |kurdîzarî |kurdîziman |kurdayetî |kurddost |kurddostî |kurdewar |kurdewarî |Kurdistan |kurdistanî |kurdînî |kurdîtî |kurdperwer |kurdperwerî }} ==== Etîmolojî ==== Ji {{paş|ku|kurd|-î}}. ==== Herwiha binêre ==== {{kol3|ku | kurmancî | soranî | zazakî | hewramî | {{g|ku|feylî}}, {{g|ku|kelhurî}} | lekî | lûrî }} ==== Bi zaravayên din ==== * {{Z|ckb}}: {{g|ckb|کوردی|tr=kurdî}} * {{Z|zza}}: {{g|zza|Kurdkî}}, {{g|zza|Kirdaskî}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Kurdisch|nt}} * {{Z|am}}: {{W-|am|ኩርድኛ}} * {{Z|ast}}: {{W+|ast|curdu|n}} * {{Z|az}}: *: Kirîlî: {{W-|az|күрдҹә}} *: {{Z|az}}: {{W-|az|کوردجه}} *: Latînî: {{W+|az|kürdcə}} * {{Z|eu}}: {{W+|eu|kurduera}} * {{Z|be}}: {{W-|be|ку́рдская|m}} * {{Z|bg}}: {{W-|bg|кю́рдски}} * {{Z|cs}}: {{W-|cs|kurdština|m}} * {{Z|chr}}: {{W-|chr|ᎫᎸᏗ}} * {{Z|zh}}: *: {{Z|cmn}}: {{W+|cmn|庫爾德語|tr=kù'ěrdéyǔ}} * {{Z|da}}: {{W-|da|kurdisk|g}} * {{Z|id}}: {{W-|id|Kurdi}} * {{Z|ar}}: {{W+|ar|كُرْدِيَّة|m}} * {{Z|hy}}: {{W+|hy|քրդերեն}} * {{Z|et}}: {{W-|et|Kurdi}} * {{Z|fa}}: {{W+|fa|کردی|tr=kordi}} * {{Z|fi}}: {{W+|fi|kurdi}}, {{W-|fi|[[kurdin]] [[kieli]]}} * {{Z|fr}}: {{W+|fr|kurde|n}} * Gagauz: *: Kirîlî: {{W-|gag|кӱрдче}} *: Latînî: {{W-|gag|kürdçe}} * {{Z|fy}}: {{W-|fy|Koerdysk}} * {{Z|ka}}: {{W-|ka|ქურთული}} * {{Z|hi}}: {{W-|hi|कुर्दी|m}} * {{Z|nl}}: {{W+|nl|Koerdisch|nt}} * {{Z|he}}: {{W-|he|כורדית|m|tr=kurdít}} * {{Z|en}}: {{W+|en|Kurdish}} * {{Z|ga}}: {{W-|ga|Coirdis|m}} * {{Z|it}}: {{W+|it|curdo|n}} * {{Z|is}}: {{W+|is|kúrdíska|m}} * {{Z|ja}}: {{W+|ja|クルド語|tr=クルドご, kurudogo}} * {{Z|kl}}: {{W-|kl|kurdiskisut}} * {{Z|ca}}: {{W+|ca|kurd|n}} * {{Z|ky}}: {{W-|ky|курд}} * {{Z|ko}}: {{W+|ko|쿠르드어}} * {{Z|lv}}: {{W-|lv|kurdu valoda|m}} * {{Z|lt}}: {{W-|lt|kurdiškai}} * {{Z|mk}}: {{W-|mk|курдски|n}} * {{Z|mr}}: {{W-|mr|कुर्दी|m}} * {{Z|hu}}: {{W+|hu|kurd}} * {{Z|mdf}}: {{W-|mdf|курдонь}} * {{Z|mn}}: *: Kirîlî: {{W-|mn|[[курд]] [[хэл]]}} * {{Z|nv}}: {{W-|nv|Kʼóódii bizaad}} * {{Z|no}}: *: {{Z|nb}}: {{W+|nb|kurdisk|n}} *: {{Z|nn}}: {{W-|nn|kurdisk|n}} * {{Z|os}}: {{W-|os|курдаг}} * {{Z|ug}}: {{W-|ug|كۇردچە}} * Uzbek: *: Kirîlî: {{W-|uz|курдча}} *: Latînî: {{W-|uz|kurdcha}} * {{Z|pl}}: {{W+|pl|kurdyjski}} * {{Z|pt}}: {{W+|pt|curdo|n}} * {{Z|kk}}: {{W-|kk|күрд тілі}}, {{W-|kk|күрдше}} * {{Z|ro}}: {{W+|ro|kurdă|m}} * {{Z|ru}}: {{W+|ru|ку́рдский|n}}, {{W+|ru|ку́рдский язы́к}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|ку̏рдскӣ|n}} *: Latînî: {{W+|sh|kȕrdskī|n}} * {{Z|sk}}: {{W+|sk|kurdčina|m}} * {{Z|sl}}: {{W+|sl|kurdščina|m}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|kurdšćina|m}} *: {{Z|hsb}}: {{W-|hsb|kurdšćina|m}} * {{Z|es}}: {{W+|es|kurdo|n}}, {{W+|es|curdo|n}} * {{Z|sv}}: {{W+|sv|kurdiska}} * {{Z|tg}}: {{W+|tg|курдӣ}} * {{Z|tr}}: {{W+|tr|Kürtçe}} * Turkmen: *: Kirîlî: {{W-|tk|күртче}} *: Latînî: {{W-|tk|kürtçe}} * {{Z|ur}}: {{W-|ur|کردی|m|tr=kurdī}} * {{Z|uk}}: {{W+|uk|ку́рдська|m}} * {{Z|vi}}: {{W-|vi|tiếng Kurd}} * {{Z|wa}}: {{W-|wa|Kurdi}} * {{Z|yi}}: {{W-|yi|קורדיש|nt}} * {{Z|el}}: {{W+|el|κουρδικά}} {{werger-bin}} :{{werger çavkanî|en|Kurdish|beş=Ev qismê Wergerê|oldid=75152879}} === Rengdêr === {{ku-tewîn-rd|kurdî}} {{rengdêr|ku}} # Tiştên bi [[ziman]]ê [[kurd]]an. #: {{mk|ku|Stranên '''kurdî''', rojnameyên '''kurdî'''.}} #* {{jêder-websîte|ku|jêgirtin=Xezeteyên '''Kurdî''' yên li Stenbolê derdiketin bên îstisnakirin, xezeteyekî millî û wetenî yê ku yekemîn car li Kurdistanê hatîye neşirkirin, ew jî xezeteya Zarê Kirmancî ye, ku min xwendîye.|nivîskar=Seîd Veroj|sernav=Mesûd Fanî (Dr. Mesûd Fanî Bîlgîlî)|websîte=Rûpela nû|url=https://www.rupelanu.com/seid-veroj-mesud-fani-dr-mesud-fani-bilgili-17258h.htm|tarîx=2021-05-04}} #* {{jêder-kovar|ku|jêgirtin=Lê mixabin li Qefqasya, Rûsya û Asya Navîn rewşa xwendin û nivîsandina zimanê '''Kurdî''' pir kêm e. Di vî warî de rola saziya Berbangê, kovara Nûbarê û rojnameya Jiyana Kurd gelekî girîng e. Lê diyar e ev xebat têrê nake.|sal=2021|nivîskar=Salihê Kevirbirî|url=http://books.google.com.tr/books?id=qFw3EAAAQBAJ&pg=PA50&hl=&cd=6&source=gbs_api|sernav=Hosteykî Edebiyata Kurdî: Eliyê Evdirehmanê Momîn|kovar=Nûbihar|hejmar=150|rûpel=50}} # Tiştên [[kurd]]an. #: {{mk|ku|Aliyê '''kurdî''' di danûstandinan de.}} #* {{jêder-pirtûk|ku|jêgirtin=Şexsiyetên tarîxî yên '''kurdî''', bi xêra edebiyata devkî, ji dewr û dewranên xwe yên jibîrbûyî derdikevin û tên roja me û silav li civata nûjen dikin û ders, tecrube, bûyer û şîretên tarîxî vediguhêzînin civata '''kurdî''' ya îro.|nivîskar={{w|Mehmed Uzun}}|sernav={{w|Destpêka edebiyata kurdî}}|sal=1992}} # Mîna kurdan. #* {{bêmînak|ku}} ==== Ji wêjeya klasîk ==== * {{jêder|ku|{{Jêgirtin/Ehmedê Xanî/Mem û Zîn}}|jêgirtin=Safî şemirand vexwar-i durdî</br>Manendê derê lisanê '''kurdî'''</br>Înaye nizam û intizamê}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Kurdisch|nt}}, {{W+|de|kurdische Sprache|guman=erê}} * {{Z|eu}}: {{W+|eu|kurduera}} * {{Z|be}}: {{W-|be|Курдзкая|tr=Kurdzkaǎ}} * {{Z|bg}}: {{W-|bg|Кюрдски|tr=Kǔrdski}} * {{Z|cs}}: {{W-|cs|Kurdský}} * {{Z|id}}: {{W-|id|Kurdi}} * {{Z|ar}}: {{W+|ar|كردية|cuda=كُرْدِيَّة|m}}, {{W-|ar|كردي|cuda=كُرْدِيّ|n}} * {{Z|et}}: {{W-|et|kurdi keel}} * {{Z|fa}}: {{W+|fa|کردی|tr=kordî}}, {{W+|fa|زبان کردی}} * {{Z|fi}}: {{W+|fi|kurdi}}, {{W-|fi|kurdin kieli}} * {{Z|fr}}: {{W+|fr|kurde}} * {{Z|fy}}: {{W-|fy|Koerdysk}} * {{Z|ka}}: {{W-|fa|ქურთული|tr=kurduli}} * {{Z|hi}}: {{W+|hi|कुर्दिश}} * {{Z|he}}: {{W-|he|כורדית|tr=ḵurḏīṯ}} * {{Z|en}}: {{W+|en|Kurdish}}, {{W+|en|Kurd}} * {{Z|ga}}: {{W-|ga|Coirdis}} * {{Z|it}}: {{W+|it|curdo}} * {{Z|is}}: {{W-|is|Kúrdíska}} * {{Z|ja}}: {{W-|ja|クルド|tr=Kurudo}} * {{Z|ca}}: {{W-|ca|Kurd}} * {{Z|ky}}: {{W-|ky|Курд|tr=Qurd}} * {{Z|ko}}: {{W+|ko|쿠르드어|tr=Kuleudeueo}} * {{Z|lv}}: {{W-|lv|Kurdu}} * {{Z|lt}}: {{W-|lt|Kurdiškai}} * {{Z|hu}}: {{W+|hu|Kurd}} * {{Z|mdf}}: {{W-|mdf|Курдонь|tr=Kurdonʹ}} * {{Z|no}}: {{W-|no|Kurdisk}} * {{Z|pl}}: {{W+|pl|kurdyjski}} * {{Z|pt}}: {{W+|pt|curdo}} * {{Z|ro}}: {{W-|ro|Curdă}} * {{Z|ru}}: {{W+|ru|Курдский|tr=Kurdskiĭ}} * {{Z|sh}}: {{W+|sh|kurdski}} * {{Z|sh}}: {{W+|sh|kurdski}} * {{Z|sh}}: {{W+|sh|kurdski}} * {{Z|es}}: {{W+|es|kurdo}} * {{Z|sv}}: {{W+|sv|kurdiska}} * {{Z|tr}}: {{W+|tr|Kürtçe}} * {{Z|uk}}: {{W-|uk|Курдський}} (Kurdʹskiĭ) * {{Z|wa}}: {{W-|wa|Kurdi}} * {{Z|el}}: {{W-|el|Κουρδικά|tr=Kourdiká}} * {{Z|zza}}: {{W-|zza|kurdkî}}, {{W-|zza|kirdaskî}}, {{werger-bin}} sm5tlgfq616sj35mekv20b0ueg3pmtf 6329828 6329665 2026-08-12T23:19:58Z Wikihez 7344 zimanê "kurdî" ne sifet e zimanê bi navê kurdî ye. 6329828 wikitext text/x-wiki {{bnr-h|kurdi|kürdi|Kurdi|Kurdî}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA|k(h)urdî}} * {{deng|ku|LL-Q36163_(kmr)-Key Mîrza-kurdî.wav|dever=Wan}} * {{ku-kîte}} === Navdêr === [[Wêne:Map of Kurds demography.png|thumb|250px|Deverên ku '''kurdî''' lê zimanê serekî ye.]] {{wp}} {{navdêr|ku|z=m}} # {{f|ku|ziman}} [[ziman|Zimanek]] [[hindo-ewropî]] yê ji babika [[zimanên îranî]]. [[ziman|Zimanê]] [[kurd]]an, [[ziman]]ê [[kurd]] pê diaxivin. #* {{jêder-pirtûk|ku|jêgirtin=Hatiye gotin ku serrista fermanrewayên soran mirovekî bi "Kelos" navdar bûye. Kelos di '''kurdiyê''' de tê wateya kesê ku diranên wî yên pêşîn tunene.|nivîskar=بابا مردوخ روحانى|wergêr=M. Reşît Irgat, M. İsmet Kılıçaslan|sernav=Dîroka Navdarên Kurd (Mîrek û Xanedan)|weşanxane=Nûbihar|sal=2020|rûpel=442|isbn=9786059413923, 6059413927}} #* {{jêder|ku|jêgirtin=Belê Gulavêjê gotiye: "bi zimanî kurdî Botan". Gelo ji gotina "kurdiya Botan" mexsed çi ye? Bê şik mexsed '''kurdiya''' ko di cihê Botan de pê tête axaftin e.|Kovara ''{{w|Ronahî (kovar)|Ronahî}}'', 1942}} #* {{jêder-kovar|ku|jêgirtin=Min xwest gotara xwe bi '''kurdî''' û bi zaravê ya ku ez bi rojane bikartînim pêşkeş bikim. Heman demî gelek hizrên min yên wekê ku yên '''kurdî''' nizanin biaxivin an jî bi '''kurdiyekê''' bi bandor û piştgiriya tirkî ve diaxivin hebûn.|kovar={{w|Bîrnebûn}}|hejmar=72|sal=2018|nivîskar=Haci Akman|sernav=Kurdên Anatoliya Navîn: Parastina nasnameya kurd û asimîlasyona wê|url=https://birnebun.eu/kurden-anatoliya-navin-parastina-nasnameya-kurd-u-asimilasyona-we/}} #* {{jêder-kovar|ku|nivîskar=Clamence Scalbert-yücel|sernav=Perspektîfek dîrokî ji bo lêkolînên li ser Kurdan: Hevpeyvîn li gel Joyce Blau|kovar=The Journal of Mesopotamian Studies|terciman=Yılmaz Özdil|cild=3|hejmar=1|sal=2018|rûpel=203|url=https://dergipark.org.tr/tr/pub/jms/article/386434|jêgirtin=JB{{j-îzah|Joyce Blau}} : Kursiya zimanê '''kurdî''' di sala 1945an de ji aliyê Roger Lescot (1914-1975( ve hate avakirin. Di sala 1947an de Mîr Kamuran Bedir Xan (1895-1978(bû serokê Kursiyê. Wî heta sala 1970yan serokatiya Kursiya zimanê kurdî kir. Paşî ji sala 1970yan heta dema teqawutbûna xwe ya di sala 2000an de min serokatî kir.}} #* {{jêder-kovar|ku|jêgirtin=Lê mixabin li Qefqasya, Rûsya û Asya Navîn rewşa xwendin û nivîsandina zimanê '''Kurdî''' pir kêm e. Di vî warî de rola saziya Berbangê, kovara Nûbarê û rojnameya Jiyana Kurd gelekî girîng e. Lê diyar e ev xebat têrê nake.|sal=2021|nivîskar=Salihê Kevirbirî|url=http://books.google.com.tr/books?id=qFw3EAAAQBAJ&pg=PA50&hl=&cd=6&source=gbs_api|sernav=Hosteykî Edebiyata Kurdî: Eliyê Evdirehmanê Momîn|kovar=Nûbihar|hejmar=150|rûpel=50}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|کوردی}} ==== Jê ==== {{kol3|ku|cure=Jê |kurdî kirin<q:lêker> |kurdîkirin<q:navdêr> |kurdîkirî<q:rengdêr> |kurdîaxêv |kurdîaxêvî |kurdîaxiv |kurdîaxivî |kurdîpeyiv |kurdîpeyivî |kurdîzar |kurdîzarî |kurdîziman |kurdayetî |kurddost |kurddostî |kurdewar |kurdewarî |Kurdistan |kurdistanî |kurdînî |kurdîtî |kurdperwer |kurdperwerî }} ==== Etîmolojî ==== Ji {{paş|ku|kurd|-î}}. ==== Herwiha binêre ==== {{kol3|ku | kurmancî | soranî | zazakî | hewramî | {{g|ku|feylî}}, {{g|ku|kelhurî}} | lekî | lûrî }} ==== Bi zaravayên din ==== * {{Z|ckb}}: {{g|ckb|کوردی|tr=kurdî}} * {{Z|zza}}: {{g|zza|Kurdkî}}, {{g|zza|Kirdaskî}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Kurdisch|nt}} * {{Z|am}}: {{W-|am|ኩርድኛ}} * {{Z|ast}}: {{W+|ast|curdu|n}} * {{Z|az}}: *: Kirîlî: {{W-|az|күрдҹә}} *: {{Z|az}}: {{W-|az|کوردجه}} *: Latînî: {{W+|az|kürdcə}} * {{Z|eu}}: {{W+|eu|kurduera}} * {{Z|be}}: {{W-|be|ку́рдская|m}} * {{Z|bg}}: {{W-|bg|кю́рдски}} * {{Z|cs}}: {{W-|cs|kurdština|m}} * {{Z|chr}}: {{W-|chr|ᎫᎸᏗ}} * {{Z|zh}}: *: {{Z|cmn}}: {{W+|cmn|庫爾德語|tr=kù'ěrdéyǔ}} * {{Z|da}}: {{W-|da|kurdisk|g}} * {{Z|id}}: {{W-|id|Kurdi}} * {{Z|ar}}: {{W+|ar|كُرْدِيَّة|m}} * {{Z|hy}}: {{W+|hy|քրդերեն}} * {{Z|et}}: {{W-|et|Kurdi}} * {{Z|fa}}: {{W+|fa|کردی|tr=kordi}} * {{Z|fi}}: {{W+|fi|kurdi}}, {{W-|fi|[[kurdin]] [[kieli]]}} * {{Z|fr}}: {{W+|fr|kurde|n}} * Gagauz: *: Kirîlî: {{W-|gag|кӱрдче}} *: Latînî: {{W-|gag|kürdçe}} * {{Z|fy}}: {{W-|fy|Koerdysk}} * {{Z|ka}}: {{W-|ka|ქურთული}} * {{Z|hi}}: {{W-|hi|कुर्दी|m}} * {{Z|nl}}: {{W+|nl|Koerdisch|nt}} * {{Z|he}}: {{W-|he|כורדית|m|tr=kurdít}} * {{Z|en}}: {{W+|en|Kurdish}} * {{Z|ga}}: {{W-|ga|Coirdis|m}} * {{Z|it}}: {{W+|it|curdo|n}} * {{Z|is}}: {{W+|is|kúrdíska|m}} * {{Z|ja}}: {{W+|ja|クルド語|tr=クルドご, kurudogo}} * {{Z|kl}}: {{W-|kl|kurdiskisut}} * {{Z|ca}}: {{W+|ca|kurd|n}} * {{Z|ky}}: {{W-|ky|курд}} * {{Z|ko}}: {{W+|ko|쿠르드어}} * {{Z|lv}}: {{W-|lv|kurdu valoda|m}} * {{Z|lt}}: {{W-|lt|kurdiškai}} * {{Z|mk}}: {{W-|mk|курдски|n}} * {{Z|mr}}: {{W-|mr|कुर्दी|m}} * {{Z|hu}}: {{W+|hu|kurd}} * {{Z|mdf}}: {{W-|mdf|курдонь}} * {{Z|mn}}: *: Kirîlî: {{W-|mn|[[курд]] [[хэл]]}} * {{Z|nv}}: {{W-|nv|Kʼóódii bizaad}} * {{Z|no}}: *: {{Z|nb}}: {{W+|nb|kurdisk|n}} *: {{Z|nn}}: {{W-|nn|kurdisk|n}} * {{Z|os}}: {{W-|os|курдаг}} * {{Z|ug}}: {{W-|ug|كۇردچە}} * Uzbek: *: Kirîlî: {{W-|uz|курдча}} *: Latînî: {{W-|uz|kurdcha}} * {{Z|pl}}: {{W+|pl|kurdyjski}} * {{Z|pt}}: {{W+|pt|curdo|n}} * {{Z|kk}}: {{W-|kk|күрд тілі}}, {{W-|kk|күрдше}} * {{Z|ro}}: {{W+|ro|kurdă|m}} * {{Z|ru}}: {{W+|ru|ку́рдский|n}}, {{W+|ru|ку́рдский язы́к}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|ку̏рдскӣ|n}} *: Latînî: {{W+|sh|kȕrdskī|n}} * {{Z|sk}}: {{W+|sk|kurdčina|m}} * {{Z|sl}}: {{W+|sl|kurdščina|m}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|kurdšćina|m}} *: {{Z|hsb}}: {{W-|hsb|kurdšćina|m}} * {{Z|es}}: {{W+|es|kurdo|n}}, {{W+|es|curdo|n}} * {{Z|sv}}: {{W+|sv|kurdiska}} * {{Z|tg}}: {{W+|tg|курдӣ}} * {{Z|tr}}: {{W+|tr|Kürtçe}} * Turkmen: *: Kirîlî: {{W-|tk|күртче}} *: Latînî: {{W-|tk|kürtçe}} * {{Z|ur}}: {{W-|ur|کردی|m|tr=kurdī}} * {{Z|uk}}: {{W+|uk|ку́рдська|m}} * {{Z|vi}}: {{W-|vi|tiếng Kurd}} * {{Z|wa}}: {{W-|wa|Kurdi}} * {{Z|yi}}: {{W-|yi|קורדיש|nt}} * {{Z|el}}: {{W+|el|κουρδικά}} {{werger-bin}} :{{werger çavkanî|en|Kurdish|beş=Ev qismê Wergerê|oldid=75152879}} === Rengdêr === {{ku-tewîn-rd|kurdî}} {{rengdêr|ku}} # Tiştên bi [[ziman]]ê [[kurd]]an. #: {{mk|ku|Stranên '''kurdî''', rojnameyên '''kurdî'''.}} #* {{jêder-websîte|ku|jêgirtin=Xezeteyên '''Kurdî''' yên li Stenbolê derdiketin bên îstisnakirin, xezeteyekî millî û wetenî yê ku yekemîn car li Kurdistanê hatîye neşirkirin, ew jî xezeteya Zarê Kirmancî ye, ku min xwendîye.|nivîskar=Seîd Veroj|sernav=Mesûd Fanî (Dr. Mesûd Fanî Bîlgîlî)|websîte=Rûpela nû|url=https://www.rupelanu.com/seid-veroj-mesud-fani-dr-mesud-fani-bilgili-17258h.htm|tarîx=2021-05-04}} # Tiştên [[kurd]]an. #: {{mk|ku|Aliyê '''kurdî''' di danûstandinan de.}} #* {{jêder-pirtûk|ku|jêgirtin=Şexsiyetên tarîxî yên '''kurdî''', bi xêra edebiyata devkî, ji dewr û dewranên xwe yên jibîrbûyî derdikevin û tên roja me û silav li civata nûjen dikin û ders, tecrube, bûyer û şîretên tarîxî vediguhêzînin civata '''kurdî''' ya îro.|nivîskar={{w|Mehmed Uzun}}|sernav={{w|Destpêka edebiyata kurdî}}|sal=1992}} # Mîna kurdan. #* {{bêmînak|ku}} ==== Ji wêjeya klasîk ==== * {{jêder|ku|{{Jêgirtin/Ehmedê Xanî/Mem û Zîn}}|jêgirtin=Safî şemirand vexwar-i durdî</br>Manendê derê lisanê '''kurdî'''</br>Înaye nizam û intizamê}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Kurdisch|nt}}, {{W+|de|kurdische Sprache|guman=erê}} * {{Z|eu}}: {{W+|eu|kurduera}} * {{Z|be}}: {{W-|be|Курдзкая|tr=Kurdzkaǎ}} * {{Z|bg}}: {{W-|bg|Кюрдски|tr=Kǔrdski}} * {{Z|cs}}: {{W-|cs|Kurdský}} * {{Z|id}}: {{W-|id|Kurdi}} * {{Z|ar}}: {{W+|ar|كردية|cuda=كُرْدِيَّة|m}}, {{W-|ar|كردي|cuda=كُرْدِيّ|n}} * {{Z|et}}: {{W-|et|kurdi keel}} * {{Z|fa}}: {{W+|fa|کردی|tr=kordî}}, {{W+|fa|زبان کردی}} * {{Z|fi}}: {{W+|fi|kurdi}}, {{W-|fi|kurdin kieli}} * {{Z|fr}}: {{W+|fr|kurde}} * {{Z|fy}}: {{W-|fy|Koerdysk}} * {{Z|ka}}: {{W-|fa|ქურთული|tr=kurduli}} * {{Z|hi}}: {{W+|hi|कुर्दिश}} * {{Z|he}}: {{W-|he|כורדית|tr=ḵurḏīṯ}} * {{Z|en}}: {{W+|en|Kurdish}}, {{W+|en|Kurd}} * {{Z|ga}}: {{W-|ga|Coirdis}} * {{Z|it}}: {{W+|it|curdo}} * {{Z|is}}: {{W-|is|Kúrdíska}} * {{Z|ja}}: {{W-|ja|クルド|tr=Kurudo}} * {{Z|ca}}: {{W-|ca|Kurd}} * {{Z|ky}}: {{W-|ky|Курд|tr=Qurd}} * {{Z|ko}}: {{W+|ko|쿠르드어|tr=Kuleudeueo}} * {{Z|lv}}: {{W-|lv|Kurdu}} * {{Z|lt}}: {{W-|lt|Kurdiškai}} * {{Z|hu}}: {{W+|hu|Kurd}} * {{Z|mdf}}: {{W-|mdf|Курдонь|tr=Kurdonʹ}} * {{Z|no}}: {{W-|no|Kurdisk}} * {{Z|pl}}: {{W+|pl|kurdyjski}} * {{Z|pt}}: {{W+|pt|curdo}} * {{Z|ro}}: {{W-|ro|Curdă}} * {{Z|ru}}: {{W+|ru|Курдский|tr=Kurdskiĭ}} * {{Z|sh}}: {{W+|sh|kurdski}} * {{Z|sh}}: {{W+|sh|kurdski}} * {{Z|sh}}: {{W+|sh|kurdski}} * {{Z|es}}: {{W+|es|kurdo}} * {{Z|sv}}: {{W+|sv|kurdiska}} * {{Z|tr}}: {{W+|tr|Kürtçe}} * {{Z|uk}}: {{W-|uk|Курдський}} (Kurdʹskiĭ) * {{Z|wa}}: {{W-|wa|Kurdi}} * {{Z|el}}: {{W-|el|Κουρδικά|tr=Kourdiká}} * {{Z|zza}}: {{W-|zza|kurdkî}}, {{W-|zza|kirdaskî}}, {{werger-bin}} rdixb9p3bj1sw70qqfrlkuygykrsiet kurmancî 0 3101 6329820 6329036 2026-08-12T23:08:45Z Wikihez 7344 6329820 wikitext text/x-wiki {{bnr-h|kurmanci|Kurmanci|Kurmancî}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA|kurmancî}}, {{IPAchar|/kʷɘɾmɑːnˈd͡ʒiː/}} * {{deng|ku|LL-Q36368 (kur)-Mihemed Qers-kurmancî.wav|dever=Qers}} * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-kurmancî.wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr === [[Wêne:Kurdish languages map.svg|thumb|280px|{{legend2|#ef6662}} '''Kurmancî''' (1) an '''kurmanciya''' jorê (2).<br>{{legend2|#c63143}} Soranî an '''kurmanciya''' jêrê (2).]] {{wp}} {{navdêr|ku|z=m}}, {{k-ya nerm}}, {{r-ya nerm}} # {{f|ku|ziman}} [[zarava|Zaravaya]] [[kurdî]] ya serekî ku li [[Bakurê Kurdistanê]], [[Rojavayê Kurdistanê]], bakurê [[Başûrê Kurdistanê]], bakurê [[Rojhilata Kurdistanê]], li [[Xorasan]]ê û li herêmine Sovyetistana berê tê axivîn. #: {{hevmane|ku|kurmanciya jorê|kurdiya bakur| kurdiya jorîn| behdinanî| here-were| were-here}} #* {{jêder-pirtûk|ku|jêgirtin=Teqbîḥ nekin evan ṭifalan<br/>Ev meywe eger ne abdar e<br/>'''Kirmancî''' ye, ew qeder li kar e|nivîskar={{w|Ehmedê Xanî}}|sernav={{w|Mem û Zîn}}|sal={{w|1692}}}} #* {{jêder-pirtûk|ku|jêgirtin=Silîvî: Awayê '''kurmanciya''' herêma Silîvan e, ku li nîvroyê rojhelat ji '''kurmanciya''' Botan-Hekar-Behdînan û li nîvro û rojava jî ji ya Beriya Mêrdînê û rojavayê Qeredaxê bi hin awayan vediqete.|nivîskar=Rojen Barnas|sernav=Sîlvan/ Silîvan / FARQÎN|sal=2013|weşanxane=Nûbihar|rûpel=189|isbn= 9786055402884, 6055402882}} #* {{jêder-malper|ku|jêgirtin=Wî berhemên Pûşkîn, Lêrmantov, Tolstoy, Nêksarov, Şêvçenko, Gorkî, Mayakovskî û şoreşger-helbestvanê bi eslê xwe kurd Fêrîk Polatbêkov ji rûsî wergerandine '''kurmanciyê'''.|malper=www.nuhev.com|nivîskar= Şêxmûs Ozpolat|sernav=Romaneke Nîvcomayî: Min Çi Dît|dîrok=|url=https://www.nuhev.com/romaneke-nivcomayi-min-ci-dit}} #* {{jêder-malper|ku|jêgirtin=Ergatîvî mohra '''kurmanciyê''' ye.|malper=www.nefel.com|nivîskar={{w|Newzad Hirorî}}|sernav=bêjing|dîrok=10.6.2005|url=http://www.nefel.com/kolumnists/kolumnist_detail.asp?MemberNr=10&RubricNr=24&ArticleNr=202}} # {{f|ku|ziman}} [[kurdî|Kurdî]]; hemî zaravayên kurdî, bi taybetî kurmancî (1) û [[soranî]]. #* {{jêder-pirtûk|ku|jêgirtin=Van weşanên bi kurdî û osmanî, bi awayekî fireh, cih dan ziman, çand û berhemên edebiyata kurdî. Wan herdu zaravayên mezintirîn, '''kurmanciya''' jorê û '''kurmanciya''' jêrê esas girtin. Di nav van weşanan de, ya girîng, bêguman, Jîn e.|nivîskar={{w|Mehmed Uzun}}|sernav={{w|Destpêka edebiyata kurdî}}|sal=1992}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|کورمانجی}} ==== Formên alternatîv ==== * {{hw|ku|kirmancî}} ==== Jê ==== {{kol2|ku | kurmancîaxiv | kurmancîziman | kurmanciya rojhilatî | kurmanciya navendî | kurmanciya rojavayî }} ==== Etîmolojî ==== Ji {{paş|ku|kurmanc|-î}}. ==== Bide ber ==== {{kol2|ku | soranî | hewramî | zazakî }} ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|کورمانجی}}, {{W-|ckb|کوردیی باکووری}} * {{Z|zza}}: {{W-|zza|kurmanckî}}, {{W-|zza|kurmancî}}, {{W-|zza|kirdaskî}}, {{W-|zza|kirdasî}}, {{W-|zza|kurmancîya corêne}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Kurmandschi|nt}} * {{Z|br}}: {{W-|br|kurmandjeg}} * {{Z|zh}}: {{W-|zh|北库尔德语}} * {{Z|ar}}: {{W-|ar|الكِرْمانْجِيّة|m}} * {{Z|fa}}: {{W-|fa|کرمانجی}}, {{W+|fa|کردی کرمانجی}} * {{Z|fi}}: {{W+|fi|kurmandži}} * {{Z|fr}}: {{W+|fr|kurmandji|n}}, {{W-|fr|kurde septentrional|n}}, {{W+|fr|kurde du Nord|n}} * {{Z|en}}: {{W+|en|Kurmanji}} * {{Z|ga}}: {{W-|ga|Curmainsis}} * {{Z|it}}: {{W-|it|kurmanji}} * {{Z|ja}}: {{W-|ja|クルマンジー}} * {{Z|pt}}: {{W+|pt|curmânji}} * {{Z|ru}}: {{W+|ru|курманджи}} * {{Z|es}}: {{W-|es|kurmanyi}} * {{Z|tr}}: {{W+|tr|Kurmanci}}, {{W-|tr|Kurmancça}}, {{W+|tr|Kurmançça}} {{werger-bin}} === Rengdêr === {{ku-tewîn-rd|kurmancî}} {{rengdêr|ku}} # Her tiştê bi kurmancî. #: {{mk|ku|Stranên '''kurmancî'''; çîrokên '''kurmancî'''.}} #: {{mk|ku|Di alfabeya '''kurmancî''' ya latînî de 31 herf hene.}} #* {{jêder|ku|jêgirtin=Binêrin li şi‘ran heçî zaniye<br>Çi terkîbekî serfê '''kurmancî''' ye|[[w:Evdirehmanê Axtepî|Evdirehmanê Axtepî]]}} ==== Werger ==== {{werger-ser}} * {{Z|fr}}: {{W+|fr|kurmandji}} {{werger-bin}} 4a6gkgflbmrmqjemrhh9pj9u09zejss çûn 0 3143 6329716 6322232 2026-08-12T20:38:54Z Wikihez 7344 /* Lêker */ 6329716 wikitext text/x-wiki {{bnr-h|cun|cûn|cün|çun|çûn|çün}} == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/t͡ʃʰuːn/}} * {{deng|ku|LL-Q36368 (kur)-Dildadil-çûn.wav|dever=Amed}} * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-çûn.wav|Deng|dever=Bidlîs}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|çûn|form=negerguhêz|niha=her-er-r|niha2=ç|borî=çû}} [[Wêne:Elephant_Walking_animated.gif|thumb|Fîlek bi rê ve '''diçe'''/'''tere'''.]] {{lêker|ku|c=x-ngh}} # Ji [[der]]ekê [[dûr ketin]], [[cih]]ek [[bi cih hêlan]] / [[bi cih hiştin]], [[dûr]]î derekê bûn. #: {{hevmane|ku|herîn|rewtin|bi rê ketin}} #: {{dijmane|ku|hatin}} #* {{jêder-pirtûk|ku|jêgirtin=Nezer ji mala dewatê der tê û di riya xwe de '''diçe'''.|nivîskar=Têmûrê Xelîl Mûradov|sernav=Nezerê Mêrxas|sal=1937|rûpel=}} #* {{jêder|ku|jêgirtin=Gor gotina apê min, ew '''terin''' di mêrga Şêx da gihê diçinin.|İkram Oğuz, ''Jîyan bi kurdî xweş e'', '''2022''', ''Weşanên NavKurd'', r.187}} #* {{jêder|ku|jêgirtin=Jinikê digote xelkê: Ev mêrê min Boẍoçêf e. Berê xwe dide Pêtro û digot-ê: Boẍoçêf, tu '''çûyî''' kû; ez û zarowên xwe tazî û birçî hiştin...|{{w|Ronahî}}, hj.25, '''1944''', Boẍoçef an Petroyê siseyan''}} # [[hinda|Hinda]] bûn, [[neman]], [[berze bûn]], [[rabûn]]. #* {{jêder-websîte|ku|jêgirtin=Xelk pir kenî bi me tama<br>Genim '''çû''' ewîr û ka ma<br>Têvedan kevirê dama<br>Me derda û wan vexwarî|nivîskar=Mihemedê Cezawîr|url=https://www.xelat.org/welato-2201|sernav=Welato (helbest)|sal=2014}} ==== Ji wêjeya klasîk ==== * {{jêder|ku|{{Jêgirtin/Mela Hisênê Bateyî/Mewlûda Kurdî}}|jêgirtin='''Çûn''' ji behrê me'rîfet ew hate der<br>[[qetre|Qetre]] jêr werya bi ilham ew qeder}} * {{jêder|ku|{{Jêgirtin/Feqiyê Teyran}}|jêgirtin=Taziyê uryan im ez<br>Perde '''çû''' ez mame tazî<br>Dil sera mehbûb dixwazî}} ==== Bi alfabeyên din ==== * {{ku-ar|چوون}} * {{ku-kr|ч'ӧн}} ==== Formên alternatîv ==== * {{g|ku|çûndin}} * {{g|ku|çûyin}} * {{g|ku|çûyîn}} ==== Jê ==== {{kol3|ku | çûn anîn | çûnanîn | çûyî | derçûn | jê çûn | ji ber çûn | ji bîrê çûn | ji dest çûn | jihev çûn | pev çûn }} ==== Têkildar ==== {{kol3|ku | bezîn | gerîn | livîn | meşîn }} ==== Etîmolojî ==== Ji {{ji|ine-pro|ku|*ḱey-}}. Guherîna ''*ḱ''-ya [[proto-hindûewropî]] bi /ç/ di zimanên [[hindûîranî]] de diyardeyeke berbelav e, binêrin bo nimûne: ''[[çar]], [[çav]], [[çend]], [[çi]]''... Hevreha {{hv|ckb|چوون}}, [[kurdiya başûrî]] ''[[çûn]]'', [[şêxbizinî]] ''[[cigin]]'', zazakî ''[[şiyayene]]'', goranî/hewramî ''[[şiyay]]'', osetî [[цӕуын]] (çæwyn), {{hv|fa|شدن|tr=berê /şuden/ bi wateya ''çûn'', niha /şoden/ bi manaya ''bûn, bûn tiştek''}}, tacikî [[шудан]] (şudan), {{hv|pal||şuten|sc=Latn}}, hexamenişî [[𐎠𐏁𐎡𐎹𐎺𐎶]] (š(i)yav-, /şiyev/), peştûyî {{g|ps|شول|tr=şwəl}}, {{hv|ae||ş(ii)aw-|sc=Latn}} (/şyew-/), {{hv|sa|च्य्अवते}} (cyávate: [[ketin]]), {{hv|grc|σεύω}} (seúō: [[dan pey]], li [[pey]] çûn; [[lezîn]]) û [[κῐ́ω]] (kíō: çûn) û [[κῑνέω]] (kīnéō: [[livandin]]), latînî ''[[cieō]]'' ([[livandin]]), albanî ''[[qoj]]'' (bixwîne: /çoy/, [[hişyar]] kirin)... Bêjeka kurdî ketiye ermenî wek {{hv|xcl|չուեմ|w=çûn}} û {{hv|hy|չու|w=rêwîtî}}, {{q|hy|չվել|w=bar kirin, koç kirin}}. Peyva {{hv|grc|κῑνέω}} (kīnéō: [[livandin]]) wek [[kîne-]] û [[sîne-]] ketiye gelek zimanan û kurdî jî, bo nimûne: ''[[kînetîk]], [[sînema]]''. ;{{biçûk|Çavkanî: * {{Cheung}} * {{Chyet}} * {{Lubotsky}} * {{Tsabolov}} }} ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|چوون}} * {{Z|zza}}: {{W-|zza|şîyayene}} ==== Werger ==== {{werger-ser|dûr ketin}} * {{Z|de}}: {{W+|de|gehen}}, {{W+|de|fahren}} * {{Z|az}}: {{W+|az|getmək}} * {{Z|ba}}: {{W-|ba|барыу}} * {{Z|br}}: {{W+|br|mont}}, {{W+|br|monet}} * {{Z|bg}}: {{W+|bg|отивам|n}} * {{Z|cs}}: {{W+|cs|jít}} * {{Z|zh}}: {{W+|zh|去|tr=qǜ}} * {{Z|da}}: {{W+|da|gå}} * {{Z|ar}}: {{W+|ar|راح|tr=raḧe|cuda=راحَ}}, {{W+|ar|ذهب|tr=ḏehebe}} * {{Z|eo}}: {{W+|eo|iri}} * {{Z|fa}}: {{W+|fa|رفتن|tr=reften}} * {{Z|fi}}: {{W+|fi|mennä}}, {{W+|fi|lähteä}} * {{Z|vls}}: {{W-|vls|goan}} * {{Z|fr}}: {{W+|fr|aller}}, {{W+|fr|partir}} * {{Z|gag}}: {{W-|gag|gitmää}} * {{Z|roa-gal}}: {{W-|roa-gal|aler}}, {{W-|roa-gal|alae}} * {{Z|got}}: {{W-|got|𐌲𐌰𐌲𐌲𐌰𐌽|tr=gaggan}} * {{Z|en}}: {{W+|en|go}} * {{Z|ga}}: {{W-|ga|dul}} * {{Z|it}}: {{W+|it|andare}} * {{Z|ja}}: {{W+|ja|行く|tr=iku}} * {{Z|krc}}: {{W-|krc|барыргъа}} * {{Z|ca}}: {{W+|ca|anar}} * {{Z|ky}}: {{W+|ky|баруу}} * {{Z|ki}}: {{W-|ki|thie}} * {{Z|ko}}: {{W+|ko|가다|tr=gada}} * {{Z|kum}}: {{W-|kum|бармакъ}} * {{Z|lb}}: {{W+|lb|goen}} * {{Z|mk}}: {{W-|mk|оди|tr=ódi}} * {{Z|mi}}: {{W-|mi|haere}} * {{Z|hu}}: {{W+|hu|megy}} * {{Z|nrf}}: {{W-|nrf|marchi}} * {{Z|oc}}: {{W+|oc|anar}} * {{Z|oia}}: {{W-|oia|mara}} * {{Z|pt}}: {{W+|pt|ir}} * {{Z|kk}}: {{W+|kk|бару|tr=baruw}} * {{Z|ro}}: {{W+|ro|merge}}, se {{W+|ro|duce}} * {{Z|se}}: {{W-|se|mannat}}, {{W-|se|johtit}}, {{W-|se|fitnat}} * {{Z|sh}}: {{W+|sh|ići}}, {{W-|sh|ићи}} * {{Z|sk}}: {{W+|sk|ísť}} * {{Z|es}}: {{W+|es|ir}} * {{Z|sv}}: {{W+|sv|gå}}, {{W+|sv|åka}} * {{Z|zdj}}: {{W-|zdj|hwenɗa}}, {{W-|zdj|henɗa}} * {{Z|tt}}: {{W-|tt|бару}} * {{Z|tr}}: {{W+|tr|gitmek}} * {{Z|tk}}: {{W-|tk|gitmek}} * {{Z|vi}}: {{W+|vi|đi}} * {{Z|kjh}}: {{W-|kjh|парарға}} * {{Z|sah}}: {{W-|sah|бар}} * {{Z|el}}: {{W+|el|πάω|tr=páo}}, {{W+|el|πηγαίνω|tr=piyéno}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # [[birêketin]], [[dûrketin]], [[dûr]]bûn, [[royîştin]], [[rewtin]], [[sefer]]kirin #: {{mk|ku|'''Çûna''' we bixêr be!|Hûn bixêr biçin!|rêz=1}} #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi zaravayên din ==== * {{Z|zza}}: {{W-|zza|şiyayiş}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|gitme}} {{werger-bin}} {{bend}} === Hoker === {{hoker|ku}} # [[wek|Wek]], [[mîna]], [[şibî]], [[nola]], [[fena]] (li [[pey]] peyvan bi kar tê). #: {{mk|ku|Mirov '''çûn'''.|Wek mirovan.|rêz=1}} #* {{bêmînak|ku}} ==== Etîmolojî ==== Têkilî {{q|ku|çawa}}. ==== Werger ==== {{werger-ser}} {{werger-bin}} == {{ziman|ckb}} == === Lêker === {{lêker|ckb|sc=Latn}} # {{ckb-Arab|چوون}} mn47al93rie26mlxzy1xhh91475o5qn 6329717 6329716 2026-08-12T20:39:10Z Wikihez 7344 6329717 wikitext text/x-wiki {{bnr-h|cun|cûn|cün|çun|çûn|çün}} == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/t͡ʃʰuːn/}} * {{deng|ku|LL-Q36368 (kur)-Dildadil-çûn.wav|dever=Amed}} * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-çûn.wav|Deng|dever=Bidlîs}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|çûn|form=negerguhêz|niha=her-er-r|niha2=ç|borî=çû}} [[Wêne:Elephant_Walking_animated.gif|thumb|Fîlek bi rê ve '''diçe'''/'''tere'''.]] {{lêker|ku|c=x-ngh}} # Ji [[der]]ekê [[dûr ketin]], [[cih]]ek [[bi cih hêlan]] / [[bi cih hiştin]], [[dûr]]î derekê bûn. #: {{hevmane|ku|herîn|rewtin|bi rê ketin}} #: {{dijmane|ku|hatin}} #* {{jêder-pirtûk|ku|jêgirtin=Nezer ji mala dewatê der tê û di riya xwe de '''diçe'''.|nivîskar=Têmûrê Xelîl Mûradov|sernav=Nezerê Mêrxas|sal=1937|rûpel=}} #* {{jêder|ku|jêgirtin=Gor gotina apê min, ew '''terin''' di mêrga Şêx da gihê diçinin.|İkram Oğuz, ''Jîyan bi kurdî xweş e'', '''2022''', ''Weşanên NavKurd'', r.187}} #* {{jêder|ku|jêgirtin=Jinikê digote xelkê: Ev mêrê min Boẍoçêf e. Berê xwe dide Pêtro û digot-ê: Boẍoçêf, tu '''çûyî''' kû; ez û zarowên xwe tazî û birçî hiştin...|{{w|Ronahî}}, hj.25, '''1944''', Boẍoçef an Petroyê siseyan''}} # [[hinda|Hinda]] bûn, [[neman]], [[berze bûn]], [[rabûn]]. #* {{jêder-websîte|ku|jêgirtin=Xelk pir kenî bi me tama<br>Genim '''çû''' ewîr û ka ma<br>Têvedan kevirê dama<br>Me derda û wan vexwarî|nivîskar=Mihemedê Cezawîr|url=https://www.xelat.org/welato-2201|malper=xelat.org|sernav=Welato (helbest)|sal=2014}} ==== Ji wêjeya klasîk ==== * {{jêder|ku|{{Jêgirtin/Mela Hisênê Bateyî/Mewlûda Kurdî}}|jêgirtin='''Çûn''' ji behrê me'rîfet ew hate der<br>[[qetre|Qetre]] jêr werya bi ilham ew qeder}} * {{jêder|ku|{{Jêgirtin/Feqiyê Teyran}}|jêgirtin=Taziyê uryan im ez<br>Perde '''çû''' ez mame tazî<br>Dil sera mehbûb dixwazî}} ==== Bi alfabeyên din ==== * {{ku-ar|چوون}} * {{ku-kr|ч'ӧн}} ==== Formên alternatîv ==== * {{g|ku|çûndin}} * {{g|ku|çûyin}} * {{g|ku|çûyîn}} ==== Jê ==== {{kol3|ku | çûn anîn | çûnanîn | çûyî | derçûn | jê çûn | ji ber çûn | ji bîrê çûn | ji dest çûn | jihev çûn | pev çûn }} ==== Têkildar ==== {{kol3|ku | bezîn | gerîn | livîn | meşîn }} ==== Etîmolojî ==== Ji {{ji|ine-pro|ku|*ḱey-}}. Guherîna ''*ḱ''-ya [[proto-hindûewropî]] bi /ç/ di zimanên [[hindûîranî]] de diyardeyeke berbelav e, binêrin bo nimûne: ''[[çar]], [[çav]], [[çend]], [[çi]]''... Hevreha {{hv|ckb|چوون}}, [[kurdiya başûrî]] ''[[çûn]]'', [[şêxbizinî]] ''[[cigin]]'', zazakî ''[[şiyayene]]'', goranî/hewramî ''[[şiyay]]'', osetî [[цӕуын]] (çæwyn), {{hv|fa|شدن|tr=berê /şuden/ bi wateya ''çûn'', niha /şoden/ bi manaya ''bûn, bûn tiştek''}}, tacikî [[шудан]] (şudan), {{hv|pal||şuten|sc=Latn}}, hexamenişî [[𐎠𐏁𐎡𐎹𐎺𐎶]] (š(i)yav-, /şiyev/), peştûyî {{g|ps|شول|tr=şwəl}}, {{hv|ae||ş(ii)aw-|sc=Latn}} (/şyew-/), {{hv|sa|च्य्अवते}} (cyávate: [[ketin]]), {{hv|grc|σεύω}} (seúō: [[dan pey]], li [[pey]] çûn; [[lezîn]]) û [[κῐ́ω]] (kíō: çûn) û [[κῑνέω]] (kīnéō: [[livandin]]), latînî ''[[cieō]]'' ([[livandin]]), albanî ''[[qoj]]'' (bixwîne: /çoy/, [[hişyar]] kirin)... Bêjeka kurdî ketiye ermenî wek {{hv|xcl|չուեմ|w=çûn}} û {{hv|hy|չու|w=rêwîtî}}, {{q|hy|չվել|w=bar kirin, koç kirin}}. Peyva {{hv|grc|κῑνέω}} (kīnéō: [[livandin]]) wek [[kîne-]] û [[sîne-]] ketiye gelek zimanan û kurdî jî, bo nimûne: ''[[kînetîk]], [[sînema]]''. ;{{biçûk|Çavkanî: * {{Cheung}} * {{Chyet}} * {{Lubotsky}} * {{Tsabolov}} }} ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|چوون}} * {{Z|zza}}: {{W-|zza|şîyayene}} ==== Werger ==== {{werger-ser|dûr ketin}} * {{Z|de}}: {{W+|de|gehen}}, {{W+|de|fahren}} * {{Z|az}}: {{W+|az|getmək}} * {{Z|ba}}: {{W-|ba|барыу}} * {{Z|br}}: {{W+|br|mont}}, {{W+|br|monet}} * {{Z|bg}}: {{W+|bg|отивам|n}} * {{Z|cs}}: {{W+|cs|jít}} * {{Z|zh}}: {{W+|zh|去|tr=qǜ}} * {{Z|da}}: {{W+|da|gå}} * {{Z|ar}}: {{W+|ar|راح|tr=raḧe|cuda=راحَ}}, {{W+|ar|ذهب|tr=ḏehebe}} * {{Z|eo}}: {{W+|eo|iri}} * {{Z|fa}}: {{W+|fa|رفتن|tr=reften}} * {{Z|fi}}: {{W+|fi|mennä}}, {{W+|fi|lähteä}} * {{Z|vls}}: {{W-|vls|goan}} * {{Z|fr}}: {{W+|fr|aller}}, {{W+|fr|partir}} * {{Z|gag}}: {{W-|gag|gitmää}} * {{Z|roa-gal}}: {{W-|roa-gal|aler}}, {{W-|roa-gal|alae}} * {{Z|got}}: {{W-|got|𐌲𐌰𐌲𐌲𐌰𐌽|tr=gaggan}} * {{Z|en}}: {{W+|en|go}} * {{Z|ga}}: {{W-|ga|dul}} * {{Z|it}}: {{W+|it|andare}} * {{Z|ja}}: {{W+|ja|行く|tr=iku}} * {{Z|krc}}: {{W-|krc|барыргъа}} * {{Z|ca}}: {{W+|ca|anar}} * {{Z|ky}}: {{W+|ky|баруу}} * {{Z|ki}}: {{W-|ki|thie}} * {{Z|ko}}: {{W+|ko|가다|tr=gada}} * {{Z|kum}}: {{W-|kum|бармакъ}} * {{Z|lb}}: {{W+|lb|goen}} * {{Z|mk}}: {{W-|mk|оди|tr=ódi}} * {{Z|mi}}: {{W-|mi|haere}} * {{Z|hu}}: {{W+|hu|megy}} * {{Z|nrf}}: {{W-|nrf|marchi}} * {{Z|oc}}: {{W+|oc|anar}} * {{Z|oia}}: {{W-|oia|mara}} * {{Z|pt}}: {{W+|pt|ir}} * {{Z|kk}}: {{W+|kk|бару|tr=baruw}} * {{Z|ro}}: {{W+|ro|merge}}, se {{W+|ro|duce}} * {{Z|se}}: {{W-|se|mannat}}, {{W-|se|johtit}}, {{W-|se|fitnat}} * {{Z|sh}}: {{W+|sh|ići}}, {{W-|sh|ићи}} * {{Z|sk}}: {{W+|sk|ísť}} * {{Z|es}}: {{W+|es|ir}} * {{Z|sv}}: {{W+|sv|gå}}, {{W+|sv|åka}} * {{Z|zdj}}: {{W-|zdj|hwenɗa}}, {{W-|zdj|henɗa}} * {{Z|tt}}: {{W-|tt|бару}} * {{Z|tr}}: {{W+|tr|gitmek}} * {{Z|tk}}: {{W-|tk|gitmek}} * {{Z|vi}}: {{W+|vi|đi}} * {{Z|kjh}}: {{W-|kjh|парарға}} * {{Z|sah}}: {{W-|sah|бар}} * {{Z|el}}: {{W+|el|πάω|tr=páo}}, {{W+|el|πηγαίνω|tr=piyéno}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # [[birêketin]], [[dûrketin]], [[dûr]]bûn, [[royîştin]], [[rewtin]], [[sefer]]kirin #: {{mk|ku|'''Çûna''' we bixêr be!|Hûn bixêr biçin!|rêz=1}} #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi zaravayên din ==== * {{Z|zza}}: {{W-|zza|şiyayiş}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|gitme}} {{werger-bin}} {{bend}} === Hoker === {{hoker|ku}} # [[wek|Wek]], [[mîna]], [[şibî]], [[nola]], [[fena]] (li [[pey]] peyvan bi kar tê). #: {{mk|ku|Mirov '''çûn'''.|Wek mirovan.|rêz=1}} #* {{bêmînak|ku}} ==== Etîmolojî ==== Têkilî {{q|ku|çawa}}. ==== Werger ==== {{werger-ser}} {{werger-bin}} == {{ziman|ckb}} == === Lêker === {{lêker|ckb|sc=Latn}} # {{ckb-Arab|چوون}} hzpp474ai6h0nb6llwbvz2jkhdcs1vn min 0 3458 6329846 6312354 2026-08-12T23:52:06Z Wikihez 7344 /* Kurmancî */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6329846 wikitext text/x-wiki {{bnr-h|mîn|mìn|miñ}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36163_(kmr)-Key Mîrza-min.wav|dever=Wan}} * {{ku-kîte}} === Cînav === {{ku-zayend|MNY=min|MNP=me}} {{cînav|ku}} # ''Forma [[tewandî]] ji [[cînav]]ê'' '''[[ez]]'''. #: {{mk|ku|Ew '''min''' dinase.}} #: {{mk|ku|Ev jî hevalê '''min''' e.}} #: {{mk|ku|Ev pirtûk li nik '''min''' peyda nabe.}} #: {{mk|ku|Te bihîst ku '''min''' çi got?}} ==== Bi alfabeyên din ==== * {{ku-ar|من}} * {{ku-kr|мьн}} ==== Formên alternatîv ==== * {{mj|Devkî}} {{g|ku|mi}} * {{mj|Klasîk}} {{g|ku|sc=Arab|مه|tr=-}} / {{g|ku|sc=Arab|من|tr=-}} ==== Têkildar ==== {{cînav/ku}} ==== Etîmolojî ==== Ji {{ji|ine-pro|ku|*(e)me-n-}}, hevreha avestayî ''mene'', parsî ''mene'', farisî {{g|fa|من|tr=men}}, sanskrîtî ''ma, mam'', yûnaniya kevn {{g|grc|με|tr=me}} / {{g|grc|εμέ|tr=emê}}, îngilîzî {{q|en|me}}, {{q|en|mine}}, {{q|en|my}}, latînî {{q|la|me}}, fransî {{q|fr|me}}, {{q|fr|moi}}, rusî {{q|ru|меня|tr=minya}}... Hêjayî gotinê ye ku nêzîkiya navbera {{q|ku||min}} ya kurdî û lêzimên wê yên hindûewropî li gel {{q|tr||men|tr=ez}} ya zimanên tirkîkî (bi tirkiya stenbolî {{q|tr|ben}}) tenê tiştek tesedifî ye. *{{ji|ira-pro||-}}: **{{ae}}: '''mene''' ("min") **{{peo}}: '''mene''' ("min") ***{{fa}}: '''men''' ("ez; min") **[[partî]]: '''men''' ("min") **{{kmr}}: '''min''' ("min") **[[soranî]]: '''min''' ("ez; min") **{{zza}}: '''mi''', [[min]] *{{sa}}: '''ma, mam''' ("min") *{{el}}: '''me, emê''' ("min") *{{la}}: '''me''' ("min") *{{de}}: '''mich''' ("min") *{{en}}: '''me''' ("min") ... ;{{biçûk|Çavkanî: * {{Horn|r=222}} * {{Watkins|p=51}} * {{Etymonline}} }} ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|-im|sc=Latn}}, {{W-|ckb|-m|sc=Latn}} ({{q|ckb||min|sc=Latn}} / {{q|ckb|emin|sc=Latn}} yên soranî hevwateyên {{q|ku||ez}} ya kurmancî ye!) * {{Z|zza}}: {{W-|zza|mi}}, {{W-|zza|min}} ==== Werger ==== {{werger-ser|wek objeya [[yekser]] (bo nimûne: Tu min dibînî.)}} * {{Z|de}}: {{W|de|mich}}, {{W|de|mein|guman=erê}} * {{Z|zh}}: {{W|zh|我}} * {{Z|da}}: {{W|da|mig}} * {{Z|ar}}: {{W|ar|ـني|tr=-nî}}, {{W|ar|ـي|tr=-î}} * {{Z|hy}}: [[ինձ]] (inc) * {{Z|fa}}: {{W|fa|من|tr=men}}, {{W|fa|م -|guman=erê}} * {{Z|fi}}: {{W|fi|minut}}, {{W|fi|minua}} * {{Z|fr}}: {{W|fr|me}} * {{Z|gu}}: {{W|gu|მე}} * {{Z|nl}}: {{W|nl|me}}, {{W|nl|mij}} * {{Z|io}}: {{W|io|me}} * {{Z|ang}}: {{W-|ang|mē}} * {{Z|en}}: {{W|en|me}}, {{W|en|I|guman=erê}} * {{Z|ga}}: {{W|ga|mé}}, {{W|ga|mise}} * {{Z|it}}: {{W|it|mi}}, {{W|it|me}} * {{Z|gv}}: {{W|gv|mee}}, {{W|gv|mish}} * {{Z|no}}: {{W|no|meg}} * {{Z|sv}}: {{W|sv|mig}} * [[tetumî]]: [[ha'u]] * {{Z|tr}}: {{W|tr|beni}}, {{W|tr|bana|guman=erê}}, {{W|tr|ben|guman=erê}} * {{Z|uk}}: [[мене]] (mene) * {{Z|vi}}: {{W|vi|tôi}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # [[pîvan|Pîvanek]] [[dexlûdan]]î ye û [[nêz]]î 3 [[kg]] e. #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * {{g|ku|men}} * {{g|ku|mine}} ==== Etîmolojî ==== Hevreha farisî {{g|fa|من|tr=men}}, erebî {{g|ar|من|tr=menn}}, îbranî {{q|he|מנה|tr=menih}}, yûnanî {{q|el|μνᾶ|tr=mnâ}}, sanskrîtî {{g|sa|मान|tr=men}} ihtimalen ji {{ji|sa|ku|मा|tr=me-|w=[[pîvan]]}}. Ji heman rehî herwiha portugalî {{q|pt|mane}}, rusî {{g|ru|ман|tr=man}} û {{g|ru|ма́унд|tr=máund}}, îngilîzî {{q|en|maund}}... ==== Werger ==== {{werger-ser}} {{werger-bin}} == {{ziman|ckb}} == === Cînav === {{cînav|ckb|sc=Latn}} # {{ckb-Arab|من|w=min}} #: {{mk|ckb|sc=Latn|'''Min''' naçim.|tr=-|w=Ez naçim.|birêz=1}} # (ya/yê/yên) {{g|ku|min}} #: {{mk|ckb|sc=Latn|Ew hî '''min''' e.|tr=-|w=Ew ya / yê min e.|birêz=1}} ==== Têkildar ==== {{cînav/ckb}} == {{ziman|zza}} == === Cînav === {{cînav|zza}} # {{g|ku|min}} #* {{bêmînak|zza}} == {{ziman|eu}} == === Bilêvkirin === * {{deng|eu|LL-Q8752 (eus)-Xabier Cañas-min.wav|Deng|dever=Donostia-San Sebastián, Spanya}} === Navdêr === {{navdêr|eu}} # [[êş]], [[jan]] #* {{bêmînak|eu}} == {{ziman|br}} == === Navdêr === {{navdêr|br|z=n}} # {{mijar|br|çek}} {{g|ku|mîn}}, {{g|ku|mayin}} #* {{bêmînak|br}} === Çavkanî === {{rûpela wergerê|br|mîn}} == {{ziman|da}} == === Cînav === {{cînav|da}} # (ya / yê) {{g|ku|min}} #* {{bêmînak|da}} == {{ziman|eo}} == === Bilêvkirin === * {{deng|eo|LL-Q143 (epo)-Robin van der Vliet-min.wav|Deng|dever=Wijchen, Holenda}} * {{deng|eo|LL-Q143 (epo)-Lepticed7-min.wav|Deng|dever=Toulouse, Fransa}} === Cînav === {{cînav|eo}} # {{g|ku|min}} #* {{bêmînak|eo}} == {{ziman|gd}} == === Navdêr === {{navdêr|gd|z=m}} # {{mijar|gd|xwarin}} {{g|ku|ar}}, {{g|ku|ard}}, {{g|ku|arvan}} #* {{bêmînak|gd}} === Çavkanî === {{rûpela wergerê|gd|ar}} == {{ziman|guo}} == === Navdêr === {{navdêr|guo}} # {{mijar|guo|vexwarin}} {{g|ku|av}} #* {{bêmînak|guo}} === Çavkanî === {{rûpela wergerê|guo|av/Werger1}} == {{ziman|nl}} == === Bilêvkirin === * {{deng|nl|LL-Q7411 (nld)-Robin van der Vliet-min.wav|Deng|dever=Wijchen, Holenda}} === Navdêr === {{navdêr|nl}} # [[kêmî]], [[mînûs]] #* {{bêmînak|nl}} # [[dayîn]], [[dêşîr]] #* {{bêmînak|nl}} === Rengdêr === {{rengdêr|nl}} # [[kêm]], ne [[bes]] #* {{bêmînak|nl}} == {{ziman|en}} == === Kurtenav === {{kurtenav|en}} # {{kurtkirin|en|minute}} #* {{bêmînak|en}} == {{ziman|ang}} == === Cînav === {{cînav|ang}} # (ya / yê) {{g|ku|min}} #* {{bêmînak|ang}} == {{ziman|bij}} == === Navdêr === {{navdêr|bij}} # {{mijar|bij|vexwarin}} {{g|ku|av}} #* {{bêmînak|bij}} === Çavkanî === {{rûpela wergerê|bij|av/Werger1}} == {{ziman|mt}} == === Cînav === {{cînav|mt}} # [[kî]] #* {{bêmînak|mt}} # [[kê]] #* {{bêmînak|mt}} == {{ziman|no}} == === Cînav === {{cînav|no}} # (ya / yê) {{g|ku|min}} #* {{bêmînak|no}} == {{ziman|pai}} == === Navdêr === {{navdêr|pai}} # {{mijar|pai|vexwarin}} {{g|ku|av}} #* {{bêmînak|pai}} === Çavkanî === {{rûpela wergerê|pai|av/Werger2}} == {{ziman|sv}} == === Cînav === {{cînav|sv}} # (ya / yê) {{g|ku|min}} #* {{bêmînak|sv}} == {{ziman|tt}} == === Cînav === {{cînav|tt}} # [[ez]] #* {{bêmînak|tt}} == {{ziman|zea}} == === Rengdêr === {{rengdêr|zea}} # {{g|ku|xirab}}, {{g|ku|nebaş}} #* {{bêmînak|zea}} === Çavkanî === {{rûpela wergerê|zea|xirab}} ae1l4puxhf4b4zgcsnhbrn4knz24t8l 6329856 6329846 2026-08-13T00:06:12Z Wikihez 7344 /* Etîmolojî */ 6329856 wikitext text/x-wiki {{bnr-h|mîn|mìn|miñ}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36163_(kmr)-Key Mîrza-min.wav|dever=Wan}} * {{ku-kîte}} === Cînav === {{ku-zayend|MNY=min|MNP=me}} {{cînav|ku}} # ''Forma [[tewandî]] ji [[cînav]]ê'' '''[[ez]]'''. #: {{mk|ku|Ew '''min''' dinase.}} #: {{mk|ku|Ev jî hevalê '''min''' e.}} #: {{mk|ku|Ev pirtûk li nik '''min''' peyda nabe.}} #: {{mk|ku|Te bihîst ku '''min''' çi got?}} ==== Bi alfabeyên din ==== * {{ku-ar|من}} * {{ku-kr|мьн}} ==== Formên alternatîv ==== * {{mj|Devkî}} {{g|ku|mi}} * {{mj|Klasîk}} {{g|ku|sc=Arab|مه|tr=-}} / {{g|ku|sc=Arab|من|tr=-}} ==== Têkildar ==== {{cînav/ku}} ==== Etîmolojî ==== Ji {{ji|ine-pro|ku|*(e)me-n-}}, hevreha avestayî ''mene'', parsî ''mene'', farisî {{g|fa|من|tr=men}}, sanskrîtî ''ma, mam'', yûnaniya kevn {{g|grc|με|tr=me}} / {{g|grc|εμέ|tr=emê}}, îngilîzî {{q|en|me}}, {{q|en|mine}}, {{q|en|my}}, latînî {{q|la|me}}, fransî {{q|fr|me}}, {{q|fr|moi}}, rusî {{q|ru|меня|tr=minya}}... Hêjayî gotinê ye ku nêzîkiya navbera {{q|ku||min}} ya kurdî û lêzimên wê yên hindûewropî li gel {{q|tr||men|tr=ez}} ya zimanên tirkîkî (bi tirkiya stenbolî {{q|tr|ben}}) tenê tiştek tesedifî ye. *{{ji|ira-pro||-}}: **{{ae}}: '''mene''' ("min") **{{peo}}: '''mene''' ("min") ***{{fa}}: '''men''' ("ez; min") **[[partî]]: '''men''' ("min") **{{kmr}}: '''min''' ("min") **[[soranî]]: '''min''' ("ez; min") **{{zza}}: '''mi''', [[min]] *{{sa}}: '''ma, mam''' ("min") *{{el}}: '''me, emê''' ("min") *{{la}}: '''me''' ("min") *{{de}}: '''mich''' ("min") *{{en}}: '''me''' ("min") ... ;{{biçûk|Çavkanî: * {{Horn|r=222}} * {{Watkins|r=51}} * {{Etymonline}} }} ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|-im|sc=Latn}}, {{W-|ckb|-m|sc=Latn}} ({{q|ckb||min|sc=Latn}} / {{q|ckb|emin|sc=Latn}} yên soranî hevwateyên {{q|ku||ez}} ya kurmancî ye!) * {{Z|zza}}: {{W-|zza|mi}}, {{W-|zza|min}} ==== Werger ==== {{werger-ser|wek objeya [[yekser]] (bo nimûne: Tu min dibînî.)}} * {{Z|de}}: {{W|de|mich}}, {{W|de|mein|guman=erê}} * {{Z|zh}}: {{W|zh|我}} * {{Z|da}}: {{W|da|mig}} * {{Z|ar}}: {{W|ar|ـني|tr=-nî}}, {{W|ar|ـي|tr=-î}} * {{Z|hy}}: [[ինձ]] (inc) * {{Z|fa}}: {{W|fa|من|tr=men}}, {{W|fa|م -|guman=erê}} * {{Z|fi}}: {{W|fi|minut}}, {{W|fi|minua}} * {{Z|fr}}: {{W|fr|me}} * {{Z|gu}}: {{W|gu|მე}} * {{Z|nl}}: {{W|nl|me}}, {{W|nl|mij}} * {{Z|io}}: {{W|io|me}} * {{Z|ang}}: {{W-|ang|mē}} * {{Z|en}}: {{W|en|me}}, {{W|en|I|guman=erê}} * {{Z|ga}}: {{W|ga|mé}}, {{W|ga|mise}} * {{Z|it}}: {{W|it|mi}}, {{W|it|me}} * {{Z|gv}}: {{W|gv|mee}}, {{W|gv|mish}} * {{Z|no}}: {{W|no|meg}} * {{Z|sv}}: {{W|sv|mig}} * [[tetumî]]: [[ha'u]] * {{Z|tr}}: {{W|tr|beni}}, {{W|tr|bana|guman=erê}}, {{W|tr|ben|guman=erê}} * {{Z|uk}}: [[мене]] (mene) * {{Z|vi}}: {{W|vi|tôi}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # [[pîvan|Pîvanek]] [[dexlûdan]]î ye û [[nêz]]î 3 [[kg]] e. #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * {{g|ku|men}} * {{g|ku|mine}} ==== Etîmolojî ==== Hevreha farisî {{g|fa|من|tr=men}}, erebî {{g|ar|من|tr=menn}}, îbranî {{q|he|מנה|tr=menih}}, yûnanî {{q|el|μνᾶ|tr=mnâ}}, sanskrîtî {{g|sa|मान|tr=men}} ihtimalen ji {{ji|sa|ku|मा|tr=me-|w=[[pîvan]]}}. Ji heman rehî herwiha portugalî {{q|pt|mane}}, rusî {{g|ru|ман|tr=man}} û {{g|ru|ма́унд|tr=máund}}, îngilîzî {{q|en|maund}}... ==== Werger ==== {{werger-ser}} {{werger-bin}} == {{ziman|ckb}} == === Cînav === {{cînav|ckb|sc=Latn}} # {{ckb-Arab|من|w=min}} #: {{mk|ckb|sc=Latn|'''Min''' naçim.|tr=-|w=Ez naçim.|birêz=1}} # (ya/yê/yên) {{g|ku|min}} #: {{mk|ckb|sc=Latn|Ew hî '''min''' e.|tr=-|w=Ew ya / yê min e.|birêz=1}} ==== Têkildar ==== {{cînav/ckb}} == {{ziman|zza}} == === Cînav === {{cînav|zza}} # {{g|ku|min}} #* {{bêmînak|zza}} == {{ziman|eu}} == === Bilêvkirin === * {{deng|eu|LL-Q8752 (eus)-Xabier Cañas-min.wav|Deng|dever=Donostia-San Sebastián, Spanya}} === Navdêr === {{navdêr|eu}} # [[êş]], [[jan]] #* {{bêmînak|eu}} == {{ziman|br}} == === Navdêr === {{navdêr|br|z=n}} # {{mijar|br|çek}} {{g|ku|mîn}}, {{g|ku|mayin}} #* {{bêmînak|br}} === Çavkanî === {{rûpela wergerê|br|mîn}} == {{ziman|da}} == === Cînav === {{cînav|da}} # (ya / yê) {{g|ku|min}} #* {{bêmînak|da}} == {{ziman|eo}} == === Bilêvkirin === * {{deng|eo|LL-Q143 (epo)-Robin van der Vliet-min.wav|Deng|dever=Wijchen, Holenda}} * {{deng|eo|LL-Q143 (epo)-Lepticed7-min.wav|Deng|dever=Toulouse, Fransa}} === Cînav === {{cînav|eo}} # {{g|ku|min}} #* {{bêmînak|eo}} == {{ziman|gd}} == === Navdêr === {{navdêr|gd|z=m}} # {{mijar|gd|xwarin}} {{g|ku|ar}}, {{g|ku|ard}}, {{g|ku|arvan}} #* {{bêmînak|gd}} === Çavkanî === {{rûpela wergerê|gd|ar}} == {{ziman|guo}} == === Navdêr === {{navdêr|guo}} # {{mijar|guo|vexwarin}} {{g|ku|av}} #* {{bêmînak|guo}} === Çavkanî === {{rûpela wergerê|guo|av/Werger1}} == {{ziman|nl}} == === Bilêvkirin === * {{deng|nl|LL-Q7411 (nld)-Robin van der Vliet-min.wav|Deng|dever=Wijchen, Holenda}} === Navdêr === {{navdêr|nl}} # [[kêmî]], [[mînûs]] #* {{bêmînak|nl}} # [[dayîn]], [[dêşîr]] #* {{bêmînak|nl}} === Rengdêr === {{rengdêr|nl}} # [[kêm]], ne [[bes]] #* {{bêmînak|nl}} == {{ziman|en}} == === Kurtenav === {{kurtenav|en}} # {{kurtkirin|en|minute}} #* {{bêmînak|en}} == {{ziman|ang}} == === Cînav === {{cînav|ang}} # (ya / yê) {{g|ku|min}} #* {{bêmînak|ang}} == {{ziman|bij}} == === Navdêr === {{navdêr|bij}} # {{mijar|bij|vexwarin}} {{g|ku|av}} #* {{bêmînak|bij}} === Çavkanî === {{rûpela wergerê|bij|av/Werger1}} == {{ziman|mt}} == === Cînav === {{cînav|mt}} # [[kî]] #* {{bêmînak|mt}} # [[kê]] #* {{bêmînak|mt}} == {{ziman|no}} == === Cînav === {{cînav|no}} # (ya / yê) {{g|ku|min}} #* {{bêmînak|no}} == {{ziman|pai}} == === Navdêr === {{navdêr|pai}} # {{mijar|pai|vexwarin}} {{g|ku|av}} #* {{bêmînak|pai}} === Çavkanî === {{rûpela wergerê|pai|av/Werger2}} == {{ziman|sv}} == === Cînav === {{cînav|sv}} # (ya / yê) {{g|ku|min}} #* {{bêmînak|sv}} == {{ziman|tt}} == === Cînav === {{cînav|tt}} # [[ez]] #* {{bêmînak|tt}} == {{ziman|zea}} == === Rengdêr === {{rengdêr|zea}} # {{g|ku|xirab}}, {{g|ku|nebaş}} #* {{bêmînak|zea}} === Çavkanî === {{rûpela wergerê|zea|xirab}} oir93ocrozz44t6ahsi2pa2vpp28fbn kirin 0 3487 6329816 6310205 2026-08-12T23:03:34Z Wikihez 7344 /* Navdêr */ 6329816 wikitext text/x-wiki {{bnr-h|kirîn}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36163_(kmr)-Key Mîrza-kirin.wav|dever=Wan}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|kirin|form=gerguhêz|niha=k|borî=kir}} [[Wêne:Lewis_Hine_Power_house_mechanic_working_on_steam_pump.jpg|thumb|Kesek kar '''dike'''. Peyvên ''[[kar]]'' û ''[[kirin#Kurdî|kirin]]'' [[hevreh]] in.]] {{lêker|ku|c=x-gh}}, {{bilêv|k|nerm}} # [[bi cih anîn]], [[pêk anîn]], [[encam dan]] #: {{mk|ku|Tu çi '''dikî'''?}} #: {{mk|ku|'''Bikin'''! – '''Neke'''! – '''Meke'''!}} #: {{mk|ku|Min hemû ev kar '''kiriye'''.}} #* {{jêder|ku|{{Jêgirtin/Melayê Cizîrî/Dîwana Melayê Cizirî}}|jêgirtin=Were nîşanê Nişanî de xwe bêperde seher<br />Lê ji xûnê '''bike''' perhîz ku şehîdan çi hisab}} # [[niyet]] hebûn, [[li ber bûn]], [[biniyet]] bûn, [[hewl]] dan, [[armanc]] bûn #: {{mk|ku|Min '''dikir''' bipirsim lê ez newêriyam.}} # [[nêzîk]] bûn, [[kêm]] man ku tiştek [[qewimîn|biqewime]] #: {{mk|ku|Ji qehran '''dike''' xwe bikuje.}} # [[lîstin]], [[pê ve]] [[mijûl]] bûn #: {{mk|ku|Ez futbolê '''dikim'''.|Ez futbolê dilîzim.|birêz=1}} # [[zewicîn]], [[mêr]] kirin, [[şû]] kirin, [[jin anîn]], wek [[hevser]] [[qebûl]] kirin #: {{mk|ku|Ez bêmêr bimirim jî, ez te '''nakim'''.}} # [[gan]] kirin, [[seks]] kirin #* {{bêmînak|ku}} # [[xwestin]] #* {{jêder-kitêb|ku|jêgirtin= '''Kir''' ku ji avê derbas bibe. |nivîskar={{w|Mela Mûsayê Hekarî}}|sernav=Durrû’l Mecalîs|amadekar=Hêmin Omer|sala weşandinê=2022|sal=1857|rûpel=116}} # {{înm|wek [[lêkera sivik|lêkereke sivik]] bo çêkirina [[lêker]]ên [[nû]] ji [[navdêr]] û [[rengdêr]]an}} #: {{mk|ku|[[qebûl kirin]], [[razî kirin]], [[xwedî kirin]], [[dest pê kirin]]}} #: {{mk|ku|[[mezin kirin]], [[xurt kirin]], [[bihêz kirin]], [[perîşan kirin]]}} ==== Bi alfabeyên din ==== * {{ku-ar|کرن}} * {{ku-kr|кьрьн}} ==== Jê ==== {{agadarî|Agadarî}}: Gelek peyv bi alîkariya [[lêkera sivik]] ya "kirin" tên çêkirin loma rêzkirina hemûyan li vir ne mimkin e. Bnr. '''[[:Kategorî:Tewandin:lêkerên pêkhatî yên kurmancî li gel "kirin"|Lêkerên li gel "kirin" (pêkhatî)]]''', '''[[:Kategorî:Peyvên kurmancî yên hevedudanî bi kirin|Peyvên kurmancî yên hevedudanî bi kirin]]. ==== Etîmolojî ==== Hevreha soranî {{g|ckb|کردن}}, kurdiya başûrî {{q|sdh|kirdin|sc=Latn}}, lekî {{q|lki|kirdin|sc=Latn}}, goranî/hewramî {{q|hac|kerdey|sc=Latn}}, zazakî {{q|zza|kerdene}}, farisî {{g|fa|کردن|tr=kerden}}, tacikî {{g|tg|кардан|tr=kardan}}, partî {{g|xpr|𐭪𐭫𐭲|tr=kirt}}, pehlewî {{g|pal|𐭪𐭫𐭲|tr=kirt}}, avestayî {{g|ae|𐬐𐬆𐬭𐬆𐬙𐬀|tr=kərəta|w=[[kirî]]}} û {{g|ae|𐬐𐬆𐬭𐬆𐬥𐬀𐬊𐬌𐬙𐬌‎|tr=kərənaoiti|w=ew dike}}, hexamenişî {{g|peo|𐎠𐎤𐎢𐎫𐎠|tr=a-ku-u-t-a /akutā/|w=wî kir}}, sanskrîtî {{g|sa|कृणोति|tr=kṛṇóti}} û {{g|sa|करोति|tr=karóti}}, hindî {{g|hi|करना|tr=kerna}}, ûrdûyî {{g|ur|کرنا|tr=kerna}}, hîtîtî {{g|hit|𒆪𒂊𒅕𒋫|tr=ku-e-er-ta|w=kir}} û {{g|hit|𒆪𒅕𒈪|tr=ku-er-mi|w=dikim}}, lîtwanî {{q|lt|kùrti|w=kirin, çêkirin, ava kirin}} û {{q|lt|kerė́ti|w=[[sihr]] kirin}}, rûsî {{q|ru|ча́ры|tr=čáry|w=[[sihr]]kirin}}. hemû ji {{ji|ine-pro|ku|*kʷer-|w=kirin, [[çêkirin]], [[ava kirin]]}}. Ji heman rehî herwiha peyva {{q|ku|kar}} û paşgirên {{q|ku|-kar}}, {{q|ku|-ker}}, {{q|ku|-gar}}, {{q|ku|-ger}} (''-ger'' wek bo nimûne di peyva {{q|ku|asinger}}, {{q|ku|hesinger}} de). Peyv ji zimanekî [[hindûîranî]] ketiye hinek zimanên [[ûralî]] jî, bo nimûne: ûdmûrtî {{g|udm|карыны|tr=karini}} û komî-permyakî {{g|koi|керны|tr=kêrni}}. Wek paşgirên {{q|ku|-kâr}}, {{q|ku|-ker}}, {{q|ku|-gâr}} ketiye tirkî û gelek zimanên din jî yên [[tirkîkî]], bo nimûne di van peyvên tirkî de: {{q|tr|muhafazakâr}}, {{q|tr|peyker}}, {{q|tr|rüzgâr}} û bi dehan an bi sedan peyvên din. ;{{biçûk|Çavkanî: * {{Cheung}} * {{Chyet}} * {{Derksen}} * {{Kloekhorst}} * {{Lubotsky}} * {{Mallory}} * {{Tsabolov}} }} ==== Bi zaravayên din ==== * {{Z|hac}}: {{W-|hac|kerdey|sc=Latn}} * {{Z|sdh}}: {{W-|sdh|کردن}}, {{W-|sdh|kirdin|sc=Latn}} * {{Z|lki}}: {{W-|lki|کردن}}, {{W-|lki|kirdin|sc=Latn}} * {{Z|ckb}}: {{W-|ckb|کردن|tr=kirdin}} * {{Z|zza}}: {{W-|zza|kerdene}} ==== Werger ==== {{werger-ser|bi cih anîn, encam dan, çêkirin (1)}} * {{Z|af}}: {{W+|af|doen}} * {{Z|sq}}: {{W+|sq|bëj}} * {{Z|de}}: {{W+|de|tun}}, {{W+|de|machen}} *: {{Z|gsw}}: {{W-|gsw|tue}} * {{Z|am}}: {{W-|am|ማድረግ}} * {{Z|an}}: {{W+|an|fer}} * {{Z|aii}}: {{W-|aii|ܥܵܒ݂ܹܕ|tr=ʿawed}} * {{Z|rup}}: {{W-|rup|fac}} * {{Z|as}}: {{W-|as|কৰ}} * {{Z|ast}}: {{W+|ast|facer}} * {{Z|ask}}: {{W-|ask|ko}} * {{Z|ain}}: {{W-|ain|キ|tr=ki}} * {{Z|az}}: {{W-|az|eləmək}}, {{W+|az|etmək}}, {{W-|az|qılmaq}} * {{Z|ban}}: {{W-|ban|gaé}} * {{Z|eu}}: {{W-|eu|egin}} * {{Z|be}}: {{W-|be|рабі́ць|impf}}, {{W-|be|зрабі́ць|pf}} * {{Z|bn}}: {{W-|bn|করা}} * {{Z|bqi}}: {{W-|bqi|کردن|tr=kerden}} * {{Z|br}}: {{W+|br|ober}} * {{Z|bg}}: {{W-|bg|пра́вя}} * {{Z|my}}: {{W+|my|လုပ်}}, {{W+|my|ပြု}} * {{Z|ce}}: {{W-|ce|да}}, {{W-|ce|дан}} * {{Z|cs}}: {{W-|cs|dělat|impf}}, {{W-|cs|udělat|pf}} * {{Z|chr}}: {{W-|chr|ᎾᏛᏁᎭ}} * {{Z|zh}}: *: {{Z|cmn}}: {{W-|cmn|做|tr=zuò}}, {{W+|cmn|作|tr=zuò}} * {{Z|cv}}: {{W-|cv|ту}} * {{Z|dlm}}: {{W-|dlm|fur}} * {{Z|da}}: {{W+|da|gøre}}, {{W-|da|udføre}} * {{Z|id}}: {{W+|id|buat}}, {{W+|id|laku}}, {{W+|id|melakukan}} * {{Z|ar}}: {{W-|ar|فَعَلَ}}, {{W-|ar|عَمِلَ}} *: {{Z|arq}}: {{W-|arq|دار}} *: {{Z|arz}}: {{W-|arz|عمل|tr=ʕamal}} *: {{Z|acw}}: {{W-|acw|سَوَّى|tr=sawwa}} * {{Z|hy}}: {{W+|hy|անել}} * {{Z|eo}}: {{W+|eo|fari}} * {{Z|et}}: {{W+|et|tegema}} * {{Z|ext}}: {{W-|ext|hazel}} * {{Z|fa}}: {{W-|fa|کَردَن|tr=kardan}} * {{Z|fi}}: {{W-|fi|tehdä}} * {{Z|fr}}: {{W-|fr|faire}} * {{Z|fur}}: {{W-|fur|fâ}} * {{Z|frr}}: {{W-|frr|düünj}}, {{W-|frr|du}} * {{Z|fy}}: {{W-|fy|dwaan}} * {{Z|gd}}: {{W-|gd|dèan}} * {{Z|gl}}: {{W+|gl|facer}} * {{Z|got}}: {{W-|got|𐍄𐌰𐌿𐌾𐌰𐌽}} * {{Z|ka}}: {{W+|ka|კეთება}} * {{Z|gn}}: {{W+|gn|japo}} * {{Z|ht}}: {{W-|ht|fè}} * {{Z|hi}}: {{W+|hi|करना}} * {{Z|hil}}: {{W-|hil|buhat}}, {{W-|hil|pagbuhat}} * {{Z|mww}}: {{W-|mww|ua}} * {{Z|nl}}: {{W+|nl|doen}} * {{Z|he}}: {{W-|he|עָשָׂה|tr=asá}},{{W-|he|פָּעַל|tr=pa'al}} * {{Z|io}}: {{W+|io|facar}} * {{Z|ilo}}: {{W-|ilo|aramid}} * {{Z|ang}}: {{W-|ang|dōn}} * {{Z|en}}: {{W+|en|do}}, {{W+|en|perform}}, {{W+|en|execute}} * {{Z|inh}}: {{W-|inh|де}} * {{Z|ia}}: {{W-|ia|facer}} * {{Z|ga}}: {{W-|ga|déan}}, {{W-|ga|dein}} * {{Z|ist}}: {{W-|ist|fà}} * {{Z|it}}: {{W+|it|fare}} * {{Z|is}}: {{W+|is|gera}}, {{W-|is|gjöra}} * {{Z|ja}}: {{W+|ja|する|tr=suru}}, {{W+|ja|やる|tr=yaru}}, {{W-|ja|なさる|tr=nasaru}}, {{W+|ja|致す|tr=いたす, itasu}} * {{Z|jv}}: {{W+|jv|gawe}}, {{W+|jv|gawé}} * {{Z|bsh}}: {{W-|bsh|ku}} * {{Z|xnn}}: {{W-|xnn|ikkan}} * {{Z|kn}}: {{W+|kn|ಮಾಡು}} * {{Z|kea}}: {{W-|kea|faze}} * {{Z|ca}}: {{W-|ca|fer}} * {{Z|qu}}: {{W+|qu|ruray}}, {{W-|qu|rurai}} * {{Z|ks}}: {{W-|ks|کَرُن}} * {{Z|ky}}: {{W-|ky|этүү}} * {{Z|si}}: {{W-|si|කරනවා}} * {{Z|ko}}: {{W+|ko|하다}} * {{Z|co}}: {{W-|co|fà}} * {{Z|mfe}}: {{W-|mfe|fer}} * {{Z|kum}}: {{W-|kum|этмек}} * {{Z|lld}}: {{W-|lld|fé}}, {{W-|lld|fèr}} * {{Z|ltg}}: {{W-|ltg|dareit}} * {{Z|la}}: {{W+|la|faciō}}, {{W+|la|agō}} * {{Z|lv}}: {{W+|lv|darīt}}, {{W-|lv|veikt}} * {{Z|lo}}: {{W+|lo|ເຮັດ}}, {{W-|lo|ທຳ}} * {{Z|lez}}: {{W-|lez|авун}} * {{Z|lt}}: {{W+|lt|daryti}} * {{Z|lmo}}: {{W-|lmo|fà}} * {{Z|mhn}}: {{W-|mhn|mòchen}} * {{Z|mk}}: {{W+|mk|прави}}, {{W-|mk|врши}}, {{W+|mk|направи}} * {{Z|ml}}: {{W+|ml|ചെയ്യുക}} * {{Z|ms}}: {{W+|ms|buat}} * {{Z|mt}}: {{W-|mt|għamel}} * {{Z|mzn}}: {{W-|mzn|هاکردن|tr=hâkërden}} * {{Z|gun}}: {{W-|gun|japo}} * {{Z|hu}}: {{W+|hu|tesz}}, {{W+|hu|csinál}} * {{Z|egy}}: {{W-egy|jrj|h=ir}} * {{Z|mn}}: *: Kirîlî: {{W+|mn|хийх}} * {{Z|nci}}: {{W-|nci|chīhua}} * {{Z|nah}}: {{W+|nah|chīhua}} * {{Z|gld}}: {{W-|gld|анго-}} * {{Z|nap}}: {{W-|nap|fà}} * {{Z|nds}}: *: {{Z|nds-nl}}: {{W-|nds-nl|doan}} *: {{Z|nds-de}}: {{W-|nds-de|doon}} * {{Z|ne}}: {{W+|ne|गर्नु}} * {{Z|nrf}}: {{W-|nrf|faithe}} * {{Z|no}}: *: {{Z|nb}}: {{W+|nb|gjøre}}, {{W+|nb|utføre}} *: {{Z|nn}}: {{W+|nn|gjere}}, {{W+|nn|utføre}} * {{Z|pro}}: {{W-|pro|far}} * {{Z|oc}}: {{W+|oc|far}}, {{W+|oc|har}}, {{W+|oc|faire}} * {{Z|or}}: {{W+|or|କରିବା}} * {{Z|os}}: {{W-|os|кӕнын}} * {{Z|ug}}: {{W-|ug|قىلماق}} * {{Z|uz}}: {{W+|uz|qilmoq}} * {{Z|pi}}: {{W-|pi|karoti}} * {{Z|pap}}: {{W-|pap|hasi}} * {{Z|ps}}: {{W-|ps|کول|tr=kawël}} * {{Z|ppl}}: {{W-|ppl|-chiwa}}, {{W-|ppl|-chihua}} * {{Z|pl}}: {{W+|pl|robić|impf}}, {{W+|pl|zrobić|pf}}, {{W+|pl|czynić|impf}}, {{W+|pl|uczynić|pf}} * {{Z|roa-opt}}: {{W-|roa-opt|fazer}} * {{Z|pt}}: {{W+|pt|fazer}}, {{W+|pt|realizar}} * {{Z|pa}}: {{W-|pa|ਕਰਨਾ}} * {{Z|kk}}: {{W+|kk|істеу}} * {{Z|cop}}: {{W-|cop|ⲉⲓⲣⲉ}} * {{Z|rap}}: {{W-|rap|haka}} * {{Z|rgn}}: {{W-|rgn|fêr}} * {{Z|rm}}: {{W-|rm|far}} * {{Z|ro}}: {{W+|ro|face}} * {{Z|ru}}: {{W-|ru|де́лать|impf}}, {{W-|ru|сде́лать|pf}} * {{Z|rue}}: {{W-|rue|роби́ти|impf}} * {{Z|osx}}: {{W-|osx|dôn}}, {{W-|osx|fremmian}}, {{W-|osx|gifrummian}} * {{Z|sgs}}: {{W-|sgs|darītė}}, {{W-|sgs|dėrbtė}} * {{Z|sa}}: {{W+|sa|करोति|tr=karóti}} *: {{Z|sa}}: {{W+|sa|कृणोति|tr=kṛṇóti}} * {{Z|sc}}: {{W-|sc|fàchere}} *: {{Z|sc}}: {{W-|sc|fai}} * {{Z|ceb}}: {{W-|ceb|buhat}}, {{W-|ceb|buhaton}} * {{Z|scn}}: {{W+|scn|fari}} * {{Z|sd}}: {{W+|sd|ڪَرَڻُ}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|радити}} *: Latînî: {{W+|sh|raditi}}, {{W+|sh|činiti}} * {{Z|syl}}: {{W-|syl|ꠇꠞꠣ}} * {{Z|sco}}: {{W-|sco|dae}} * {{Z|orv}}: {{W-|orv|робити|impf}} * {{Z|sk}}: {{W+|sk|robiť|impf}}, {{W-|sk|urobiť|pf}} * {{Z|sl}}: {{W-|sl|storiti}},{{W-|sl|ukreniti}}, {{W-|sl|narediti}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|cyniś|impf}} *: {{Z|hsb}}: {{W-|hsb|činić|impf}}, {{W-|hsb|sčinić|pf}} * {{Z|es}}: {{W-|es|hacer}} * {{Z|sv}}: {{W+|sv|göra}} * {{Z|shn}}: {{W-|shn|ႁဵတ်း}} * {{Z|tab}}: {{W-|tab|апӏуб}} * {{Z|tg}}: {{W+|tg|кардан}} * {{Z|tl}}: {{W-|tl|gawin}}, {{W-|tl|gumawa}}, {{W-|tl|isagawa}} * {{Z|ta}}: {{W+|ta|செய்}}, {{W+|ta|பண்ணு}} * {{Z|nod}}: {{W-|nod|ᩁᩮᩢ᩠ᨯ}}, {{W-|nod|ᨿᩮ᩠ᨿᩡ}}, {{W-|nod|ᨿᩡ}}, {{W-|nod|ᨿ}} * {{Z|th}}: {{W+|th|ทำ}} * {{Z|te}}: {{W+|te|చేయు}} * {{Z|tt}}: {{W-|tt|эшләү}} * {{Z|tet}}: {{W-|tet|halo}} * {{Z|tr}}: {{W+|tr|yapmak}}, {{W+|tr|etmek}}, {{W+|tr|kılmak}} * {{Z|tk}}: {{W+|tk|etmek}} * {{Z|tpi}}: {{W+|tpi|mekim}}, {{W-|tpi|wokim}} * {{Z|txb}}: {{W-|txb|yām-}} * {{Z|tyv}}: {{W-|tyv|кылыр}} * {{Z|udm}}: {{W-|udm|карыны}} * {{Z|ur}}: {{W-|ur|کَرْنا|tr=karnā}} * {{Z|uk}}: {{W-|uk|роби́ти|impf}}, {{W-|uk|зроби́ти|pf}} * {{Z|vec}}: {{W+|vec|far}} * {{Z|vi}}: {{W+|vi|làm}} * {{Z|wbk}}: {{W-|wbk|ća}} * {{Z|wa}}: {{W+|wa|fé}} * {{Z|wbl}}: {{W-|wbl|car-}} * {{Z|cy}}: {{W-|cy|gwneud}} * {{Z|km}}: {{W+|km|ធ្វើ}} * {{Z|yai}}: {{W-|yai|карак}} * {{Z|yi}}: {{W-|yi|טאָן}} * {{Z|yoi}}: {{W-|yoi|きるん|tr=kirun}} * {{Z|el}}: {{W+|el|κάνω}} *: Kevn: {{W-|grc|πράσσω}}, {{W-|grc|ποιέω}}, {{W-|grc|ῥέζω}}, {{W-|grc|ἔρδω}}, {{W-|grc|δράω}}, {{W-|grc|τελέω}} * {{Z|ase}}: {{W-|ase|C@SideTrunkhigh-PalmDown-C@SideTrunkhigh-PalmDown RoundVertSidetoside-RoundVertSidetoside}}, {{W-|ase|Claw5@SideTrunkhigh-PalmDown-Claw5@SideTrunkhigh-PalmDown RoundVertSidetoside-RoundVertSidetoside}} {{werger-bin}} === Navdêr === {{navdêr|z=m|ku}} # [[kar]], [[kiryar]], [[emel]], [[fêl]], [[fealiyet]], [[xebat]], [[şol]], [[encamdan]], [[bicihanîn]], [[çêkirin]] #: {{mk|ku|'''Kirina''' wî karî ne hêsan e.}} #: {{mk|ku|Divê mirov ji '''kirinê''' netirse.}} #* {{jêder-malper|ku|jêgirtin=Di berhemên Fiqih û Usûlu’l-Fiqhê derbas dibe; fermaneke ku '''kirina''' tiştekî/’îbadeketekê di wextê wê lazim bike, qezakirina vê peywira ku di dema xwe nehatiye edakirin jî pêwîst didêre. Ma ev tişt ne rast e? Hûn dikarin di çarçoveya nimêja qeza de vê şîrove bikin?|malper=fetwayenkurdi.com|url=http://www.fetwayenkurdi.com/?p=3995|dîrok=21.07.2019}} #* {{jêder-malper|ku|jêgirtin=Lêkera netêger an jî întransîtîv ew tewre lêker e ku tevger an '''kirina''' wê yekser tesîrê li objektekê nake. Ew çalakî an bûyer bê objekt çêdibe û dema ku ew çalakî pêk tê, tesîreke yekser li tişt an kesekî nayê.|url=https://sites.google.com/a/baranrizgar.co.cc/azadiya-kurdistane/home/lekeren-transitiv--intransitiv-ci-cudati-hene-cawa-ji-hev-veqetinin?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&showPrintDialog=1|malper=bloga Baran Rizgar|dîrok=21.07.2019}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Jê ==== * {{g|ku|kirinî}} ==== Etîmolojî ==== Li jortir [[kirin#Etîmolojî|binêrin]]. ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|kar|sc=Latn}}, {{W-|ckb|kirdewe|sc=Latn}} * {{Z|zza}}: {{W-|zza|kerdiş}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Tat|m}}, {{W+|de|Akt|n}}, {{W+|de|Werk|nt}} * {{Z|ba}}: {{W|ba|ғәмәл}} * {{Z|be}}: {{W|be|дзе́янне|nt}}, {{W|be|акт|n}} * {{Z|bg}}: {{W+|bg|де́йствие|nt}}, {{W+|bg|постъпка|m}}, {{W+|bg|акт|n}} * {{Z|cs}}: {{W+|cs|skutek|n}}, {{W+|cs|čin|n}} * {{Z|zh}}: {{W+|cmn|行為|sc=Hani}}, {{W+|cmn|行为|tr=xíngwéi|sc=Hani}} * {{Z|da}}: {{W|da|gerning|c}}, {{W+|da|handling|c}} * {{Z|ar}}: {{W+|ar|عَمَل|n}}, {{W+|ar|فِعْل|n}} * {{Z|hy}}: {{W+|hy|արարք}} * {{Z|eo}}: {{W+|eo|faro}}, {{W|eo|ago}} * {{Z|ee}}: {{W|ee|dɔwɔwɔ}} * {{Z|fa}}: {{W+|fa|کردار|tr=kirdar}}, {{W+|fa|کار|tr=kâr}}, {{W+|fa|اعمال|p|tr=e'mal}} * {{Z|fi}}: {{W+|fi|teko}}, {{W+|fi|toimi}} * {{Z|fr}}: {{W+|fr|acte|n}}, {{W+|fr|action|m}}, {{W+|fr|œuvre|m}} * {{Z|fy}}: {{W|fy|died|nt}} * {{Z|gd}}: {{W|gd|gnìomh|n}} * {{Z|nl}}: {{W+|nl|daad|m}} * {{Z|he}}: {{W+|he|מעשה|m|tr=ma'ase|sc=Hebr}} * {{Z|en}}: {{W|en|deed}}, {{W|en|action}}, {{W|en|disposition}}, {{W|en|doing}}, {{W|en|execution}}, {{W|en|performance}}, {{W|en|executing}} * {{Z|it}}: {{W+|it|fatto|n}}, {{W+|it|gesto}}, {{W+|it|gesta}} * {{Z|is}}: {{W+|is|dáð|m}} * {{Z|ja}}: {{W+|ja|行為|tr=こうい, kōi|sc=Jpan}} * {{Z|ca}}: {{W+|ca|fet|n}}, {{W+|ca|acte|n}} * {{Z|ko}}: {{W+|ko|행위}} * {{Z|la}}: {{W+|la|āctus|n}} * {{Z|lb}}: {{W|lb|Dot|m}} * {{Z|mk}}: {{W|mk|дело|nt}}, {{W|mk|постапка|m}} * {{Z|hu}}: {{W+|hu|tett}} * {{Z|no}}: {{W+|no|dåd}}, {{W|no|gjerning}} * {{Z|pt}}: {{W+|pt|ação|m}}, {{W+|pt|feito|n}} * {{Z|pt}}: {{W+|ro|faptă}} * {{Z|ru}}: {{W+|ru|посту́пок|n}}, {{W+|ru|де́йствие|nt}}, {{W+|ru|дея́ние|nt}}, {{W+|ru|акт|n}} * {{Z|sa}}: {{W+|sa|कार्य|nt}} * {{Z|sh}}: {{W|sh|чи̑н|n}} *: {{Z|sh}}: {{W+|sh|čȋn|n}} * {{Z|sk}}: {{W|sk|skutok|n}}, {{W+|sk|čin|n}} * {{Z|sl}}: {{W+|sl|dejanje|nt}} * {{Z|es}}: {{W+|es|hecho|n}}, {{W+|es|acto|n}}, {{W+|es|acción|m}}, {{W+|es|obra|m}} * {{Z|sv}}: {{W+|sv|gärning}}, {{W+|sv|dåd}} * {{Z|te}}: {{W+|te|చర్య|sc=Telu}} * {{Z|tr}}: {{W+|tr|iş}}, {{W|tr|yapma}}, {{W|tr|etme}}, {{W|tr|koyma}}, {{W+|tr|hareket}}, {{W|tr|eylem}}, {{W|tr|fiiliyat}}, {{W|tr|icra}}, {{W|tr|ika}}, {{W|tr|iştira}}, {{W|tr|gezdirme}} * {{Z|uk}}: {{W+|uk|ді́я|m}}, {{W+|uk|ді́яння|nt}}, {{W+|uk|акт|n}} * {{Z|el}}: {{W+|el|πράξη|m}} *: {{Z|grc}}: {{W|grc|πρᾶξις|m}} {{werger-bin}} o7lprk6iyplrrfl4jrsk53tmrh358sw kitêb 0 3503 6329666 6310263 2026-08-12T16:43:33Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329666 wikitext text/x-wiki {{bnr-h|kiteb|Kitêb}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA|k(h)itêb}} * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-kitêb.wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr === [[Wêne:Latin_dictionary.jpg|thumb|Kitêb]] {{navdêr|ku|z=m}} # [[kom|Komeke]] [[kaxez]]ên bi [[nivîs]] û / yan [[resm]] yên di nav [[berg]]ekî de hatine [[çap]]kirin. #: {{hevmane|ku|pirtûk}} #: {{mk|ku|Wê rûpela 50 ya '''kitêbê''' vekir û dest bi xwendinê kir.}} #* {{jêder|ku|{{Jêgirtin/Melayê Cizirî/Dîwan/2004|r=44}}|jêgirtin=Me ji ser çeşmeyê ḥeywan qedeḥek ṣafî vexwar<br>Nagihî lez̤z̤et û z̤ewqa me bi ṣed cildê '''kitab'''}} #* {{Jêgirtin/Feqiyê Teyran|sernav=Feqiyê Teyran jiyan berhem û helbestên wî|sal=2013|weşanxane=Nûbihar|çap=7|rûpel=130|amadekar=M. Xalid Sadinî|jêgirtin=Agir û pêta di dil da<br>Me„neya daxan ku hilda<br>Ew '''kitab''' naçit tu cilda<br>Hafîzê medhan im ez}} #* {{jêder-kitêb|ku|jêgirtin=We neẓertu fîl-kîtabî, yanî ez daxilê xanî bûm û min neẓer li '''kitêbê''' kir.|sernav=Tesrîfa Teremaxî|nivîskar={{w|Elî Teremaxî}}|r=64|amadekar=Aydın Üneşi|sal=~1600|sala weşandinê=2016|cih=Mêrdin}} #* {{jêder-kitêb|ku|jêgirtin=Ji şaîrê Kurmancan, bi zimanê Kurmancî, di tarîxa hezar û şeşsedî de di qeseba Bayezîdê de, hezretî Ehmedê Xanî '''kitêba''' ku telîf kiriye bi wezn bi nave Mem û Zînê, aşiq û maşûq, li weche muxtesr beyana wan dike.|sal=~1850|nivîskar={{w|Mele Mehmûdê Bazîdî}}|sernav=Mem û Zîn|sala weşandinê=2007|weşanxane=Lîs|r=23|amadekar=Xelîl Duhokî}} #* {{jêder-kitêb|ku|jêgirtin=Mirovek xwenda, alim hebî, nave wî "Ehmede Xanî" bî{{sic}}. Xwedê jê razî be, rehmeta Xwedê lê be, vî mirovî hin '''kitêbên''' Kurmancî nivîsîne.|sernav=Kurdistan|sal=1898|r=123|amadekar=M. Emîn Bozarslan|nivîskar={{w|Miqdad Midhet Bedirxan}}|sala weşandinê=1991|cild=1}} #* {{jêder|ku|jêgirtin=- Ma lê, ji te xeyidîme, ma çawan ji te naxeyidim. Te ez avêtim nav '''kitêb''' û kaxizan, te ez kirim hogir û hevala bermayên [[qaşûl]]ên dar û qirş û [[hevser]]a [[caw]] û [[potik]]ên [[zibilgeh]]ê.|''Gazinda Xencera Min, Hawar'', [[w:Celadet Alî Bedir-Xan|Celadet Alî Bedir-Xan]], hejmar 12}} # Her kitêba [[miqeddes]] wekî [[Qur'an]] an [[Încîl]]. #* {{jêder-kitêb|ku|jêgirtin=Îsa cewab da ji wan ṟa, û go: Ey! şaşxunan, ne '''kitêb''' dizanin û ne quwwetê Xodê|sernav=Încîl|sal=1872|r=105|nivîskar=Madteos|amadekar=İlyas Sayım|sala weşandinê=2024}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din==== * {{ku-ar|کتێب}} * {{ku-kr|к'ьтеб}} ==== Jê ==== {{kol3|ku|cure=Jê |kitêbdank |kitêbdost |kitêbdostî |kitêbfiroş |kitêbfiroşgeh |kitêbfiroşxane |kitêbgeh |kitêbhez |kitêbhezî |kitêbik |kitêbî |kitêbk |kitêbxane |kitêbxanevan |kitêbxanevanî |kitêbyar |kitêbyarî }} ==== Etîmolojî ==== {{root|ku|ar|ك ت ب}} Ji {{deyn|ar|ku|كِتَاب}} ji reha {{ar-reh|ك ت ب|nekat=1}} ''têkilî rêzkirinê û çêkirina rêzikan ji wê yekê jî têkilî nivîsînê'', ji {{mîr|sem-wes-pro|ar|*katab-|w=xurandin, xeritandin}}. Ev reh koka peyvin din jî ne weku: {{q|ku|katib}}, {{q|ku|mekteb}}, {{q|ku|ketîbe}}. ==== Bide ber ==== {{kol3|ku |belavok |defter |kovar |namilke |rojname }} ==== Werger ==== {{werger-ser|koma kaxezan}} * {{Z|abq}}: {{W-|abq|книга}}, {{W-|abq|апхьага}}, {{W-|abq|кьтап}} * {{Z|ab}}: {{W-|ab|ашәҟәы}} * {{Z|ady}}: {{W-|ady|тхылъ}} * {{Z|aa}}: {{W-|aa|kitab}} * {{Z|af}}: {{W+|af|boek}} * {{Z|xag}}: {{W-|xag|𐕁𐔼𐕗}} * {{Z|akz}}: {{W-|akz|holisso}} * {{Z|sq}}: {{W+|sq|libër|n}} * {{Z|de}}: {{W+|de|Buch|nt}} *: {{Z|gsw}}: {{W-|gsw|Buech|nt}} *: {{Z|gmw-cfr}}: {{W-|gmw-cfr|Boch|nt}} *: {{Z|pdc}}: {{W-|pdc|Buch|nt}} * {{Z|alt}}: {{W-|alt|бичик}}, {{W-|alt|книга}} * {{Z|abs}}: {{W-|abs|buku}} * {{Z|am}}: {{W-|am|መጽሃፍ}} * Apaçî: *: {{Z|apw}}: {{W-|apw|nałtsoos}} * {{Z|an}}: {{W-|an|libro|n}} * {{Z|rup}}: {{W-|rup|vivlie}}, {{W-|rup|carte}} * {{Z|as}}: {{W-|as|কিতাপ}}, {{W-|as|পুথি}} * {{Z|ast}}: {{W+|ast|llibru|n}} * {{Z|tay}}: {{W-|tay|biru'}} * {{Z|aot}}: {{W-|aot|kitap}} * {{Z|av}}: {{W-|av|тӏехь}}, {{W-|av|таптар}}, {{W-|av|тӏахьал}} * {{Z|ay}}: {{W-|ay|panka}} * {{Z|ain}}: {{W-|ain|カㇺビソㇱ|tr=kambisosh}} * {{Z|az}}: {{W+|az|kitab}} * {{Z|bm}}: {{W-|bm|gafɛ}} * {{Z|eu}}: {{W+|eu|liburu}} * {{Z|ba}}: {{W-|ba|китап}} * {{Z|be}}: {{W+|be|кні́га|m}}, {{W-|be|кні́жка|m}} * {{Z|bn}}: {{W+|bn|বই}}, {{W+|bn|কিতাব}}, {{W+|bn|গ্রন্থ}}, {{W+|bn|পুস্তক}} * {{Z|bth}}: {{W-|bth|buk}} * {{Z|bi}}: {{W-|bi|buk}} * {{Z|br}}: {{W+|br|levr|n}} * {{Z|bg}}: {{W+|bg|кни́га|m}} * {{Z|my}}: {{W+|my|စာအုပ်}} * {{Z|bua}}: {{W-|bua|ном}} * {{Z|kac}}: {{W-|kac|laika buk}} * {{Z|ch}}: {{W-|ch|lepblo}} * {{Z|chg}}: {{W-|chg|كتاب|tr=kitab}} * {{Z|ce}}: {{W-|ce|кинишка}}, {{W-|ce|китаб}}, {{W-|ce|книга}}, {{W-|ce|книшка}}, {{W-|ce|кинчка}}, {{W-|ce|жайна}} * {{Z|cs}}: {{W+|cs|kniha|m}} * {{Z|chr}}: {{W-|chr|ᏗᎪᏪᎵ}}, {{W+|chr|ᎪᏪᎵ}} * {{Z|chy}}: {{W-|chy|mȯxe'ėstoo'e}} * {{Z|ny}}: {{W-|ny|buku}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|書}} *: {{Z|dng}}: {{W-|dng|фу}} *: {{Z|gan}}: {{W-|gan|書}} *: {{Z|hak}}: {{W-|hak|書|tr=sû}} *: {{Z|cjy}}: {{W-|cjy|書}} *: {{Z|cmn}}: {{W+|cmn|書}} *: {{Z|mnp}}: {{W-|mnp|書}} *: {{Z|cdo}}: {{W-|cdo|書}} *: {{Z|nan}}: {{W+|nan|冊|tr=chheh}}, {{W+|nan|書|tr=chu}} *: {{Z|wuu}}: {{W-|wuu|書}} *: {{Z|hsn}}: {{W-|hsn|書}} * {{Z|cv}}: {{W-|cv|кӗнеке}} * {{Z|dlm}}: {{W-|dlm|lebro|n}} * {{Z|da}}: {{W+|da|bog|g}} * {{Z|dv}}: {{W-|dv|ފޮތް}} * {{Z|dtp}}: {{W-|dtp|buuk}} * {{Z|ovd}}: {{W-|ovd|buok|m}} * {{Z|id}}: {{W+|id|buku}}, {{W+|id|kitab}} * {{Z|ar}}: {{W+|ar|كِتَاب|n}} *: {{Z|arq}}: {{W-|arq|كتاب|n|tr=ktāb}} *: {{Z|arz}}: {{W-|arz|كتاب|n|tr=ketāb}} *: {{Z|acm}}: {{W-|acm|كِتَاب|n}} *: {{Z|ary}}: {{W-|ary|كتاب|n|tr=ktāb}} *: {{Z|apc}}: {{W-|apc|كتاب|tr=ktāb, ktēb}} *: {{Z|aeb}}: {{W-|aeb|كتاب|n|tr=ktēb}} * {{Z|hy}}: {{W+|hy|գիրք}} * {{Z|myv}}: {{W-|myv|конёвкс}}, {{W-|myv|кинига}} * {{Z|eo}}: {{W+|eo|libro}} * {{Z|et}}: {{W+|et|raamat}} * {{Z|gez}}: {{W-|gez|መጽሐፍ}} * {{Z|evn}}: {{W-|evn|книга}} * {{Z|ee}}: {{W-|ee|agbalẽ}} * {{Z|ext}}: {{W-|ext|llibru|n}} * {{Z|fax}}: {{W-|fax|libru|n}} * {{Z|fa}}: {{W+|fa|کِتاب|tr=ketâb}}, {{W+|fa|نَسک|tr=nask}}, {{W+|fa|نامِه|tr=nâme}} * {{Z|fo}}: {{W+|fo|bók|m}} * {{Z|fj}}: {{W+|fj|vola}}, {{W-|fj|ivola}} * {{Z|fi}}: {{W+|fi|kirja}} * {{Z|fr}}: {{W+|fr|livre|n}}, {{W+|fr|bouquin|n}} * {{Z|fur}}: {{W-|fur|libri|n}} * {{Z|frr}}: {{W-|frr|bök|nt}}, {{W-|frr|buk|nt}} * {{Z|stq}}: {{W-|stq|Bouk|nt}} * {{Z|fy}}: {{W+|fy|boek|nt}} * {{Z|ff}}: *: Adlamî: {{W-|ff|𞤣𞤫𞤬𞤼𞤫𞤪𞤫}} *: Latînî: {{W-|ff|deftere}} * {{Z|gd}}: {{W+|gd|leabhar|n}} * {{Z|gag}}: {{W-|gag|kitap}} * {{Z|gl}}: {{W+|gl|libro|n}} * {{Z|glk}}: {{W-|glk|کیتاب|tr=kitāb}} * {{Z|got}}: {{W-|got|𐌱𐍉𐌺𐍉𐍃|m-p}} * {{Z|gu}}: {{W+|gu|પુસ્તક|m}}, {{W-|gu|ચોપડી}} * {{Z|ka}}: {{W+|ka|წიგნი}} * {{Z|gn}}: {{W+|gn|kuatiañe'ẽ}}, {{W-|gn|[[aranduka]]}} * {{Z|ht}}: {{W-|ht|liv}} * {{Z|haw}}: {{W-|haw|puke}}, {{W-|haw|liwele}} * {{Z|ha}}: {{W+|ha|littafi}} * {{Z|hi}}: {{W+|hi|पुस्तक|m}}, {{W+|hi|किताब|m}}, {{W+|hi|बुक|m}}, {{W+|hi|ग्रंथ|n}}, {{W+|hi|बही|m}}, {{W+|hi|पोथी|m}}, {{W+|hi|पोथा|n}}, {{W+|hi|पुस्तिका|m}}, {{W+|hi|सिफर}} * {{Z|hil}}: {{W-|hil|tulún-an}} * {{Z|meu}}: {{W-|meu|buka}} * {{Z|hnj}}: {{W-|hnj|phoo}}, {{W-|hnj|phoo ntawv}} * {{Z|mww}}: {{W-|mww|ntawv}} * {{Z|nl}}: {{W+|nl|boek|nt}} * {{Z|hrx}}: {{W-|hrx|Buch|nt}} * {{Z|tts}}: {{W-|tts|ปึ้ง|tr=pụ̂ng}} * {{Z|iba}}: {{W-|iba|surat}}, {{W-|iba|bup}} * {{Z|he}}: {{W+|he|סֵפֶר|n|tr=séfer}} * {{Z|io}}: {{W+|io|libro}} * {{Z|ig}}: {{W-|ig|akwụkwọ}} * {{Z|ang}}: {{W-|ang|bōc|m}} * {{Z|enm}}: {{W-|enm|bok}} * {{Z|en}}: {{W+|en|book}} * {{Z|izh}}: {{W-|izh|kirja}} * {{Z|inh}}: {{W-|inh|китаб}} * {{Z|ia}}: {{W+|ia|libro}} * {{Z|iu}}: {{W+|iu|ᕿᒥᕐᕈᐊᑦ}} *: {{Z|iu}}: {{W-|iu|unikkausik}} * {{Z|sga}}: {{W-|sga|lebor|n}} * {{Z|ga}}: {{W+|ga|leabhar|n}} * {{Z|ist}}: {{W-|ist|leîbro|n}} * {{Z|it}}: {{W+|it|libro|n}} * {{Z|is}}: {{W+|is|bók|m}} * {{Z|ja}}: {{W+|ja|本|tr=ほん, hon}}, {{W+|ja|書籍|tr=しょせき, shoseki}}, {{W+|ja|ブック|tr=bukku}} * {{Z|kaw}}: {{W-|kaw|tulis}} * {{Z|jv}}: {{W+|jv|buku}}, {{W+|jv|layang}}, {{W-|jv|serat}} * {{Z|kbd}}: {{W-|kbd|тхылъ}} * {{Z|kab}}: {{W-|kab|adlis}} * {{Z|kl}}: {{W-|kl|atuagaq}} * {{Z|xal}}: {{W-|xal|дегтр}} * {{Z|kn}}: {{W+|kn|ಪುಸ್ತಕ}} * {{Z|krc}}: {{W-|krc|китап}} * {{Z|kaa}}: {{W-|kaa|kitap}} * {{Z|krl}}: {{W-|krl|kirju}} * {{Z|csb}}: {{W-|csb|knéga|m}}, {{W-|csb|knyga|m}}, {{W-|csb|knëga|m}}, {{W-|csb|ksążka|m}} * {{Z|ca}}: {{W+|ca|llibre|n}} * {{Z|qu}}: {{W+|qu|liwru}}, {{W+|qu|p'anqa}} * {{Z|ky}}: {{W+|ky|китеп}} * {{Z|kg}}: {{W-|kg|dibuku}} * {{Z|ki}}: {{W-|ki|rifuku}} * {{Z|si}}: {{W+|si|පොත}} * {{Z|rw}}: {{W-|rw|igitabo|c7|c8}} * {{Z|gil}}: {{W-|gil|boki}} * {{Z|kis}}: {{W-|kis|egetabu}} * {{Z|kpv}}: {{W-|kpv|небӧг}}, {{W-|kpv|книга}} * {{Z|kok}}: {{W-|kok|पुस्तक}} * {{Z|ko}}: {{W-|ko|책(冊)}}, {{W-|ko|도서(圖書)}} * {{Z|kw}}: {{W-|kw|lyver|n}} * {{Z|co}}: {{W+|co|libru|n}} * {{Z|lou}}: {{W-|lou|liv}} * {{Z|mfe}}: {{W-|mfe|liv}} * {{Z|crs}}: {{W-|crs|liv}} * {{Z|kum}}: {{W-|kum|китап}} * {{Z|fkv}}: {{W-|fkv|kirja}} * {{Z|kj}}: {{W-|kj|embo}} * {{Z|lad}}: *: Îbranî: {{W-|lad|ליב׳רו|n}} *: Latînî: {{W-|lad|livro|n}} * {{Z|lbe}}: {{W-|lbe|лу}} * {{Z|lkt}}: {{W-|lkt|wówapi}} * {{Z|la}}: {{W+|la|liber|n}}, {{W-|la|caudex|n}} * {{Z|lv}}: {{W+|lv|grāmata|m}} * {{Z|lo}}: {{W+|lo|ປຶ້ມ}}, {{W+|lo|ປຶ້ມຂຽນ}}, {{W-|lo|ຫນັງສື}}, {{W-|lo|ສັດຖະ}}, {{W-|lo|ພັບ}} * {{Z|lzz}}: {{W-|lzz|სუპარა}} * {{Z|lez}}: {{W-|lez|улуб}}, {{W-|lez|ктаб}}, {{W-|lez|дафтар}} * {{Z|mhx}}: {{W-|mhx|mug sug' paug'}}, {{W-|mhx|tung" paug'}}, {{W-|mhx|paug'}} * {{Z|ln}}: {{W-|ln|búku|c9a|c10a}} * {{Z|lij}}: {{W-|lij|lìbbro|n}}, {{W-|lij|libbro}} * {{Z|li}}: {{W+|li|book|m}} * {{Z|lt}}: {{W+|lt|knyga|m}} * {{Z|liv}}: {{W-|liv|rōntõz}} * {{Z|lmo}}: {{W-|lmo|liber}} * {{Z|lg}}: {{W-|lg|ekitabo}} * {{Z|luy}}: {{W-|luy|sitabu}} * {{Z|lb}}: {{W+|lb|Buch|nt}} * {{Z|mk}}: {{W+|mk|книга|m}} * {{Z|mg}}: {{W+|mg|boky}} * {{Z|ml}}: {{W+|ml|പുസ്തകം}} * {{Z|pqm}}: {{W-|pqm|wikhikon}} * {{Z|ms}}: {{W+|ms|buku}}, {{W+|ms|kitab}}, {{W+|ms|pustaka}} * {{Z|mt}}: {{W+|mt|ktieb|n}} * {{Z|mnc}}: {{W-|mnc|ᠪᡳᡨᡥᡝ}}, {{W-|mnc|ᠴᠠᡤᠠᠨ}}, {{W-|mnc|ᠨᠣᠮᡠᠨ}} * {{Z|gv}}: {{W-|gv|lioar|n}} * {{Z|mns-nor}}: {{W-|mns-nor|кнӣга}} * {{Z|mi}}: {{W+|mi|pukapuka}} * {{Z|mr}}: {{W+|mr|पुस्तक|m}} * {{Z|mhr}}: {{W-|mhr|книга}} * {{Z|mrc}}: {{W-|mrc|onyor}} * {{Z|yua}}: {{W-|yua|juʼun}} * {{Z|hu}}: {{W+|hu|könyv}} * {{Z|xmf}}: {{W-|xmf|სუფარა|n}}, {{W-|xmf|წინგი}} * {{Z|egy}}: {{W-egy|mḏꜣt|m|h=Y1:t*Z1-V12:Z1}}, {{W-egy|šfdw|n|h=S:f-d-w-V12}} * {{Z|mvi}}: {{W-|mvi|書物|tr=すぃむくㇲ, simuks}} * {{Z|mwl}}: {{W-|mwl|lhibro|n}} * {{Z|mdf}}: {{W-|mdf|книга}} * {{Z|mn}}: *: Kirîlî: {{W+|mn|ном}}, {{W+|mn|бичиг}} *: Mongolî: {{W-|mn|ᠨᠣᠮ}}, {{W-|mn|ᠪᠢᠴᠢᠭ᠋}} * {{Z|mnw}}: {{W-|mnw|လိက် အုပ်|tr=lòik up}} * {{Z|wmw}}: {{W-|wmw|kitabu}}, {{W-|wmw|buku}}, {{W-|wmw|livro}} * {{Z|nah}}: {{W+|nah|amoxtli}} *: {{Z|nci}}: {{W-|nci|āmoxtli}} * {{Z|gld}}: {{W-|gld|дангса}} * {{Z|nap}}: {{W-|nap|lìbbro|n}} * {{Z|nv}}: {{W-|nv|naaltsoos}} * {{Z|nds}}: *: {{Z|nds-nl}}: {{W-|nds-nl|book|nt}} *: {{Z|nds-de}}: {{W-|nds-de|Book|nt}} * {{Z|yrk}}: {{W-|yrk|книга}}, {{W-|yrk|толаӈгобць’}} * {{Z|ne}}: {{W-|ne|पुस्तक}}, {{W+|ne|किताप}} * {{Z|new}}: {{W-|new|सफू}} * {{Z|niv}}: {{W-|niv|питғы}} * {{Z|nog}}: {{W-|nog|китап}} * {{Z|no}}: *: {{Z|no}}: {{W+|no|bok|n|m}} *: {{Z|nn}}: {{W+|nn|bok|m}} * {{Z|ood}}: {{W-|ood|ʼoʼohana}} * {{Z|ojw}}: {{W-|ojw|masinahikan}} * {{Z|oj}}: {{W-|oj|mazina'igan}} * {{Z|ryu}}: {{W-|ryu|書物|tr=すむち, sumuchi, しむち, shimuchi}} * {{Z|pro}}: {{W-|pro|libre}} * {{Z|oc}}: {{W+|oc|libre|n}} * {{Z|or}}: {{W+|or|ବହି}} * {{Z|oaa}}: {{W-|oaa|бичихэ}} * {{Z|os}}: {{W-|os|чиныг}} * {{Z|ota}}: {{W-|ota|كتاب|tr=kitâb}} * {{Z|ug}}: {{W+|ug|كىتاب}} * {{Z|uz}}: {{W+|uz|kitob}} * {{Z|pi}}: {{W-|pi|potthaka}} *: {{Z|pi}}: {{W-|pi|पोत्थक}} *: {{Z|pi}}: {{W-|pi|โปตถะกะ}} * {{Z|pap}}: {{W-|pap|buki}} * {{Z|paw}}: {{W-|paw|raáwihaakaraaʾit}}, {{W-|paw|raáwihaakaraaʾiitusuʾ}} * {{Z|ps}}: {{W+|ps|کتاب|n|tr=ketāb}} * {{Z|pms}}: {{W-|pms|lìber}} * {{Z|pdt}}: {{W-|pdt|Buak|nt}} * {{Z|pox}}: {{W-|pox|bükvoi|p}} * {{Z|pl}}: {{W+|pl|książka|m}}, {{W+|pl|księga|m}} * {{Z|pt}}: {{W+|pt|livro|n}} * {{Z|prg}}: {{W-|prg|lāiskas|n}} * {{Z|pkp}}: {{W-|pkp|lau}}, {{W-|pkp|puka}} * Puncabî: *: Şaxmuxî: {{W+|pa|پستک|n}}, {{W+|pa|کتاب|m|tr=ktāb}} *: Gurmuxî: {{W-|pa|ਪੁਸਤਕ|n}}, {{W-|pa|ਕਿਤਾਬ}} * {{Z|kk}}: {{W+|kk|кітап}} *: {{Z|kk}}: {{W-|kk|كىتاپ}} * {{Z|cop}}: {{W-|cop|ϫⲱⲙ|n}} * {{Z|rah}}: {{W-|rah|কাওছা|tr=káosa}} * {{Z|mwr}}: {{W-|mwr|पोथी|tr=pothī|m}} * {{Z|rgn}}: {{W-|rgn|lìvar|n}} * {{Z|rm}}: {{W-|rm|cudesch}} * {{Z|rom}}: {{W-|rom|ginadyi|m}} * {{Z|ro}}: {{W+|ro|carte|m}} * {{Z|ru}}: {{W+|ru|кни́га|m}}, {{W+|ru|кни́жка|m}} * {{Z|rue}}: {{W-|rue|кни́га|m}} * {{Z|se}}: {{W-|se|girji}} * {{Z|sma}}: {{W-|sma|gærja}} * {{Z|smn}}: {{W-|smn|kirje}} * {{Z|sjd}}: {{W-|sjd|кыррьй}}, {{W-|sjd|кнӣга}} * {{Z|smj}}: {{W-|smj|girjje}} * {{Z|sms}}: {{W-|sms|ǩeʹrjj}} * {{Z|sgs}}: {{W-|sgs|kninga|m}} * {{Z|sa}}: {{W+|sa|पुस्तक|nt}}, {{W+|sa|ग्रन्थ|nt}} * {{Z|scn}}: {{W+|scn|libbru|n}} * {{Z|sky}}: {{W-|sky|laumea}} * {{Z|szl}}: {{W-|szl|kniga|m}} * {{Z|sd}}: {{W+|sd|ڪتاب|n|tr=kitāb|cuda=ڪِتابُ}} * {{Z|srn}}: {{W-|srn|buku}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|књи̏га|m}} *: Latînî: {{W+|sh|knjȉga|m}} * {{Z|syc}}: {{W-|syc|ܟܬܒܐ|n|tr=kṯāḇā}} * {{Z|syl}}: {{W-|syl|ꠛꠂ}} * {{Z|sco}}: {{W-|sco|beuk}} * {{Z|cu}}: *: Kirîlî: {{W-|cu|боукꙑ|m}}, {{W-|cu|кънигꙑ|m-p}} * {{Z|orv}}: {{W-|orv|кънига|m}} * {{Z|sk}}: {{W+|sk|kniha|m}} * {{Z|sl}}: {{W+|sl|knjíga|m}} * {{Z|zlw-slv}}: {{W-|zlw-slv|knega|m}} * {{Z|so}}: {{W+|so|buug|n}}, {{W-|so|kitaab|n}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|knigły|m-p}} *: {{Z|hsb}}: {{W-|hsb|kniha|m}} * {{Z|st}}: {{W+|st|buka}} * {{Z|es}}: {{W+|es|libro|n}} * {{Z|su}}: {{W-|su|ᮘᮥᮊᮥ}} * {{Z|xsv}}: {{W-|xsv|laiskas|n}} * {{Z|sva}}: {{W-|sva|ლა̈ირ}} * {{Z|sw}}: {{W+|sw|kitabu}}, {{W+|sw|vitabu|p}} * {{Z|ss}}: {{W-|ss|íncwadzí|c9|c10}} * {{Z|sv}}: {{W+|sv|bok|g}} * {{Z|shn}}: {{W-|shn|ပပ်ႉ}}, {{W-|shn|ၸႃႇဢုၵ်ႉ}} * {{Z|sn}}: {{W-|sn|bhuku}} * {{Z|cjs}}: {{W-|cjs|ном|tr=nom}}, {{W-|cjs|книга}} * {{Z|tab}}: {{W-|tab|китаб}} * {{Z|tg}}: {{W+|tg|китоб}} * {{Z|tl}}: {{W+|tl|libro}}, {{W+|tl|aklat}} * {{Z|ta}}: {{W+|ta|நூல்}}, {{W+|ta|புத்தகம்}} * {{Z|roa-tar}}: {{W-|roa-tar|libbre|n}} * {{Z|shi}}: {{W-|shi|ⴰⵔⵔⴰ|n}} * {{Z|th}}: {{W+|th|หนังสือ}}, {{W+|th|สมุด}} * {{Z|te}}: {{W+|te|పుస్తకం}}, {{W-|te|పొత్తం}} * {{Z|crh}}: {{W-|crh|kitap}} * {{Z|tt}}: {{W+|tt|китап}} * {{Z|tet}}: {{W-|tet|livru}} * {{Z|tig}}: {{W-|tig|ክታብ}} * {{Z|ti}}: {{W-|ti|መጽሓፍ}}, {{W-|ti|መጽሐፍ}} * {{Z|otk}}: {{W-|otk|𐰋𐰃𐱅𐰏}} * {{Z|tr}}: {{W+|tr|kitap}}, {{W+|tr|betik}} * {{Z|tk}}: {{W-|tk|kitap}} * {{Z|bo}}: {{W-|bo|དེབ}}, {{W-|bo|ཕྱག་དེབ}} * {{Z|tli}}: {{W-|tli|x’úx’}} * {{Z|tpi}}: {{W-|tpi|buk}} * {{Z|txb}}: {{W-|txb|postak}} * {{Z|tn}}: {{W+|tn|buka}} * {{Z|tum}}: {{W-|tum|buku}} * {{Z|tvl}}: {{W-|tvl|tusi}} * {{Z|tyv}}: {{W-|tyv|ном}} * {{Z|udi}}: {{W-|udi|ҝирк}} * {{Z|udm}}: {{W-|udm|книга}} * {{Z|unm}}: {{W-|unm|lekhikàn}} * {{Z|ur}}: {{W+|ur|کِتاب|m|tr=kitāb}}, {{W-|ur|پُسْتَک|m|tr=pustak}}, {{W-|ur|بُک|m|tr=buk}} * {{Z|urh}}: {{W-|urh|e̖be}} * {{Z|uk}}: {{W-|uk|кни́жка|m}}, {{W+|uk|кни́га|m}} * {{Z|vec}}: {{W-|vec|łìbro|n}} * {{Z|vep}}: {{W-|vep|kirj}} * {{Z|vi}}: {{W+|vi|sách}}, {{W+|vi|sổ}}, {{W+|vi|sách giáo khoa}} * {{Z|vo}}: {{W+|vo|buk}} * {{Z|vot}}: {{W-|vot|tširjõ}} * {{Z|wa}}: {{W+|wa|live|n}} * {{Z|war}}: {{W-|war|basahon}}, {{W-|war|barasahon}} * {{Z|cy}}: {{W+|cy|llyfr|n}} * {{Z|wrh}}: {{W-|wrh|garrandarang}} * {{Z|wym}}: {{W-|wym|bihła|nt}}, {{W-|wym|büch}} * {{Z|wo}}: {{W-|wo|[[tééré]] bi}}, {{W+|wo|téere}} * {{Z|wuh}}: {{W-|wuh|huaiqa}} * {{Z|kjh}}: {{W-|kjh|кинде}} * {{Z|km}}: {{W+|km|សៀវភៅ}} * {{Z|xh}}: {{W-|xh|incwadi|c9|c10}} * {{Z|yai}}: {{W-|yai|китоб}} * {{Z|sah}}: {{W-|sah|кинигэ}} * {{Z|tao}}: {{W-|tao|vakong}} * {{Z|yi}}: {{W-|yi|בוך|nt}}, {{W-|yi|ספֿר|n|tr=seyfer}}, {{W-|yi|חיבור|n|tr=khiber}} * {{Z|yo}}: {{W-|yo|ìwé}} * {{Z|el}}: {{W+|el|βιβλίο|nt}}, {{W+|el|τόμος|n}} *: Kevn: {{W-|grc|βιβλίον|nt}} * {{Z|za}}: {{W-|za|saw}} * {{Z|zu}}: {{W+|zu|ibhuku|c5|c6}}, {{W+|zu|incwadi|c9|c10}} {{werger-bin}} :{{werger çavkanî|en|book|oldid=75472768|beş=Ev qismê Wergerê}} ncnm7f6xfegknkziwfso7es7j2fmgt6 6329667 6329666 2026-08-12T16:44:09Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329667 wikitext text/x-wiki {{bnr-h|kiteb|Kitêb}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA|k(h)itêb}} * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-kitêb.wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr === [[Wêne:Latin_dictionary.jpg|thumb|Kitêb]] {{navdêr|ku|z=m}} # [[kom|Komeke]] [[kaxez]]ên bi [[nivîs]] û / yan [[resm]] yên di nav [[berg]]ekî de hatine [[çap]]kirin. #: {{hevmane|ku|pirtûk}} #: {{mk|ku|Wê rûpela 50 ya '''kitêbê''' vekir û dest bi xwendinê kir.}} #* {{jêder|ku|{{Jêgirtin/Melayê Cizirî/Dîwan/2004|r=44}}|jêgirtin=Me ji ser çeşmeyê ḥeywan qedeḥek ṣafî vexwar<br>Nagihî lez̤z̤et û z̤ewqa me bi ṣed cildê '''kitab'''}} #* {{Jêgirtin/Feqiyê Teyran|sernav=Feqiyê Teyran jiyan berhem û helbestên wî|sala-weşandinê=2013|weşanxane=Nûbihar|çap=7|rûpel=130|amadekar=M. Xalid Sadinî|jêgirtin=Agir û pêta di dil da<br>Me„neya daxan ku hilda<br>Ew '''kitab''' naçit tu cilda<br>Hafîzê medhan im ez}} #* {{jêder-kitêb|ku|jêgirtin=We neẓertu fîl-kîtabî, yanî ez daxilê xanî bûm û min neẓer li '''kitêbê''' kir.|sernav=Tesrîfa Teremaxî|nivîskar={{w|Elî Teremaxî}}|r=64|amadekar=Aydın Üneşi|sal=~1600|sala weşandinê=2016|cih=Mêrdin}} #* {{jêder-kitêb|ku|jêgirtin=Ji şaîrê Kurmancan, bi zimanê Kurmancî, di tarîxa hezar û şeşsedî de di qeseba Bayezîdê de, hezretî Ehmedê Xanî '''kitêba''' ku telîf kiriye bi wezn bi nave Mem û Zînê, aşiq û maşûq, li weche muxtesr beyana wan dike.|sal=~1850|nivîskar={{w|Mele Mehmûdê Bazîdî}}|sernav=Mem û Zîn|sala weşandinê=2007|weşanxane=Lîs|r=23|amadekar=Xelîl Duhokî}} #* {{jêder-kitêb|ku|jêgirtin=Mirovek xwenda, alim hebî, nave wî "Ehmede Xanî" bî{{sic}}. Xwedê jê razî be, rehmeta Xwedê lê be, vî mirovî hin '''kitêbên''' Kurmancî nivîsîne.|sernav=Kurdistan|sal=1898|r=123|amadekar=M. Emîn Bozarslan|nivîskar={{w|Miqdad Midhet Bedirxan}}|sala weşandinê=1991|cild=1}} #* {{jêder|ku|jêgirtin=- Ma lê, ji te xeyidîme, ma çawan ji te naxeyidim. Te ez avêtim nav '''kitêb''' û kaxizan, te ez kirim hogir û hevala bermayên [[qaşûl]]ên dar û qirş û [[hevser]]a [[caw]] û [[potik]]ên [[zibilgeh]]ê.|''Gazinda Xencera Min, Hawar'', [[w:Celadet Alî Bedir-Xan|Celadet Alî Bedir-Xan]], hejmar 12}} # Her kitêba [[miqeddes]] wekî [[Qur'an]] an [[Încîl]]. #* {{jêder-kitêb|ku|jêgirtin=Îsa cewab da ji wan ṟa, û go: Ey! şaşxunan, ne '''kitêb''' dizanin û ne quwwetê Xodê|sernav=Încîl|sal=1872|r=105|nivîskar=Madteos|amadekar=İlyas Sayım|sala weşandinê=2024}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din==== * {{ku-ar|کتێب}} * {{ku-kr|к'ьтеб}} ==== Jê ==== {{kol3|ku|cure=Jê |kitêbdank |kitêbdost |kitêbdostî |kitêbfiroş |kitêbfiroşgeh |kitêbfiroşxane |kitêbgeh |kitêbhez |kitêbhezî |kitêbik |kitêbî |kitêbk |kitêbxane |kitêbxanevan |kitêbxanevanî |kitêbyar |kitêbyarî }} ==== Etîmolojî ==== {{root|ku|ar|ك ت ب}} Ji {{deyn|ar|ku|كِتَاب}} ji reha {{ar-reh|ك ت ب|nekat=1}} ''têkilî rêzkirinê û çêkirina rêzikan ji wê yekê jî têkilî nivîsînê'', ji {{mîr|sem-wes-pro|ar|*katab-|w=xurandin, xeritandin}}. Ev reh koka peyvin din jî ne weku: {{q|ku|katib}}, {{q|ku|mekteb}}, {{q|ku|ketîbe}}. ==== Bide ber ==== {{kol3|ku |belavok |defter |kovar |namilke |rojname }} ==== Werger ==== {{werger-ser|koma kaxezan}} * {{Z|abq}}: {{W-|abq|книга}}, {{W-|abq|апхьага}}, {{W-|abq|кьтап}} * {{Z|ab}}: {{W-|ab|ашәҟәы}} * {{Z|ady}}: {{W-|ady|тхылъ}} * {{Z|aa}}: {{W-|aa|kitab}} * {{Z|af}}: {{W+|af|boek}} * {{Z|xag}}: {{W-|xag|𐕁𐔼𐕗}} * {{Z|akz}}: {{W-|akz|holisso}} * {{Z|sq}}: {{W+|sq|libër|n}} * {{Z|de}}: {{W+|de|Buch|nt}} *: {{Z|gsw}}: {{W-|gsw|Buech|nt}} *: {{Z|gmw-cfr}}: {{W-|gmw-cfr|Boch|nt}} *: {{Z|pdc}}: {{W-|pdc|Buch|nt}} * {{Z|alt}}: {{W-|alt|бичик}}, {{W-|alt|книга}} * {{Z|abs}}: {{W-|abs|buku}} * {{Z|am}}: {{W-|am|መጽሃፍ}} * Apaçî: *: {{Z|apw}}: {{W-|apw|nałtsoos}} * {{Z|an}}: {{W-|an|libro|n}} * {{Z|rup}}: {{W-|rup|vivlie}}, {{W-|rup|carte}} * {{Z|as}}: {{W-|as|কিতাপ}}, {{W-|as|পুথি}} * {{Z|ast}}: {{W+|ast|llibru|n}} * {{Z|tay}}: {{W-|tay|biru'}} * {{Z|aot}}: {{W-|aot|kitap}} * {{Z|av}}: {{W-|av|тӏехь}}, {{W-|av|таптар}}, {{W-|av|тӏахьал}} * {{Z|ay}}: {{W-|ay|panka}} * {{Z|ain}}: {{W-|ain|カㇺビソㇱ|tr=kambisosh}} * {{Z|az}}: {{W+|az|kitab}} * {{Z|bm}}: {{W-|bm|gafɛ}} * {{Z|eu}}: {{W+|eu|liburu}} * {{Z|ba}}: {{W-|ba|китап}} * {{Z|be}}: {{W+|be|кні́га|m}}, {{W-|be|кні́жка|m}} * {{Z|bn}}: {{W+|bn|বই}}, {{W+|bn|কিতাব}}, {{W+|bn|গ্রন্থ}}, {{W+|bn|পুস্তক}} * {{Z|bth}}: {{W-|bth|buk}} * {{Z|bi}}: {{W-|bi|buk}} * {{Z|br}}: {{W+|br|levr|n}} * {{Z|bg}}: {{W+|bg|кни́га|m}} * {{Z|my}}: {{W+|my|စာအုပ်}} * {{Z|bua}}: {{W-|bua|ном}} * {{Z|kac}}: {{W-|kac|laika buk}} * {{Z|ch}}: {{W-|ch|lepblo}} * {{Z|chg}}: {{W-|chg|كتاب|tr=kitab}} * {{Z|ce}}: {{W-|ce|кинишка}}, {{W-|ce|китаб}}, {{W-|ce|книга}}, {{W-|ce|книшка}}, {{W-|ce|кинчка}}, {{W-|ce|жайна}} * {{Z|cs}}: {{W+|cs|kniha|m}} * {{Z|chr}}: {{W-|chr|ᏗᎪᏪᎵ}}, {{W+|chr|ᎪᏪᎵ}} * {{Z|chy}}: {{W-|chy|mȯxe'ėstoo'e}} * {{Z|ny}}: {{W-|ny|buku}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|書}} *: {{Z|dng}}: {{W-|dng|фу}} *: {{Z|gan}}: {{W-|gan|書}} *: {{Z|hak}}: {{W-|hak|書|tr=sû}} *: {{Z|cjy}}: {{W-|cjy|書}} *: {{Z|cmn}}: {{W+|cmn|書}} *: {{Z|mnp}}: {{W-|mnp|書}} *: {{Z|cdo}}: {{W-|cdo|書}} *: {{Z|nan}}: {{W+|nan|冊|tr=chheh}}, {{W+|nan|書|tr=chu}} *: {{Z|wuu}}: {{W-|wuu|書}} *: {{Z|hsn}}: {{W-|hsn|書}} * {{Z|cv}}: {{W-|cv|кӗнеке}} * {{Z|dlm}}: {{W-|dlm|lebro|n}} * {{Z|da}}: {{W+|da|bog|g}} * {{Z|dv}}: {{W-|dv|ފޮތް}} * {{Z|dtp}}: {{W-|dtp|buuk}} * {{Z|ovd}}: {{W-|ovd|buok|m}} * {{Z|id}}: {{W+|id|buku}}, {{W+|id|kitab}} * {{Z|ar}}: {{W+|ar|كِتَاب|n}} *: {{Z|arq}}: {{W-|arq|كتاب|n|tr=ktāb}} *: {{Z|arz}}: {{W-|arz|كتاب|n|tr=ketāb}} *: {{Z|acm}}: {{W-|acm|كِتَاب|n}} *: {{Z|ary}}: {{W-|ary|كتاب|n|tr=ktāb}} *: {{Z|apc}}: {{W-|apc|كتاب|tr=ktāb, ktēb}} *: {{Z|aeb}}: {{W-|aeb|كتاب|n|tr=ktēb}} * {{Z|hy}}: {{W+|hy|գիրք}} * {{Z|myv}}: {{W-|myv|конёвкс}}, {{W-|myv|кинига}} * {{Z|eo}}: {{W+|eo|libro}} * {{Z|et}}: {{W+|et|raamat}} * {{Z|gez}}: {{W-|gez|መጽሐፍ}} * {{Z|evn}}: {{W-|evn|книга}} * {{Z|ee}}: {{W-|ee|agbalẽ}} * {{Z|ext}}: {{W-|ext|llibru|n}} * {{Z|fax}}: {{W-|fax|libru|n}} * {{Z|fa}}: {{W+|fa|کِتاب|tr=ketâb}}, {{W+|fa|نَسک|tr=nask}}, {{W+|fa|نامِه|tr=nâme}} * {{Z|fo}}: {{W+|fo|bók|m}} * {{Z|fj}}: {{W+|fj|vola}}, {{W-|fj|ivola}} * {{Z|fi}}: {{W+|fi|kirja}} * {{Z|fr}}: {{W+|fr|livre|n}}, {{W+|fr|bouquin|n}} * {{Z|fur}}: {{W-|fur|libri|n}} * {{Z|frr}}: {{W-|frr|bök|nt}}, {{W-|frr|buk|nt}} * {{Z|stq}}: {{W-|stq|Bouk|nt}} * {{Z|fy}}: {{W+|fy|boek|nt}} * {{Z|ff}}: *: Adlamî: {{W-|ff|𞤣𞤫𞤬𞤼𞤫𞤪𞤫}} *: Latînî: {{W-|ff|deftere}} * {{Z|gd}}: {{W+|gd|leabhar|n}} * {{Z|gag}}: {{W-|gag|kitap}} * {{Z|gl}}: {{W+|gl|libro|n}} * {{Z|glk}}: {{W-|glk|کیتاب|tr=kitāb}} * {{Z|got}}: {{W-|got|𐌱𐍉𐌺𐍉𐍃|m-p}} * {{Z|gu}}: {{W+|gu|પુસ્તક|m}}, {{W-|gu|ચોપડી}} * {{Z|ka}}: {{W+|ka|წიგნი}} * {{Z|gn}}: {{W+|gn|kuatiañe'ẽ}}, {{W-|gn|[[aranduka]]}} * {{Z|ht}}: {{W-|ht|liv}} * {{Z|haw}}: {{W-|haw|puke}}, {{W-|haw|liwele}} * {{Z|ha}}: {{W+|ha|littafi}} * {{Z|hi}}: {{W+|hi|पुस्तक|m}}, {{W+|hi|किताब|m}}, {{W+|hi|बुक|m}}, {{W+|hi|ग्रंथ|n}}, {{W+|hi|बही|m}}, {{W+|hi|पोथी|m}}, {{W+|hi|पोथा|n}}, {{W+|hi|पुस्तिका|m}}, {{W+|hi|सिफर}} * {{Z|hil}}: {{W-|hil|tulún-an}} * {{Z|meu}}: {{W-|meu|buka}} * {{Z|hnj}}: {{W-|hnj|phoo}}, {{W-|hnj|phoo ntawv}} * {{Z|mww}}: {{W-|mww|ntawv}} * {{Z|nl}}: {{W+|nl|boek|nt}} * {{Z|hrx}}: {{W-|hrx|Buch|nt}} * {{Z|tts}}: {{W-|tts|ปึ้ง|tr=pụ̂ng}} * {{Z|iba}}: {{W-|iba|surat}}, {{W-|iba|bup}} * {{Z|he}}: {{W+|he|סֵפֶר|n|tr=séfer}} * {{Z|io}}: {{W+|io|libro}} * {{Z|ig}}: {{W-|ig|akwụkwọ}} * {{Z|ang}}: {{W-|ang|bōc|m}} * {{Z|enm}}: {{W-|enm|bok}} * {{Z|en}}: {{W+|en|book}} * {{Z|izh}}: {{W-|izh|kirja}} * {{Z|inh}}: {{W-|inh|китаб}} * {{Z|ia}}: {{W+|ia|libro}} * {{Z|iu}}: {{W+|iu|ᕿᒥᕐᕈᐊᑦ}} *: {{Z|iu}}: {{W-|iu|unikkausik}} * {{Z|sga}}: {{W-|sga|lebor|n}} * {{Z|ga}}: {{W+|ga|leabhar|n}} * {{Z|ist}}: {{W-|ist|leîbro|n}} * {{Z|it}}: {{W+|it|libro|n}} * {{Z|is}}: {{W+|is|bók|m}} * {{Z|ja}}: {{W+|ja|本|tr=ほん, hon}}, {{W+|ja|書籍|tr=しょせき, shoseki}}, {{W+|ja|ブック|tr=bukku}} * {{Z|kaw}}: {{W-|kaw|tulis}} * {{Z|jv}}: {{W+|jv|buku}}, {{W+|jv|layang}}, {{W-|jv|serat}} * {{Z|kbd}}: {{W-|kbd|тхылъ}} * {{Z|kab}}: {{W-|kab|adlis}} * {{Z|kl}}: {{W-|kl|atuagaq}} * {{Z|xal}}: {{W-|xal|дегтр}} * {{Z|kn}}: {{W+|kn|ಪುಸ್ತಕ}} * {{Z|krc}}: {{W-|krc|китап}} * {{Z|kaa}}: {{W-|kaa|kitap}} * {{Z|krl}}: {{W-|krl|kirju}} * {{Z|csb}}: {{W-|csb|knéga|m}}, {{W-|csb|knyga|m}}, {{W-|csb|knëga|m}}, {{W-|csb|ksążka|m}} * {{Z|ca}}: {{W+|ca|llibre|n}} * {{Z|qu}}: {{W+|qu|liwru}}, {{W+|qu|p'anqa}} * {{Z|ky}}: {{W+|ky|китеп}} * {{Z|kg}}: {{W-|kg|dibuku}} * {{Z|ki}}: {{W-|ki|rifuku}} * {{Z|si}}: {{W+|si|පොත}} * {{Z|rw}}: {{W-|rw|igitabo|c7|c8}} * {{Z|gil}}: {{W-|gil|boki}} * {{Z|kis}}: {{W-|kis|egetabu}} * {{Z|kpv}}: {{W-|kpv|небӧг}}, {{W-|kpv|книга}} * {{Z|kok}}: {{W-|kok|पुस्तक}} * {{Z|ko}}: {{W-|ko|책(冊)}}, {{W-|ko|도서(圖書)}} * {{Z|kw}}: {{W-|kw|lyver|n}} * {{Z|co}}: {{W+|co|libru|n}} * {{Z|lou}}: {{W-|lou|liv}} * {{Z|mfe}}: {{W-|mfe|liv}} * {{Z|crs}}: {{W-|crs|liv}} * {{Z|kum}}: {{W-|kum|китап}} * {{Z|fkv}}: {{W-|fkv|kirja}} * {{Z|kj}}: {{W-|kj|embo}} * {{Z|lad}}: *: Îbranî: {{W-|lad|ליב׳רו|n}} *: Latînî: {{W-|lad|livro|n}} * {{Z|lbe}}: {{W-|lbe|лу}} * {{Z|lkt}}: {{W-|lkt|wówapi}} * {{Z|la}}: {{W+|la|liber|n}}, {{W-|la|caudex|n}} * {{Z|lv}}: {{W+|lv|grāmata|m}} * {{Z|lo}}: {{W+|lo|ປຶ້ມ}}, {{W+|lo|ປຶ້ມຂຽນ}}, {{W-|lo|ຫນັງສື}}, {{W-|lo|ສັດຖະ}}, {{W-|lo|ພັບ}} * {{Z|lzz}}: {{W-|lzz|სუპარა}} * {{Z|lez}}: {{W-|lez|улуб}}, {{W-|lez|ктаб}}, {{W-|lez|дафтар}} * {{Z|mhx}}: {{W-|mhx|mug sug' paug'}}, {{W-|mhx|tung" paug'}}, {{W-|mhx|paug'}} * {{Z|ln}}: {{W-|ln|búku|c9a|c10a}} * {{Z|lij}}: {{W-|lij|lìbbro|n}}, {{W-|lij|libbro}} * {{Z|li}}: {{W+|li|book|m}} * {{Z|lt}}: {{W+|lt|knyga|m}} * {{Z|liv}}: {{W-|liv|rōntõz}} * {{Z|lmo}}: {{W-|lmo|liber}} * {{Z|lg}}: {{W-|lg|ekitabo}} * {{Z|luy}}: {{W-|luy|sitabu}} * {{Z|lb}}: {{W+|lb|Buch|nt}} * {{Z|mk}}: {{W+|mk|книга|m}} * {{Z|mg}}: {{W+|mg|boky}} * {{Z|ml}}: {{W+|ml|പുസ്തകം}} * {{Z|pqm}}: {{W-|pqm|wikhikon}} * {{Z|ms}}: {{W+|ms|buku}}, {{W+|ms|kitab}}, {{W+|ms|pustaka}} * {{Z|mt}}: {{W+|mt|ktieb|n}} * {{Z|mnc}}: {{W-|mnc|ᠪᡳᡨᡥᡝ}}, {{W-|mnc|ᠴᠠᡤᠠᠨ}}, {{W-|mnc|ᠨᠣᠮᡠᠨ}} * {{Z|gv}}: {{W-|gv|lioar|n}} * {{Z|mns-nor}}: {{W-|mns-nor|кнӣга}} * {{Z|mi}}: {{W+|mi|pukapuka}} * {{Z|mr}}: {{W+|mr|पुस्तक|m}} * {{Z|mhr}}: {{W-|mhr|книга}} * {{Z|mrc}}: {{W-|mrc|onyor}} * {{Z|yua}}: {{W-|yua|juʼun}} * {{Z|hu}}: {{W+|hu|könyv}} * {{Z|xmf}}: {{W-|xmf|სუფარა|n}}, {{W-|xmf|წინგი}} * {{Z|egy}}: {{W-egy|mḏꜣt|m|h=Y1:t*Z1-V12:Z1}}, {{W-egy|šfdw|n|h=S:f-d-w-V12}} * {{Z|mvi}}: {{W-|mvi|書物|tr=すぃむくㇲ, simuks}} * {{Z|mwl}}: {{W-|mwl|lhibro|n}} * {{Z|mdf}}: {{W-|mdf|книга}} * {{Z|mn}}: *: Kirîlî: {{W+|mn|ном}}, {{W+|mn|бичиг}} *: Mongolî: {{W-|mn|ᠨᠣᠮ}}, {{W-|mn|ᠪᠢᠴᠢᠭ᠋}} * {{Z|mnw}}: {{W-|mnw|လိက် အုပ်|tr=lòik up}} * {{Z|wmw}}: {{W-|wmw|kitabu}}, {{W-|wmw|buku}}, {{W-|wmw|livro}} * {{Z|nah}}: {{W+|nah|amoxtli}} *: {{Z|nci}}: {{W-|nci|āmoxtli}} * {{Z|gld}}: {{W-|gld|дангса}} * {{Z|nap}}: {{W-|nap|lìbbro|n}} * {{Z|nv}}: {{W-|nv|naaltsoos}} * {{Z|nds}}: *: {{Z|nds-nl}}: {{W-|nds-nl|book|nt}} *: {{Z|nds-de}}: {{W-|nds-de|Book|nt}} * {{Z|yrk}}: {{W-|yrk|книга}}, {{W-|yrk|толаӈгобць’}} * {{Z|ne}}: {{W-|ne|पुस्तक}}, {{W+|ne|किताप}} * {{Z|new}}: {{W-|new|सफू}} * {{Z|niv}}: {{W-|niv|питғы}} * {{Z|nog}}: {{W-|nog|китап}} * {{Z|no}}: *: {{Z|no}}: {{W+|no|bok|n|m}} *: {{Z|nn}}: {{W+|nn|bok|m}} * {{Z|ood}}: {{W-|ood|ʼoʼohana}} * {{Z|ojw}}: {{W-|ojw|masinahikan}} * {{Z|oj}}: {{W-|oj|mazina'igan}} * {{Z|ryu}}: {{W-|ryu|書物|tr=すむち, sumuchi, しむち, shimuchi}} * {{Z|pro}}: {{W-|pro|libre}} * {{Z|oc}}: {{W+|oc|libre|n}} * {{Z|or}}: {{W+|or|ବହି}} * {{Z|oaa}}: {{W-|oaa|бичихэ}} * {{Z|os}}: {{W-|os|чиныг}} * {{Z|ota}}: {{W-|ota|كتاب|tr=kitâb}} * {{Z|ug}}: {{W+|ug|كىتاب}} * {{Z|uz}}: {{W+|uz|kitob}} * {{Z|pi}}: {{W-|pi|potthaka}} *: {{Z|pi}}: {{W-|pi|पोत्थक}} *: {{Z|pi}}: {{W-|pi|โปตถะกะ}} * {{Z|pap}}: {{W-|pap|buki}} * {{Z|paw}}: {{W-|paw|raáwihaakaraaʾit}}, {{W-|paw|raáwihaakaraaʾiitusuʾ}} * {{Z|ps}}: {{W+|ps|کتاب|n|tr=ketāb}} * {{Z|pms}}: {{W-|pms|lìber}} * {{Z|pdt}}: {{W-|pdt|Buak|nt}} * {{Z|pox}}: {{W-|pox|bükvoi|p}} * {{Z|pl}}: {{W+|pl|książka|m}}, {{W+|pl|księga|m}} * {{Z|pt}}: {{W+|pt|livro|n}} * {{Z|prg}}: {{W-|prg|lāiskas|n}} * {{Z|pkp}}: {{W-|pkp|lau}}, {{W-|pkp|puka}} * Puncabî: *: Şaxmuxî: {{W+|pa|پستک|n}}, {{W+|pa|کتاب|m|tr=ktāb}} *: Gurmuxî: {{W-|pa|ਪੁਸਤਕ|n}}, {{W-|pa|ਕਿਤਾਬ}} * {{Z|kk}}: {{W+|kk|кітап}} *: {{Z|kk}}: {{W-|kk|كىتاپ}} * {{Z|cop}}: {{W-|cop|ϫⲱⲙ|n}} * {{Z|rah}}: {{W-|rah|কাওছা|tr=káosa}} * {{Z|mwr}}: {{W-|mwr|पोथी|tr=pothī|m}} * {{Z|rgn}}: {{W-|rgn|lìvar|n}} * {{Z|rm}}: {{W-|rm|cudesch}} * {{Z|rom}}: {{W-|rom|ginadyi|m}} * {{Z|ro}}: {{W+|ro|carte|m}} * {{Z|ru}}: {{W+|ru|кни́га|m}}, {{W+|ru|кни́жка|m}} * {{Z|rue}}: {{W-|rue|кни́га|m}} * {{Z|se}}: {{W-|se|girji}} * {{Z|sma}}: {{W-|sma|gærja}} * {{Z|smn}}: {{W-|smn|kirje}} * {{Z|sjd}}: {{W-|sjd|кыррьй}}, {{W-|sjd|кнӣга}} * {{Z|smj}}: {{W-|smj|girjje}} * {{Z|sms}}: {{W-|sms|ǩeʹrjj}} * {{Z|sgs}}: {{W-|sgs|kninga|m}} * {{Z|sa}}: {{W+|sa|पुस्तक|nt}}, {{W+|sa|ग्रन्थ|nt}} * {{Z|scn}}: {{W+|scn|libbru|n}} * {{Z|sky}}: {{W-|sky|laumea}} * {{Z|szl}}: {{W-|szl|kniga|m}} * {{Z|sd}}: {{W+|sd|ڪتاب|n|tr=kitāb|cuda=ڪِتابُ}} * {{Z|srn}}: {{W-|srn|buku}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|књи̏га|m}} *: Latînî: {{W+|sh|knjȉga|m}} * {{Z|syc}}: {{W-|syc|ܟܬܒܐ|n|tr=kṯāḇā}} * {{Z|syl}}: {{W-|syl|ꠛꠂ}} * {{Z|sco}}: {{W-|sco|beuk}} * {{Z|cu}}: *: Kirîlî: {{W-|cu|боукꙑ|m}}, {{W-|cu|кънигꙑ|m-p}} * {{Z|orv}}: {{W-|orv|кънига|m}} * {{Z|sk}}: {{W+|sk|kniha|m}} * {{Z|sl}}: {{W+|sl|knjíga|m}} * {{Z|zlw-slv}}: {{W-|zlw-slv|knega|m}} * {{Z|so}}: {{W+|so|buug|n}}, {{W-|so|kitaab|n}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|knigły|m-p}} *: {{Z|hsb}}: {{W-|hsb|kniha|m}} * {{Z|st}}: {{W+|st|buka}} * {{Z|es}}: {{W+|es|libro|n}} * {{Z|su}}: {{W-|su|ᮘᮥᮊᮥ}} * {{Z|xsv}}: {{W-|xsv|laiskas|n}} * {{Z|sva}}: {{W-|sva|ლა̈ირ}} * {{Z|sw}}: {{W+|sw|kitabu}}, {{W+|sw|vitabu|p}} * {{Z|ss}}: {{W-|ss|íncwadzí|c9|c10}} * {{Z|sv}}: {{W+|sv|bok|g}} * {{Z|shn}}: {{W-|shn|ပပ်ႉ}}, {{W-|shn|ၸႃႇဢုၵ်ႉ}} * {{Z|sn}}: {{W-|sn|bhuku}} * {{Z|cjs}}: {{W-|cjs|ном|tr=nom}}, {{W-|cjs|книга}} * {{Z|tab}}: {{W-|tab|китаб}} * {{Z|tg}}: {{W+|tg|китоб}} * {{Z|tl}}: {{W+|tl|libro}}, {{W+|tl|aklat}} * {{Z|ta}}: {{W+|ta|நூல்}}, {{W+|ta|புத்தகம்}} * {{Z|roa-tar}}: {{W-|roa-tar|libbre|n}} * {{Z|shi}}: {{W-|shi|ⴰⵔⵔⴰ|n}} * {{Z|th}}: {{W+|th|หนังสือ}}, {{W+|th|สมุด}} * {{Z|te}}: {{W+|te|పుస్తకం}}, {{W-|te|పొత్తం}} * {{Z|crh}}: {{W-|crh|kitap}} * {{Z|tt}}: {{W+|tt|китап}} * {{Z|tet}}: {{W-|tet|livru}} * {{Z|tig}}: {{W-|tig|ክታብ}} * {{Z|ti}}: {{W-|ti|መጽሓፍ}}, {{W-|ti|መጽሐፍ}} * {{Z|otk}}: {{W-|otk|𐰋𐰃𐱅𐰏}} * {{Z|tr}}: {{W+|tr|kitap}}, {{W+|tr|betik}} * {{Z|tk}}: {{W-|tk|kitap}} * {{Z|bo}}: {{W-|bo|དེབ}}, {{W-|bo|ཕྱག་དེབ}} * {{Z|tli}}: {{W-|tli|x’úx’}} * {{Z|tpi}}: {{W-|tpi|buk}} * {{Z|txb}}: {{W-|txb|postak}} * {{Z|tn}}: {{W+|tn|buka}} * {{Z|tum}}: {{W-|tum|buku}} * {{Z|tvl}}: {{W-|tvl|tusi}} * {{Z|tyv}}: {{W-|tyv|ном}} * {{Z|udi}}: {{W-|udi|ҝирк}} * {{Z|udm}}: {{W-|udm|книга}} * {{Z|unm}}: {{W-|unm|lekhikàn}} * {{Z|ur}}: {{W+|ur|کِتاب|m|tr=kitāb}}, {{W-|ur|پُسْتَک|m|tr=pustak}}, {{W-|ur|بُک|m|tr=buk}} * {{Z|urh}}: {{W-|urh|e̖be}} * {{Z|uk}}: {{W-|uk|кни́жка|m}}, {{W+|uk|кни́га|m}} * {{Z|vec}}: {{W-|vec|łìbro|n}} * {{Z|vep}}: {{W-|vep|kirj}} * {{Z|vi}}: {{W+|vi|sách}}, {{W+|vi|sổ}}, {{W+|vi|sách giáo khoa}} * {{Z|vo}}: {{W+|vo|buk}} * {{Z|vot}}: {{W-|vot|tširjõ}} * {{Z|wa}}: {{W+|wa|live|n}} * {{Z|war}}: {{W-|war|basahon}}, {{W-|war|barasahon}} * {{Z|cy}}: {{W+|cy|llyfr|n}} * {{Z|wrh}}: {{W-|wrh|garrandarang}} * {{Z|wym}}: {{W-|wym|bihła|nt}}, {{W-|wym|büch}} * {{Z|wo}}: {{W-|wo|[[tééré]] bi}}, {{W+|wo|téere}} * {{Z|wuh}}: {{W-|wuh|huaiqa}} * {{Z|kjh}}: {{W-|kjh|кинде}} * {{Z|km}}: {{W+|km|សៀវភៅ}} * {{Z|xh}}: {{W-|xh|incwadi|c9|c10}} * {{Z|yai}}: {{W-|yai|китоб}} * {{Z|sah}}: {{W-|sah|кинигэ}} * {{Z|tao}}: {{W-|tao|vakong}} * {{Z|yi}}: {{W-|yi|בוך|nt}}, {{W-|yi|ספֿר|n|tr=seyfer}}, {{W-|yi|חיבור|n|tr=khiber}} * {{Z|yo}}: {{W-|yo|ìwé}} * {{Z|el}}: {{W+|el|βιβλίο|nt}}, {{W+|el|τόμος|n}} *: Kevn: {{W-|grc|βιβλίον|nt}} * {{Z|za}}: {{W-|za|saw}} * {{Z|zu}}: {{W+|zu|ibhuku|c5|c6}}, {{W+|zu|incwadi|c9|c10}} {{werger-bin}} :{{werger çavkanî|en|book|oldid=75472768|beş=Ev qismê Wergerê}} 1zcm29f1g981g5xo754shri3pqv98kq 6329787 6329667 2026-08-12T22:18:00Z Wikihez 7344 6329787 wikitext text/x-wiki {{bnr-h|kiteb|Kitêb}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA|k(h)itêb}} * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-kitêb.wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr === [[Wêne:Latin_dictionary.jpg|thumb|Kitêb]] {{navdêr|ku|z=m}} # [[kom|Komeke]] [[kaxez]]ên bi [[nivîs]] û / yan [[resm]] yên di nav [[berg]]ekî de hatine [[çap]]kirin. #: {{hevmane|ku|pirtûk}} #: {{mk|ku|Wê rûpela 50 ya '''kitêbê''' vekir û dest bi xwendinê kir.}} #* {{jêder|ku|{{Jêgirtin/Melayê Cizirî/Dîwan/2004|r=44}}|jêgirtin=Me ji ser çeşmeyê ḥeywan qedeḥek ṣafî vexwar<br>Nagihî lez̤z̤et û z̤ewqa me bi ṣed cildê '''kitab'''}} #* {{Jêgirtin/Feqiyê Teyran|sernav=Feqiyê Teyran jiyan berhem û helbestên wî|sala-weşandinê=2013|weşanxane=Nûbihar|çap=7|rûpel=130|amadekar=M. Xalid Sadinî|jêgirtin=Agir û pêta di dil da<br>Me„neya daxan ku hilda<br>Ew '''kitab''' naçit tu cilda<br>Hafîzê medhan im ez}} #* {{jêder-kitêb|ku|jêgirtin=We neẓertu fîl-kîtabî, yanî ez daxilê xanî bûm û min neẓer li '''kitêbê''' kir.|sernav=Tesrîfa Teremaxî|nivîskar={{w|Elî Teremaxî}}|r=64|amadekar=Aydın Üneşi|sal=~1600|sala weşandinê=2016|cih=Mêrdin}} #* {{jêder-kitêb|ku|jêgirtin=Ji şaîrê Kurmancan, bi zimanê Kurmancî, di tarîxa hezar û şeşsedî de di qeseba Bayezîdê de, hezretî Ehmedê Xanî '''kitêba''' ku telîf kiriye bi wezn bi nave Mem û Zînê, aşiq û maşûq, li weche muxtesr beyana wan dike.|sal=~1850|nivîskar={{w|Mele Mehmûdê Bazîdî}}|sernav=Mem û Zîn|sala weşandinê=2007|weşanxane=Lîs|r=23|amadekar=Xelîl Duhokî}} #* {{jêder-kitêb|ku|jêgirtin=Mirovek xwenda, alim hebî, nave wî "Ehmede Xanî" bî{{sic}}. Xwedê jê razî be, rehmeta Xwedê lê be, vî mirovî hin '''kitêbên''' Kurmancî nivîsîne.|sernav=Kurdistan|sal=1898|r=123|amadekar=M. Emîn Bozarslan|nivîskar={{w|Miqdad Midhet Bedirxan}}|sala weşandinê=1991|cild=1}} #* {{jêder|ku|jêgirtin=- Ma lê, ji te xeyidîme, ma çawan ji te naxeyidim. Te ez avêtim nav '''kitêb''' û kaxizan, te ez kirim hogir û hevala bermayên [[qaşûl]]ên dar û qirş û [[hevser]]a [[caw]] û [[potik]]ên [[zibilgeh]]ê.|''Gazinda Xencera Min, Hawar'', [[w:Celadet Alî Bedir-Xan|Celadet Alî Bedir-Xan]], hejmar 12}} # Her kitêba [[miqeddes]] wekî [[Qur'an]] an [[Încîl]]. #* {{J:Încîl:1872:Sayim|jêgirtin=Îsa cewab da ji wan ṟa, û go: Ey! şaşxunan, ne '''kitêb''' dizanin û ne quwwetê Xodê|r=105}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din==== * {{ku-ar|کتێب}} * {{ku-kr|к'ьтеб}} ==== Jê ==== {{kol3|ku|cure=Jê |kitêbdank |kitêbdost |kitêbdostî |kitêbfiroş |kitêbfiroşgeh |kitêbfiroşxane |kitêbgeh |kitêbhez |kitêbhezî |kitêbik |kitêbî |kitêbk |kitêbxane |kitêbxanevan |kitêbxanevanî |kitêbyar |kitêbyarî }} ==== Etîmolojî ==== {{root|ku|ar|ك ت ب}} Ji {{deyn|ar|ku|كِتَاب}} ji reha {{ar-reh|ك ت ب|nekat=1}} ''têkilî rêzkirinê û çêkirina rêzikan ji wê yekê jî têkilî nivîsînê'', ji {{mîr|sem-wes-pro|ar|*katab-|w=xurandin, xeritandin}}. Ev reh koka peyvin din jî ne weku: {{q|ku|katib}}, {{q|ku|mekteb}}, {{q|ku|ketîbe}}. ==== Bide ber ==== {{kol3|ku |belavok |defter |kovar |namilke |rojname }} ==== Werger ==== {{werger-ser|koma kaxezan}} * {{Z|abq}}: {{W-|abq|книга}}, {{W-|abq|апхьага}}, {{W-|abq|кьтап}} * {{Z|ab}}: {{W-|ab|ашәҟәы}} * {{Z|ady}}: {{W-|ady|тхылъ}} * {{Z|aa}}: {{W-|aa|kitab}} * {{Z|af}}: {{W+|af|boek}} * {{Z|xag}}: {{W-|xag|𐕁𐔼𐕗}} * {{Z|akz}}: {{W-|akz|holisso}} * {{Z|sq}}: {{W+|sq|libër|n}} * {{Z|de}}: {{W+|de|Buch|nt}} *: {{Z|gsw}}: {{W-|gsw|Buech|nt}} *: {{Z|gmw-cfr}}: {{W-|gmw-cfr|Boch|nt}} *: {{Z|pdc}}: {{W-|pdc|Buch|nt}} * {{Z|alt}}: {{W-|alt|бичик}}, {{W-|alt|книга}} * {{Z|abs}}: {{W-|abs|buku}} * {{Z|am}}: {{W-|am|መጽሃፍ}} * Apaçî: *: {{Z|apw}}: {{W-|apw|nałtsoos}} * {{Z|an}}: {{W-|an|libro|n}} * {{Z|rup}}: {{W-|rup|vivlie}}, {{W-|rup|carte}} * {{Z|as}}: {{W-|as|কিতাপ}}, {{W-|as|পুথি}} * {{Z|ast}}: {{W+|ast|llibru|n}} * {{Z|tay}}: {{W-|tay|biru'}} * {{Z|aot}}: {{W-|aot|kitap}} * {{Z|av}}: {{W-|av|тӏехь}}, {{W-|av|таптар}}, {{W-|av|тӏахьал}} * {{Z|ay}}: {{W-|ay|panka}} * {{Z|ain}}: {{W-|ain|カㇺビソㇱ|tr=kambisosh}} * {{Z|az}}: {{W+|az|kitab}} * {{Z|bm}}: {{W-|bm|gafɛ}} * {{Z|eu}}: {{W+|eu|liburu}} * {{Z|ba}}: {{W-|ba|китап}} * {{Z|be}}: {{W+|be|кні́га|m}}, {{W-|be|кні́жка|m}} * {{Z|bn}}: {{W+|bn|বই}}, {{W+|bn|কিতাব}}, {{W+|bn|গ্রন্থ}}, {{W+|bn|পুস্তক}} * {{Z|bth}}: {{W-|bth|buk}} * {{Z|bi}}: {{W-|bi|buk}} * {{Z|br}}: {{W+|br|levr|n}} * {{Z|bg}}: {{W+|bg|кни́га|m}} * {{Z|my}}: {{W+|my|စာအုပ်}} * {{Z|bua}}: {{W-|bua|ном}} * {{Z|kac}}: {{W-|kac|laika buk}} * {{Z|ch}}: {{W-|ch|lepblo}} * {{Z|chg}}: {{W-|chg|كتاب|tr=kitab}} * {{Z|ce}}: {{W-|ce|кинишка}}, {{W-|ce|китаб}}, {{W-|ce|книга}}, {{W-|ce|книшка}}, {{W-|ce|кинчка}}, {{W-|ce|жайна}} * {{Z|cs}}: {{W+|cs|kniha|m}} * {{Z|chr}}: {{W-|chr|ᏗᎪᏪᎵ}}, {{W+|chr|ᎪᏪᎵ}} * {{Z|chy}}: {{W-|chy|mȯxe'ėstoo'e}} * {{Z|ny}}: {{W-|ny|buku}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|書}} *: {{Z|dng}}: {{W-|dng|фу}} *: {{Z|gan}}: {{W-|gan|書}} *: {{Z|hak}}: {{W-|hak|書|tr=sû}} *: {{Z|cjy}}: {{W-|cjy|書}} *: {{Z|cmn}}: {{W+|cmn|書}} *: {{Z|mnp}}: {{W-|mnp|書}} *: {{Z|cdo}}: {{W-|cdo|書}} *: {{Z|nan}}: {{W+|nan|冊|tr=chheh}}, {{W+|nan|書|tr=chu}} *: {{Z|wuu}}: {{W-|wuu|書}} *: {{Z|hsn}}: {{W-|hsn|書}} * {{Z|cv}}: {{W-|cv|кӗнеке}} * {{Z|dlm}}: {{W-|dlm|lebro|n}} * {{Z|da}}: {{W+|da|bog|g}} * {{Z|dv}}: {{W-|dv|ފޮތް}} * {{Z|dtp}}: {{W-|dtp|buuk}} * {{Z|ovd}}: {{W-|ovd|buok|m}} * {{Z|id}}: {{W+|id|buku}}, {{W+|id|kitab}} * {{Z|ar}}: {{W+|ar|كِتَاب|n}} *: {{Z|arq}}: {{W-|arq|كتاب|n|tr=ktāb}} *: {{Z|arz}}: {{W-|arz|كتاب|n|tr=ketāb}} *: {{Z|acm}}: {{W-|acm|كِتَاب|n}} *: {{Z|ary}}: {{W-|ary|كتاب|n|tr=ktāb}} *: {{Z|apc}}: {{W-|apc|كتاب|tr=ktāb, ktēb}} *: {{Z|aeb}}: {{W-|aeb|كتاب|n|tr=ktēb}} * {{Z|hy}}: {{W+|hy|գիրք}} * {{Z|myv}}: {{W-|myv|конёвкс}}, {{W-|myv|кинига}} * {{Z|eo}}: {{W+|eo|libro}} * {{Z|et}}: {{W+|et|raamat}} * {{Z|gez}}: {{W-|gez|መጽሐፍ}} * {{Z|evn}}: {{W-|evn|книга}} * {{Z|ee}}: {{W-|ee|agbalẽ}} * {{Z|ext}}: {{W-|ext|llibru|n}} * {{Z|fax}}: {{W-|fax|libru|n}} * {{Z|fa}}: {{W+|fa|کِتاب|tr=ketâb}}, {{W+|fa|نَسک|tr=nask}}, {{W+|fa|نامِه|tr=nâme}} * {{Z|fo}}: {{W+|fo|bók|m}} * {{Z|fj}}: {{W+|fj|vola}}, {{W-|fj|ivola}} * {{Z|fi}}: {{W+|fi|kirja}} * {{Z|fr}}: {{W+|fr|livre|n}}, {{W+|fr|bouquin|n}} * {{Z|fur}}: {{W-|fur|libri|n}} * {{Z|frr}}: {{W-|frr|bök|nt}}, {{W-|frr|buk|nt}} * {{Z|stq}}: {{W-|stq|Bouk|nt}} * {{Z|fy}}: {{W+|fy|boek|nt}} * {{Z|ff}}: *: Adlamî: {{W-|ff|𞤣𞤫𞤬𞤼𞤫𞤪𞤫}} *: Latînî: {{W-|ff|deftere}} * {{Z|gd}}: {{W+|gd|leabhar|n}} * {{Z|gag}}: {{W-|gag|kitap}} * {{Z|gl}}: {{W+|gl|libro|n}} * {{Z|glk}}: {{W-|glk|کیتاب|tr=kitāb}} * {{Z|got}}: {{W-|got|𐌱𐍉𐌺𐍉𐍃|m-p}} * {{Z|gu}}: {{W+|gu|પુસ્તક|m}}, {{W-|gu|ચોપડી}} * {{Z|ka}}: {{W+|ka|წიგნი}} * {{Z|gn}}: {{W+|gn|kuatiañe'ẽ}}, {{W-|gn|[[aranduka]]}} * {{Z|ht}}: {{W-|ht|liv}} * {{Z|haw}}: {{W-|haw|puke}}, {{W-|haw|liwele}} * {{Z|ha}}: {{W+|ha|littafi}} * {{Z|hi}}: {{W+|hi|पुस्तक|m}}, {{W+|hi|किताब|m}}, {{W+|hi|बुक|m}}, {{W+|hi|ग्रंथ|n}}, {{W+|hi|बही|m}}, {{W+|hi|पोथी|m}}, {{W+|hi|पोथा|n}}, {{W+|hi|पुस्तिका|m}}, {{W+|hi|सिफर}} * {{Z|hil}}: {{W-|hil|tulún-an}} * {{Z|meu}}: {{W-|meu|buka}} * {{Z|hnj}}: {{W-|hnj|phoo}}, {{W-|hnj|phoo ntawv}} * {{Z|mww}}: {{W-|mww|ntawv}} * {{Z|nl}}: {{W+|nl|boek|nt}} * {{Z|hrx}}: {{W-|hrx|Buch|nt}} * {{Z|tts}}: {{W-|tts|ปึ้ง|tr=pụ̂ng}} * {{Z|iba}}: {{W-|iba|surat}}, {{W-|iba|bup}} * {{Z|he}}: {{W+|he|סֵפֶר|n|tr=séfer}} * {{Z|io}}: {{W+|io|libro}} * {{Z|ig}}: {{W-|ig|akwụkwọ}} * {{Z|ang}}: {{W-|ang|bōc|m}} * {{Z|enm}}: {{W-|enm|bok}} * {{Z|en}}: {{W+|en|book}} * {{Z|izh}}: {{W-|izh|kirja}} * {{Z|inh}}: {{W-|inh|китаб}} * {{Z|ia}}: {{W+|ia|libro}} * {{Z|iu}}: {{W+|iu|ᕿᒥᕐᕈᐊᑦ}} *: {{Z|iu}}: {{W-|iu|unikkausik}} * {{Z|sga}}: {{W-|sga|lebor|n}} * {{Z|ga}}: {{W+|ga|leabhar|n}} * {{Z|ist}}: {{W-|ist|leîbro|n}} * {{Z|it}}: {{W+|it|libro|n}} * {{Z|is}}: {{W+|is|bók|m}} * {{Z|ja}}: {{W+|ja|本|tr=ほん, hon}}, {{W+|ja|書籍|tr=しょせき, shoseki}}, {{W+|ja|ブック|tr=bukku}} * {{Z|kaw}}: {{W-|kaw|tulis}} * {{Z|jv}}: {{W+|jv|buku}}, {{W+|jv|layang}}, {{W-|jv|serat}} * {{Z|kbd}}: {{W-|kbd|тхылъ}} * {{Z|kab}}: {{W-|kab|adlis}} * {{Z|kl}}: {{W-|kl|atuagaq}} * {{Z|xal}}: {{W-|xal|дегтр}} * {{Z|kn}}: {{W+|kn|ಪುಸ್ತಕ}} * {{Z|krc}}: {{W-|krc|китап}} * {{Z|kaa}}: {{W-|kaa|kitap}} * {{Z|krl}}: {{W-|krl|kirju}} * {{Z|csb}}: {{W-|csb|knéga|m}}, {{W-|csb|knyga|m}}, {{W-|csb|knëga|m}}, {{W-|csb|ksążka|m}} * {{Z|ca}}: {{W+|ca|llibre|n}} * {{Z|qu}}: {{W+|qu|liwru}}, {{W+|qu|p'anqa}} * {{Z|ky}}: {{W+|ky|китеп}} * {{Z|kg}}: {{W-|kg|dibuku}} * {{Z|ki}}: {{W-|ki|rifuku}} * {{Z|si}}: {{W+|si|පොත}} * {{Z|rw}}: {{W-|rw|igitabo|c7|c8}} * {{Z|gil}}: {{W-|gil|boki}} * {{Z|kis}}: {{W-|kis|egetabu}} * {{Z|kpv}}: {{W-|kpv|небӧг}}, {{W-|kpv|книга}} * {{Z|kok}}: {{W-|kok|पुस्तक}} * {{Z|ko}}: {{W-|ko|책(冊)}}, {{W-|ko|도서(圖書)}} * {{Z|kw}}: {{W-|kw|lyver|n}} * {{Z|co}}: {{W+|co|libru|n}} * {{Z|lou}}: {{W-|lou|liv}} * {{Z|mfe}}: {{W-|mfe|liv}} * {{Z|crs}}: {{W-|crs|liv}} * {{Z|kum}}: {{W-|kum|китап}} * {{Z|fkv}}: {{W-|fkv|kirja}} * {{Z|kj}}: {{W-|kj|embo}} * {{Z|lad}}: *: Îbranî: {{W-|lad|ליב׳רו|n}} *: Latînî: {{W-|lad|livro|n}} * {{Z|lbe}}: {{W-|lbe|лу}} * {{Z|lkt}}: {{W-|lkt|wówapi}} * {{Z|la}}: {{W+|la|liber|n}}, {{W-|la|caudex|n}} * {{Z|lv}}: {{W+|lv|grāmata|m}} * {{Z|lo}}: {{W+|lo|ປຶ້ມ}}, {{W+|lo|ປຶ້ມຂຽນ}}, {{W-|lo|ຫນັງສື}}, {{W-|lo|ສັດຖະ}}, {{W-|lo|ພັບ}} * {{Z|lzz}}: {{W-|lzz|სუპარა}} * {{Z|lez}}: {{W-|lez|улуб}}, {{W-|lez|ктаб}}, {{W-|lez|дафтар}} * {{Z|mhx}}: {{W-|mhx|mug sug' paug'}}, {{W-|mhx|tung" paug'}}, {{W-|mhx|paug'}} * {{Z|ln}}: {{W-|ln|búku|c9a|c10a}} * {{Z|lij}}: {{W-|lij|lìbbro|n}}, {{W-|lij|libbro}} * {{Z|li}}: {{W+|li|book|m}} * {{Z|lt}}: {{W+|lt|knyga|m}} * {{Z|liv}}: {{W-|liv|rōntõz}} * {{Z|lmo}}: {{W-|lmo|liber}} * {{Z|lg}}: {{W-|lg|ekitabo}} * {{Z|luy}}: {{W-|luy|sitabu}} * {{Z|lb}}: {{W+|lb|Buch|nt}} * {{Z|mk}}: {{W+|mk|книга|m}} * {{Z|mg}}: {{W+|mg|boky}} * {{Z|ml}}: {{W+|ml|പുസ്തകം}} * {{Z|pqm}}: {{W-|pqm|wikhikon}} * {{Z|ms}}: {{W+|ms|buku}}, {{W+|ms|kitab}}, {{W+|ms|pustaka}} * {{Z|mt}}: {{W+|mt|ktieb|n}} * {{Z|mnc}}: {{W-|mnc|ᠪᡳᡨᡥᡝ}}, {{W-|mnc|ᠴᠠᡤᠠᠨ}}, {{W-|mnc|ᠨᠣᠮᡠᠨ}} * {{Z|gv}}: {{W-|gv|lioar|n}} * {{Z|mns-nor}}: {{W-|mns-nor|кнӣга}} * {{Z|mi}}: {{W+|mi|pukapuka}} * {{Z|mr}}: {{W+|mr|पुस्तक|m}} * {{Z|mhr}}: {{W-|mhr|книга}} * {{Z|mrc}}: {{W-|mrc|onyor}} * {{Z|yua}}: {{W-|yua|juʼun}} * {{Z|hu}}: {{W+|hu|könyv}} * {{Z|xmf}}: {{W-|xmf|სუფარა|n}}, {{W-|xmf|წინგი}} * {{Z|egy}}: {{W-egy|mḏꜣt|m|h=Y1:t*Z1-V12:Z1}}, {{W-egy|šfdw|n|h=S:f-d-w-V12}} * {{Z|mvi}}: {{W-|mvi|書物|tr=すぃむくㇲ, simuks}} * {{Z|mwl}}: {{W-|mwl|lhibro|n}} * {{Z|mdf}}: {{W-|mdf|книга}} * {{Z|mn}}: *: Kirîlî: {{W+|mn|ном}}, {{W+|mn|бичиг}} *: Mongolî: {{W-|mn|ᠨᠣᠮ}}, {{W-|mn|ᠪᠢᠴᠢᠭ᠋}} * {{Z|mnw}}: {{W-|mnw|လိက် အုပ်|tr=lòik up}} * {{Z|wmw}}: {{W-|wmw|kitabu}}, {{W-|wmw|buku}}, {{W-|wmw|livro}} * {{Z|nah}}: {{W+|nah|amoxtli}} *: {{Z|nci}}: {{W-|nci|āmoxtli}} * {{Z|gld}}: {{W-|gld|дангса}} * {{Z|nap}}: {{W-|nap|lìbbro|n}} * {{Z|nv}}: {{W-|nv|naaltsoos}} * {{Z|nds}}: *: {{Z|nds-nl}}: {{W-|nds-nl|book|nt}} *: {{Z|nds-de}}: {{W-|nds-de|Book|nt}} * {{Z|yrk}}: {{W-|yrk|книга}}, {{W-|yrk|толаӈгобць’}} * {{Z|ne}}: {{W-|ne|पुस्तक}}, {{W+|ne|किताप}} * {{Z|new}}: {{W-|new|सफू}} * {{Z|niv}}: {{W-|niv|питғы}} * {{Z|nog}}: {{W-|nog|китап}} * {{Z|no}}: *: {{Z|no}}: {{W+|no|bok|n|m}} *: {{Z|nn}}: {{W+|nn|bok|m}} * {{Z|ood}}: {{W-|ood|ʼoʼohana}} * {{Z|ojw}}: {{W-|ojw|masinahikan}} * {{Z|oj}}: {{W-|oj|mazina'igan}} * {{Z|ryu}}: {{W-|ryu|書物|tr=すむち, sumuchi, しむち, shimuchi}} * {{Z|pro}}: {{W-|pro|libre}} * {{Z|oc}}: {{W+|oc|libre|n}} * {{Z|or}}: {{W+|or|ବହି}} * {{Z|oaa}}: {{W-|oaa|бичихэ}} * {{Z|os}}: {{W-|os|чиныг}} * {{Z|ota}}: {{W-|ota|كتاب|tr=kitâb}} * {{Z|ug}}: {{W+|ug|كىتاب}} * {{Z|uz}}: {{W+|uz|kitob}} * {{Z|pi}}: {{W-|pi|potthaka}} *: {{Z|pi}}: {{W-|pi|पोत्थक}} *: {{Z|pi}}: {{W-|pi|โปตถะกะ}} * {{Z|pap}}: {{W-|pap|buki}} * {{Z|paw}}: {{W-|paw|raáwihaakaraaʾit}}, {{W-|paw|raáwihaakaraaʾiitusuʾ}} * {{Z|ps}}: {{W+|ps|کتاب|n|tr=ketāb}} * {{Z|pms}}: {{W-|pms|lìber}} * {{Z|pdt}}: {{W-|pdt|Buak|nt}} * {{Z|pox}}: {{W-|pox|bükvoi|p}} * {{Z|pl}}: {{W+|pl|książka|m}}, {{W+|pl|księga|m}} * {{Z|pt}}: {{W+|pt|livro|n}} * {{Z|prg}}: {{W-|prg|lāiskas|n}} * {{Z|pkp}}: {{W-|pkp|lau}}, {{W-|pkp|puka}} * Puncabî: *: Şaxmuxî: {{W+|pa|پستک|n}}, {{W+|pa|کتاب|m|tr=ktāb}} *: Gurmuxî: {{W-|pa|ਪੁਸਤਕ|n}}, {{W-|pa|ਕਿਤਾਬ}} * {{Z|kk}}: {{W+|kk|кітап}} *: {{Z|kk}}: {{W-|kk|كىتاپ}} * {{Z|cop}}: {{W-|cop|ϫⲱⲙ|n}} * {{Z|rah}}: {{W-|rah|কাওছা|tr=káosa}} * {{Z|mwr}}: {{W-|mwr|पोथी|tr=pothī|m}} * {{Z|rgn}}: {{W-|rgn|lìvar|n}} * {{Z|rm}}: {{W-|rm|cudesch}} * {{Z|rom}}: {{W-|rom|ginadyi|m}} * {{Z|ro}}: {{W+|ro|carte|m}} * {{Z|ru}}: {{W+|ru|кни́га|m}}, {{W+|ru|кни́жка|m}} * {{Z|rue}}: {{W-|rue|кни́га|m}} * {{Z|se}}: {{W-|se|girji}} * {{Z|sma}}: {{W-|sma|gærja}} * {{Z|smn}}: {{W-|smn|kirje}} * {{Z|sjd}}: {{W-|sjd|кыррьй}}, {{W-|sjd|кнӣга}} * {{Z|smj}}: {{W-|smj|girjje}} * {{Z|sms}}: {{W-|sms|ǩeʹrjj}} * {{Z|sgs}}: {{W-|sgs|kninga|m}} * {{Z|sa}}: {{W+|sa|पुस्तक|nt}}, {{W+|sa|ग्रन्थ|nt}} * {{Z|scn}}: {{W+|scn|libbru|n}} * {{Z|sky}}: {{W-|sky|laumea}} * {{Z|szl}}: {{W-|szl|kniga|m}} * {{Z|sd}}: {{W+|sd|ڪتاب|n|tr=kitāb|cuda=ڪِتابُ}} * {{Z|srn}}: {{W-|srn|buku}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|књи̏га|m}} *: Latînî: {{W+|sh|knjȉga|m}} * {{Z|syc}}: {{W-|syc|ܟܬܒܐ|n|tr=kṯāḇā}} * {{Z|syl}}: {{W-|syl|ꠛꠂ}} * {{Z|sco}}: {{W-|sco|beuk}} * {{Z|cu}}: *: Kirîlî: {{W-|cu|боукꙑ|m}}, {{W-|cu|кънигꙑ|m-p}} * {{Z|orv}}: {{W-|orv|кънига|m}} * {{Z|sk}}: {{W+|sk|kniha|m}} * {{Z|sl}}: {{W+|sl|knjíga|m}} * {{Z|zlw-slv}}: {{W-|zlw-slv|knega|m}} * {{Z|so}}: {{W+|so|buug|n}}, {{W-|so|kitaab|n}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|knigły|m-p}} *: {{Z|hsb}}: {{W-|hsb|kniha|m}} * {{Z|st}}: {{W+|st|buka}} * {{Z|es}}: {{W+|es|libro|n}} * {{Z|su}}: {{W-|su|ᮘᮥᮊᮥ}} * {{Z|xsv}}: {{W-|xsv|laiskas|n}} * {{Z|sva}}: {{W-|sva|ლა̈ირ}} * {{Z|sw}}: {{W+|sw|kitabu}}, {{W+|sw|vitabu|p}} * {{Z|ss}}: {{W-|ss|íncwadzí|c9|c10}} * {{Z|sv}}: {{W+|sv|bok|g}} * {{Z|shn}}: {{W-|shn|ပပ်ႉ}}, {{W-|shn|ၸႃႇဢုၵ်ႉ}} * {{Z|sn}}: {{W-|sn|bhuku}} * {{Z|cjs}}: {{W-|cjs|ном|tr=nom}}, {{W-|cjs|книга}} * {{Z|tab}}: {{W-|tab|китаб}} * {{Z|tg}}: {{W+|tg|китоб}} * {{Z|tl}}: {{W+|tl|libro}}, {{W+|tl|aklat}} * {{Z|ta}}: {{W+|ta|நூல்}}, {{W+|ta|புத்தகம்}} * {{Z|roa-tar}}: {{W-|roa-tar|libbre|n}} * {{Z|shi}}: {{W-|shi|ⴰⵔⵔⴰ|n}} * {{Z|th}}: {{W+|th|หนังสือ}}, {{W+|th|สมุด}} * {{Z|te}}: {{W+|te|పుస్తకం}}, {{W-|te|పొత్తం}} * {{Z|crh}}: {{W-|crh|kitap}} * {{Z|tt}}: {{W+|tt|китап}} * {{Z|tet}}: {{W-|tet|livru}} * {{Z|tig}}: {{W-|tig|ክታብ}} * {{Z|ti}}: {{W-|ti|መጽሓፍ}}, {{W-|ti|መጽሐፍ}} * {{Z|otk}}: {{W-|otk|𐰋𐰃𐱅𐰏}} * {{Z|tr}}: {{W+|tr|kitap}}, {{W+|tr|betik}} * {{Z|tk}}: {{W-|tk|kitap}} * {{Z|bo}}: {{W-|bo|དེབ}}, {{W-|bo|ཕྱག་དེབ}} * {{Z|tli}}: {{W-|tli|x’úx’}} * {{Z|tpi}}: {{W-|tpi|buk}} * {{Z|txb}}: {{W-|txb|postak}} * {{Z|tn}}: {{W+|tn|buka}} * {{Z|tum}}: {{W-|tum|buku}} * {{Z|tvl}}: {{W-|tvl|tusi}} * {{Z|tyv}}: {{W-|tyv|ном}} * {{Z|udi}}: {{W-|udi|ҝирк}} * {{Z|udm}}: {{W-|udm|книга}} * {{Z|unm}}: {{W-|unm|lekhikàn}} * {{Z|ur}}: {{W+|ur|کِتاب|m|tr=kitāb}}, {{W-|ur|پُسْتَک|m|tr=pustak}}, {{W-|ur|بُک|m|tr=buk}} * {{Z|urh}}: {{W-|urh|e̖be}} * {{Z|uk}}: {{W-|uk|кни́жка|m}}, {{W+|uk|кни́га|m}} * {{Z|vec}}: {{W-|vec|łìbro|n}} * {{Z|vep}}: {{W-|vep|kirj}} * {{Z|vi}}: {{W+|vi|sách}}, {{W+|vi|sổ}}, {{W+|vi|sách giáo khoa}} * {{Z|vo}}: {{W+|vo|buk}} * {{Z|vot}}: {{W-|vot|tširjõ}} * {{Z|wa}}: {{W+|wa|live|n}} * {{Z|war}}: {{W-|war|basahon}}, {{W-|war|barasahon}} * {{Z|cy}}: {{W+|cy|llyfr|n}} * {{Z|wrh}}: {{W-|wrh|garrandarang}} * {{Z|wym}}: {{W-|wym|bihła|nt}}, {{W-|wym|büch}} * {{Z|wo}}: {{W-|wo|[[tééré]] bi}}, {{W+|wo|téere}} * {{Z|wuh}}: {{W-|wuh|huaiqa}} * {{Z|kjh}}: {{W-|kjh|кинде}} * {{Z|km}}: {{W+|km|សៀវភៅ}} * {{Z|xh}}: {{W-|xh|incwadi|c9|c10}} * {{Z|yai}}: {{W-|yai|китоб}} * {{Z|sah}}: {{W-|sah|кинигэ}} * {{Z|tao}}: {{W-|tao|vakong}} * {{Z|yi}}: {{W-|yi|בוך|nt}}, {{W-|yi|ספֿר|n|tr=seyfer}}, {{W-|yi|חיבור|n|tr=khiber}} * {{Z|yo}}: {{W-|yo|ìwé}} * {{Z|el}}: {{W+|el|βιβλίο|nt}}, {{W+|el|τόμος|n}} *: Kevn: {{W-|grc|βιβλίον|nt}} * {{Z|za}}: {{W-|za|saw}} * {{Z|zu}}: {{W+|zu|ibhuku|c5|c6}}, {{W+|zu|incwadi|c9|c10}} {{werger-bin}} :{{werger çavkanî|en|book|oldid=75472768|beş=Ev qismê Wergerê}} mk1cat2r6q3izz9s8j8ig31pig1ozzl kar 0 3754 6329799 6309601 2026-08-12T22:46:03Z Wikihez 7344 /* Navdêr 2 */ 6329799 wikitext text/x-wiki {{bnr-h|kâr|Kar|-kar|-kâr}} == {{ziman|ku}} == === Bilêvkirin === * {{beş|Navdêr 1|Navdêr 2}} {{ku-IPA|k(h)ar}} ** {{deng|ku|LL-Q36368 (kur)-Dildadil-kar (xebat).wav|dever=Amed}} ** {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-kar.wav|dever=Bidlîs}} * {{beş|Navdêr 3}} {{IPA|ku|/kʌːɾ/}} ** {{deng|ku|LL-Q36368 (kur)-Dildadil-kar.wav|dever=Amed}} ** {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-kar (Navdêr 3).wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=n}} {{k-ya req}} # Tiştê mirov dike. #: {{hevmane|ku|xebat|ked|şol|şuxl|îş|çalakî|erk|vatinî}}. #* {{jêder|ku|{{Jêgirtin/Mela Hisênê Bateyî/Mewlûda Kurdî}}|jêgirtin=Ma remeyte îz remeyte" goşîdar<br />Destê wî destê Xuda der '''kar''' û bar}} # [[amadekarî]], [[amadehî]], [[hazirî]] #: {{mk|ku|Me xwe bo çûnê '''kar''' kiriye.}} # [[sûde]], [[kelk]], [[feyde]], [[qazanc]], [[qezenc]], [[kêr]], [[mifa]], [[berjewendî]]. #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Bi alfabeyên din ==== * {{ku-ar|كار}} ==== Formên alternatîv ==== * {{g|ku|karûkisb}} ==== Jê ==== {{kol|ku|cure=Jê |bêkar |bêkarî |bêkarîtî |bêkartî |bikar |bikarî |bikarîtî |bikartî |-kar |kardar |kardarî |kardarîtî |kardartî |karder |karderî |karderîtî |kardertî |kardêr |kardêrî |kardêrîtî |kardêrtî |kargêr |kargêrî |karî |-karî |karîgêr |karîgêrî |karîgêrîtî |karîgêrtî |kargir |kargirî |kargirîtî |kargirtî |karker |karkerî |karkerîtî |karkertî }} ==== Etîmolojî ==== Têkilî {{q|ku|kirin}}, {{q|ku|-ker}}. Ji {{mîr|ira-pro|ku|*kar-|w=kirin}} ji {{mîr|ine-pro|ku|*kʷer-|w=kirin}}. Hevreha {{hv|ckb|کار|tr=kar|w=kar}}, {{hv|hac|kar|sc=Latn|w=kar}}, {{hv|zza|kar|w=kar}}, {{hv|fa|کار|tr=kâr|w=kar}}, {{hv|sa|कर्मन्|tr=karma|w=[[bizav]], [[hereket]], kar}}. ;{{biçûk|Çavkanî: * {{Cheung|r=237}} * {{Watkins|r=45}} }} ==== Bide ber ==== {{kol3|ku | ker | kêr | kir | kîr | kor | kûr }} ==== Binêre herwiha ==== {{kol2|ku |ar |bar |car |çar |dar |gar |har |jar |lar |mar |nar |par |qar |sar |şar |war |zar |xar }} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|werk}}, {{W+|af|arbeid}} * {{Z|xag}}: {{W-|xag|𐔰𐕐}} * {{Z|sq}}: {{W+|sq|punë|m}} * {{Z|gmw-ecg}}: {{W-|gmw-ecg|Arbitt|m}}, {{W-|gmw-ecg|Arb|m}} * {{Z|de}}: {{W+|de|Arbeit|m}} * {{Z|am}}: {{W-|am|ሥራ}} * {{Z|ani}}: {{W-|ani|гьалтӏи}} * {{Z|an}}: {{W-|an|treball}}, {{W+|an|treballo|n}} * {{Z|aii}}: {{W-|aii|ܦܘܼܠܚܵܢܵܐ|tr=pulḳana|n}}, {{W-|aii|ܫܘܼܠܵܐ|tr=šula|n}} * {{Z|as}}: {{W-|as|কাম}} * {{Z|ast}}: {{W-|ast|trabayu|n}} * {{Z|tay}}: {{W-|tay|mtzaw}} * {{Z|av}}: {{W-|av|хӏалтӏи}} * {{Z|az}}: {{W+|az|əmək}}, {{W+|az|iş}}, {{W-|az|zəhmət}} * {{Z|eu}}: {{W-|eu|lan}} * {{Z|ba}}: {{W-|ba|эш}} * {{Z|be}}: {{W-|be|пра́ца|m}}, {{W-|be|рабо́та|m}} * {{Z|bn}}: {{W+|bn|কাজ}}, {{W+|bn|চাকরি}} * {{Z|bg}}: {{W-|bg|ра́бота|m}}, {{W+|bg|труд|n}} * {{Z|my}}: {{W+|my|လုပ်အား}}, {{W+|my|အလုပ်}} * {{Z|cia}}: {{W-|cia|까라자아}} * {{Z|ce}}: {{W-|ce|болх}} * {{Z|cs}}: {{W+|cs|práce|m}}, {{W+|cs|zaměstnání|nt}} * {{Z|ny}}: {{W-|ny|ntchito}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|工作|tr=gung1 zok3}} *: {{Z|dng}}: {{W-|dng|гунзуә}} *: {{Z|cmn}}: {{W+|cmn|工作|tr=gōngzuò}}, {{W+|cmn|勞動|tr=láodòng}}, {{W+|cmn|職業|tr=zhíyè}} *: {{Z|nan}}: {{W+|nan|工作|tr=kang-chok / kong-chok}} *: {{Z|wuu}}: {{W-|wuu|工作}} * {{Z|da}}: {{W+|da|arbejde|nt}}, {{W+|da|job|nt}} * {{Z|id}}: {{W+|id|kerjaan}}, {{W+|id|pekerjaan}} * {{Z|ar}}: {{W+|ar|عَمَل|n}}, {{W-|ar|شُغْل|n}}, {{W-|ar|خِدْمَة|m}}, {{W-|ar|وَظِيفَة|m}} *: {{Z|arz}}: {{W-|arz|شغل|n|tr=šuḡl}} *: {{Z|acw}}: {{W-|acw|شغل|n|tr=šuḡul}} *: {{Z|ary}}: {{W-|ary|خدمة|m|tr=ḵedma}}, {{W-|ary|وظيفة|m|tr=waḍīfa}} * {{Z|hy}}: {{W+|hy|աշխատանք}}, {{W+|hy|գործ}} * {{Z|eo}}: {{W+|eo|laboro}} * {{Z|et}}: {{W+|et|töö}} * {{Z|ee}}: {{W-|ee|dɔwɔwɔ}} * {{Z|ext}}: {{W-|ext|trebahu}} * {{Z|fa}}: {{W+|fa|کار|tr=kâr}}, {{W+|fa|شغل|tr=šoğl}} * {{Z|fi}}: {{W+|fi|työ}} * {{Z|fur}}: {{W-|fur|vore|m}} * {{Z|fy}}: {{W-|fy|wurk|nt}} * {{Z|gd}}: {{W-|gd|cosnadh|n}}, {{W+|gd|obair|m}}, {{W-|gd|dreuchd|m}} * {{Z|gl}}: {{W+|gl|traballo|n}}, {{W+|gl|choio|n}} * {{Z|got}}: {{W-|got|𐌰𐍂𐌱𐌰𐌹𐌸𐍃|m}} * {{Z|ka}}: {{W-|ka|მუშაობა}} * {{Z|ht}}: {{W-|ht|travay}} * {{Z|ha}}: {{W+|ha|aiki}} * {{Z|hi}}: {{W+|hi|काम|n}}, {{W+|hi|श्रम|n}}, {{W+|hi|उद्योग|n}}, {{W+|hi|वृत्ति|m}}, {{W+|hi|कार्य|n}}, {{W+|hi|कार|n}}, {{W+|hi|कर्म|n}}, {{W+|hi|अमल}}, {{W+|hi|वजीफा|m}} * {{Z|nl}}: {{W+|nl|werk|nt}}, {{W+|nl|job|m}}, {{W+|nl|arbeid|n}} * {{Z|he}}: {{W-|he|עֲבוֹדָה|m|tr=avodá}}, {{W-|he|מְלָאכָה|m|tr=melakhá}}, {{W-|he|עָמָל|n|tr=amál}} * {{Z|ang}}: {{W-|ang|weorc|nt}}, {{W-|ang|earfoþe|nt}} * {{Z|en}}: {{W+|en|work}} * {{Z|izh}}: {{W-|izh|töö}}, {{W-|izh|raae}} * {{Z|inh}}: {{W-|inh|болх}} * {{Z|ga}}: {{W-|ga|obair|m}}, {{W-|ga|saothar|n}} * {{Z|ist}}: {{W-|ist|lavur}} * {{Z|it}}: {{W+|it|lavoro|n}}, {{W+|it|impiego|n}}, {{W+|it|occupazione|m}} * {{Z|is}}: {{W+|is|vinna|m}} * {{Z|ja}}: {{W+|ja|仕事|tr=しごと, shigoto}}, {{W+|ja|労働|tr=ろうどう, rōdō}}, {{W+|ja|職業|tr=しょくぎょう, shokugyō}}, {{W+|ja|ワーク|tr=wāku}} * {{Z|kl}}: {{W-|kl|suliaq}} * {{Z|kam}}: {{W-|kam|wia}} * {{Z|ca}}: {{W+|ca|treball|n}}, {{W+|ca|feina}} * {{Z|kgp}}: {{W-|kgp|rãnhrãj}} * {{Z|ky}}: {{W+|ky|жумуш}}, {{W+|ky|иш}}, {{W+|ky|эмгек}}, {{W+|ky|кызмат}} * {{Z|ki}}: {{W-|ki|wira}} * {{Z|si}}: {{W-|si|වැඩ}} * {{Z|koi}}: {{W-|koi|удж}} * {{Z|ko}}: {{W+|ko|일}}, {{W+|ko|노동}}, {{W+|ko|로동}}, {{W+|ko|직업}} * {{Z|lad}}: {{W-|lad|ovra}}, {{W-|lad|lavoro}} * {{Z|ltg}}: {{W-|ltg|dorbs}} * {{Z|la}}: {{W+|la|labor|n}} * {{Z|lv}}: {{W+|lv|darbs|n}} * {{Z|lo}}: {{W-|lo|ງານ}}, {{W-|lo|ນັກງານ}} * {{Z|olo}}: {{W-|olo|ruado}} * {{Z|lij}}: {{W-|lij|travàggio}}, {{W-|lij|lou}} * {{Z|lt}}: {{W+|lt|darbas|n}} * {{Z|lmo}}: {{W-|lmo|lavor}}, {{W-|lmo|laur}} * {{Z|luy}}: {{W-|luy|ekasi}} * {{Z|lb}}: {{W+|lb|Aarbecht|m}} * {{Z|mhn}}: {{W-|mhn|òrbet|m}} * {{Z|mk}}: {{W+|mk|работа|m}} * {{Z|ml}}: {{W+|ml|ജോലി}}, {{W+|ml|പണി}} * {{Z|ms}}: {{W+|ms|kerja}} * {{Z|mt}}: {{W-|mt|xogħol|n}} * {{Z|yua}}: {{W-|yua|meyaj}} * {{Z|hu}}: {{W+|hu|munka}}, {{W+|hu|dolog}}, {{W+|hu|feladat}} * {{Z|min}}: {{W-|min|karajo}} * {{Z|mn}}: *: Kirîlî: {{W+|mn|ажил}} * {{Z|wmw}}: {{W-|wmw|kazi}} * {{Z|nap}}: {{W-|nap|lavoro|n}} * {{Z|nv}}: {{W-|nv|naashnish}} * {{Z|nrf}}: {{W-|nrf|travas|n}} * {{Z|no}}: *: {{Z|nb}}: {{W+|nb|arbeid|nt}}, {{W+|nb|jobb|n}}, {{W+|nb|verk|nt}} *: {{Z|nn}}: {{W+|nn|arbeid|nt}}, {{W+|nn|jobb|n}}, {{W+|nn|verk|nt}} * {{Z|oc}}: {{W+|oc|trabalh|n}} * {{Z|or}}: {{W+|or|କାମ}} * {{Z|om}}: {{W-|om|hojii}} * {{Z|os}}: {{W-|os|куыст}} * {{Z|ug}}: {{W-|ug|خىزمەت}}, {{W-|ug|ئىش}} * {{Z|uz}}: {{W+|uz|ishlash}}, {{W+|uz|mehnat}}, {{W+|uz|ish}}, {{W+|uz|xizmat}} * {{Z|pap}}: {{W-|pap|trabou}} * {{Z|ps}}: {{W+|ps|کار|n|tr=kār}} * {{Z|pms}}: {{W-|pms|travaj|n}} * {{Z|pis}}: {{W-|pis|waka}} * {{Z|ppl}}: {{W-|ppl|tekit}} * {{Z|pdt}}: {{W-|pdt|Oabeit|m}}, {{W-|pdt|Woakj|nt}} * {{Z|pl}}: {{W+|pl|praca|m}}, {{W+|pl|robota|m}} * {{Z|pt}}: {{W+|pt|trabalho|n}}, {{W+|pt|emprego|n}} * {{Z|pa}}: {{W-|pa|ਕੰਮ|n}} * {{Z|kk}}: {{W-|kk|еңбек}}, {{W+|kk|жұмыс}}, {{W-|kk|іс}}, {{W-|kk|қызмет}}, {{W-|kk|шаруа}} * {{Z|rm}}: {{W-|rm|lavur|m}}, {{W-|rm|lavour|m}} * {{Z|rom}}: {{W-|rom|butǐ|m}} * {{Z|ro}}: {{W+|ro|muncă|m}}, {{W+|ro|serviciu|nt}}, {{W+|ro|ocupație|m}}, {{W+|ro|îndeletnicire|m}} * {{Z|ru}}: {{W-|ru|рабо́та|m}}, {{W+|ru|труд|n}} * {{Z|rue}}: {{W-|rue|пра́ца|m}}, {{W-|rue|робо́та|m}} * {{Z|se}}: {{W-|se|bargu}} * {{Z|sm}}: {{W-|sm|galus}} * {{Z|sa}}: {{W+|sa|कर्मन्|nt}}, {{W+|sa|कार्य}} * {{Z|sc}}: {{W-|sc|trabadhu}}, {{W-|sc|traballu}} * {{Z|scn}}: {{W+|scn|lavuru|n}}, {{W+|scn|travagghiu|n}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|по̀сао|n}}, {{W-|sh|ра̑д|n}} *: Latînî: {{W+|sh|pòsao|n}}, {{W+|sh|rȃd|n}} * {{Z|syl}}: {{W-|syl|ꠇꠣꠝ}} * {{Z|sco}}: {{W-|sco|wark}} * {{Z|cu}}: *: Kirîlî: {{W-|cu|работа|m}}, {{W-|cu|троудъ|n}} *: Glagolîtîk: {{W-|cu|ⱃⰰⰱⱁⱅⰰ|m}}, {{W-|cu|ⱅⱃⱆⰴⱏ|n}} * {{Z|orv}}: {{W-|orv|робота|m}}, {{W-|orv|трудъ|n}} * {{Z|sk}}: {{W+|sk|práca|m}} * {{Z|sl}}: {{W+|sl|delo|nt}} * {{Z|so}}: {{W+|so|shaqo}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|źěło|nt}} * {{Z|st}}: {{W+|st|mosebetsi}} * {{Z|es}}: {{W+|es|trabajo|n}}, {{W+|es|curro|n}}, {{W+|es|laburo|n}} * {{Z|sw}}: {{W+|sw|kazi}} * {{Z|sv}}: {{W+|sv|arbete|nt}}, {{W+|sv|jobb|nt}} * {{Z|cjs}}: {{W-|cjs|иш}} * {{Z|tg}}: {{W+|tg|кор}}, {{W-|tg|шуғл}} * {{Z|tl}}: {{W-|tl|isi}}, {{W+|tl|trabaho}} * {{Z|ta}}: {{W+|ta|வேலை}} * {{Z|th}}: {{W-|th|การงาน}}, {{W+|th|งาน}}, {{W+|th|แรงงาน}} * {{Z|te}}: {{W-|te|కూలీపని}}, {{W+|te|ఉద్యోగము}}, {{W+|te|వృత్తి}} * {{Z|tt}}: {{W+|tt|эш}}, {{W+|tt|хезмәт}} * {{Z|tet}}: {{W-|tet|serbisu}} * {{Z|ti}}: {{W-|ti|ስራሕ}} * {{Z|tr}}: {{W+|tr|iş}}, {{W+|tr|meslek}}, {{W+|tr|emek}} * {{Z|tk}}: {{W-|tk|iş}}, {{W+|tk|zähmet}} * {{Z|bo}}: {{W-|bo|ལས་ཀ}} * {{Z|to}}: {{W-|to|ngāue}} * {{Z|tum}}: {{W-|tum|nchito}} * {{Z|udi}}: {{W-|udi|аш}}, {{W-|udi|аьш}} * {{Z|udm}}: {{W-|udm|уж}} * {{Z|ur}}: {{W-|ur|کام|n|tr=kām}} * {{Z|uk}}: {{W-|uk|робо́та|m}}, {{W-|uk|пра́ця|m}} * {{Z|vec}}: {{W+|vec|laoro|n}}, {{W-|vec|laóro|n}} * {{Z|vi}}: {{W+|vi|việc làm}}, {{W+|vi|công việc}} * {{Z|vot}}: {{W-|vot|töö}} * {{Z|wa}}: {{W+|wa|ovraedje|n|m}}, {{W+|wa|boutaedje|n}}, {{W+|wa|djob|n}} * {{Z|cy}}: {{W+|cy|gwaith|n}} * {{Z|km}}: {{W+|km|ការងារ}} * {{Z|yi}}: {{W-|yi|אַרבעט|m}} * {{Z|yo}}: {{W-|yo|iṣẹ́}} * {{Z|el}}: {{W+|el|έργο|nt}}, {{W+|el|εργασία|m}}, {{W+|el|δουλειά|m}} *: Kevn: {{W-|grc|ἔργον|nt}} * {{Z|za}}: {{W-|za|gunghcoz}} * {{Z|nmn}}: {{W-|nmn|ǀgáã}} {{werger-bin}} :{{werger çavkanî|en|work|oldid=75572707|beş=Ev qismê Wergerê}} === Navdêr 2 === {{navdêr|ku|z=m}} {{k-ya req}} # [[sûde]], [[kelk]], [[feyde]], [[qazanc]], [[kêr]], [[mifa]], [[berjewendî]] #* {{jêder-malper|ku|jêgirtin=Çimkî qezenca wê ji zîv zêdetir e, '''kara''' wê ji zêrê xas çêtir e.|sernav=Şîretên Silêman 3:14 / Kitêba Pîroz|nivîskar=Bible Society in Turkey|sal=2005|websîte=bible.com|url=https://www.bible.com/bible/251/PRO.3.KURNT}} # [[nêçîr|Nêçîr]]a [[heywan]]an (bi taybetî [[firinde]]yan) li [[zivistan]]ê yan dema ku [[berf]] [[barîn|bariye]] û [[heywan]] [[qerimîn]]e<br>([[nêçîrvan]] [[tomik]]î [[avêtin|diavêtin]] ber wan û heywan nêzîk dibin û nêçîrvan wan digire yan [[kuştin|dikuje]]) #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== (wate 2) Ji {{ji|ira}}, hevreha farisî {{g|fa|شکار|tr=şikar}}. Bo ketina ''şi-'' ji destpêka peyvê, bidin ber [[nasîn]], bi farisî û zazakî {{q|zza||şinas-}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: (1) {{W+|en|benefit}}, {{W+|en|profit}}, (2) winter hunting {{werger-bin}} {{bend}} === Navdêr 3 === {{navdêr|ku|z=m}} {{k-ya nerm}} # ''Binêre'': '''[[karik]]''' #* {{bênimûne|ku}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} == {{ziman|hac}} == === Navdêr === {{navdêr|hac|sc=Latn}} # {{g|en|kar}} #* {{bênimûne|hac}} # [[lêker]] #* {{bênimûne|hac}} == {{ziman|nay}} == === Cînav === {{cînav|nay}} # [[ew#ku|ew]] (pirjimar), [[wan#ku|wan]] #* {{bênimûne|nay}} == {{ziman|rel}} == === Navdêr === {{navdêr|rel}} # {{f|rel|heywan}} [[kûçik#ku|kûçik]], [[se#ku|se]] #* {{bênimûne|rel}} == {{ziman|quc}} == === Navdêr === {{navdêr|quc}} # {{f|quc|heywan}} [[masî#ku|masî]] #* {{bênimûne|quc}} == {{ziman|af}} == === Navdêr === {{navdêr|af}} # {{f|af|navgîn}} {{g|ku|tirimpêl}}, {{g|ku|otomobîl}}, {{g|ku|erebe}}, {{g|ku|seyare}}, {{g|ku|maşîn}} #* {{bênimûne|af}} === Çavkanî === {{rûpela wergerê|af|tirimpêl}} == {{ziman|az}} == === Rengdêr === {{rengdêr|az}} # {{g|ku|ker}} (kerr, nebihîz, guhgiran) #* {{bênimûne|az}} === Çavkanî === {{rûpela wergerê|az|ker}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-ToprakM-kar.wav|Deng|dever=}} === Navdêr === {{navdêr|tr}} # [[berf|Berf]], [[befr]]. #* {{bênimûne|tr}} oenu1yowcqz0o27ug4e8t1sfgg6rh1i 6329841 6329799 2026-08-12T23:41:13Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6329841 wikitext text/x-wiki {{bnr-h|kâr|Kar|-kar|-kâr}} == {{ziman|ku}} == === Bilêvkirin === * {{beş|Navdêr 1|Navdêr 2}} {{ku-IPA|k(h)ar}} ** {{deng|ku|LL-Q36368 (kur)-Dildadil-kar (xebat).wav|dever=Amed}} ** {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-kar.wav|dever=Bidlîs}} * {{beş|Navdêr 3}} {{IPA|ku|/kʌːɾ/}} ** {{deng|ku|LL-Q36368 (kur)-Dildadil-kar.wav|dever=Amed}} ** {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-kar (Navdêr 3).wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=n}} {{k-ya req}} # Tiştê mirov dike. #: {{hevmane|ku|xebat|ked|şol|şuxl|îş|çalakî|erk|vatinî}}. #* {{jêder|ku|{{Jêgirtin/Mela Hisênê Bateyî/Mewlûda Kurdî}}|jêgirtin=Ma remeyte îz remeyte" goşîdar<br />Destê wî destê Xuda der '''kar''' û bar}} # [[amadekarî]], [[amadehî]], [[hazirî]] #: {{mk|ku|Me xwe bo çûnê '''kar''' kiriye.}} # [[sûde]], [[kelk]], [[feyde]], [[qazanc]], [[qezenc]], [[kêr]], [[mifa]], [[berjewendî]]. #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Bi alfabeyên din ==== * {{ku-ar|كار}} ==== Formên alternatîv ==== * {{g|ku|karûkisb}} ==== Jê ==== {{kol|ku|cure=Jê |bêkar |bêkarî |bêkarîtî |bêkartî |bikar |bikarî |bikarîtî |bikartî |-kar |kardar |kardarî |kardarîtî |kardartî |karder |karderî |karderîtî |kardertî |kardêr |kardêrî |kardêrîtî |kardêrtî |kargêr |kargêrî |karî |-karî |karîgêr |karîgêrî |karîgêrîtî |karîgêrtî |kargir |kargirî |kargirîtî |kargirtî |karker |karkerî |karkerîtî |karkertî }} ==== Etîmolojî ==== Têkilî {{q|ku|kirin}}, {{q|ku|-ker}}. Ji {{mîr|ira-pro|ku|*kar-|w=kirin}} ji {{mîr|ine-pro|ku|*kʷer-|w=kirin}}. Hevreha {{hv|ckb|کار|tr=kar|w=kar}}, {{hv|hac|kar|sc=Latn|w=kar}}, {{hv|zza|kar|w=kar}}, {{hv|fa|کار|tr=kâr|w=kar}}, {{hv|sa|कर्मन्|tr=karma|w=[[bizav]], [[hereket]], kar}}. ;{{biçûk|Çavkanî: * {{Cheung|r=237}} * {{Watkins|r=45}} }} ==== Bide ber ==== {{kol3|ku | ker | kêr | kir | kîr | kor | kûr }} ==== Herwiha binêre ==== {{kol2|ku |ar |bar |car |çar |dar |gar |har |jar |lar |mar |nar |par |qar |sar |şar |war |zar |xar }} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|werk}}, {{W+|af|arbeid}} * {{Z|xag}}: {{W-|xag|𐔰𐕐}} * {{Z|sq}}: {{W+|sq|punë|m}} * {{Z|gmw-ecg}}: {{W-|gmw-ecg|Arbitt|m}}, {{W-|gmw-ecg|Arb|m}} * {{Z|de}}: {{W+|de|Arbeit|m}} * {{Z|am}}: {{W-|am|ሥራ}} * {{Z|ani}}: {{W-|ani|гьалтӏи}} * {{Z|an}}: {{W-|an|treball}}, {{W+|an|treballo|n}} * {{Z|aii}}: {{W-|aii|ܦܘܼܠܚܵܢܵܐ|tr=pulḳana|n}}, {{W-|aii|ܫܘܼܠܵܐ|tr=šula|n}} * {{Z|as}}: {{W-|as|কাম}} * {{Z|ast}}: {{W-|ast|trabayu|n}} * {{Z|tay}}: {{W-|tay|mtzaw}} * {{Z|av}}: {{W-|av|хӏалтӏи}} * {{Z|az}}: {{W+|az|əmək}}, {{W+|az|iş}}, {{W-|az|zəhmət}} * {{Z|eu}}: {{W-|eu|lan}} * {{Z|ba}}: {{W-|ba|эш}} * {{Z|be}}: {{W-|be|пра́ца|m}}, {{W-|be|рабо́та|m}} * {{Z|bn}}: {{W+|bn|কাজ}}, {{W+|bn|চাকরি}} * {{Z|bg}}: {{W-|bg|ра́бота|m}}, {{W+|bg|труд|n}} * {{Z|my}}: {{W+|my|လုပ်အား}}, {{W+|my|အလုပ်}} * {{Z|cia}}: {{W-|cia|까라자아}} * {{Z|ce}}: {{W-|ce|болх}} * {{Z|cs}}: {{W+|cs|práce|m}}, {{W+|cs|zaměstnání|nt}} * {{Z|ny}}: {{W-|ny|ntchito}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|工作|tr=gung1 zok3}} *: {{Z|dng}}: {{W-|dng|гунзуә}} *: {{Z|cmn}}: {{W+|cmn|工作|tr=gōngzuò}}, {{W+|cmn|勞動|tr=láodòng}}, {{W+|cmn|職業|tr=zhíyè}} *: {{Z|nan}}: {{W+|nan|工作|tr=kang-chok / kong-chok}} *: {{Z|wuu}}: {{W-|wuu|工作}} * {{Z|da}}: {{W+|da|arbejde|nt}}, {{W+|da|job|nt}} * {{Z|id}}: {{W+|id|kerjaan}}, {{W+|id|pekerjaan}} * {{Z|ar}}: {{W+|ar|عَمَل|n}}, {{W-|ar|شُغْل|n}}, {{W-|ar|خِدْمَة|m}}, {{W-|ar|وَظِيفَة|m}} *: {{Z|arz}}: {{W-|arz|شغل|n|tr=šuḡl}} *: {{Z|acw}}: {{W-|acw|شغل|n|tr=šuḡul}} *: {{Z|ary}}: {{W-|ary|خدمة|m|tr=ḵedma}}, {{W-|ary|وظيفة|m|tr=waḍīfa}} * {{Z|hy}}: {{W+|hy|աշխատանք}}, {{W+|hy|գործ}} * {{Z|eo}}: {{W+|eo|laboro}} * {{Z|et}}: {{W+|et|töö}} * {{Z|ee}}: {{W-|ee|dɔwɔwɔ}} * {{Z|ext}}: {{W-|ext|trebahu}} * {{Z|fa}}: {{W+|fa|کار|tr=kâr}}, {{W+|fa|شغل|tr=šoğl}} * {{Z|fi}}: {{W+|fi|työ}} * {{Z|fur}}: {{W-|fur|vore|m}} * {{Z|fy}}: {{W-|fy|wurk|nt}} * {{Z|gd}}: {{W-|gd|cosnadh|n}}, {{W+|gd|obair|m}}, {{W-|gd|dreuchd|m}} * {{Z|gl}}: {{W+|gl|traballo|n}}, {{W+|gl|choio|n}} * {{Z|got}}: {{W-|got|𐌰𐍂𐌱𐌰𐌹𐌸𐍃|m}} * {{Z|ka}}: {{W-|ka|მუშაობა}} * {{Z|ht}}: {{W-|ht|travay}} * {{Z|ha}}: {{W+|ha|aiki}} * {{Z|hi}}: {{W+|hi|काम|n}}, {{W+|hi|श्रम|n}}, {{W+|hi|उद्योग|n}}, {{W+|hi|वृत्ति|m}}, {{W+|hi|कार्य|n}}, {{W+|hi|कार|n}}, {{W+|hi|कर्म|n}}, {{W+|hi|अमल}}, {{W+|hi|वजीफा|m}} * {{Z|nl}}: {{W+|nl|werk|nt}}, {{W+|nl|job|m}}, {{W+|nl|arbeid|n}} * {{Z|he}}: {{W-|he|עֲבוֹדָה|m|tr=avodá}}, {{W-|he|מְלָאכָה|m|tr=melakhá}}, {{W-|he|עָמָל|n|tr=amál}} * {{Z|ang}}: {{W-|ang|weorc|nt}}, {{W-|ang|earfoþe|nt}} * {{Z|en}}: {{W+|en|work}} * {{Z|izh}}: {{W-|izh|töö}}, {{W-|izh|raae}} * {{Z|inh}}: {{W-|inh|болх}} * {{Z|ga}}: {{W-|ga|obair|m}}, {{W-|ga|saothar|n}} * {{Z|ist}}: {{W-|ist|lavur}} * {{Z|it}}: {{W+|it|lavoro|n}}, {{W+|it|impiego|n}}, {{W+|it|occupazione|m}} * {{Z|is}}: {{W+|is|vinna|m}} * {{Z|ja}}: {{W+|ja|仕事|tr=しごと, shigoto}}, {{W+|ja|労働|tr=ろうどう, rōdō}}, {{W+|ja|職業|tr=しょくぎょう, shokugyō}}, {{W+|ja|ワーク|tr=wāku}} * {{Z|kl}}: {{W-|kl|suliaq}} * {{Z|kam}}: {{W-|kam|wia}} * {{Z|ca}}: {{W+|ca|treball|n}}, {{W+|ca|feina}} * {{Z|kgp}}: {{W-|kgp|rãnhrãj}} * {{Z|ky}}: {{W+|ky|жумуш}}, {{W+|ky|иш}}, {{W+|ky|эмгек}}, {{W+|ky|кызмат}} * {{Z|ki}}: {{W-|ki|wira}} * {{Z|si}}: {{W-|si|වැඩ}} * {{Z|koi}}: {{W-|koi|удж}} * {{Z|ko}}: {{W+|ko|일}}, {{W+|ko|노동}}, {{W+|ko|로동}}, {{W+|ko|직업}} * {{Z|lad}}: {{W-|lad|ovra}}, {{W-|lad|lavoro}} * {{Z|ltg}}: {{W-|ltg|dorbs}} * {{Z|la}}: {{W+|la|labor|n}} * {{Z|lv}}: {{W+|lv|darbs|n}} * {{Z|lo}}: {{W-|lo|ງານ}}, {{W-|lo|ນັກງານ}} * {{Z|olo}}: {{W-|olo|ruado}} * {{Z|lij}}: {{W-|lij|travàggio}}, {{W-|lij|lou}} * {{Z|lt}}: {{W+|lt|darbas|n}} * {{Z|lmo}}: {{W-|lmo|lavor}}, {{W-|lmo|laur}} * {{Z|luy}}: {{W-|luy|ekasi}} * {{Z|lb}}: {{W+|lb|Aarbecht|m}} * {{Z|mhn}}: {{W-|mhn|òrbet|m}} * {{Z|mk}}: {{W+|mk|работа|m}} * {{Z|ml}}: {{W+|ml|ജോലി}}, {{W+|ml|പണി}} * {{Z|ms}}: {{W+|ms|kerja}} * {{Z|mt}}: {{W-|mt|xogħol|n}} * {{Z|yua}}: {{W-|yua|meyaj}} * {{Z|hu}}: {{W+|hu|munka}}, {{W+|hu|dolog}}, {{W+|hu|feladat}} * {{Z|min}}: {{W-|min|karajo}} * {{Z|mn}}: *: Kirîlî: {{W+|mn|ажил}} * {{Z|wmw}}: {{W-|wmw|kazi}} * {{Z|nap}}: {{W-|nap|lavoro|n}} * {{Z|nv}}: {{W-|nv|naashnish}} * {{Z|nrf}}: {{W-|nrf|travas|n}} * {{Z|no}}: *: {{Z|nb}}: {{W+|nb|arbeid|nt}}, {{W+|nb|jobb|n}}, {{W+|nb|verk|nt}} *: {{Z|nn}}: {{W+|nn|arbeid|nt}}, {{W+|nn|jobb|n}}, {{W+|nn|verk|nt}} * {{Z|oc}}: {{W+|oc|trabalh|n}} * {{Z|or}}: {{W+|or|କାମ}} * {{Z|om}}: {{W-|om|hojii}} * {{Z|os}}: {{W-|os|куыст}} * {{Z|ug}}: {{W-|ug|خىزمەت}}, {{W-|ug|ئىش}} * {{Z|uz}}: {{W+|uz|ishlash}}, {{W+|uz|mehnat}}, {{W+|uz|ish}}, {{W+|uz|xizmat}} * {{Z|pap}}: {{W-|pap|trabou}} * {{Z|ps}}: {{W+|ps|کار|n|tr=kār}} * {{Z|pms}}: {{W-|pms|travaj|n}} * {{Z|pis}}: {{W-|pis|waka}} * {{Z|ppl}}: {{W-|ppl|tekit}} * {{Z|pdt}}: {{W-|pdt|Oabeit|m}}, {{W-|pdt|Woakj|nt}} * {{Z|pl}}: {{W+|pl|praca|m}}, {{W+|pl|robota|m}} * {{Z|pt}}: {{W+|pt|trabalho|n}}, {{W+|pt|emprego|n}} * {{Z|pa}}: {{W-|pa|ਕੰਮ|n}} * {{Z|kk}}: {{W-|kk|еңбек}}, {{W+|kk|жұмыс}}, {{W-|kk|іс}}, {{W-|kk|қызмет}}, {{W-|kk|шаруа}} * {{Z|rm}}: {{W-|rm|lavur|m}}, {{W-|rm|lavour|m}} * {{Z|rom}}: {{W-|rom|butǐ|m}} * {{Z|ro}}: {{W+|ro|muncă|m}}, {{W+|ro|serviciu|nt}}, {{W+|ro|ocupație|m}}, {{W+|ro|îndeletnicire|m}} * {{Z|ru}}: {{W-|ru|рабо́та|m}}, {{W+|ru|труд|n}} * {{Z|rue}}: {{W-|rue|пра́ца|m}}, {{W-|rue|робо́та|m}} * {{Z|se}}: {{W-|se|bargu}} * {{Z|sm}}: {{W-|sm|galus}} * {{Z|sa}}: {{W+|sa|कर्मन्|nt}}, {{W+|sa|कार्य}} * {{Z|sc}}: {{W-|sc|trabadhu}}, {{W-|sc|traballu}} * {{Z|scn}}: {{W+|scn|lavuru|n}}, {{W+|scn|travagghiu|n}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|по̀сао|n}}, {{W-|sh|ра̑д|n}} *: Latînî: {{W+|sh|pòsao|n}}, {{W+|sh|rȃd|n}} * {{Z|syl}}: {{W-|syl|ꠇꠣꠝ}} * {{Z|sco}}: {{W-|sco|wark}} * {{Z|cu}}: *: Kirîlî: {{W-|cu|работа|m}}, {{W-|cu|троудъ|n}} *: Glagolîtîk: {{W-|cu|ⱃⰰⰱⱁⱅⰰ|m}}, {{W-|cu|ⱅⱃⱆⰴⱏ|n}} * {{Z|orv}}: {{W-|orv|робота|m}}, {{W-|orv|трудъ|n}} * {{Z|sk}}: {{W+|sk|práca|m}} * {{Z|sl}}: {{W+|sl|delo|nt}} * {{Z|so}}: {{W+|so|shaqo}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|źěło|nt}} * {{Z|st}}: {{W+|st|mosebetsi}} * {{Z|es}}: {{W+|es|trabajo|n}}, {{W+|es|curro|n}}, {{W+|es|laburo|n}} * {{Z|sw}}: {{W+|sw|kazi}} * {{Z|sv}}: {{W+|sv|arbete|nt}}, {{W+|sv|jobb|nt}} * {{Z|cjs}}: {{W-|cjs|иш}} * {{Z|tg}}: {{W+|tg|кор}}, {{W-|tg|шуғл}} * {{Z|tl}}: {{W-|tl|isi}}, {{W+|tl|trabaho}} * {{Z|ta}}: {{W+|ta|வேலை}} * {{Z|th}}: {{W-|th|การงาน}}, {{W+|th|งาน}}, {{W+|th|แรงงาน}} * {{Z|te}}: {{W-|te|కూలీపని}}, {{W+|te|ఉద్యోగము}}, {{W+|te|వృత్తి}} * {{Z|tt}}: {{W+|tt|эш}}, {{W+|tt|хезмәт}} * {{Z|tet}}: {{W-|tet|serbisu}} * {{Z|ti}}: {{W-|ti|ስራሕ}} * {{Z|tr}}: {{W+|tr|iş}}, {{W+|tr|meslek}}, {{W+|tr|emek}} * {{Z|tk}}: {{W-|tk|iş}}, {{W+|tk|zähmet}} * {{Z|bo}}: {{W-|bo|ལས་ཀ}} * {{Z|to}}: {{W-|to|ngāue}} * {{Z|tum}}: {{W-|tum|nchito}} * {{Z|udi}}: {{W-|udi|аш}}, {{W-|udi|аьш}} * {{Z|udm}}: {{W-|udm|уж}} * {{Z|ur}}: {{W-|ur|کام|n|tr=kām}} * {{Z|uk}}: {{W-|uk|робо́та|m}}, {{W-|uk|пра́ця|m}} * {{Z|vec}}: {{W+|vec|laoro|n}}, {{W-|vec|laóro|n}} * {{Z|vi}}: {{W+|vi|việc làm}}, {{W+|vi|công việc}} * {{Z|vot}}: {{W-|vot|töö}} * {{Z|wa}}: {{W+|wa|ovraedje|n|m}}, {{W+|wa|boutaedje|n}}, {{W+|wa|djob|n}} * {{Z|cy}}: {{W+|cy|gwaith|n}} * {{Z|km}}: {{W+|km|ការងារ}} * {{Z|yi}}: {{W-|yi|אַרבעט|m}} * {{Z|yo}}: {{W-|yo|iṣẹ́}} * {{Z|el}}: {{W+|el|έργο|nt}}, {{W+|el|εργασία|m}}, {{W+|el|δουλειά|m}} *: Kevn: {{W-|grc|ἔργον|nt}} * {{Z|za}}: {{W-|za|gunghcoz}} * {{Z|nmn}}: {{W-|nmn|ǀgáã}} {{werger-bin}} :{{werger çavkanî|en|work|oldid=75572707|beş=Ev qismê Wergerê}} === Navdêr 2 === {{navdêr|ku|z=m}} {{k-ya req}} # [[sûde]], [[kelk]], [[feyde]], [[qazanc]], [[kêr]], [[mifa]], [[berjewendî]] #* {{jêder-malper|ku|jêgirtin=Çimkî qezenca wê ji zîv zêdetir e, '''kara''' wê ji zêrê xas çêtir e.|sernav=Şîretên Silêman 3:14 / Kitêba Pîroz|nivîskar=Bible Society in Turkey|sal=2005|websîte=bible.com|url=https://www.bible.com/bible/251/PRO.3.KURNT}} # [[nêçîr|Nêçîr]]a [[heywan]]an (bi taybetî [[firinde]]yan) li [[zivistan]]ê yan dema ku [[berf]] [[barîn|bariye]] û [[heywan]] [[qerimîn]]e<br>([[nêçîrvan]] [[tomik]]î [[avêtin|diavêtin]] ber wan û heywan nêzîk dibin û nêçîrvan wan digire yan [[kuştin|dikuje]]) #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== (wate 2) Ji {{ji|ira}}, hevreha farisî {{g|fa|شکار|tr=şikar}}. Bo ketina ''şi-'' ji destpêka peyvê, bidin ber [[nasîn]], bi farisî û zazakî {{q|zza||şinas-}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: (1) {{W+|en|benefit}}, {{W+|en|profit}}, (2) winter hunting {{werger-bin}} {{bend}} === Navdêr 3 === {{navdêr|ku|z=m}} {{k-ya nerm}} # ''Binêre'': '''[[karik]]''' #* {{bênimûne|ku}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} == {{ziman|hac}} == === Navdêr === {{navdêr|hac|sc=Latn}} # {{g|en|kar}} #* {{bênimûne|hac}} # [[lêker]] #* {{bênimûne|hac}} == {{ziman|nay}} == === Cînav === {{cînav|nay}} # [[ew#ku|ew]] (pirjimar), [[wan#ku|wan]] #* {{bênimûne|nay}} == {{ziman|rel}} == === Navdêr === {{navdêr|rel}} # {{f|rel|heywan}} [[kûçik#ku|kûçik]], [[se#ku|se]] #* {{bênimûne|rel}} == {{ziman|quc}} == === Navdêr === {{navdêr|quc}} # {{f|quc|heywan}} [[masî#ku|masî]] #* {{bênimûne|quc}} == {{ziman|af}} == === Navdêr === {{navdêr|af}} # {{f|af|navgîn}} {{g|ku|tirimpêl}}, {{g|ku|otomobîl}}, {{g|ku|erebe}}, {{g|ku|seyare}}, {{g|ku|maşîn}} #* {{bênimûne|af}} === Çavkanî === {{rûpela wergerê|af|tirimpêl}} == {{ziman|az}} == === Rengdêr === {{rengdêr|az}} # {{g|ku|ker}} (kerr, nebihîz, guhgiran) #* {{bênimûne|az}} === Çavkanî === {{rûpela wergerê|az|ker}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-ToprakM-kar.wav|Deng|dever=}} === Navdêr === {{navdêr|tr}} # [[berf|Berf]], [[befr]]. #* {{bênimûne|tr}} 2u487nu45a79gti328wahnatvadfe3d 6329864 6329841 2026-08-13T00:12:11Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6329864 wikitext text/x-wiki {{bnr-h|kâr|Kar|-kar|-kâr}} == {{ziman|ku}} == === Bilêvkirin === * {{beş|Navdêr 1|Navdêr 2}} {{ku-IPA|k(h)ar}} ** {{deng|ku|LL-Q36368 (kur)-Dildadil-kar (xebat).wav|dever=Amed}} ** {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-kar.wav|dever=Bidlîs}} * {{beş|Navdêr 3}} {{IPA|ku|/kʌːɾ/}} ** {{deng|ku|LL-Q36368 (kur)-Dildadil-kar.wav|dever=Amed}} ** {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-kar (Navdêr 3).wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=n}} {{k-ya req}} # Tiştê mirov dike. #: {{hevmane|ku|xebat|ked|şol|şuxl|îş|çalakî|erk|vatinî}}. #* {{jêder|ku|{{Jêgirtin/Mela Hisênê Bateyî/Mewlûda Kurdî}}|jêgirtin=Ma remeyte îz remeyte" goşîdar<br />Destê wî destê Xuda der '''kar''' û bar}} # [[amadekarî]], [[amadehî]], [[hazirî]] #: {{mk|ku|Me xwe bo çûnê '''kar''' kiriye.}} # [[sûde]], [[kelk]], [[feyde]], [[qazanc]], [[qezenc]], [[kêr]], [[mifa]], [[berjewendî]]. #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Bi alfabeyên din ==== * {{ku-ar|كار}} ==== Formên alternatîv ==== * {{g|ku|karûkisb}} ==== Jê ==== {{kol|ku|cure=Jê |bêkar |bêkarî |bêkarîtî |bêkartî |bikar |bikarî |bikarîtî |bikartî |-kar |kardar |kardarî |kardarîtî |kardartî |karder |karderî |karderîtî |kardertî |kardêr |kardêrî |kardêrîtî |kardêrtî |kargêr |kargêrî |karî |-karî |karîgêr |karîgêrî |karîgêrîtî |karîgêrtî |kargir |kargirî |kargirîtî |kargirtî |karker |karkerî |karkerîtî |karkertî }} ==== Etîmolojî ==== Têkilî {{q|ku|kirin}}, {{q|ku|-ker}}. Ji {{mîr|ira-pro|ku|*kar-|w=kirin}} ji {{mîr|ine-pro|ku|*kʷer-|w=kirin}}. Hevreha {{hv|ckb|کار|tr=kar|w=kar}}, {{hv|hac|kar|sc=Latn|w=kar}}, {{hv|zza|kar|w=kar}}, {{hv|fa|کار|tr=kâr|w=kar}}, {{hv|sa|कर्मन्|tr=karma|w=[[bizav]], [[hereket]], kar}}. ;{{biçûk|Çavkanî: * {{Cheung|r=237}} * {{Watkins|r=45}} }} ==== Bide ber ==== {{kol3|ku | ker | kêr | kir | kîr | kor | kûr }} ==== Herwiha binêre ==== {{kol2|ku |ar |bar |car |çar |dar |gar |har |jar |lar |mar |nar |par |qar |sar |şar |war |zar |xar }} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|werk}}, {{W+|af|arbeid}} * {{Z|xag}}: {{W-|xag|𐔰𐕐}} * {{Z|sq}}: {{W+|sq|punë|m}} * {{Z|gmw-ecg}}: {{W-|gmw-ecg|Arbitt|m}}, {{W-|gmw-ecg|Arb|m}} * {{Z|de}}: {{W+|de|Arbeit|m}} * {{Z|am}}: {{W-|am|ሥራ}} * {{Z|ani}}: {{W-|ani|гьалтӏи}} * {{Z|an}}: {{W-|an|treball}}, {{W+|an|treballo|n}} * {{Z|aii}}: {{W-|aii|ܦܘܼܠܚܵܢܵܐ|tr=pulḳana|n}}, {{W-|aii|ܫܘܼܠܵܐ|tr=šula|n}} * {{Z|as}}: {{W-|as|কাম}} * {{Z|ast}}: {{W-|ast|trabayu|n}} * {{Z|tay}}: {{W-|tay|mtzaw}} * {{Z|av}}: {{W-|av|хӏалтӏи}} * {{Z|az}}: {{W+|az|əmək}}, {{W+|az|iş}}, {{W-|az|zəhmət}} * {{Z|eu}}: {{W-|eu|lan}} * {{Z|ba}}: {{W-|ba|эш}} * {{Z|be}}: {{W-|be|пра́ца|m}}, {{W-|be|рабо́та|m}} * {{Z|bn}}: {{W+|bn|কাজ}}, {{W+|bn|চাকরি}} * {{Z|bg}}: {{W-|bg|ра́бота|m}}, {{W+|bg|труд|n}} * {{Z|my}}: {{W+|my|လုပ်အား}}, {{W+|my|အလုပ်}} * {{Z|cia}}: {{W-|cia|까라자아}} * {{Z|ce}}: {{W-|ce|болх}} * {{Z|cs}}: {{W+|cs|práce|m}}, {{W+|cs|zaměstnání|nt}} * {{Z|ny}}: {{W-|ny|ntchito}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|工作|tr=gung1 zok3}} *: {{Z|dng}}: {{W-|dng|гунзуә}} *: {{Z|cmn}}: {{W+|cmn|工作|tr=gōngzuò}}, {{W+|cmn|勞動|tr=láodòng}}, {{W+|cmn|職業|tr=zhíyè}} *: {{Z|nan}}: {{W+|nan|工作|tr=kang-chok / kong-chok}} *: {{Z|wuu}}: {{W-|wuu|工作}} * {{Z|da}}: {{W+|da|arbejde|nt}}, {{W+|da|job|nt}} * {{Z|id}}: {{W+|id|kerjaan}}, {{W+|id|pekerjaan}} * {{Z|ar}}: {{W+|ar|عَمَل|n}}, {{W-|ar|شُغْل|n}}, {{W-|ar|خِدْمَة|m}}, {{W-|ar|وَظِيفَة|m}} *: {{Z|arz}}: {{W-|arz|شغل|n|tr=šuḡl}} *: {{Z|acw}}: {{W-|acw|شغل|n|tr=šuḡul}} *: {{Z|ary}}: {{W-|ary|خدمة|m|tr=ḵedma}}, {{W-|ary|وظيفة|m|tr=waḍīfa}} * {{Z|hy}}: {{W+|hy|աշխատանք}}, {{W+|hy|գործ}} * {{Z|eo}}: {{W+|eo|laboro}} * {{Z|et}}: {{W+|et|töö}} * {{Z|ee}}: {{W-|ee|dɔwɔwɔ}} * {{Z|ext}}: {{W-|ext|trebahu}} * {{Z|fa}}: {{W+|fa|کار|tr=kâr}}, {{W+|fa|شغل|tr=šoğl}} * {{Z|fi}}: {{W+|fi|työ}} * {{Z|fur}}: {{W-|fur|vore|m}} * {{Z|fy}}: {{W-|fy|wurk|nt}} * {{Z|gd}}: {{W-|gd|cosnadh|n}}, {{W+|gd|obair|m}}, {{W-|gd|dreuchd|m}} * {{Z|gl}}: {{W+|gl|traballo|n}}, {{W+|gl|choio|n}} * {{Z|got}}: {{W-|got|𐌰𐍂𐌱𐌰𐌹𐌸𐍃|m}} * {{Z|ka}}: {{W-|ka|მუშაობა}} * {{Z|ht}}: {{W-|ht|travay}} * {{Z|ha}}: {{W+|ha|aiki}} * {{Z|hi}}: {{W+|hi|काम|n}}, {{W+|hi|श्रम|n}}, {{W+|hi|उद्योग|n}}, {{W+|hi|वृत्ति|m}}, {{W+|hi|कार्य|n}}, {{W+|hi|कार|n}}, {{W+|hi|कर्म|n}}, {{W+|hi|अमल}}, {{W+|hi|वजीफा|m}} * {{Z|nl}}: {{W+|nl|werk|nt}}, {{W+|nl|job|m}}, {{W+|nl|arbeid|n}} * {{Z|he}}: {{W-|he|עֲבוֹדָה|m|tr=avodá}}, {{W-|he|מְלָאכָה|m|tr=melakhá}}, {{W-|he|עָמָל|n|tr=amál}} * {{Z|ang}}: {{W-|ang|weorc|nt}}, {{W-|ang|earfoþe|nt}} * {{Z|en}}: {{W+|en|work}} * {{Z|izh}}: {{W-|izh|töö}}, {{W-|izh|raae}} * {{Z|inh}}: {{W-|inh|болх}} * {{Z|ga}}: {{W-|ga|obair|m}}, {{W-|ga|saothar|n}} * {{Z|ist}}: {{W-|ist|lavur}} * {{Z|it}}: {{W+|it|lavoro|n}}, {{W+|it|impiego|n}}, {{W+|it|occupazione|m}} * {{Z|is}}: {{W+|is|vinna|m}} * {{Z|ja}}: {{W+|ja|仕事|tr=しごと, shigoto}}, {{W+|ja|労働|tr=ろうどう, rōdō}}, {{W+|ja|職業|tr=しょくぎょう, shokugyō}}, {{W+|ja|ワーク|tr=wāku}} * {{Z|kl}}: {{W-|kl|suliaq}} * {{Z|kam}}: {{W-|kam|wia}} * {{Z|ca}}: {{W+|ca|treball|n}}, {{W+|ca|feina}} * {{Z|kgp}}: {{W-|kgp|rãnhrãj}} * {{Z|ky}}: {{W+|ky|жумуш}}, {{W+|ky|иш}}, {{W+|ky|эмгек}}, {{W+|ky|кызмат}} * {{Z|ki}}: {{W-|ki|wira}} * {{Z|si}}: {{W-|si|වැඩ}} * {{Z|koi}}: {{W-|koi|удж}} * {{Z|ko}}: {{W+|ko|일}}, {{W+|ko|노동}}, {{W+|ko|로동}}, {{W+|ko|직업}} * {{Z|lad}}: {{W-|lad|ovra}}, {{W-|lad|lavoro}} * {{Z|ltg}}: {{W-|ltg|dorbs}} * {{Z|la}}: {{W+|la|labor|n}} * {{Z|lv}}: {{W+|lv|darbs|n}} * {{Z|lo}}: {{W-|lo|ງານ}}, {{W-|lo|ນັກງານ}} * {{Z|olo}}: {{W-|olo|ruado}} * {{Z|lij}}: {{W-|lij|travàggio}}, {{W-|lij|lou}} * {{Z|lt}}: {{W+|lt|darbas|n}} * {{Z|lmo}}: {{W-|lmo|lavor}}, {{W-|lmo|laur}} * {{Z|luy}}: {{W-|luy|ekasi}} * {{Z|lb}}: {{W+|lb|Aarbecht|m}} * {{Z|mhn}}: {{W-|mhn|òrbet|m}} * {{Z|mk}}: {{W+|mk|работа|m}} * {{Z|ml}}: {{W+|ml|ജോലി}}, {{W+|ml|പണി}} * {{Z|ms}}: {{W+|ms|kerja}} * {{Z|mt}}: {{W-|mt|xogħol|n}} * {{Z|yua}}: {{W-|yua|meyaj}} * {{Z|hu}}: {{W+|hu|munka}}, {{W+|hu|dolog}}, {{W+|hu|feladat}} * {{Z|min}}: {{W-|min|karajo}} * {{Z|mn}}: *: Kirîlî: {{W+|mn|ажил}} * {{Z|wmw}}: {{W-|wmw|kazi}} * {{Z|nap}}: {{W-|nap|lavoro|n}} * {{Z|nv}}: {{W-|nv|naashnish}} * {{Z|nrf}}: {{W-|nrf|travas|n}} * {{Z|no}}: *: {{Z|nb}}: {{W+|nb|arbeid|nt}}, {{W+|nb|jobb|n}}, {{W+|nb|verk|nt}} *: {{Z|nn}}: {{W+|nn|arbeid|nt}}, {{W+|nn|jobb|n}}, {{W+|nn|verk|nt}} * {{Z|oc}}: {{W+|oc|trabalh|n}} * {{Z|or}}: {{W+|or|କାମ}} * {{Z|om}}: {{W-|om|hojii}} * {{Z|os}}: {{W-|os|куыст}} * {{Z|ug}}: {{W-|ug|خىزمەت}}, {{W-|ug|ئىش}} * {{Z|uz}}: {{W+|uz|ishlash}}, {{W+|uz|mehnat}}, {{W+|uz|ish}}, {{W+|uz|xizmat}} * {{Z|pap}}: {{W-|pap|trabou}} * {{Z|ps}}: {{W+|ps|کار|n|tr=kār}} * {{Z|pms}}: {{W-|pms|travaj|n}} * {{Z|pis}}: {{W-|pis|waka}} * {{Z|ppl}}: {{W-|ppl|tekit}} * {{Z|pdt}}: {{W-|pdt|Oabeit|m}}, {{W-|pdt|Woakj|nt}} * {{Z|pl}}: {{W+|pl|praca|m}}, {{W+|pl|robota|m}} * {{Z|pt}}: {{W+|pt|trabalho|n}}, {{W+|pt|emprego|n}} * {{Z|pa}}: {{W-|pa|ਕੰਮ|n}} * {{Z|kk}}: {{W-|kk|еңбек}}, {{W+|kk|жұмыс}}, {{W-|kk|іс}}, {{W-|kk|қызмет}}, {{W-|kk|шаруа}} * {{Z|rm}}: {{W-|rm|lavur|m}}, {{W-|rm|lavour|m}} * {{Z|rom}}: {{W-|rom|butǐ|m}} * {{Z|ro}}: {{W+|ro|muncă|m}}, {{W+|ro|serviciu|nt}}, {{W+|ro|ocupație|m}}, {{W+|ro|îndeletnicire|m}} * {{Z|ru}}: {{W-|ru|рабо́та|m}}, {{W+|ru|труд|n}} * {{Z|rue}}: {{W-|rue|пра́ца|m}}, {{W-|rue|робо́та|m}} * {{Z|se}}: {{W-|se|bargu}} * {{Z|sm}}: {{W-|sm|galus}} * {{Z|sa}}: {{W+|sa|कर्मन्|nt}}, {{W+|sa|कार्य}} * {{Z|sc}}: {{W-|sc|trabadhu}}, {{W-|sc|traballu}} * {{Z|scn}}: {{W+|scn|lavuru|n}}, {{W+|scn|travagghiu|n}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|по̀сао|n}}, {{W-|sh|ра̑д|n}} *: Latînî: {{W+|sh|pòsao|n}}, {{W+|sh|rȃd|n}} * {{Z|syl}}: {{W-|syl|ꠇꠣꠝ}} * {{Z|sco}}: {{W-|sco|wark}} * {{Z|cu}}: *: Kirîlî: {{W-|cu|работа|m}}, {{W-|cu|троудъ|n}} *: Glagolîtîk: {{W-|cu|ⱃⰰⰱⱁⱅⰰ|m}}, {{W-|cu|ⱅⱃⱆⰴⱏ|n}} * {{Z|orv}}: {{W-|orv|робота|m}}, {{W-|orv|трудъ|n}} * {{Z|sk}}: {{W+|sk|práca|m}} * {{Z|sl}}: {{W+|sl|delo|nt}} * {{Z|so}}: {{W+|so|shaqo}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|źěło|nt}} * {{Z|st}}: {{W+|st|mosebetsi}} * {{Z|es}}: {{W+|es|trabajo|n}}, {{W+|es|curro|n}}, {{W+|es|laburo|n}} * {{Z|sw}}: {{W+|sw|kazi}} * {{Z|sv}}: {{W+|sv|arbete|nt}}, {{W+|sv|jobb|nt}} * {{Z|cjs}}: {{W-|cjs|иш}} * {{Z|tg}}: {{W+|tg|кор}}, {{W-|tg|шуғл}} * {{Z|tl}}: {{W-|tl|isi}}, {{W+|tl|trabaho}} * {{Z|ta}}: {{W+|ta|வேலை}} * {{Z|th}}: {{W-|th|การงาน}}, {{W+|th|งาน}}, {{W+|th|แรงงาน}} * {{Z|te}}: {{W-|te|కూలీపని}}, {{W+|te|ఉద్యోగము}}, {{W+|te|వృత్తి}} * {{Z|tt}}: {{W+|tt|эш}}, {{W+|tt|хезмәт}} * {{Z|tet}}: {{W-|tet|serbisu}} * {{Z|ti}}: {{W-|ti|ስራሕ}} * {{Z|tr}}: {{W+|tr|iş}}, {{W+|tr|meslek}}, {{W+|tr|emek}} * {{Z|tk}}: {{W-|tk|iş}}, {{W+|tk|zähmet}} * {{Z|bo}}: {{W-|bo|ལས་ཀ}} * {{Z|to}}: {{W-|to|ngāue}} * {{Z|tum}}: {{W-|tum|nchito}} * {{Z|udi}}: {{W-|udi|аш}}, {{W-|udi|аьш}} * {{Z|udm}}: {{W-|udm|уж}} * {{Z|ur}}: {{W-|ur|کام|n|tr=kām}} * {{Z|uk}}: {{W-|uk|робо́та|m}}, {{W-|uk|пра́ця|m}} * {{Z|vec}}: {{W+|vec|laoro|n}}, {{W-|vec|laóro|n}} * {{Z|vi}}: {{W+|vi|việc làm}}, {{W+|vi|công việc}} * {{Z|vot}}: {{W-|vot|töö}} * {{Z|wa}}: {{W+|wa|ovraedje|n|m}}, {{W+|wa|boutaedje|n}}, {{W+|wa|djob|n}} * {{Z|cy}}: {{W+|cy|gwaith|n}} * {{Z|km}}: {{W+|km|ការងារ}} * {{Z|yi}}: {{W-|yi|אַרבעט|m}} * {{Z|yo}}: {{W-|yo|iṣẹ́}} * {{Z|el}}: {{W+|el|έργο|nt}}, {{W+|el|εργασία|m}}, {{W+|el|δουλειά|m}} *: Kevn: {{W-|grc|ἔργον|nt}} * {{Z|za}}: {{W-|za|gunghcoz}} * {{Z|nmn}}: {{W-|nmn|ǀgáã}} {{werger-bin}} :{{werger çavkanî|en|work|oldid=75572707|beş=Ev qismê Wergerê}} === Navdêr 2 === {{navdêr|ku|z=m}} {{k-ya req}} # [[sûde]], [[kelk]], [[feyde]], [[qazanc]], [[kêr]], [[mifa]], [[berjewendî]] #* {{jêder-malper|ku|jêgirtin=Çimkî qezenca wê ji zîv zêdetir e, '''kara''' wê ji zêrê xas çêtir e.|sernav=Şîretên Silêman 3:14 / Kitêba Pîroz|nivîskar=Bible Society in Turkey|sal=2005|websîte=bible.com|url=https://www.bible.com/bible/251/PRO.3.KURNT}} # [[nêçîr|Nêçîra]] [[heywan]]an (bi taybetî [[firinde]]yan) li [[zivistan]]ê yan dema ku [[berf]] [[barîn|bariye]] û [[heywan]] [[qerimîn]]e<br>([[nêçîrvan]] [[tomik]]î [[avêtin|diavêtin]] ber wan û heywan nêzîk dibin û nêçîrvan wan digire yan [[kuştin|dikuje]]) #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== (wate 2) Ji {{ji|ira}}, hevreha farisî {{g|fa|شکار|tr=şikar}}. Bo ketina ''şi-'' ji destpêka peyvê, bidin ber [[nasîn]], bi farisî û zazakî {{q|zza||şinas-}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: (1) {{W+|en|benefit}}, {{W+|en|profit}}, (2) winter hunting {{werger-bin}} {{bend}} === Navdêr 3 === {{navdêr|ku|z=m}} {{k-ya nerm}} # ''Binêre'': '''[[karik]]''' #* {{bênimûne|ku}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} == {{ziman|hac}} == === Navdêr === {{navdêr|hac|sc=Latn}} # {{g|en|kar}} #* {{bênimûne|hac}} # [[lêker]] #* {{bênimûne|hac}} == {{ziman|nay}} == === Cînav === {{cînav|nay}} # [[ew#ku|ew]] (pirjimar), [[wan#ku|wan]] #* {{bênimûne|nay}} == {{ziman|rel}} == === Navdêr === {{navdêr|rel}} # {{f|rel|heywan}} [[kûçik#ku|kûçik]], [[se#ku|se]] #* {{bênimûne|rel}} == {{ziman|quc}} == === Navdêr === {{navdêr|quc}} # {{f|quc|heywan}} [[masî#ku|masî]] #* {{bênimûne|quc}} == {{ziman|af}} == === Navdêr === {{navdêr|af}} # {{f|af|navgîn}} {{g|ku|tirimpêl}}, {{g|ku|otomobîl}}, {{g|ku|erebe}}, {{g|ku|seyare}}, {{g|ku|maşîn}} #* {{bênimûne|af}} === Çavkanî === {{rûpela wergerê|af|tirimpêl}} == {{ziman|az}} == === Rengdêr === {{rengdêr|az}} # {{g|ku|ker}} (kerr, nebihîz, guhgiran) #* {{bênimûne|az}} === Çavkanî === {{rûpela wergerê|az|ker}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-ToprakM-kar.wav|Deng|dever=}} === Navdêr === {{navdêr|tr}} # [[berf|Berf]], [[befr]]. #* {{bênimûne|tr}} ie96hkgnvd0asfzn14k3r4p5n21x1o2 herî 0 5168 6329781 6293047 2026-08-12T22:03:11Z Wikihez 7344 /* Navdêr 2 */ 6329781 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{beş|Hoker}}: {{IPA|ku|/'hɛɾiː/}} (herî, هه‌ری) * {{beş|Hoker}}: {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-herî (Hoker).wav|dever=Bidlîs}} * {{beş|Navdêr 1}}: {{IPA|ku|/hɛ'riː/}} (he[[ř]]î, herrî, حه‌ڕی) * {{beş|Navdêr 1}}: {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-herî (Navdêr 1).wav|dever=Bidlîs}} * {{beş|Navdêr 2}}: {{IPA|ku|/hɛ'ɾiː/}} (herî, هه‌ری) * {{beş|Navdêr 2}}: {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-herî (Navdêr 2).wav|dever=Bidlîs}} * {{beş|Lêker}}: {{IPA|ku|/'hɛriː/}} (he[[ř]]î, herrî, هه‌ڕی) * {{beş|Lêker}}: {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-herî (Lêker).wav|dever=Bidlîs}} * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[hoker|Hokerek]] e bo [[diyarkirin]]a ku tiştek yan kesek [[xwedî]] [[taybetmendî|taybetmendiyekê]] ye ji hemî tiştên yan kesên [[din]] [[zêdetir]]. #: {{mk|ku|Pirtûka '''herî''' xweş''.|Xweştirîn pirtûk; pirtûka ji hemî pirtûkên din xweştir.|rêz=1}} #: {{mk|ku|Mirovê '''herî''' dirêj''.|Dirêjtirîn mirov; mirovê ji hemiyan dirêjtir.|rêz=1}} # Hokerek e dikeve berî [[kêm]] yan [[zêde]] yan hin peyvên din û wateya "bi kêmî" yan "bi zêdeyî" û hwd. #: {{mk|ku|'''Herî''' kêm 100 kes hatin civînê.|Hejmara yên hatin civînê ne ji 100an kêmtir e lê belkî zêdetir be.|rêz=1}} #: {{mk|ku|Ez dê '''herî''' dereng seet 10 bigihim wê derê.|Ez ji seet 10ê derengtir nabim lê belkî berî 10ê jî bigihim wir.|rêz=1}} ==== Bi alfabeyên din ==== * {{ku-ar|هەری}} ==== Hevmane ==== {{kol3|ku | here | hele | helî | tewr | tewre | tewrî | tevrî | tevî | xele | xelî | anga | hîn }} ==== Etîmolojî ==== Hevreha {{q|ku|tewrî}}, ji {{paş|ku|her|-î|w1=hergav, herdem}}, bi ramana "tiştê/a ku (bêvan)tirîn a her demê heta niha ye". Bide ber {{hv|en|ever}} ku ji bo heman ramanê bi kar tê. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W-|de|-ster|n}}, {{W-|de|-ste|m}}, {{W-|de|am ...-sten}} * {{Z|alt}}: {{W-|alt|эҥ}} * Spanish: el/la/lo {{W+|es|más}} * {{Z|be}}: {{W-|be|найбо́льш}}, {{W-|be|най-}} * {{Z|bg}}: {{W-|bg|най-}} * {{Z|cs}}: {{W+|cs|nejvíce}}, {{W-|cs|nej-}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|最|tr=zeoi3}} *: {{Z|dng}}: {{W-|dng|цзуй}} *: {{Z|cmn}}: {{W+|cmn|最|tr=zuì}} * {{Z|da}}: {{W+|da|mest}}, {{W-|da|-st}}, {{W-|da|-est}} * {{Z|ar}}: {{W+|ar|ال|cuda=اَلـ}} * {{Z|hy}}: {{W-|hy|ամենա-}}, {{W-|hy|-գույն}} * {{Z|eo}}: {{W+|eo|plej}} * {{Z|et}}: {{W+|et|kõige}} * {{Z|fr}}: {{W-|fr|le plus|n}}, {{W-|fr|la plus|m}}, {{W-|fr|les plus|p}} * {{Z|hi}}: {{W-|hi|सबसे}}, {{W-|hi|सब से}} * {{Z|he}}: {{W+|he|הכי|tr=ha'khi}} * {{Z|io}}: {{W+|io|maxim}} * {{Z|en}}: {{W+|en|most}} * {{Z|it}}: {{W-|it|il [[più]]}} * {{Z|ja}}: {{W+|ja|最も|tr=もっとも, mottomo}}, {{W+|ja|最|tr=さい-, sai-}}, {{W+|ja|一番|tr=いちばん, ichiban|sc=Jpan}} * {{Z|kl}}: {{W-|kl|-nerpaaq}} * {{Z|krc}}: {{W-|krc|эм}} * {{Z|krc}}: {{W-|krc|eng}} * {{Z|kdr}}: {{W-|kdr|ėnk}} * {{Z|ca}}: {{W-|ca|el/la/els/les [[més]]}} * {{Z|ky}}: {{W+|ky|эң}} * {{Z|ko}}: {{W+|ko|가장}}, {{W+|ko|제일}}, {{W-|ko|[[최-]]}} * {{Z|kum}}: {{W-|kum|инг}} * {{Z|la}}: {{W+|la|plurime}}, {{W-|la|-issime}}, {{W-|la|-issime}} * {{Z|lo}}: {{W-|lo|ທີ່ສຸດ|cuda=...ທີ່ສຸດ}} * {{Z|mk}}: {{W-|mk|нај-}} * {{Z|hu}}: {{W-|hu|[[leg-]] [[-bb]]}} * {{Z|no}}: *: {{Z|nb}}: {{W+|nb|mest}} *: {{Z|nn}}: {{W+|nn|mest}} * {{Z|ug}}: {{W-|ug|ئەڭ}} * {{Z|uz}}: {{W+|uz|eng}} * {{Z|pl}}: {{W+|pl|naj-}} * {{Z|pt}}: {{W-|pt|o/a/os/as [[mais]]}} * {{Z|kk}}: {{W-|kk|ең}} * {{Z|ru}}: {{W+|ru|наи-}}, {{W-|ru|са́мый}}, {{W-|ru|наибо́лее}}, {{W-|ru|-е́йший}}, {{W-|ru|-а́йший}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|нај-}} *: Latînî: {{W-|sh|naj-}} * {{Z|sco}}: {{W-|sco|maist}} * {{Z|sk}}: {{W-|sk|naj-}} * {{Z|sl}}: {{W+|sl|nàjbolj}}, {{W+|sl|naj-}} * {{Z|sv}}: {{W+|sv|mest}} * {{Z|cjs}}: {{W-|cjs|эң|tr=eň}} * {{Z|th}}: {{W+|th|ที่สุด|cuda=...ที่สุด|tr=...tîi-sùt}} * {{Z|tr}}: {{W+|tr|en}} * {{Z|kim}}: {{W-|kim|эӈ|tr=eň}} * {{Z|tyv}}: {{W-|tyv|эң}} * {{Z|ur}}: {{W-|ur|سب سے|tr=sab se}} * {{Z|uk}}: {{W-|uk|най-}}, {{W-|uk|найбі́льш}} * {{Z|uum}}: {{W-|uum|эн}} * {{Z|vi}}: {{W+|vi|nhất|cuda=... nhất}} * {{Z|kjh}}: {{W-|kjh|инъ}}, {{W-|kjh|иң}} * {{Z|km}}: {{W-|km|ជាងគេ|tr=cieŋ kee|sc=Khmr}} {{werger-bin}} :{{werger çavkanî|en|most|beş=Ev qismê Wergerê|oldid=75849117}} === Navdêr 1 === {{navdêr|ku|z=m}} # (axa têrav) ''Baştir'': '''[[herrî]]''' (1) === Navdêr 2 === {{navdêr|ku|z=m}} # {{guharto|ku|hirî|w=mûyê pezî}} #* {{J:Încîl:1872:Sayim|jg=Û serê wî û pora wî, weka '''herî''' sipî û û weka berf, û çahvêt wî weka alevê agir.|r=417}} === Formeke lêkerê === {{lêker|ku|form=erê}} # {{ku-dema-bê|çûn|duyem|yekjimar}} #: {{hevmane|ku|biçî}} ==== Formên alternatîv ==== * {{g|ku|herrî}} (2) 8tha2qf9y91c6jbvbyx1u0bna2lslmm wer 0 5738 6329880 6293086 2026-08-13T00:28:42Z Balyozbot 7867 /* Hoker 2 */ sererastkirin 6329880 wikitext text/x-wiki == {{ziman|ku}} == === Hoker === {{hoker|ku}}, {{bilêv|r|req}} # bi [[wî]] [[awa|awayî]], bi [[wî]] [[şêwe|şêweyî]], bi [[wî]] [[şikl|şiklî]], bi [[wî]] [[reng|rengî]], bi [[wê]] [[rê]]yê; bersiva [[çer]] #* {{jêder|ku|{{Jêgirtin/Melayê Cizîrî/Dîwana Melayê Cizirî}}|jêgirtin=Dilê ew xefletê lê dit</br>Dibêjim '''wer''' cebel bit ew</br>Bi ker bit wê di gavê da}} ==== Formên alternatîv ==== {{kol3|ku|cure=Herwiha |wa<pos:1> |wanî<pos:2> |wesa |wesan |welê |wisan |wilo |wisa |wisan |wirg |werg |weng |wiha }} ==== Bide ber ==== {{kol3|ku |hosa |vanî |va ye |usa |weha |wiha }} ==== Etîmolojî ==== Bide ber devokî {{q|ku|wereng|werreng}}, ji {{q|ku|ew}} + {{q|ku|reng}}. ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|اگر|guman=erê}}, {{W+|fa|اگه|guman=erê}} * {{Z|en}}: {{W+|en|perplexity}}, {{W+|en|so|guman=erê}} * {{Z|tr}}: {{W+|tr|öyle}}, {{W+|tr|şöyle}}, {{W+|tr|böyle}} {{werger-bin}} === Hoker 2 === {{hoker|ku}}, {{bilêv|r|req}} # [[misêwa]], [[hertim]] #* {{jêder-kovar|ku|jêgirtin=Tu '''wer''' dereng dimînî jixwe.|kovar=Kurde Çîrok|sernav=Zarokên Li Ser Rê|url=|nivîskar=Franz Kafka|wergêr=Hesen Ildiz|hejmar=1|sal=2021|dîrok=|rûpel=8}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|sürekli}} {{werger-bin}} === Formeke lêkerê === {{lêker|ku|form=erê}} # [[forma fermanî]] ji lêkera [[hatin]] (''Baştir'': [[were]]) #: ''Li ser piyan nemîne, '''wer''' rûne!'' ===Pêşdaçek=== {{daçek|ku}} # {{f|ku|[[dêrîn]]}} [[li dor]], [[dorberî]], bi alî ve #* {{jêder-kitêb|ku|jêgirtin=Bera birc u barû da pêşî, ji dujmin stand.<br>Li şah hate '''wer''', rex u ferzîn kirin hêsîr.|sal=1942|nivîskar=Roger Lescot|sernav=Memê Alan|rûpel=316}} ====Etîmolojî==== Bibîne {{q|ku|wer-}}. == {{ziman|de}} == === Bilêvkirin === * {{deng|de|De-wer.ogg}} * {{deng|de|De-wer2.ogg}} * {{deng|de|LL-Q188 (deu)-Lucas Werkmeister-wer.wav|Deng|dever=Berlîn, Almanya}} * {{deng|de|LL-Q188 (deu)-Nattes à chat-wer.wav|Deng|dever=}} * {{deng|de|LL-Q188 (deu)-Sebastian Wallroth-wer.wav|Deng|dever=Berlîn, Almanya}} * {{deng|de|LL-Q188 (deu)-teste (Pamputt)-wer.wav|Deng|dever=}} * {{deng|de|LL-Q188 (deu)-Student16 de-wer.wav|Deng|dever=}} * {{deng|de|LL-Q188 (deu)-Natschoba-wer.wav|Deng|dever=Almanya}} === Cînav === {{cînav|de}} # [[kî]], [[kê]] == {{ziman|fy}} == === Hoker === {{hoker|fy}} # [[dîsa#ku|dîsa]], [[cardin#ku|cardin]], [[dubare#ku|dubare]] == {{ziman|ang}} == === Navdêr === {{navdêr|ang|z=n}} # {{f|ang|malbat}} {{g|ku|mêr}}, {{g|ku|şû}}, (mêrê jinekê) == {{ziman|nbn}} == === Navdêr === {{navdêr|nbn}} # {{mijar|nbn|vexwarin}} {{g|ku|av}} === Çavkanî === {{rûpela wergerê|nbn|av/Werger1}} == {{ziman|slu}} == === Navdêr === {{navdêr|slu}} # {{mijar|slu|vexwarin}} {{g|ku|av}} === Çavkanî === {{rûpela wergerê|slu|av/Werger3}} bxhf64qq1cmzajyswbc1ynwl7u3h0pj 6329896 6329880 2026-08-13T00:41:16Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6329896 wikitext text/x-wiki == {{ziman|ku}} == === Hoker === {{hoker|ku}}, {{bilêv|r|req}} # bi [[wî]] [[awa|awayî]], bi [[wî]] [[şêwe|şêweyî]], bi [[wî]] [[şikl|şiklî]], bi [[wî]] [[reng|rengî]], bi [[wê]] [[rê]]yê; bersiva [[çer]] #* {{jêder|ku|{{Jêgirtin/Melayê Cizîrî/Dîwana Melayê Cizirî}}|jêgirtin=Dilê ew xefletê lê dit</br>Dibêjim '''wer''' cebel bit ew</br>Bi ker bit wê di gavê da}} ==== Formên alternatîv ==== {{kol3|ku|cure=Herwiha |wa<pos:1> |wanî<pos:2> |wesa |wesan |welê |wisan |wilo |wisa |wisan |wirg |werg |weng |wiha }} ==== Etîmolojî ==== Bide ber devokî {{q|ku|wereng|werreng}}, ji {{q|ku|ew}} + {{q|ku|reng}}. ==== Bide ber ==== {{kol3|ku |hosa |vanî |va ye |usa |weha |wiha }} ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|اگر|guman=erê}}, {{W+|fa|اگه|guman=erê}} * {{Z|en}}: {{W+|en|perplexity}}, {{W+|en|so|guman=erê}} * {{Z|tr}}: {{W+|tr|öyle}}, {{W+|tr|şöyle}}, {{W+|tr|böyle}} {{werger-bin}} === Hoker 2 === {{hoker|ku}}, {{bilêv|r|req}} # [[misêwa]], [[hertim]] #* {{jêder-kovar|ku|jêgirtin=Tu '''wer''' dereng dimînî jixwe.|kovar=Kurde Çîrok|sernav=Zarokên Li Ser Rê|url=|nivîskar=Franz Kafka|wergêr=Hesen Ildiz|hejmar=1|sal=2021|dîrok=|rûpel=8}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|sürekli}} {{werger-bin}} === Formeke lêkerê === {{lêker|ku|form=erê}} # [[forma fermanî]] ji lêkera [[hatin]] (''Baştir'': [[were]]) #: ''Li ser piyan nemîne, '''wer''' rûne!'' ===Pêşdaçek=== {{daçek|ku}} # {{f|ku|[[dêrîn]]}} [[li dor]], [[dorberî]], bi alî ve #* {{jêder-kitêb|ku|jêgirtin=Bera birc u barû da pêşî, ji dujmin stand.<br>Li şah hate '''wer''', rex u ferzîn kirin hêsîr.|sal=1942|nivîskar=Roger Lescot|sernav=Memê Alan|rûpel=316}} ====Etîmolojî==== Bibîne {{q|ku|wer-}}. == {{ziman|de}} == === Bilêvkirin === * {{deng|de|De-wer.ogg}} * {{deng|de|De-wer2.ogg}} * {{deng|de|LL-Q188 (deu)-Lucas Werkmeister-wer.wav|Deng|dever=Berlîn, Almanya}} * {{deng|de|LL-Q188 (deu)-Nattes à chat-wer.wav|Deng|dever=}} * {{deng|de|LL-Q188 (deu)-Sebastian Wallroth-wer.wav|Deng|dever=Berlîn, Almanya}} * {{deng|de|LL-Q188 (deu)-teste (Pamputt)-wer.wav|Deng|dever=}} * {{deng|de|LL-Q188 (deu)-Student16 de-wer.wav|Deng|dever=}} * {{deng|de|LL-Q188 (deu)-Natschoba-wer.wav|Deng|dever=Almanya}} === Cînav === {{cînav|de}} # [[kî]], [[kê]] == {{ziman|fy}} == === Hoker === {{hoker|fy}} # [[dîsa#ku|dîsa]], [[cardin#ku|cardin]], [[dubare#ku|dubare]] == {{ziman|ang}} == === Navdêr === {{navdêr|ang|z=n}} # {{f|ang|malbat}} {{g|ku|mêr}}, {{g|ku|şû}}, (mêrê jinekê) == {{ziman|nbn}} == === Navdêr === {{navdêr|nbn}} # {{mijar|nbn|vexwarin}} {{g|ku|av}} === Çavkanî === {{rûpela wergerê|nbn|av/Werger1}} == {{ziman|slu}} == === Navdêr === {{navdêr|slu}} # {{mijar|slu|vexwarin}} {{g|ku|av}} === Çavkanî === {{rûpela wergerê|slu|av/Werger3}} 6xso0l6yjrihbv7k8kx7fxdvedd39cj 6329918 6329896 2026-08-13T02:12:11Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir, Valahiya beşan rast kir, --Valahiyên nehewce.) 6329918 wikitext text/x-wiki == {{ziman|ku}} == === Hoker === {{hoker|ku}}, {{bilêv|r|req}} # bi [[wî]] [[awa]]yî, bi [[wî]] [[şêwe]]yî, bi [[wî]] [[şikl]]î, bi [[wî]] [[reng]]î, bi [[wê]] [[rê]]yê; bersiva [[çer]] #* {{jêder|ku|{{Jêgirtin/Melayê Cizîrî/Dîwana Melayê Cizirî}}|jêgirtin=Dilê ew xefletê lê dit</br>Dibêjim '''wer''' cebel bit ew</br>Bi ker bit wê di gavê da}} ==== Formên alternatîv ==== {{kol3|ku|cure=Herwiha |wa<pos:1> |wanî<pos:2> |wesa |wesan |welê |wisan |wilo |wisa |wisan |wirg |werg |weng |wiha }} ==== Etîmolojî ==== Bide ber devokî {{q|ku|wereng|werreng}}, ji {{q|ku|ew}} + {{q|ku|reng}}. ==== Bide ber ==== {{kol3|ku |hosa |vanî |va ye |usa |weha |wiha }} ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|اگر|guman=erê}}, {{W+|fa|اگه|guman=erê}} * {{Z|en}}: {{W+|en|perplexity}}, {{W+|en|so|guman=erê}} * {{Z|tr}}: {{W+|tr|öyle}}, {{W+|tr|şöyle}}, {{W+|tr|böyle}} {{werger-bin}} === Hoker 2 === {{hoker|ku}}, {{bilêv|r|req}} # [[misêwa]], [[hertim]] #* {{jêder-kovar|ku|jêgirtin=Tu '''wer''' dereng dimînî jixwe.|kovar=Kurde Çîrok|sernav=Zarokên Li Ser Rê|url=|nivîskar=Franz Kafka|wergêr=Hesen Ildiz|hejmar=1|sal=2021|dîrok=|rûpel=8}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|sürekli}} {{werger-bin}} === Formeke lêkerê === {{lêker|ku|form=erê}} # [[forma fermanî]] ji lêkera [[hatin]] (''Baştir'': [[were]]) #: ''Li ser piyan nemîne, '''wer''' rûne!'' === Pêşdaçek === {{daçek|ku}} # {{f|ku|[[dêrîn]]}} [[li dor]], [[dorberî]], bi alî ve #* {{jêder-kitêb|ku|jêgirtin=Bera birc u barû da pêşî, ji dujmin stand.<br>Li şah hate '''wer''', rex u ferzîn kirin hêsîr.|sal=1942|nivîskar=Roger Lescot|sernav=Memê Alan|rûpel=316}} ==== Etîmolojî ==== Bibîne {{q|ku|wer-}}. == {{ziman|de}} == === Bilêvkirin === * {{deng|de|De-wer.ogg}} * {{deng|de|De-wer2.ogg}} * {{deng|de|LL-Q188 (deu)-Lucas Werkmeister-wer.wav|Deng|dever=Berlîn, Almanya}} * {{deng|de|LL-Q188 (deu)-Nattes à chat-wer.wav|Deng|dever=}} * {{deng|de|LL-Q188 (deu)-Sebastian Wallroth-wer.wav|Deng|dever=Berlîn, Almanya}} * {{deng|de|LL-Q188 (deu)-teste (Pamputt)-wer.wav|Deng|dever=}} * {{deng|de|LL-Q188 (deu)-Student16 de-wer.wav|Deng|dever=}} * {{deng|de|LL-Q188 (deu)-Natschoba-wer.wav|Deng|dever=Almanya}} === Cînav === {{cînav|de}} # [[kî]], [[kê]] == {{ziman|fy}} == === Hoker === {{hoker|fy}} # [[dîsa#ku|dîsa]], [[cardin#ku|cardin]], [[dubare#ku|dubare]] == {{ziman|ang}} == === Navdêr === {{navdêr|ang|z=n}} # {{f|ang|malbat}} {{g|ku|mêr}}, {{g|ku|şû}}, (mêrê jinekê) == {{ziman|nbn}} == === Navdêr === {{navdêr|nbn}} # {{mijar|nbn|vexwarin}} {{g|ku|av}} === Çavkanî === {{rûpela wergerê|nbn|av/Werger1}} == {{ziman|slu}} == === Navdêr === {{navdêr|slu}} # {{mijar|slu|vexwarin}} {{g|ku|av}} === Çavkanî === {{rûpela wergerê|slu|av/Werger3}} 9g2ke59zzqjzgnyd88xrc7bukxej586 6329923 6329918 2026-08-13T04:04:36Z Keyomerd 8814 /* Pêşdaçek */ 6329923 wikitext text/x-wiki == {{ziman|ku}} == === Hoker === {{hoker|ku}}, {{bilêv|r|req}} # bi [[wî]] [[awa]]yî, bi [[wî]] [[şêwe]]yî, bi [[wî]] [[şikl]]î, bi [[wî]] [[reng]]î, bi [[wê]] [[rê]]yê; bersiva [[çer]] #* {{jêder|ku|{{Jêgirtin/Melayê Cizîrî/Dîwana Melayê Cizirî}}|jêgirtin=Dilê ew xefletê lê dit</br>Dibêjim '''wer''' cebel bit ew</br>Bi ker bit wê di gavê da}} ==== Formên alternatîv ==== {{kol3|ku|cure=Herwiha |wa<pos:1> |wanî<pos:2> |wesa |wesan |welê |wisan |wilo |wisa |wisan |wirg |werg |weng |wiha }} ==== Etîmolojî ==== Bide ber devokî {{q|ku|wereng|werreng}}, ji {{q|ku|ew}} + {{q|ku|reng}}. ==== Bide ber ==== {{kol3|ku |hosa |vanî |va ye |usa |weha |wiha }} ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|اگر|guman=erê}}, {{W+|fa|اگه|guman=erê}} * {{Z|en}}: {{W+|en|perplexity}}, {{W+|en|so|guman=erê}} * {{Z|tr}}: {{W+|tr|öyle}}, {{W+|tr|şöyle}}, {{W+|tr|böyle}} {{werger-bin}} === Hoker 2 === {{hoker|ku}}, {{bilêv|r|req}} # [[misêwa]], [[hertim]] #* {{jêder-kovar|ku|jêgirtin=Tu '''wer''' dereng dimînî jixwe.|kovar=Kurde Çîrok|sernav=Zarokên Li Ser Rê|url=|nivîskar=Franz Kafka|wergêr=Hesen Ildiz|hejmar=1|sal=2021|dîrok=|rûpel=8}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|sürekli}} {{werger-bin}} === Formeke lêkerê === {{lêker|ku|form=erê}} # [[forma fermanî]] ji lêkera [[hatin]] (''Baştir'': [[were]]) #: ''Li ser piyan nemîne, '''wer''' rûne!'' === Pêşdaçek === {{daçek|ku}} # {{f|ku|kevnare}} [[li dor]], [[dorberî]], bi alî ve #* {{jêder-kitêb|ku|jêgirtin=Bera birc u barû da pêşî, ji dujmin stand.<br>Li şah hate '''wer''', rex u ferzîn kirin hêsîr.|sal=1942|nivîskar=Roger Lescot|sernav=Memê Alan|rûpel=316}} ==== Etîmolojî ==== Bibîne {{q|ku|wer-}}. == {{ziman|de}} == === Bilêvkirin === * {{deng|de|De-wer.ogg}} * {{deng|de|De-wer2.ogg}} * {{deng|de|LL-Q188 (deu)-Lucas Werkmeister-wer.wav|Deng|dever=Berlîn, Almanya}} * {{deng|de|LL-Q188 (deu)-Nattes à chat-wer.wav|Deng|dever=}} * {{deng|de|LL-Q188 (deu)-Sebastian Wallroth-wer.wav|Deng|dever=Berlîn, Almanya}} * {{deng|de|LL-Q188 (deu)-teste (Pamputt)-wer.wav|Deng|dever=}} * {{deng|de|LL-Q188 (deu)-Student16 de-wer.wav|Deng|dever=}} * {{deng|de|LL-Q188 (deu)-Natschoba-wer.wav|Deng|dever=Almanya}} === Cînav === {{cînav|de}} # [[kî]], [[kê]] == {{ziman|fy}} == === Hoker === {{hoker|fy}} # [[dîsa#ku|dîsa]], [[cardin#ku|cardin]], [[dubare#ku|dubare]] == {{ziman|ang}} == === Navdêr === {{navdêr|ang|z=n}} # {{f|ang|malbat}} {{g|ku|mêr}}, {{g|ku|şû}}, (mêrê jinekê) == {{ziman|nbn}} == === Navdêr === {{navdêr|nbn}} # {{mijar|nbn|vexwarin}} {{g|ku|av}} === Çavkanî === {{rûpela wergerê|nbn|av/Werger1}} == {{ziman|slu}} == === Navdêr === {{navdêr|slu}} # {{mijar|slu|vexwarin}} {{g|ku|av}} === Çavkanî === {{rûpela wergerê|slu|av/Werger3}} qq1k9bke7ewwag6scvzadrn23aituk7 6329924 6329923 2026-08-13T04:04:51Z Keyomerd 8814 /* Hoker 2 */ 6329924 wikitext text/x-wiki == {{ziman|ku}} == === Hoker === {{hoker|ku}}, {{bilêv|r|req}} # bi [[wî]] [[awa]]yî, bi [[wî]] [[şêwe]]yî, bi [[wî]] [[şikl]]î, bi [[wî]] [[reng]]î, bi [[wê]] [[rê]]yê; bersiva [[çer]] #* {{jêder|ku|{{Jêgirtin/Melayê Cizîrî/Dîwana Melayê Cizirî}}|jêgirtin=Dilê ew xefletê lê dit</br>Dibêjim '''wer''' cebel bit ew</br>Bi ker bit wê di gavê da}} ==== Formên alternatîv ==== {{kol3|ku|cure=Herwiha |wa<pos:1> |wanî<pos:2> |wesa |wesan |welê |wisan |wilo |wisa |wisan |wirg |werg |weng |wiha }} ==== Etîmolojî ==== Bide ber devokî {{q|ku|wereng|werreng}}, ji {{q|ku|ew}} + {{q|ku|reng}}. ==== Bide ber ==== {{kol3|ku |hosa |vanî |va ye |usa |weha |wiha }} ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|اگر|guman=erê}}, {{W+|fa|اگه|guman=erê}} * {{Z|en}}: {{W+|en|perplexity}}, {{W+|en|so|guman=erê}} * {{Z|tr}}: {{W+|tr|öyle}}, {{W+|tr|şöyle}}, {{W+|tr|böyle}} {{werger-bin}} === Hoker 2 === {{hoker|ku}}, {{bilêv|r|req}} # [[misêwa]], [[hertim]], [[sivde]] #* {{jêder-kovar|ku|jêgirtin=Tu '''wer''' dereng dimînî jixwe.|kovar=Kurde Çîrok|sernav=Zarokên Li Ser Rê|url=|nivîskar=Franz Kafka|wergêr=Hesen Ildiz|hejmar=1|sal=2021|dîrok=|rûpel=8}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|sürekli}} {{werger-bin}} === Formeke lêkerê === {{lêker|ku|form=erê}} # [[forma fermanî]] ji lêkera [[hatin]] (''Baştir'': [[were]]) #: ''Li ser piyan nemîne, '''wer''' rûne!'' === Pêşdaçek === {{daçek|ku}} # {{f|ku|kevnare}} [[li dor]], [[dorberî]], bi alî ve #* {{jêder-kitêb|ku|jêgirtin=Bera birc u barû da pêşî, ji dujmin stand.<br>Li şah hate '''wer''', rex u ferzîn kirin hêsîr.|sal=1942|nivîskar=Roger Lescot|sernav=Memê Alan|rûpel=316}} ==== Etîmolojî ==== Bibîne {{q|ku|wer-}}. == {{ziman|de}} == === Bilêvkirin === * {{deng|de|De-wer.ogg}} * {{deng|de|De-wer2.ogg}} * {{deng|de|LL-Q188 (deu)-Lucas Werkmeister-wer.wav|Deng|dever=Berlîn, Almanya}} * {{deng|de|LL-Q188 (deu)-Nattes à chat-wer.wav|Deng|dever=}} * {{deng|de|LL-Q188 (deu)-Sebastian Wallroth-wer.wav|Deng|dever=Berlîn, Almanya}} * {{deng|de|LL-Q188 (deu)-teste (Pamputt)-wer.wav|Deng|dever=}} * {{deng|de|LL-Q188 (deu)-Student16 de-wer.wav|Deng|dever=}} * {{deng|de|LL-Q188 (deu)-Natschoba-wer.wav|Deng|dever=Almanya}} === Cînav === {{cînav|de}} # [[kî]], [[kê]] == {{ziman|fy}} == === Hoker === {{hoker|fy}} # [[dîsa#ku|dîsa]], [[cardin#ku|cardin]], [[dubare#ku|dubare]] == {{ziman|ang}} == === Navdêr === {{navdêr|ang|z=n}} # {{f|ang|malbat}} {{g|ku|mêr}}, {{g|ku|şû}}, (mêrê jinekê) == {{ziman|nbn}} == === Navdêr === {{navdêr|nbn}} # {{mijar|nbn|vexwarin}} {{g|ku|av}} === Çavkanî === {{rûpela wergerê|nbn|av/Werger1}} == {{ziman|slu}} == === Navdêr === {{navdêr|slu}} # {{mijar|slu|vexwarin}} {{g|ku|av}} === Çavkanî === {{rûpela wergerê|slu|av/Werger3}} nj6zqrsuplikuurht6ayk8v13r4niyh kursî 0 6008 6329821 6310791 2026-08-12T23:10:17Z Wikihez 7344 /* Etîmolojî */ 6329821 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Chair.png|thumb|kursiyek]] {{navdêr|ku|z=m}}, {{k-ya nerm}}, {{r-ya nerm}} # {{f|ku|mobîlya}} Alavên bi[[pişt]] û bi[[pêpik]] yên bi [[giştî]] bo [[rûniştin]]a kesekî. #: {{mk|ku|Rûne ser '''kursiyê'''.}} #: {{mk|ku|Li ser '''kursiyê''' rûniştim.}} #: {{mk|ku|Ji ser '''kursiyê''' rabû.}} #: {{mk|ku|Hemû '''kursî''' girtî bûn.|Li ser her yekê kesek hebû û ti yên vala tine bûn.|rêz=1}} # [[diran|Diran]]ên [[paşîn]]. #* {{bêmînak|ku}} # [[meqam|Meqam]], [[cih]]. #* {{bêmînak|ku}} # [[meqam|Meqam]]ê [[paşa]]yan/[[desthilatdar]]an. #: {{hevmane|ku|text}} #: {{mk|ku|text û '''kursî'''}} # [[meqam|Meqam]]ê [[Xwedê]]. #: {{hevmane|ku|erş}} #: {{mk|ku|Ayeta '''Kursî'''|[[ayet]]a 2:255 a [[Qur'an]]ê ye û behsa bê[[hevta]]yiya [[Xwedê]] dike}} #* {{jêder|ku|jêgirtin="Nîveka dî çêkirin ji çarî çîz</br>'Erş û '''kursî''' û qelem lewhe temîz</br>Hate emrê Padîşahê [[Layezal]]"'' |Mela Hisênê Bateyî: ''Mewlûd''}} # {{e|ku|tehsîl}} [[îdare|Îdareya]] di [[nav]] [[unîversîte|unîversîteyan]] de ku [[li ser]] [[mesele|meseleyeke]] [[diyarkirî]] [[lêkolîn]] û [[ders|dersan]] [[dan|dide]]. #: {{nm|ku|'''Kursiya''' zimanê kurdî di sala 1945an de ji aliyê Roger Lescot (1914-1975) ve hate avakirin.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|کورسی}} * {{ku-kr|курси}} ==== Formên alternatîv ==== * {{g|ku|kursîk}} ==== Hevmane ==== * {{g|ku|sendelî}} * {{g|ku|sendelye}} * {{g|ku|rûniştek}} ==== Jê ==== * {{g|ku|rûniştin}} ser kursiyê * li ser kursiyê [[rûniştin]] * ji ser kursiyê [[rabûn]] * {{g|ku|kursîk}} ==== Etîmolojî ==== Hevreha soranî {{g|ckb|کورسی}}, zazakî {{q|zza|kursî}}, {{hv|fa|کورسی|tr=berê "kursî", niha "korsî"}}, tirkî {{q|tr|kürsü}} (bi tirkiya osmanî {{g|ota|كرسى|ts=kursî}}), erebî {{g|ar|‏كرسي}} (bi erebiya standard "kursiyy", bi erebiya devkî "kursî, kirsî"), siryanî {{g|syc|ܟܘܪܣܝܐ‎|tr=kursiya}}, [[aramî]] {{g|arc|כרסא|tr=kursa}} û {{g|arc|כסא|tr=kusa}}, îbranî {{ge|he|כיסא|tr=kissê}}, ugarîtî [[𐎋𐎒𐎜]] (kisủ), akadî [[𒄖𒍝]] / [[𒄑𒄖𒍝]] (kussû, kursû)... hemû ji {{ji|sux|ku|𒄖𒍝|tr=gu.za}}. Peyv ji Rojhilata Navîn belav bûye Başûrê Asyayê jî: ûrdûyî {{g|ur|کرسی|tr=kursī}}, peştûyî {{g|ps|کورسۍ‎|tr=kursiy}}, hindî [[कुरसी]] (kursī), punjabî [[ਕੁਰਸੀ]] (kursī)... ;{{biçûk|Çavkanî: * {{kitêb|en|sernav=The Pennsylvania Sumerian Dictionary<t:Ferhenga sûmerî ya Pennsylvaniayê>|url=http://psd.museum.upenn.edu/nepsd-frame.html}} * {{kitêb|fr|url=http://www.assyrianlanguages.org/akkadian/dosearch.php?searchkey=16&language=id|sernav=Association Assyrophile de France: Dictionnaire akkadien<t:Rêkxistina Aşûrîdostan ya Fransayê: Ferhenga akadî>}} }} ==== Binêre herwiha ==== {{kol3|ku |balguh |balîf |doşek |doşk |lihêf |mobîlya |nivîn |palpişt |qaîdok |qenepe |rûniştek |sofa |text }} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|stoel}} * {{Z|sq}}: {{W-|sq|karrike|m}}, {{W+|sq|karrige}} * {{Z|de}}: {{W+|de|Stuhl|n}} * {{Z|ast}}: {{W+|ast|siella}} * {{Z|az}}: {{W+|az|stul}} * {{Z|eu}}: {{W+|eu|aulki}} * {{Z|bar}}: {{W--|bar|Sessl|n}} * {{Z|be}}: {{W-|be|стул|tr=stul}} * {{Z|br}}: {{W+|br|kador|m}} * {{Z|bg}}: {{W+|bg|стол|tr=stol}} * {{Z|cs}}: {{W+|cs|židle}} * {{Z|zh}}: {{W+|zh|椅子|tr=yǐzi}} * {{Z|da}}: {{W+|da|stol}} * {{Z|id}}: {{W+|id|kursi}} * {{Z|ary}}: {{W--|ary|كرسي}}, {{W--|ary|شلية}} *: {{Z|arz}}: {{W|arz|كرسي|tr=kursî}} {{n}} * {{Z|ar}}: {{W|ar|كرسي|tr=kursiyy}} {{n}}, {{W|ar|مقعد|tr=meq'ed}} {{n}} * {{Z|hy}}: {{W+|hy|աթոռ|tr=atʿoṙ}} * {{Z|eo}}: {{W+|eo|seĝo}} * {{Z|et}}: {{W+|et|tool}} * {{Z|ewo}}: {{W--|ewo|etoa}} * {{Z|fa}}: {{W+|fa|صندلی|tr=sendelî}}, {{W|fa|کرسی|tr=korsî}} * {{Z|fo}}: {{W-|fo|stólur}} * {{Z|fi}}: {{W+|fi|tuoli}}, {{W|fi|istuin}} * {{Z|frp}}: ''(savoyard)'' {{W--|frp|sala}} * {{Z|fr}}: {{W|fr|chaise}} * {{Z|fy}}: {{W-|fy|stoel}}, {{W-|fy|belech}} * {{Z|gd}}: {{W-|gd|suidheachan}}, {{W-|gd|cathair}} * {{Z|gl}}: {{W+|gl|cadeira|m}} * {{Z|ka}}: {{W+|ka|სკამი|tr=sḳami}} * {{Z|hi}}: {{W+|hi|कुरसी|tr=kursī}} * {{Z|nl}}: {{W+|nl|stoel}}, {{W+|nl|zetel}} * {{Z|he}}: {{W+|he|כיסא|tr=kisé}} * {{Z|io}}: {{W+|io|stulo}} * {{Z|ang}}: {{W-|ang|stol}} * {{Z|en}}: {{W+|en|chair}}, {{W+|en|seat}} * {{Z|ga}}: {{W+|ga|cathaoir}} * {{Z|it}}: {{W+|it|assedio}}, {{W+|it|sedia}}, {{W+|it|seggiola}} * {{Z|is}}: {{W+|is|stóll}} * {{Z|ja}}: {{W+|ja|椅子|tr=isu}}, {{W+|ja|いす|tr=isu}} * {{Z|ca}}: {{W+|ca|cadira}} * {{Z|ki}}: {{W--|ki|giti}} * {{Z|ko}}: {{W+|ko|의자|tr=uija}} * {{Z|kw}}: {{W-|kw|cadar}} * {{Z|co}}: {{W+|co|sedia}}, {{W-|co|carreca}} * {{Z|mfe}}: {{W--|mfe|sez}} * {{Z|la}}: {{W-|la|sella}}, {{W-|la|cathedra}}, {{W-|la|solium}} * {{Z|lv}}: {{W+|lv|krēsls}} * {{Z|lo}}: {{W+|lo|ຕັ່ງ}} * {{Z|lt}}: {{W+|lt|kėdė}} * {{Z|mk}}: {{W-|mk|стол|tr=stol}}, {{W-|mk|столица|tr=stolica}} * {{Z|mg}}: {{W+|mg|seza}} * {{Z|ms}}: {{W+|ms|kursi}} * {{Z|mt}}: {{W+|mt|siġġu}} * {{Z|gv}}: {{W-|gv|caair}} * {{Z|yua}}: {{W--|yua|k’anche’}} * {{Z|hu}}: {{W+|hu|szék}} * {{Z|mn}}: {{W+|mn|сандал|tr=sandal}} * {{Z|nrf}}: {{W--|nrf|caire}} * {{Z|no}}: {{W+|no|stol|nt}} * {{Z|oc}}: {{W+|oc|cadièra|m}} * {{Z|uz}}: {{W+|uz|o`rindiq}} * {{Z|uz}}: {{W|uz|o`rindiq}} * {{Z|pap}}: {{W--|pap|stul}} * {{Z|pl}}: {{W+|pl|krzesło}} * {{Z|pt}}: {{W+|pt|cadeira|m}}, {{W+|pt|assento}} * {{Z|kk}}: {{W+|kk|орындық|tr=orındıq}}, {{W-|kk|отырғыш|tr=otırğış}} * {{Z|ro}}: {{W+|ro|scaun}} * {{Z|ru}}: {{W+|ru|стул}} * {{Z|se}}: {{W--|se|stuollu}} * {{Z|srn}}: {{W--|srn|sturu}} * {{Z|sh}}: :* Latînî: {{W+|sh|stolac}}, {{W+|sh|stolica}} :* Kirîlî: {{W-|sh|столац}}, {{W+|sh|столица}} * {{Z|sk}}: {{W-|sk|stolička}} * {{Z|sl}}: {{W+|sl|stol}} * {{Z|dsb}}: {{W--|dsb|stoł}} * {{Z|hsb}}: {{W-|hsb|stólc}} * {{Z|es}}: {{W+|es|silla|m}} * {{Z|sw}}: {{W+|sw|kiti}} * {{Z|sv}}: {{W+|sv|stol}} * {{Z|shy}}: {{W--|shy|amɣim}} * {{Z|zdj}}: {{W--|zdj|hiri}} * {{Z|tg}}: {{W-|tg|сандали|tr=sandali}}, {{W+|tg|курсӣ|tr=kursī}} * {{Z|tl}}: {{W-|tl|sílya}}, {{W-|tl|úpuan}} * {{Z|ta}}: {{W+|ta|நாற்காலி|tr=nāṟkāli}} * {{Z|th}}: {{W+|th|เก้าอี้|tr=gâo-îi}} * {{Z|tr}}: {{W+|tr|sandalye}}, {{W|tr|sandalye}}, {{W|tr|kürsü}}, {{W|tr|koltuk}}, {{W|tr|iskemle}}, {{W|tr|oturak}}, {{W|tr|tabure}}, {{W|tr|sekmen}} * {{Z|tk}}: {{W-|tk|oturgyç}} * {{Z|ur}}: {{W-|ur|کرسی|tr=kursī}} * {{Z|ur}}: {{W|ur|کرسی|tr=kursī}} {{n}} * {{Z|uk}}: {{W+|uk|стілець|tr=stilécʹ}}, {{W-|uk|крісло|tr=kríslo}} * {{Z|vec}}: {{W|vec|carega}} * {{Z|vi}}: {{W|vi|ghế}} * {{Z|cy}}: {{W+|cy|cadair}} * {{Z|cy}}: {{W|cy|cadair}}, {{W|cy|ystôl}} * {{Z|km}}: {{W+|km|កៅអី|tr=kav ’əy}} * {{Z|yi}}: {{W|yi|שטול}} * {{Z|el}}: {{W+|el|καρέκλα|tr=karékla}} * {{Z|el}}: {{W|el|καρέκλα}} {{n}} (karékla) * {{Z|zu}}: {{W+|zu|isihlalo}} {{werger-bin}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb|sc=Latn}} # {{ckb-Arab|کورسی}} == {{ziman|zza}} == === Navdêr === {{navdêr|zza}} # [[kursî#Kurmancî|kursî]] #* {{bêmînak|zza}} inv3byhkly1m3bee7f3yip3ddll1vqr 6329822 6329821 2026-08-12T23:11:16Z Wikihez 7344 /* Etîmolojî */ 6329822 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Chair.png|thumb|kursiyek]] {{navdêr|ku|z=m}}, {{k-ya nerm}}, {{r-ya nerm}} # {{f|ku|mobîlya}} Alavên bi[[pişt]] û bi[[pêpik]] yên bi [[giştî]] bo [[rûniştin]]a kesekî. #: {{mk|ku|Rûne ser '''kursiyê'''.}} #: {{mk|ku|Li ser '''kursiyê''' rûniştim.}} #: {{mk|ku|Ji ser '''kursiyê''' rabû.}} #: {{mk|ku|Hemû '''kursî''' girtî bûn.|Li ser her yekê kesek hebû û ti yên vala tine bûn.|rêz=1}} # [[diran|Diran]]ên [[paşîn]]. #* {{bêmînak|ku}} # [[meqam|Meqam]], [[cih]]. #* {{bêmînak|ku}} # [[meqam|Meqam]]ê [[paşa]]yan/[[desthilatdar]]an. #: {{hevmane|ku|text}} #: {{mk|ku|text û '''kursî'''}} # [[meqam|Meqam]]ê [[Xwedê]]. #: {{hevmane|ku|erş}} #: {{mk|ku|Ayeta '''Kursî'''|[[ayet]]a 2:255 a [[Qur'an]]ê ye û behsa bê[[hevta]]yiya [[Xwedê]] dike}} #* {{jêder|ku|jêgirtin="Nîveka dî çêkirin ji çarî çîz</br>'Erş û '''kursî''' û qelem lewhe temîz</br>Hate emrê Padîşahê [[Layezal]]"'' |Mela Hisênê Bateyî: ''Mewlûd''}} # {{e|ku|tehsîl}} [[îdare|Îdareya]] di [[nav]] [[unîversîte|unîversîteyan]] de ku [[li ser]] [[mesele|meseleyeke]] [[diyarkirî]] [[lêkolîn]] û [[ders|dersan]] [[dan|dide]]. #: {{nm|ku|'''Kursiya''' zimanê kurdî di sala 1945an de ji aliyê Roger Lescot (1914-1975) ve hate avakirin.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|کورسی}} * {{ku-kr|курси}} ==== Formên alternatîv ==== * {{g|ku|kursîk}} ==== Hevmane ==== * {{g|ku|sendelî}} * {{g|ku|sendelye}} * {{g|ku|rûniştek}} ==== Jê ==== * {{g|ku|rûniştin}} ser kursiyê * li ser kursiyê [[rûniştin]] * ji ser kursiyê [[rabûn]] * {{g|ku|kursîk}} ==== Etîmolojî ==== Taliyê ji {{ji|sux|ku|𒄖𒍝|tr=gu.za}}. Hevreha soranî {{g|ckb|کورسی}}, zazakî {{q|zza|kursî}}, {{hv|fa|کورسی|tr=berê "kursî", niha "korsî"}}, tirkî {{q|tr|kürsü}} (bi tirkiya osmanî {{g|ota|كرسى|ts=kursî}}), erebî {{g|ar|‏كرسي}} (bi erebiya standard "kursiyy", bi erebiya devkî "kursî, kirsî"), siryanî {{g|syc|ܟܘܪܣܝܐ‎|tr=kursiya}}, [[aramî]] {{g|arc|כרסא|tr=kursa}} û {{g|arc|כסא|tr=kusa}}, îbranî {{ge|he|כיסא|tr=kissê}}, ugarîtî [[𐎋𐎒𐎜]] (kisủ), akadî [[𒄖𒍝]] / [[𒄑𒄖𒍝]] (kussû, kursû)... Peyv ji Rojhilata Navîn belav bûye Başûrê Asyayê jî: ûrdûyî {{g|ur|کرسی|tr=kursī}}, peştûyî {{g|ps|کورسۍ‎|tr=kursiy}}, hindî [[कुरसी]] (kursī), punjabî [[ਕੁਰਸੀ]] (kursī)... ;{{biçûk|Çavkanî: * {{kitêb|en|sernav=The Pennsylvania Sumerian Dictionary<t:Ferhenga sûmerî ya Pennsylvaniayê>|url=http://psd.museum.upenn.edu/nepsd-frame.html}} * {{kitêb|fr|url=http://www.assyrianlanguages.org/akkadian/dosearch.php?searchkey=16&language=id|sernav=Association Assyrophile de France: Dictionnaire akkadien<t:Rêkxistina Aşûrîdostan ya Fransayê: Ferhenga akadî>}} }} ==== Binêre herwiha ==== {{kol3|ku |balguh |balîf |doşek |doşk |lihêf |mobîlya |nivîn |palpişt |qaîdok |qenepe |rûniştek |sofa |text }} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|stoel}} * {{Z|sq}}: {{W-|sq|karrike|m}}, {{W+|sq|karrige}} * {{Z|de}}: {{W+|de|Stuhl|n}} * {{Z|ast}}: {{W+|ast|siella}} * {{Z|az}}: {{W+|az|stul}} * {{Z|eu}}: {{W+|eu|aulki}} * {{Z|bar}}: {{W--|bar|Sessl|n}} * {{Z|be}}: {{W-|be|стул|tr=stul}} * {{Z|br}}: {{W+|br|kador|m}} * {{Z|bg}}: {{W+|bg|стол|tr=stol}} * {{Z|cs}}: {{W+|cs|židle}} * {{Z|zh}}: {{W+|zh|椅子|tr=yǐzi}} * {{Z|da}}: {{W+|da|stol}} * {{Z|id}}: {{W+|id|kursi}} * {{Z|ary}}: {{W--|ary|كرسي}}, {{W--|ary|شلية}} *: {{Z|arz}}: {{W|arz|كرسي|tr=kursî}} {{n}} * {{Z|ar}}: {{W|ar|كرسي|tr=kursiyy}} {{n}}, {{W|ar|مقعد|tr=meq'ed}} {{n}} * {{Z|hy}}: {{W+|hy|աթոռ|tr=atʿoṙ}} * {{Z|eo}}: {{W+|eo|seĝo}} * {{Z|et}}: {{W+|et|tool}} * {{Z|ewo}}: {{W--|ewo|etoa}} * {{Z|fa}}: {{W+|fa|صندلی|tr=sendelî}}, {{W|fa|کرسی|tr=korsî}} * {{Z|fo}}: {{W-|fo|stólur}} * {{Z|fi}}: {{W+|fi|tuoli}}, {{W|fi|istuin}} * {{Z|frp}}: ''(savoyard)'' {{W--|frp|sala}} * {{Z|fr}}: {{W|fr|chaise}} * {{Z|fy}}: {{W-|fy|stoel}}, {{W-|fy|belech}} * {{Z|gd}}: {{W-|gd|suidheachan}}, {{W-|gd|cathair}} * {{Z|gl}}: {{W+|gl|cadeira|m}} * {{Z|ka}}: {{W+|ka|სკამი|tr=sḳami}} * {{Z|hi}}: {{W+|hi|कुरसी|tr=kursī}} * {{Z|nl}}: {{W+|nl|stoel}}, {{W+|nl|zetel}} * {{Z|he}}: {{W+|he|כיסא|tr=kisé}} * {{Z|io}}: {{W+|io|stulo}} * {{Z|ang}}: {{W-|ang|stol}} * {{Z|en}}: {{W+|en|chair}}, {{W+|en|seat}} * {{Z|ga}}: {{W+|ga|cathaoir}} * {{Z|it}}: {{W+|it|assedio}}, {{W+|it|sedia}}, {{W+|it|seggiola}} * {{Z|is}}: {{W+|is|stóll}} * {{Z|ja}}: {{W+|ja|椅子|tr=isu}}, {{W+|ja|いす|tr=isu}} * {{Z|ca}}: {{W+|ca|cadira}} * {{Z|ki}}: {{W--|ki|giti}} * {{Z|ko}}: {{W+|ko|의자|tr=uija}} * {{Z|kw}}: {{W-|kw|cadar}} * {{Z|co}}: {{W+|co|sedia}}, {{W-|co|carreca}} * {{Z|mfe}}: {{W--|mfe|sez}} * {{Z|la}}: {{W-|la|sella}}, {{W-|la|cathedra}}, {{W-|la|solium}} * {{Z|lv}}: {{W+|lv|krēsls}} * {{Z|lo}}: {{W+|lo|ຕັ່ງ}} * {{Z|lt}}: {{W+|lt|kėdė}} * {{Z|mk}}: {{W-|mk|стол|tr=stol}}, {{W-|mk|столица|tr=stolica}} * {{Z|mg}}: {{W+|mg|seza}} * {{Z|ms}}: {{W+|ms|kursi}} * {{Z|mt}}: {{W+|mt|siġġu}} * {{Z|gv}}: {{W-|gv|caair}} * {{Z|yua}}: {{W--|yua|k’anche’}} * {{Z|hu}}: {{W+|hu|szék}} * {{Z|mn}}: {{W+|mn|сандал|tr=sandal}} * {{Z|nrf}}: {{W--|nrf|caire}} * {{Z|no}}: {{W+|no|stol|nt}} * {{Z|oc}}: {{W+|oc|cadièra|m}} * {{Z|uz}}: {{W+|uz|o`rindiq}} * {{Z|uz}}: {{W|uz|o`rindiq}} * {{Z|pap}}: {{W--|pap|stul}} * {{Z|pl}}: {{W+|pl|krzesło}} * {{Z|pt}}: {{W+|pt|cadeira|m}}, {{W+|pt|assento}} * {{Z|kk}}: {{W+|kk|орындық|tr=orındıq}}, {{W-|kk|отырғыш|tr=otırğış}} * {{Z|ro}}: {{W+|ro|scaun}} * {{Z|ru}}: {{W+|ru|стул}} * {{Z|se}}: {{W--|se|stuollu}} * {{Z|srn}}: {{W--|srn|sturu}} * {{Z|sh}}: :* Latînî: {{W+|sh|stolac}}, {{W+|sh|stolica}} :* Kirîlî: {{W-|sh|столац}}, {{W+|sh|столица}} * {{Z|sk}}: {{W-|sk|stolička}} * {{Z|sl}}: {{W+|sl|stol}} * {{Z|dsb}}: {{W--|dsb|stoł}} * {{Z|hsb}}: {{W-|hsb|stólc}} * {{Z|es}}: {{W+|es|silla|m}} * {{Z|sw}}: {{W+|sw|kiti}} * {{Z|sv}}: {{W+|sv|stol}} * {{Z|shy}}: {{W--|shy|amɣim}} * {{Z|zdj}}: {{W--|zdj|hiri}} * {{Z|tg}}: {{W-|tg|сандали|tr=sandali}}, {{W+|tg|курсӣ|tr=kursī}} * {{Z|tl}}: {{W-|tl|sílya}}, {{W-|tl|úpuan}} * {{Z|ta}}: {{W+|ta|நாற்காலி|tr=nāṟkāli}} * {{Z|th}}: {{W+|th|เก้าอี้|tr=gâo-îi}} * {{Z|tr}}: {{W+|tr|sandalye}}, {{W|tr|sandalye}}, {{W|tr|kürsü}}, {{W|tr|koltuk}}, {{W|tr|iskemle}}, {{W|tr|oturak}}, {{W|tr|tabure}}, {{W|tr|sekmen}} * {{Z|tk}}: {{W-|tk|oturgyç}} * {{Z|ur}}: {{W-|ur|کرسی|tr=kursī}} * {{Z|ur}}: {{W|ur|کرسی|tr=kursī}} {{n}} * {{Z|uk}}: {{W+|uk|стілець|tr=stilécʹ}}, {{W-|uk|крісло|tr=kríslo}} * {{Z|vec}}: {{W|vec|carega}} * {{Z|vi}}: {{W|vi|ghế}} * {{Z|cy}}: {{W+|cy|cadair}} * {{Z|cy}}: {{W|cy|cadair}}, {{W|cy|ystôl}} * {{Z|km}}: {{W+|km|កៅអី|tr=kav ’əy}} * {{Z|yi}}: {{W|yi|שטול}} * {{Z|el}}: {{W+|el|καρέκλα|tr=karékla}} * {{Z|el}}: {{W|el|καρέκλα}} {{n}} (karékla) * {{Z|zu}}: {{W+|zu|isihlalo}} {{werger-bin}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb|sc=Latn}} # {{ckb-Arab|کورسی}} == {{ziman|zza}} == === Navdêr === {{navdêr|zza}} # [[kursî#Kurmancî|kursî]] #* {{bêmînak|zza}} nv6k8sb64uhbzzz6d7yyjwl9dpx0kew 6329823 6329822 2026-08-12T23:12:16Z Wikihez 7344 /* Etîmolojî */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6329823 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Chair.png|thumb|kursiyek]] {{navdêr|ku|z=m}}, {{k-ya nerm}}, {{r-ya nerm}} # {{f|ku|mobîlya}} Alavên bi[[pişt]] û bi[[pêpik]] yên bi [[giştî]] bo [[rûniştin]]a kesekî. #: {{mk|ku|Rûne ser '''kursiyê'''.}} #: {{mk|ku|Li ser '''kursiyê''' rûniştim.}} #: {{mk|ku|Ji ser '''kursiyê''' rabû.}} #: {{mk|ku|Hemû '''kursî''' girtî bûn.|Li ser her yekê kesek hebû û ti yên vala tine bûn.|rêz=1}} # [[diran|Diran]]ên [[paşîn]]. #* {{bêmînak|ku}} # [[meqam|Meqam]], [[cih]]. #* {{bêmînak|ku}} # [[meqam|Meqam]]ê [[paşa]]yan/[[desthilatdar]]an. #: {{hevmane|ku|text}} #: {{mk|ku|text û '''kursî'''}} # [[meqam|Meqam]]ê [[Xwedê]]. #: {{hevmane|ku|erş}} #: {{mk|ku|Ayeta '''Kursî'''|[[ayet]]a 2:255 a [[Qur'an]]ê ye û behsa bê[[hevta]]yiya [[Xwedê]] dike}} #* {{jêder|ku|jêgirtin="Nîveka dî çêkirin ji çarî çîz</br>'Erş û '''kursî''' û qelem lewhe temîz</br>Hate emrê Padîşahê [[Layezal]]"'' |Mela Hisênê Bateyî: ''Mewlûd''}} # {{e|ku|tehsîl}} [[îdare|Îdareya]] di [[nav]] [[unîversîte|unîversîteyan]] de ku [[li ser]] [[mesele|meseleyeke]] [[diyarkirî]] [[lêkolîn]] û [[ders|dersan]] [[dan|dide]]. #: {{nm|ku|'''Kursiya''' zimanê kurdî di sala 1945an de ji aliyê Roger Lescot (1914-1975) ve hate avakirin.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|کورسی}} * {{ku-kr|курси}} ==== Formên alternatîv ==== * {{g|ku|kursîk}} ==== Hevmane ==== * {{g|ku|sendelî}} * {{g|ku|sendelye}} * {{g|ku|rûniştek}} ==== Jê ==== * {{g|ku|rûniştin}} ser kursiyê * li ser kursiyê [[rûniştin]] * ji ser kursiyê [[rabûn]] * {{g|ku|kursîk}} ==== Etîmolojî ==== Taliyê ji {{ji|sux|ku|𒄖𒍝|tr=gu.za}}. Hevreha {{hv|ckb|کورسی}}, {{hv|zza|kursî}}, {{hv|fa|کورسی|tr=berê "kursî", niha "korsî"}}, {{hv|tr|kürsü}} (bi {{hv|ota|كرسى|ts=kursî}}), {{hv|ar|‏كرسي}} (bi erebiya standard "kursiyy", bi erebiya devkî "kursî, kirsî"), {{hv|syc|ܟܘܪܣܝܐ‎|tr=kursiya}}, {{hv|arc|כרסא|tr=kursa}} û {{g|arc|כסא|tr=kusa}}, {{hv|he|כיסא|tr=kissê}}, ugarîtî [[𐎋𐎒𐎜]] (kisủ), akadî [[𒄖𒍝]] / [[𒄑𒄖𒍝]] (kussû, kursû)... Peyv ji Rojhilata Navîn belav bûye Başûrê Asyayê jî: ûrdûyî {{g|ur|کرسی|tr=kursī}}, peştûyî {{g|ps|کورسۍ‎|tr=kursiy}}, hindî [[कुरसी]] (kursī), punjabî [[ਕੁਰਸੀ]] (kursī)... ;{{biçûk|Çavkanî: * {{kitêb|en|sernav=The Pennsylvania Sumerian Dictionary<t:Ferhenga sûmerî ya Pennsylvaniayê>|url=http://psd.museum.upenn.edu/nepsd-frame.html}} * {{kitêb|fr|url=http://www.assyrianlanguages.org/akkadian/dosearch.php?searchkey=16&language=id|sernav=Association Assyrophile de France: Dictionnaire akkadien<t:Rêkxistina Aşûrîdostan ya Fransayê: Ferhenga akadî>}} }} ==== Binêre herwiha ==== {{kol3|ku |balguh |balîf |doşek |doşk |lihêf |mobîlya |nivîn |palpişt |qaîdok |qenepe |rûniştek |sofa |text }} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|stoel}} * {{Z|sq}}: {{W-|sq|karrike|m}}, {{W+|sq|karrige}} * {{Z|de}}: {{W+|de|Stuhl|n}} * {{Z|ast}}: {{W+|ast|siella}} * {{Z|az}}: {{W+|az|stul}} * {{Z|eu}}: {{W+|eu|aulki}} * {{Z|bar}}: {{W--|bar|Sessl|n}} * {{Z|be}}: {{W-|be|стул|tr=stul}} * {{Z|br}}: {{W+|br|kador|m}} * {{Z|bg}}: {{W+|bg|стол|tr=stol}} * {{Z|cs}}: {{W+|cs|židle}} * {{Z|zh}}: {{W+|zh|椅子|tr=yǐzi}} * {{Z|da}}: {{W+|da|stol}} * {{Z|id}}: {{W+|id|kursi}} * {{Z|ary}}: {{W--|ary|كرسي}}, {{W--|ary|شلية}} *: {{Z|arz}}: {{W|arz|كرسي|tr=kursî}} {{n}} * {{Z|ar}}: {{W|ar|كرسي|tr=kursiyy}} {{n}}, {{W|ar|مقعد|tr=meq'ed}} {{n}} * {{Z|hy}}: {{W+|hy|աթոռ|tr=atʿoṙ}} * {{Z|eo}}: {{W+|eo|seĝo}} * {{Z|et}}: {{W+|et|tool}} * {{Z|ewo}}: {{W--|ewo|etoa}} * {{Z|fa}}: {{W+|fa|صندلی|tr=sendelî}}, {{W|fa|کرسی|tr=korsî}} * {{Z|fo}}: {{W-|fo|stólur}} * {{Z|fi}}: {{W+|fi|tuoli}}, {{W|fi|istuin}} * {{Z|frp}}: ''(savoyard)'' {{W--|frp|sala}} * {{Z|fr}}: {{W|fr|chaise}} * {{Z|fy}}: {{W-|fy|stoel}}, {{W-|fy|belech}} * {{Z|gd}}: {{W-|gd|suidheachan}}, {{W-|gd|cathair}} * {{Z|gl}}: {{W+|gl|cadeira|m}} * {{Z|ka}}: {{W+|ka|სკამი|tr=sḳami}} * {{Z|hi}}: {{W+|hi|कुरसी|tr=kursī}} * {{Z|nl}}: {{W+|nl|stoel}}, {{W+|nl|zetel}} * {{Z|he}}: {{W+|he|כיסא|tr=kisé}} * {{Z|io}}: {{W+|io|stulo}} * {{Z|ang}}: {{W-|ang|stol}} * {{Z|en}}: {{W+|en|chair}}, {{W+|en|seat}} * {{Z|ga}}: {{W+|ga|cathaoir}} * {{Z|it}}: {{W+|it|assedio}}, {{W+|it|sedia}}, {{W+|it|seggiola}} * {{Z|is}}: {{W+|is|stóll}} * {{Z|ja}}: {{W+|ja|椅子|tr=isu}}, {{W+|ja|いす|tr=isu}} * {{Z|ca}}: {{W+|ca|cadira}} * {{Z|ki}}: {{W--|ki|giti}} * {{Z|ko}}: {{W+|ko|의자|tr=uija}} * {{Z|kw}}: {{W-|kw|cadar}} * {{Z|co}}: {{W+|co|sedia}}, {{W-|co|carreca}} * {{Z|mfe}}: {{W--|mfe|sez}} * {{Z|la}}: {{W-|la|sella}}, {{W-|la|cathedra}}, {{W-|la|solium}} * {{Z|lv}}: {{W+|lv|krēsls}} * {{Z|lo}}: {{W+|lo|ຕັ່ງ}} * {{Z|lt}}: {{W+|lt|kėdė}} * {{Z|mk}}: {{W-|mk|стол|tr=stol}}, {{W-|mk|столица|tr=stolica}} * {{Z|mg}}: {{W+|mg|seza}} * {{Z|ms}}: {{W+|ms|kursi}} * {{Z|mt}}: {{W+|mt|siġġu}} * {{Z|gv}}: {{W-|gv|caair}} * {{Z|yua}}: {{W--|yua|k’anche’}} * {{Z|hu}}: {{W+|hu|szék}} * {{Z|mn}}: {{W+|mn|сандал|tr=sandal}} * {{Z|nrf}}: {{W--|nrf|caire}} * {{Z|no}}: {{W+|no|stol|nt}} * {{Z|oc}}: {{W+|oc|cadièra|m}} * {{Z|uz}}: {{W+|uz|o`rindiq}} * {{Z|uz}}: {{W|uz|o`rindiq}} * {{Z|pap}}: {{W--|pap|stul}} * {{Z|pl}}: {{W+|pl|krzesło}} * {{Z|pt}}: {{W+|pt|cadeira|m}}, {{W+|pt|assento}} * {{Z|kk}}: {{W+|kk|орындық|tr=orındıq}}, {{W-|kk|отырғыш|tr=otırğış}} * {{Z|ro}}: {{W+|ro|scaun}} * {{Z|ru}}: {{W+|ru|стул}} * {{Z|se}}: {{W--|se|stuollu}} * {{Z|srn}}: {{W--|srn|sturu}} * {{Z|sh}}: :* Latînî: {{W+|sh|stolac}}, {{W+|sh|stolica}} :* Kirîlî: {{W-|sh|столац}}, {{W+|sh|столица}} * {{Z|sk}}: {{W-|sk|stolička}} * {{Z|sl}}: {{W+|sl|stol}} * {{Z|dsb}}: {{W--|dsb|stoł}} * {{Z|hsb}}: {{W-|hsb|stólc}} * {{Z|es}}: {{W+|es|silla|m}} * {{Z|sw}}: {{W+|sw|kiti}} * {{Z|sv}}: {{W+|sv|stol}} * {{Z|shy}}: {{W--|shy|amɣim}} * {{Z|zdj}}: {{W--|zdj|hiri}} * {{Z|tg}}: {{W-|tg|сандали|tr=sandali}}, {{W+|tg|курсӣ|tr=kursī}} * {{Z|tl}}: {{W-|tl|sílya}}, {{W-|tl|úpuan}} * {{Z|ta}}: {{W+|ta|நாற்காலி|tr=nāṟkāli}} * {{Z|th}}: {{W+|th|เก้าอี้|tr=gâo-îi}} * {{Z|tr}}: {{W+|tr|sandalye}}, {{W|tr|sandalye}}, {{W|tr|kürsü}}, {{W|tr|koltuk}}, {{W|tr|iskemle}}, {{W|tr|oturak}}, {{W|tr|tabure}}, {{W|tr|sekmen}} * {{Z|tk}}: {{W-|tk|oturgyç}} * {{Z|ur}}: {{W-|ur|کرسی|tr=kursī}} * {{Z|ur}}: {{W|ur|کرسی|tr=kursī}} {{n}} * {{Z|uk}}: {{W+|uk|стілець|tr=stilécʹ}}, {{W-|uk|крісло|tr=kríslo}} * {{Z|vec}}: {{W|vec|carega}} * {{Z|vi}}: {{W|vi|ghế}} * {{Z|cy}}: {{W+|cy|cadair}} * {{Z|cy}}: {{W|cy|cadair}}, {{W|cy|ystôl}} * {{Z|km}}: {{W+|km|កៅអី|tr=kav ’əy}} * {{Z|yi}}: {{W|yi|שטול}} * {{Z|el}}: {{W+|el|καρέκλα|tr=karékla}} * {{Z|el}}: {{W|el|καρέκλα}} {{n}} (karékla) * {{Z|zu}}: {{W+|zu|isihlalo}} {{werger-bin}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb|sc=Latn}} # {{ckb-Arab|کورسی}} == {{ziman|zza}} == === Navdêr === {{navdêr|zza}} # [[kursî#Kurmancî|kursî]] #* {{bêmînak|zza}} qvupaihxnwam5sfavbigps7i21uq5vc 6329824 6329823 2026-08-12T23:12:57Z Wikihez 7344 /* Navdêr */ 6329824 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Chair.png|thumb|kursiyek]] {{navdêr|ku|z=m}}, {{k-ya nerm}}, {{r-ya nerm}} # {{f|ku|mobîlya}} Alavên bi[[pişt]] û bi[[pêpik]] yên bi [[giştî]] bo [[rûniştin]]a kesekî. #: {{mk|ku|Rûne ser '''kursiyê'''.}} #: {{mk|ku|Li ser '''kursiyê''' rûniştim.}} #: {{mk|ku|Ji ser '''kursiyê''' rabû.}} #: {{mk|ku|Hemû '''kursî''' girtî bûn.|Li ser her yekê kesek hebû û ti yên vala tine bûn.|rêz=1}} # [[diran|Diran]]ên [[paşîn]]. #* {{bêmînak|ku}} # [[meqam|Meqam]], [[cih]]. #* {{bêmînak|ku}} # [[meqam|Meqam]]ê [[paşa]]yan/[[desthilatdar]]an. #: {{hevmane|ku|text}} #: {{mk|ku|text û '''kursî'''}} # [[meqam|Meqam]]ê [[Xwedê]]. #: {{hevmane|ku|erş}} #: {{mk|ku|Ayeta '''Kursî'''|rêz=1|[[ayet]]a 2:255 a [[Qur'an]]ê ye û behsa bê[[hevta]]yiya [[Xwedê]] dike}} #* {{jêder|ku|jêgirtin="Nîveka dî çêkirin ji çarî çîz</br>'Erş û '''kursî''' û qelem lewhe temîz</br>Hate emrê Padîşahê [[Layezal]]"'' |Mela Hisênê Bateyî: ''Mewlûd''}} # {{e|ku|tehsîl}} [[îdare|Îdareya]] di [[nav]] [[unîversîte|unîversîteyan]] de ku [[li ser]] [[mesele|meseleyeke]] [[diyarkirî]] [[lêkolîn]] û [[ders|dersan]] [[dan|dide]]. #: {{nm|ku|'''Kursiya''' zimanê kurdî di sala 1945an de ji aliyê Roger Lescot (1914-1975) ve hate avakirin.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|کورسی}} * {{ku-kr|курси}} ==== Formên alternatîv ==== * {{g|ku|kursîk}} ==== Hevmane ==== * {{g|ku|sendelî}} * {{g|ku|sendelye}} * {{g|ku|rûniştek}} ==== Jê ==== * {{g|ku|rûniştin}} ser kursiyê * li ser kursiyê [[rûniştin]] * ji ser kursiyê [[rabûn]] * {{g|ku|kursîk}} ==== Etîmolojî ==== Taliyê ji {{ji|sux|ku|𒄖𒍝|tr=gu.za}}. Hevreha {{hv|ckb|کورسی}}, {{hv|zza|kursî}}, {{hv|fa|کورسی|tr=berê "kursî", niha "korsî"}}, {{hv|tr|kürsü}} (bi {{hv|ota|كرسى|ts=kursî}}), {{hv|ar|‏كرسي}} (bi erebiya standard "kursiyy", bi erebiya devkî "kursî, kirsî"), {{hv|syc|ܟܘܪܣܝܐ‎|tr=kursiya}}, {{hv|arc|כרסא|tr=kursa}} û {{g|arc|כסא|tr=kusa}}, {{hv|he|כיסא|tr=kissê}}, ugarîtî [[𐎋𐎒𐎜]] (kisủ), akadî [[𒄖𒍝]] / [[𒄑𒄖𒍝]] (kussû, kursû)... Peyv ji Rojhilata Navîn belav bûye Başûrê Asyayê jî: ûrdûyî {{g|ur|کرسی|tr=kursī}}, peştûyî {{g|ps|کورسۍ‎|tr=kursiy}}, hindî [[कुरसी]] (kursī), punjabî [[ਕੁਰਸੀ]] (kursī)... ;{{biçûk|Çavkanî: * {{kitêb|en|sernav=The Pennsylvania Sumerian Dictionary<t:Ferhenga sûmerî ya Pennsylvaniayê>|url=http://psd.museum.upenn.edu/nepsd-frame.html}} * {{kitêb|fr|url=http://www.assyrianlanguages.org/akkadian/dosearch.php?searchkey=16&language=id|sernav=Association Assyrophile de France: Dictionnaire akkadien<t:Rêkxistina Aşûrîdostan ya Fransayê: Ferhenga akadî>}} }} ==== Binêre herwiha ==== {{kol3|ku |balguh |balîf |doşek |doşk |lihêf |mobîlya |nivîn |palpişt |qaîdok |qenepe |rûniştek |sofa |text }} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|stoel}} * {{Z|sq}}: {{W-|sq|karrike|m}}, {{W+|sq|karrige}} * {{Z|de}}: {{W+|de|Stuhl|n}} * {{Z|ast}}: {{W+|ast|siella}} * {{Z|az}}: {{W+|az|stul}} * {{Z|eu}}: {{W+|eu|aulki}} * {{Z|bar}}: {{W--|bar|Sessl|n}} * {{Z|be}}: {{W-|be|стул|tr=stul}} * {{Z|br}}: {{W+|br|kador|m}} * {{Z|bg}}: {{W+|bg|стол|tr=stol}} * {{Z|cs}}: {{W+|cs|židle}} * {{Z|zh}}: {{W+|zh|椅子|tr=yǐzi}} * {{Z|da}}: {{W+|da|stol}} * {{Z|id}}: {{W+|id|kursi}} * {{Z|ary}}: {{W--|ary|كرسي}}, {{W--|ary|شلية}} *: {{Z|arz}}: {{W|arz|كرسي|tr=kursî}} {{n}} * {{Z|ar}}: {{W|ar|كرسي|tr=kursiyy}} {{n}}, {{W|ar|مقعد|tr=meq'ed}} {{n}} * {{Z|hy}}: {{W+|hy|աթոռ|tr=atʿoṙ}} * {{Z|eo}}: {{W+|eo|seĝo}} * {{Z|et}}: {{W+|et|tool}} * {{Z|ewo}}: {{W--|ewo|etoa}} * {{Z|fa}}: {{W+|fa|صندلی|tr=sendelî}}, {{W|fa|کرسی|tr=korsî}} * {{Z|fo}}: {{W-|fo|stólur}} * {{Z|fi}}: {{W+|fi|tuoli}}, {{W|fi|istuin}} * {{Z|frp}}: ''(savoyard)'' {{W--|frp|sala}} * {{Z|fr}}: {{W|fr|chaise}} * {{Z|fy}}: {{W-|fy|stoel}}, {{W-|fy|belech}} * {{Z|gd}}: {{W-|gd|suidheachan}}, {{W-|gd|cathair}} * {{Z|gl}}: {{W+|gl|cadeira|m}} * {{Z|ka}}: {{W+|ka|სკამი|tr=sḳami}} * {{Z|hi}}: {{W+|hi|कुरसी|tr=kursī}} * {{Z|nl}}: {{W+|nl|stoel}}, {{W+|nl|zetel}} * {{Z|he}}: {{W+|he|כיסא|tr=kisé}} * {{Z|io}}: {{W+|io|stulo}} * {{Z|ang}}: {{W-|ang|stol}} * {{Z|en}}: {{W+|en|chair}}, {{W+|en|seat}} * {{Z|ga}}: {{W+|ga|cathaoir}} * {{Z|it}}: {{W+|it|assedio}}, {{W+|it|sedia}}, {{W+|it|seggiola}} * {{Z|is}}: {{W+|is|stóll}} * {{Z|ja}}: {{W+|ja|椅子|tr=isu}}, {{W+|ja|いす|tr=isu}} * {{Z|ca}}: {{W+|ca|cadira}} * {{Z|ki}}: {{W--|ki|giti}} * {{Z|ko}}: {{W+|ko|의자|tr=uija}} * {{Z|kw}}: {{W-|kw|cadar}} * {{Z|co}}: {{W+|co|sedia}}, {{W-|co|carreca}} * {{Z|mfe}}: {{W--|mfe|sez}} * {{Z|la}}: {{W-|la|sella}}, {{W-|la|cathedra}}, {{W-|la|solium}} * {{Z|lv}}: {{W+|lv|krēsls}} * {{Z|lo}}: {{W+|lo|ຕັ່ງ}} * {{Z|lt}}: {{W+|lt|kėdė}} * {{Z|mk}}: {{W-|mk|стол|tr=stol}}, {{W-|mk|столица|tr=stolica}} * {{Z|mg}}: {{W+|mg|seza}} * {{Z|ms}}: {{W+|ms|kursi}} * {{Z|mt}}: {{W+|mt|siġġu}} * {{Z|gv}}: {{W-|gv|caair}} * {{Z|yua}}: {{W--|yua|k’anche’}} * {{Z|hu}}: {{W+|hu|szék}} * {{Z|mn}}: {{W+|mn|сандал|tr=sandal}} * {{Z|nrf}}: {{W--|nrf|caire}} * {{Z|no}}: {{W+|no|stol|nt}} * {{Z|oc}}: {{W+|oc|cadièra|m}} * {{Z|uz}}: {{W+|uz|o`rindiq}} * {{Z|uz}}: {{W|uz|o`rindiq}} * {{Z|pap}}: {{W--|pap|stul}} * {{Z|pl}}: {{W+|pl|krzesło}} * {{Z|pt}}: {{W+|pt|cadeira|m}}, {{W+|pt|assento}} * {{Z|kk}}: {{W+|kk|орындық|tr=orındıq}}, {{W-|kk|отырғыш|tr=otırğış}} * {{Z|ro}}: {{W+|ro|scaun}} * {{Z|ru}}: {{W+|ru|стул}} * {{Z|se}}: {{W--|se|stuollu}} * {{Z|srn}}: {{W--|srn|sturu}} * {{Z|sh}}: :* Latînî: {{W+|sh|stolac}}, {{W+|sh|stolica}} :* Kirîlî: {{W-|sh|столац}}, {{W+|sh|столица}} * {{Z|sk}}: {{W-|sk|stolička}} * {{Z|sl}}: {{W+|sl|stol}} * {{Z|dsb}}: {{W--|dsb|stoł}} * {{Z|hsb}}: {{W-|hsb|stólc}} * {{Z|es}}: {{W+|es|silla|m}} * {{Z|sw}}: {{W+|sw|kiti}} * {{Z|sv}}: {{W+|sv|stol}} * {{Z|shy}}: {{W--|shy|amɣim}} * {{Z|zdj}}: {{W--|zdj|hiri}} * {{Z|tg}}: {{W-|tg|сандали|tr=sandali}}, {{W+|tg|курсӣ|tr=kursī}} * {{Z|tl}}: {{W-|tl|sílya}}, {{W-|tl|úpuan}} * {{Z|ta}}: {{W+|ta|நாற்காலி|tr=nāṟkāli}} * {{Z|th}}: {{W+|th|เก้าอี้|tr=gâo-îi}} * {{Z|tr}}: {{W+|tr|sandalye}}, {{W|tr|sandalye}}, {{W|tr|kürsü}}, {{W|tr|koltuk}}, {{W|tr|iskemle}}, {{W|tr|oturak}}, {{W|tr|tabure}}, {{W|tr|sekmen}} * {{Z|tk}}: {{W-|tk|oturgyç}} * {{Z|ur}}: {{W-|ur|کرسی|tr=kursī}} * {{Z|ur}}: {{W|ur|کرسی|tr=kursī}} {{n}} * {{Z|uk}}: {{W+|uk|стілець|tr=stilécʹ}}, {{W-|uk|крісло|tr=kríslo}} * {{Z|vec}}: {{W|vec|carega}} * {{Z|vi}}: {{W|vi|ghế}} * {{Z|cy}}: {{W+|cy|cadair}} * {{Z|cy}}: {{W|cy|cadair}}, {{W|cy|ystôl}} * {{Z|km}}: {{W+|km|កៅអី|tr=kav ’əy}} * {{Z|yi}}: {{W|yi|שטול}} * {{Z|el}}: {{W+|el|καρέκλα|tr=karékla}} * {{Z|el}}: {{W|el|καρέκλα}} {{n}} (karékla) * {{Z|zu}}: {{W+|zu|isihlalo}} {{werger-bin}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb|sc=Latn}} # {{ckb-Arab|کورسی}} == {{ziman|zza}} == === Navdêr === {{navdêr|zza}} # [[kursî#Kurmancî|kursî]] #* {{bêmînak|zza}} 4adhqev392xi8j64woefyo5qmhd5y40 6329825 6329824 2026-08-12T23:15:56Z Wikihez 7344 +nimûneya bikaranînê bi amûra « [[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]] » (v1.7). 6329825 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Chair.png|thumb|kursiyek]] {{navdêr|ku|z=m}}, {{k-ya nerm}}, {{r-ya nerm}} # {{f|ku|mobîlya}} Alavên bi[[pişt]] û bi[[pêpik]] yên bi [[giştî]] bo [[rûniştin]]a kesekî. #: {{mk|ku|Rûne ser '''kursiyê'''.}} #: {{mk|ku|Li ser '''kursiyê''' rûniştim.}} #: {{mk|ku|Ji ser '''kursiyê''' rabû.}} #: {{mk|ku|Hemû '''kursî''' girtî bûn.|Li ser her yekê kesek hebû û ti yên vala tine bûn.|rêz=1}} # [[diran|Diran]]ên [[paşîn]]. #* {{bêmînak|ku}} # [[meqam|Meqam]], [[cih]]. #* {{bêmînak|ku}} # [[meqam|Meqam]]ê [[paşa]]yan/[[desthilatdar]]an. #: {{hevmane|ku|text}} #: {{mk|ku|text û '''kursî'''}} # [[meqam|Meqam]]ê [[Xwedê]]. #: {{hevmane|ku|erş}} #: {{mk|ku|Ayeta '''Kursî'''|rêz=1|[[ayet]]a 2:255 a [[Qur'an]]ê ye û behsa bê[[hevta]]yiya [[Xwedê]] dike}} #* {{jêder|ku|jêgirtin="Nîveka dî çêkirin ji çarî çîz</br>'Erş û '''kursî''' û qelem lewhe temîz</br>Hate emrê Padîşahê [[Layezal]]"'' |Mela Hisênê Bateyî: ''Mewlûd''}} #* {{jêder-kovar|ku|nivîskar=Clamence Scalbert-yücel|sernav=Perspektîfek dîrokî ji bo lêkolînên li ser Kurdan: Hevpeyvîn li gel Joyce Blau|kovar=The Journal of Mesopotamian Studies|terciman=Yılmaz Özdil|cild=3|hejmar=1|sal=2018|rûpel=203|url=https://dergipark.org.tr/tr/pub/jms/article/386434|jêgirtin=JB{{j-îzah|Joyce Blau}} : Kursiya zimanê kurdî di sala 1945an de ji aliyê Roger Lescot (1914-1975( ve hate avakirin. Di sala 1947an de Mîr Kamuran Bedir Xan (1895-1978(bû serokê Kursiyê. Wî heta sala 1970yan serokatiya Kursiya zimanê kurdî kir. Paşî ji sala 1970yan heta dema teqawutbûna xwe ya di sala 2000an de min serokatî kir.}} # {{e|ku|tehsîl}} [[îdare|Îdareya]] di [[nav]] [[unîversîte|unîversîteyan]] de ku [[li ser]] [[mesele|meseleyeke]] [[diyarkirî]] [[lêkolîn]] û [[ders|dersan]] [[dan|dide]]. #: {{nm|ku|'''Kursiya''' zimanê kurdî di sala 1945an de ji aliyê Roger Lescot (1914-1975) ve hate avakirin.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|کورسی}} * {{ku-kr|курси}} ==== Formên alternatîv ==== * {{g|ku|kursîk}} ==== Hevmane ==== * {{g|ku|sendelî}} * {{g|ku|sendelye}} * {{g|ku|rûniştek}} ==== Jê ==== * {{g|ku|rûniştin}} ser kursiyê * li ser kursiyê [[rûniştin]] * ji ser kursiyê [[rabûn]] * {{g|ku|kursîk}} ==== Etîmolojî ==== Taliyê ji {{ji|sux|ku|𒄖𒍝|tr=gu.za}}. Hevreha {{hv|ckb|کورسی}}, {{hv|zza|kursî}}, {{hv|fa|کورسی|tr=berê "kursî", niha "korsî"}}, {{hv|tr|kürsü}} (bi {{hv|ota|كرسى|ts=kursî}}), {{hv|ar|‏كرسي}} (bi erebiya standard "kursiyy", bi erebiya devkî "kursî, kirsî"), {{hv|syc|ܟܘܪܣܝܐ‎|tr=kursiya}}, {{hv|arc|כרסא|tr=kursa}} û {{g|arc|כסא|tr=kusa}}, {{hv|he|כיסא|tr=kissê}}, ugarîtî [[𐎋𐎒𐎜]] (kisủ), akadî [[𒄖𒍝]] / [[𒄑𒄖𒍝]] (kussû, kursû)... Peyv ji Rojhilata Navîn belav bûye Başûrê Asyayê jî: ûrdûyî {{g|ur|کرسی|tr=kursī}}, peştûyî {{g|ps|کورسۍ‎|tr=kursiy}}, hindî [[कुरसी]] (kursī), punjabî [[ਕੁਰਸੀ]] (kursī)... ;{{biçûk|Çavkanî: * {{kitêb|en|sernav=The Pennsylvania Sumerian Dictionary<t:Ferhenga sûmerî ya Pennsylvaniayê>|url=http://psd.museum.upenn.edu/nepsd-frame.html}} * {{kitêb|fr|url=http://www.assyrianlanguages.org/akkadian/dosearch.php?searchkey=16&language=id|sernav=Association Assyrophile de France: Dictionnaire akkadien<t:Rêkxistina Aşûrîdostan ya Fransayê: Ferhenga akadî>}} }} ==== Binêre herwiha ==== {{kol3|ku |balguh |balîf |doşek |doşk |lihêf |mobîlya |nivîn |palpişt |qaîdok |qenepe |rûniştek |sofa |text }} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|stoel}} * {{Z|sq}}: {{W-|sq|karrike|m}}, {{W+|sq|karrige}} * {{Z|de}}: {{W+|de|Stuhl|n}} * {{Z|ast}}: {{W+|ast|siella}} * {{Z|az}}: {{W+|az|stul}} * {{Z|eu}}: {{W+|eu|aulki}} * {{Z|bar}}: {{W--|bar|Sessl|n}} * {{Z|be}}: {{W-|be|стул|tr=stul}} * {{Z|br}}: {{W+|br|kador|m}} * {{Z|bg}}: {{W+|bg|стол|tr=stol}} * {{Z|cs}}: {{W+|cs|židle}} * {{Z|zh}}: {{W+|zh|椅子|tr=yǐzi}} * {{Z|da}}: {{W+|da|stol}} * {{Z|id}}: {{W+|id|kursi}} * {{Z|ary}}: {{W--|ary|كرسي}}, {{W--|ary|شلية}} *: {{Z|arz}}: {{W|arz|كرسي|tr=kursî}} {{n}} * {{Z|ar}}: {{W|ar|كرسي|tr=kursiyy}} {{n}}, {{W|ar|مقعد|tr=meq'ed}} {{n}} * {{Z|hy}}: {{W+|hy|աթոռ|tr=atʿoṙ}} * {{Z|eo}}: {{W+|eo|seĝo}} * {{Z|et}}: {{W+|et|tool}} * {{Z|ewo}}: {{W--|ewo|etoa}} * {{Z|fa}}: {{W+|fa|صندلی|tr=sendelî}}, {{W|fa|کرسی|tr=korsî}} * {{Z|fo}}: {{W-|fo|stólur}} * {{Z|fi}}: {{W+|fi|tuoli}}, {{W|fi|istuin}} * {{Z|frp}}: ''(savoyard)'' {{W--|frp|sala}} * {{Z|fr}}: {{W|fr|chaise}} * {{Z|fy}}: {{W-|fy|stoel}}, {{W-|fy|belech}} * {{Z|gd}}: {{W-|gd|suidheachan}}, {{W-|gd|cathair}} * {{Z|gl}}: {{W+|gl|cadeira|m}} * {{Z|ka}}: {{W+|ka|სკამი|tr=sḳami}} * {{Z|hi}}: {{W+|hi|कुरसी|tr=kursī}} * {{Z|nl}}: {{W+|nl|stoel}}, {{W+|nl|zetel}} * {{Z|he}}: {{W+|he|כיסא|tr=kisé}} * {{Z|io}}: {{W+|io|stulo}} * {{Z|ang}}: {{W-|ang|stol}} * {{Z|en}}: {{W+|en|chair}}, {{W+|en|seat}} * {{Z|ga}}: {{W+|ga|cathaoir}} * {{Z|it}}: {{W+|it|assedio}}, {{W+|it|sedia}}, {{W+|it|seggiola}} * {{Z|is}}: {{W+|is|stóll}} * {{Z|ja}}: {{W+|ja|椅子|tr=isu}}, {{W+|ja|いす|tr=isu}} * {{Z|ca}}: {{W+|ca|cadira}} * {{Z|ki}}: {{W--|ki|giti}} * {{Z|ko}}: {{W+|ko|의자|tr=uija}} * {{Z|kw}}: {{W-|kw|cadar}} * {{Z|co}}: {{W+|co|sedia}}, {{W-|co|carreca}} * {{Z|mfe}}: {{W--|mfe|sez}} * {{Z|la}}: {{W-|la|sella}}, {{W-|la|cathedra}}, {{W-|la|solium}} * {{Z|lv}}: {{W+|lv|krēsls}} * {{Z|lo}}: {{W+|lo|ຕັ່ງ}} * {{Z|lt}}: {{W+|lt|kėdė}} * {{Z|mk}}: {{W-|mk|стол|tr=stol}}, {{W-|mk|столица|tr=stolica}} * {{Z|mg}}: {{W+|mg|seza}} * {{Z|ms}}: {{W+|ms|kursi}} * {{Z|mt}}: {{W+|mt|siġġu}} * {{Z|gv}}: {{W-|gv|caair}} * {{Z|yua}}: {{W--|yua|k’anche’}} * {{Z|hu}}: {{W+|hu|szék}} * {{Z|mn}}: {{W+|mn|сандал|tr=sandal}} * {{Z|nrf}}: {{W--|nrf|caire}} * {{Z|no}}: {{W+|no|stol|nt}} * {{Z|oc}}: {{W+|oc|cadièra|m}} * {{Z|uz}}: {{W+|uz|o`rindiq}} * {{Z|uz}}: {{W|uz|o`rindiq}} * {{Z|pap}}: {{W--|pap|stul}} * {{Z|pl}}: {{W+|pl|krzesło}} * {{Z|pt}}: {{W+|pt|cadeira|m}}, {{W+|pt|assento}} * {{Z|kk}}: {{W+|kk|орындық|tr=orındıq}}, {{W-|kk|отырғыш|tr=otırğış}} * {{Z|ro}}: {{W+|ro|scaun}} * {{Z|ru}}: {{W+|ru|стул}} * {{Z|se}}: {{W--|se|stuollu}} * {{Z|srn}}: {{W--|srn|sturu}} * {{Z|sh}}: :* Latînî: {{W+|sh|stolac}}, {{W+|sh|stolica}} :* Kirîlî: {{W-|sh|столац}}, {{W+|sh|столица}} * {{Z|sk}}: {{W-|sk|stolička}} * {{Z|sl}}: {{W+|sl|stol}} * {{Z|dsb}}: {{W--|dsb|stoł}} * {{Z|hsb}}: {{W-|hsb|stólc}} * {{Z|es}}: {{W+|es|silla|m}} * {{Z|sw}}: {{W+|sw|kiti}} * {{Z|sv}}: {{W+|sv|stol}} * {{Z|shy}}: {{W--|shy|amɣim}} * {{Z|zdj}}: {{W--|zdj|hiri}} * {{Z|tg}}: {{W-|tg|сандали|tr=sandali}}, {{W+|tg|курсӣ|tr=kursī}} * {{Z|tl}}: {{W-|tl|sílya}}, {{W-|tl|úpuan}} * {{Z|ta}}: {{W+|ta|நாற்காலி|tr=nāṟkāli}} * {{Z|th}}: {{W+|th|เก้าอี้|tr=gâo-îi}} * {{Z|tr}}: {{W+|tr|sandalye}}, {{W|tr|sandalye}}, {{W|tr|kürsü}}, {{W|tr|koltuk}}, {{W|tr|iskemle}}, {{W|tr|oturak}}, {{W|tr|tabure}}, {{W|tr|sekmen}} * {{Z|tk}}: {{W-|tk|oturgyç}} * {{Z|ur}}: {{W-|ur|کرسی|tr=kursī}} * {{Z|ur}}: {{W|ur|کرسی|tr=kursī}} {{n}} * {{Z|uk}}: {{W+|uk|стілець|tr=stilécʹ}}, {{W-|uk|крісло|tr=kríslo}} * {{Z|vec}}: {{W|vec|carega}} * {{Z|vi}}: {{W|vi|ghế}} * {{Z|cy}}: {{W+|cy|cadair}} * {{Z|cy}}: {{W|cy|cadair}}, {{W|cy|ystôl}} * {{Z|km}}: {{W+|km|កៅអី|tr=kav ’əy}} * {{Z|yi}}: {{W|yi|שטול}} * {{Z|el}}: {{W+|el|καρέκλα|tr=karékla}} * {{Z|el}}: {{W|el|καρέκλα}} {{n}} (karékla) * {{Z|zu}}: {{W+|zu|isihlalo}} {{werger-bin}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb|sc=Latn}} # {{ckb-Arab|کورسی}} == {{ziman|zza}} == === Navdêr === {{navdêr|zza}} # [[kursî#Kurmancî|kursî]] #* {{bêmînak|zza}} k2d7hkjidq4310aa2tpjua3mt0a3k0u 6329826 6329825 2026-08-12T23:16:19Z Wikihez 7344 6329826 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Chair.png|thumb|kursiyek]] {{navdêr|ku|z=m}}, {{k-ya nerm}}, {{r-ya nerm}} # {{f|ku|mobîlya}} Alavên bi[[pişt]] û bi[[pêpik]] yên bi [[giştî]] bo [[rûniştin]]a kesekî. #: {{mk|ku|Rûne ser '''kursiyê'''.}} #: {{mk|ku|Li ser '''kursiyê''' rûniştim.}} #: {{mk|ku|Ji ser '''kursiyê''' rabû.}} #: {{mk|ku|Hemû '''kursî''' girtî bûn.|Li ser her yekê kesek hebû û ti yên vala tine bûn.|rêz=1}} # [[diran|Diran]]ên [[paşîn]]. #* {{bêmînak|ku}} # [[meqam|Meqam]], [[cih]]. #* {{bêmînak|ku}} # [[meqam|Meqam]]ê [[paşa]]yan/[[desthilatdar]]an. #: {{hevmane|ku|text}} #: {{mk|ku|text û '''kursî'''}} # [[meqam|Meqam]]ê [[Xwedê]]. #: {{hevmane|ku|erş}} #: {{mk|ku|Ayeta '''Kursî'''|rêz=1|[[ayet]]a 2:255 a [[Qur'an]]ê ye û behsa bê[[hevta]]yiya [[Xwedê]] dike}} #* {{jêder|ku|jêgirtin="Nîveka dî çêkirin ji çarî çîz</br>'Erş û '''kursî''' û qelem lewhe temîz</br>Hate emrê Padîşahê [[Layezal]]"'' |Mela Hisênê Bateyî: ''Mewlûd''}} # {{e|ku|tehsîl}} [[îdare|Îdareya]] di [[nav]] [[unîversîte|unîversîteyan]] de ku [[li ser]] [[mesele|meseleyeke]] [[diyarkirî]] [[lêkolîn]] û [[ders|dersan]] [[dan|dide]]. #* {{jêder-kovar|ku|nivîskar=Clamence Scalbert-yücel|sernav=Perspektîfek dîrokî ji bo lêkolînên li ser Kurdan: Hevpeyvîn li gel Joyce Blau|kovar=The Journal of Mesopotamian Studies|terciman=Yılmaz Özdil|cild=3|hejmar=1|sal=2018|rûpel=203|url=https://dergipark.org.tr/tr/pub/jms/article/386434|jêgirtin=JB{{j-îzah|Joyce Blau}} : '''Kursiya''' zimanê kurdî di sala 1945an de ji aliyê Roger Lescot (1914-1975( ve hate avakirin. Di sala 1947an de Mîr Kamuran Bedir Xan (1895-1978(bû serokê Kursiyê. Wî heta sala 1970yan serokatiya Kursiya zimanê kurdî kir. Paşî ji sala 1970yan heta dema teqawutbûna xwe ya di sala 2000an de min serokatî kir.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|کورسی}} * {{ku-kr|курси}} ==== Formên alternatîv ==== * {{g|ku|kursîk}} ==== Hevmane ==== * {{g|ku|sendelî}} * {{g|ku|sendelye}} * {{g|ku|rûniştek}} ==== Jê ==== * {{g|ku|rûniştin}} ser kursiyê * li ser kursiyê [[rûniştin]] * ji ser kursiyê [[rabûn]] * {{g|ku|kursîk}} ==== Etîmolojî ==== Taliyê ji {{ji|sux|ku|𒄖𒍝|tr=gu.za}}. Hevreha {{hv|ckb|کورسی}}, {{hv|zza|kursî}}, {{hv|fa|کورسی|tr=berê "kursî", niha "korsî"}}, {{hv|tr|kürsü}} (bi {{hv|ota|كرسى|ts=kursî}}), {{hv|ar|‏كرسي}} (bi erebiya standard "kursiyy", bi erebiya devkî "kursî, kirsî"), {{hv|syc|ܟܘܪܣܝܐ‎|tr=kursiya}}, {{hv|arc|כרסא|tr=kursa}} û {{g|arc|כסא|tr=kusa}}, {{hv|he|כיסא|tr=kissê}}, ugarîtî [[𐎋𐎒𐎜]] (kisủ), akadî [[𒄖𒍝]] / [[𒄑𒄖𒍝]] (kussû, kursû)... Peyv ji Rojhilata Navîn belav bûye Başûrê Asyayê jî: ûrdûyî {{g|ur|کرسی|tr=kursī}}, peştûyî {{g|ps|کورسۍ‎|tr=kursiy}}, hindî [[कुरसी]] (kursī), punjabî [[ਕੁਰਸੀ]] (kursī)... ;{{biçûk|Çavkanî: * {{kitêb|en|sernav=The Pennsylvania Sumerian Dictionary<t:Ferhenga sûmerî ya Pennsylvaniayê>|url=http://psd.museum.upenn.edu/nepsd-frame.html}} * {{kitêb|fr|url=http://www.assyrianlanguages.org/akkadian/dosearch.php?searchkey=16&language=id|sernav=Association Assyrophile de France: Dictionnaire akkadien<t:Rêkxistina Aşûrîdostan ya Fransayê: Ferhenga akadî>}} }} ==== Binêre herwiha ==== {{kol3|ku |balguh |balîf |doşek |doşk |lihêf |mobîlya |nivîn |palpişt |qaîdok |qenepe |rûniştek |sofa |text }} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|stoel}} * {{Z|sq}}: {{W-|sq|karrike|m}}, {{W+|sq|karrige}} * {{Z|de}}: {{W+|de|Stuhl|n}} * {{Z|ast}}: {{W+|ast|siella}} * {{Z|az}}: {{W+|az|stul}} * {{Z|eu}}: {{W+|eu|aulki}} * {{Z|bar}}: {{W--|bar|Sessl|n}} * {{Z|be}}: {{W-|be|стул|tr=stul}} * {{Z|br}}: {{W+|br|kador|m}} * {{Z|bg}}: {{W+|bg|стол|tr=stol}} * {{Z|cs}}: {{W+|cs|židle}} * {{Z|zh}}: {{W+|zh|椅子|tr=yǐzi}} * {{Z|da}}: {{W+|da|stol}} * {{Z|id}}: {{W+|id|kursi}} * {{Z|ary}}: {{W--|ary|كرسي}}, {{W--|ary|شلية}} *: {{Z|arz}}: {{W|arz|كرسي|tr=kursî}} {{n}} * {{Z|ar}}: {{W|ar|كرسي|tr=kursiyy}} {{n}}, {{W|ar|مقعد|tr=meq'ed}} {{n}} * {{Z|hy}}: {{W+|hy|աթոռ|tr=atʿoṙ}} * {{Z|eo}}: {{W+|eo|seĝo}} * {{Z|et}}: {{W+|et|tool}} * {{Z|ewo}}: {{W--|ewo|etoa}} * {{Z|fa}}: {{W+|fa|صندلی|tr=sendelî}}, {{W|fa|کرسی|tr=korsî}} * {{Z|fo}}: {{W-|fo|stólur}} * {{Z|fi}}: {{W+|fi|tuoli}}, {{W|fi|istuin}} * {{Z|frp}}: ''(savoyard)'' {{W--|frp|sala}} * {{Z|fr}}: {{W|fr|chaise}} * {{Z|fy}}: {{W-|fy|stoel}}, {{W-|fy|belech}} * {{Z|gd}}: {{W-|gd|suidheachan}}, {{W-|gd|cathair}} * {{Z|gl}}: {{W+|gl|cadeira|m}} * {{Z|ka}}: {{W+|ka|სკამი|tr=sḳami}} * {{Z|hi}}: {{W+|hi|कुरसी|tr=kursī}} * {{Z|nl}}: {{W+|nl|stoel}}, {{W+|nl|zetel}} * {{Z|he}}: {{W+|he|כיסא|tr=kisé}} * {{Z|io}}: {{W+|io|stulo}} * {{Z|ang}}: {{W-|ang|stol}} * {{Z|en}}: {{W+|en|chair}}, {{W+|en|seat}} * {{Z|ga}}: {{W+|ga|cathaoir}} * {{Z|it}}: {{W+|it|assedio}}, {{W+|it|sedia}}, {{W+|it|seggiola}} * {{Z|is}}: {{W+|is|stóll}} * {{Z|ja}}: {{W+|ja|椅子|tr=isu}}, {{W+|ja|いす|tr=isu}} * {{Z|ca}}: {{W+|ca|cadira}} * {{Z|ki}}: {{W--|ki|giti}} * {{Z|ko}}: {{W+|ko|의자|tr=uija}} * {{Z|kw}}: {{W-|kw|cadar}} * {{Z|co}}: {{W+|co|sedia}}, {{W-|co|carreca}} * {{Z|mfe}}: {{W--|mfe|sez}} * {{Z|la}}: {{W-|la|sella}}, {{W-|la|cathedra}}, {{W-|la|solium}} * {{Z|lv}}: {{W+|lv|krēsls}} * {{Z|lo}}: {{W+|lo|ຕັ່ງ}} * {{Z|lt}}: {{W+|lt|kėdė}} * {{Z|mk}}: {{W-|mk|стол|tr=stol}}, {{W-|mk|столица|tr=stolica}} * {{Z|mg}}: {{W+|mg|seza}} * {{Z|ms}}: {{W+|ms|kursi}} * {{Z|mt}}: {{W+|mt|siġġu}} * {{Z|gv}}: {{W-|gv|caair}} * {{Z|yua}}: {{W--|yua|k’anche’}} * {{Z|hu}}: {{W+|hu|szék}} * {{Z|mn}}: {{W+|mn|сандал|tr=sandal}} * {{Z|nrf}}: {{W--|nrf|caire}} * {{Z|no}}: {{W+|no|stol|nt}} * {{Z|oc}}: {{W+|oc|cadièra|m}} * {{Z|uz}}: {{W+|uz|o`rindiq}} * {{Z|uz}}: {{W|uz|o`rindiq}} * {{Z|pap}}: {{W--|pap|stul}} * {{Z|pl}}: {{W+|pl|krzesło}} * {{Z|pt}}: {{W+|pt|cadeira|m}}, {{W+|pt|assento}} * {{Z|kk}}: {{W+|kk|орындық|tr=orındıq}}, {{W-|kk|отырғыш|tr=otırğış}} * {{Z|ro}}: {{W+|ro|scaun}} * {{Z|ru}}: {{W+|ru|стул}} * {{Z|se}}: {{W--|se|stuollu}} * {{Z|srn}}: {{W--|srn|sturu}} * {{Z|sh}}: :* Latînî: {{W+|sh|stolac}}, {{W+|sh|stolica}} :* Kirîlî: {{W-|sh|столац}}, {{W+|sh|столица}} * {{Z|sk}}: {{W-|sk|stolička}} * {{Z|sl}}: {{W+|sl|stol}} * {{Z|dsb}}: {{W--|dsb|stoł}} * {{Z|hsb}}: {{W-|hsb|stólc}} * {{Z|es}}: {{W+|es|silla|m}} * {{Z|sw}}: {{W+|sw|kiti}} * {{Z|sv}}: {{W+|sv|stol}} * {{Z|shy}}: {{W--|shy|amɣim}} * {{Z|zdj}}: {{W--|zdj|hiri}} * {{Z|tg}}: {{W-|tg|сандали|tr=sandali}}, {{W+|tg|курсӣ|tr=kursī}} * {{Z|tl}}: {{W-|tl|sílya}}, {{W-|tl|úpuan}} * {{Z|ta}}: {{W+|ta|நாற்காலி|tr=nāṟkāli}} * {{Z|th}}: {{W+|th|เก้าอี้|tr=gâo-îi}} * {{Z|tr}}: {{W+|tr|sandalye}}, {{W|tr|sandalye}}, {{W|tr|kürsü}}, {{W|tr|koltuk}}, {{W|tr|iskemle}}, {{W|tr|oturak}}, {{W|tr|tabure}}, {{W|tr|sekmen}} * {{Z|tk}}: {{W-|tk|oturgyç}} * {{Z|ur}}: {{W-|ur|کرسی|tr=kursī}} * {{Z|ur}}: {{W|ur|کرسی|tr=kursī}} {{n}} * {{Z|uk}}: {{W+|uk|стілець|tr=stilécʹ}}, {{W-|uk|крісло|tr=kríslo}} * {{Z|vec}}: {{W|vec|carega}} * {{Z|vi}}: {{W|vi|ghế}} * {{Z|cy}}: {{W+|cy|cadair}} * {{Z|cy}}: {{W|cy|cadair}}, {{W|cy|ystôl}} * {{Z|km}}: {{W+|km|កៅអី|tr=kav ’əy}} * {{Z|yi}}: {{W|yi|שטול}} * {{Z|el}}: {{W+|el|καρέκλα|tr=karékla}} * {{Z|el}}: {{W|el|καρέκλα}} {{n}} (karékla) * {{Z|zu}}: {{W+|zu|isihlalo}} {{werger-bin}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb|sc=Latn}} # {{ckb-Arab|کورسی}} == {{ziman|zza}} == === Navdêr === {{navdêr|zza}} # [[kursî#Kurmancî|kursî]] #* {{bêmînak|zza}} 20m7q3zvkofp3bz5bnjztu6lgzhzn61 6329827 6329826 2026-08-12T23:17:43Z Wikihez 7344 6329827 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Chair.png|thumb|kursiyek]] {{navdêr|ku|z=m}}, {{k-ya nerm}}, {{r-ya nerm}} # {{f|ku|mobîlya}} Alavên bi[[pişt]] û bi[[pêpik]] yên bi [[giştî]] bo [[rûniştin]]a kesekî. #: {{mk|ku|Rûne ser '''kursiyê'''.}} #: {{mk|ku|Li ser '''kursiyê''' rûniştim.}} #: {{mk|ku|Ji ser '''kursiyê''' rabû.}} #: {{mk|ku|Hemû '''kursî''' girtî bûn.|Li ser her yekê kesek hebû û ti yên vala tine bûn.|rêz=1}} # [[diran|Diran]]ên [[paşîn]]. #* {{bêmînak|ku}} # [[meqam|Meqam]], [[cih]]. #* {{bêmînak|ku}} # [[meqam|Meqam]]ê [[paşa]]yan/[[desthilatdar]]an. #: {{hevmane|ku|text}} #: {{mk|ku|text û '''kursî'''}} # [[meqam|Meqam]]ê [[Xwedê]]. #: {{hevmane|ku|erş}} #: {{mk|ku|Ayeta '''Kursî'''|rêz=1|[[ayet]]a 2:255 a [[Qur'an]]ê ye û behsa bê[[hevta]]yiya [[Xwedê]] dike}} #* {{mewlûd|jêgirtin=Nîveka dî çêkirin ji çarî çîz<br>'Erş û '''kursî''' û qelem lewhe temîz<br>Hate emrê Padîşahê Layezal}} # {{e|ku|tehsîl}} [[îdare|Îdareya]] di [[nav]] [[unîversîte|unîversîteyan]] de ku [[li ser]] [[mesele|meseleyeke]] [[diyarkirî]] [[lêkolîn]] û [[ders|dersan]] [[dan|dide]]. #* {{jêder-kovar|ku|nivîskar=Clamence Scalbert-yücel|sernav=Perspektîfek dîrokî ji bo lêkolînên li ser Kurdan: Hevpeyvîn li gel Joyce Blau|kovar=The Journal of Mesopotamian Studies|terciman=Yılmaz Özdil|cild=3|hejmar=1|sal=2018|rûpel=203|url=https://dergipark.org.tr/tr/pub/jms/article/386434|jêgirtin=JB{{j-îzah|Joyce Blau}} : '''Kursiya''' zimanê kurdî di sala 1945an de ji aliyê Roger Lescot (1914-1975( ve hate avakirin. Di sala 1947an de Mîr Kamuran Bedir Xan (1895-1978(bû serokê Kursiyê. Wî heta sala 1970yan serokatiya Kursiya zimanê kurdî kir. Paşî ji sala 1970yan heta dema teqawutbûna xwe ya di sala 2000an de min serokatî kir.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|کورسی}} * {{ku-kr|курси}} ==== Formên alternatîv ==== * {{g|ku|kursîk}} ==== Hevmane ==== * {{g|ku|sendelî}} * {{g|ku|sendelye}} * {{g|ku|rûniştek}} ==== Jê ==== * {{g|ku|rûniştin}} ser kursiyê * li ser kursiyê [[rûniştin]] * ji ser kursiyê [[rabûn]] * {{g|ku|kursîk}} ==== Etîmolojî ==== Taliyê ji {{ji|sux|ku|𒄖𒍝|tr=gu.za}}. Hevreha {{hv|ckb|کورسی}}, {{hv|zza|kursî}}, {{hv|fa|کورسی|tr=berê "kursî", niha "korsî"}}, {{hv|tr|kürsü}} (bi {{hv|ota|كرسى|ts=kursî}}), {{hv|ar|‏كرسي}} (bi erebiya standard "kursiyy", bi erebiya devkî "kursî, kirsî"), {{hv|syc|ܟܘܪܣܝܐ‎|tr=kursiya}}, {{hv|arc|כרסא|tr=kursa}} û {{g|arc|כסא|tr=kusa}}, {{hv|he|כיסא|tr=kissê}}, ugarîtî [[𐎋𐎒𐎜]] (kisủ), akadî [[𒄖𒍝]] / [[𒄑𒄖𒍝]] (kussû, kursû)... Peyv ji Rojhilata Navîn belav bûye Başûrê Asyayê jî: ûrdûyî {{g|ur|کرسی|tr=kursī}}, peştûyî {{g|ps|کورسۍ‎|tr=kursiy}}, hindî [[कुरसी]] (kursī), punjabî [[ਕੁਰਸੀ]] (kursī)... ;{{biçûk|Çavkanî: * {{kitêb|en|sernav=The Pennsylvania Sumerian Dictionary<t:Ferhenga sûmerî ya Pennsylvaniayê>|url=http://psd.museum.upenn.edu/nepsd-frame.html}} * {{kitêb|fr|url=http://www.assyrianlanguages.org/akkadian/dosearch.php?searchkey=16&language=id|sernav=Association Assyrophile de France: Dictionnaire akkadien<t:Rêkxistina Aşûrîdostan ya Fransayê: Ferhenga akadî>}} }} ==== Binêre herwiha ==== {{kol3|ku |balguh |balîf |doşek |doşk |lihêf |mobîlya |nivîn |palpişt |qaîdok |qenepe |rûniştek |sofa |text }} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|stoel}} * {{Z|sq}}: {{W-|sq|karrike|m}}, {{W+|sq|karrige}} * {{Z|de}}: {{W+|de|Stuhl|n}} * {{Z|ast}}: {{W+|ast|siella}} * {{Z|az}}: {{W+|az|stul}} * {{Z|eu}}: {{W+|eu|aulki}} * {{Z|bar}}: {{W--|bar|Sessl|n}} * {{Z|be}}: {{W-|be|стул|tr=stul}} * {{Z|br}}: {{W+|br|kador|m}} * {{Z|bg}}: {{W+|bg|стол|tr=stol}} * {{Z|cs}}: {{W+|cs|židle}} * {{Z|zh}}: {{W+|zh|椅子|tr=yǐzi}} * {{Z|da}}: {{W+|da|stol}} * {{Z|id}}: {{W+|id|kursi}} * {{Z|ary}}: {{W--|ary|كرسي}}, {{W--|ary|شلية}} *: {{Z|arz}}: {{W|arz|كرسي|tr=kursî}} {{n}} * {{Z|ar}}: {{W|ar|كرسي|tr=kursiyy}} {{n}}, {{W|ar|مقعد|tr=meq'ed}} {{n}} * {{Z|hy}}: {{W+|hy|աթոռ|tr=atʿoṙ}} * {{Z|eo}}: {{W+|eo|seĝo}} * {{Z|et}}: {{W+|et|tool}} * {{Z|ewo}}: {{W--|ewo|etoa}} * {{Z|fa}}: {{W+|fa|صندلی|tr=sendelî}}, {{W|fa|کرسی|tr=korsî}} * {{Z|fo}}: {{W-|fo|stólur}} * {{Z|fi}}: {{W+|fi|tuoli}}, {{W|fi|istuin}} * {{Z|frp}}: ''(savoyard)'' {{W--|frp|sala}} * {{Z|fr}}: {{W|fr|chaise}} * {{Z|fy}}: {{W-|fy|stoel}}, {{W-|fy|belech}} * {{Z|gd}}: {{W-|gd|suidheachan}}, {{W-|gd|cathair}} * {{Z|gl}}: {{W+|gl|cadeira|m}} * {{Z|ka}}: {{W+|ka|სკამი|tr=sḳami}} * {{Z|hi}}: {{W+|hi|कुरसी|tr=kursī}} * {{Z|nl}}: {{W+|nl|stoel}}, {{W+|nl|zetel}} * {{Z|he}}: {{W+|he|כיסא|tr=kisé}} * {{Z|io}}: {{W+|io|stulo}} * {{Z|ang}}: {{W-|ang|stol}} * {{Z|en}}: {{W+|en|chair}}, {{W+|en|seat}} * {{Z|ga}}: {{W+|ga|cathaoir}} * {{Z|it}}: {{W+|it|assedio}}, {{W+|it|sedia}}, {{W+|it|seggiola}} * {{Z|is}}: {{W+|is|stóll}} * {{Z|ja}}: {{W+|ja|椅子|tr=isu}}, {{W+|ja|いす|tr=isu}} * {{Z|ca}}: {{W+|ca|cadira}} * {{Z|ki}}: {{W--|ki|giti}} * {{Z|ko}}: {{W+|ko|의자|tr=uija}} * {{Z|kw}}: {{W-|kw|cadar}} * {{Z|co}}: {{W+|co|sedia}}, {{W-|co|carreca}} * {{Z|mfe}}: {{W--|mfe|sez}} * {{Z|la}}: {{W-|la|sella}}, {{W-|la|cathedra}}, {{W-|la|solium}} * {{Z|lv}}: {{W+|lv|krēsls}} * {{Z|lo}}: {{W+|lo|ຕັ່ງ}} * {{Z|lt}}: {{W+|lt|kėdė}} * {{Z|mk}}: {{W-|mk|стол|tr=stol}}, {{W-|mk|столица|tr=stolica}} * {{Z|mg}}: {{W+|mg|seza}} * {{Z|ms}}: {{W+|ms|kursi}} * {{Z|mt}}: {{W+|mt|siġġu}} * {{Z|gv}}: {{W-|gv|caair}} * {{Z|yua}}: {{W--|yua|k’anche’}} * {{Z|hu}}: {{W+|hu|szék}} * {{Z|mn}}: {{W+|mn|сандал|tr=sandal}} * {{Z|nrf}}: {{W--|nrf|caire}} * {{Z|no}}: {{W+|no|stol|nt}} * {{Z|oc}}: {{W+|oc|cadièra|m}} * {{Z|uz}}: {{W+|uz|o`rindiq}} * {{Z|uz}}: {{W|uz|o`rindiq}} * {{Z|pap}}: {{W--|pap|stul}} * {{Z|pl}}: {{W+|pl|krzesło}} * {{Z|pt}}: {{W+|pt|cadeira|m}}, {{W+|pt|assento}} * {{Z|kk}}: {{W+|kk|орындық|tr=orındıq}}, {{W-|kk|отырғыш|tr=otırğış}} * {{Z|ro}}: {{W+|ro|scaun}} * {{Z|ru}}: {{W+|ru|стул}} * {{Z|se}}: {{W--|se|stuollu}} * {{Z|srn}}: {{W--|srn|sturu}} * {{Z|sh}}: :* Latînî: {{W+|sh|stolac}}, {{W+|sh|stolica}} :* Kirîlî: {{W-|sh|столац}}, {{W+|sh|столица}} * {{Z|sk}}: {{W-|sk|stolička}} * {{Z|sl}}: {{W+|sl|stol}} * {{Z|dsb}}: {{W--|dsb|stoł}} * {{Z|hsb}}: {{W-|hsb|stólc}} * {{Z|es}}: {{W+|es|silla|m}} * {{Z|sw}}: {{W+|sw|kiti}} * {{Z|sv}}: {{W+|sv|stol}} * {{Z|shy}}: {{W--|shy|amɣim}} * {{Z|zdj}}: {{W--|zdj|hiri}} * {{Z|tg}}: {{W-|tg|сандали|tr=sandali}}, {{W+|tg|курсӣ|tr=kursī}} * {{Z|tl}}: {{W-|tl|sílya}}, {{W-|tl|úpuan}} * {{Z|ta}}: {{W+|ta|நாற்காலி|tr=nāṟkāli}} * {{Z|th}}: {{W+|th|เก้าอี้|tr=gâo-îi}} * {{Z|tr}}: {{W+|tr|sandalye}}, {{W|tr|sandalye}}, {{W|tr|kürsü}}, {{W|tr|koltuk}}, {{W|tr|iskemle}}, {{W|tr|oturak}}, {{W|tr|tabure}}, {{W|tr|sekmen}} * {{Z|tk}}: {{W-|tk|oturgyç}} * {{Z|ur}}: {{W-|ur|کرسی|tr=kursī}} * {{Z|ur}}: {{W|ur|کرسی|tr=kursī}} {{n}} * {{Z|uk}}: {{W+|uk|стілець|tr=stilécʹ}}, {{W-|uk|крісло|tr=kríslo}} * {{Z|vec}}: {{W|vec|carega}} * {{Z|vi}}: {{W|vi|ghế}} * {{Z|cy}}: {{W+|cy|cadair}} * {{Z|cy}}: {{W|cy|cadair}}, {{W|cy|ystôl}} * {{Z|km}}: {{W+|km|កៅអី|tr=kav ’əy}} * {{Z|yi}}: {{W|yi|שטול}} * {{Z|el}}: {{W+|el|καρέκλα|tr=karékla}} * {{Z|el}}: {{W|el|καρέκλα}} {{n}} (karékla) * {{Z|zu}}: {{W+|zu|isihlalo}} {{werger-bin}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb|sc=Latn}} # {{ckb-Arab|کورسی}} == {{ziman|zza}} == === Navdêr === {{navdêr|zza}} # [[kursî#Kurmancî|kursî]] #* {{bêmînak|zza}} hnt2ncopweo9yf313ptd2rffs3d585i 6329839 6329827 2026-08-12T23:41:07Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6329839 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Chair.png|thumb|kursiyek]] {{navdêr|ku|z=m}}, {{k-ya nerm}}, {{r-ya nerm}} # {{f|ku|mobîlya}} Alavên bi[[pişt]] û bi[[pêpik]] yên bi [[giştî]] bo [[rûniştin]]a kesekî. #: {{mk|ku|Rûne ser '''kursiyê'''.}} #: {{mk|ku|Li ser '''kursiyê''' rûniştim.}} #: {{mk|ku|Ji ser '''kursiyê''' rabû.}} #: {{mk|ku|Hemû '''kursî''' girtî bûn.|Li ser her yekê kesek hebû û ti yên vala tine bûn.|rêz=1}} # [[diran|Diran]]ên [[paşîn]]. #* {{bêmînak|ku}} # [[meqam|Meqam]], [[cih]]. #* {{bêmînak|ku}} # [[meqam|Meqam]]ê [[paşa]]yan/[[desthilatdar]]an. #: {{hevmane|ku|text}} #: {{mk|ku|text û '''kursî'''}} # [[meqam|Meqam]]ê [[Xwedê]]. #: {{hevmane|ku|erş}} #: {{mk|ku|Ayeta '''Kursî'''|rêz=1|[[ayet]]a 2:255 a [[Qur'an]]ê ye û behsa bê[[hevta]]yiya [[Xwedê]] dike}} #* {{mewlûd|jêgirtin=Nîveka dî çêkirin ji çarî çîz<br>'Erş û '''kursî''' û qelem lewhe temîz<br>Hate emrê Padîşahê Layezal}} # {{e|ku|tehsîl}} [[îdare|Îdareya]] di [[nav]] [[unîversîte|unîversîteyan]] de ku [[li ser]] [[mesele|meseleyeke]] [[diyarkirî]] [[lêkolîn]] û [[ders|dersan]] [[dan|dide]]. #* {{jêder-kovar|ku|nivîskar=Clamence Scalbert-yücel|sernav=Perspektîfek dîrokî ji bo lêkolînên li ser Kurdan: Hevpeyvîn li gel Joyce Blau|kovar=The Journal of Mesopotamian Studies|terciman=Yılmaz Özdil|cild=3|hejmar=1|sal=2018|rûpel=203|url=https://dergipark.org.tr/tr/pub/jms/article/386434|jêgirtin=JB{{j-îzah|Joyce Blau}} : '''Kursiya''' zimanê kurdî di sala 1945an de ji aliyê Roger Lescot (1914-1975( ve hate avakirin. Di sala 1947an de Mîr Kamuran Bedir Xan (1895-1978(bû serokê Kursiyê. Wî heta sala 1970yan serokatiya Kursiya zimanê kurdî kir. Paşî ji sala 1970yan heta dema teqawutbûna xwe ya di sala 2000an de min serokatî kir.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|کورسی}} * {{ku-kr|курси}} ==== Formên alternatîv ==== * {{g|ku|kursîk}} ==== Hevmane ==== * {{g|ku|sendelî}} * {{g|ku|sendelye}} * {{g|ku|rûniştek}} ==== Jê ==== * {{g|ku|rûniştin}} ser kursiyê * li ser kursiyê [[rûniştin]] * ji ser kursiyê [[rabûn]] * {{g|ku|kursîk}} ==== Etîmolojî ==== Taliyê ji {{ji|sux|ku|𒄖𒍝|tr=gu.za}}. Hevreha {{hv|ckb|کورسی}}, {{hv|zza|kursî}}, {{hv|fa|کورسی|tr=berê "kursî", niha "korsî"}}, {{hv|tr|kürsü}} (bi {{hv|ota|كرسى|ts=kursî}}), {{hv|ar|‏كرسي}} (bi erebiya standard "kursiyy", bi erebiya devkî "kursî, kirsî"), {{hv|syc|ܟܘܪܣܝܐ‎|tr=kursiya}}, {{hv|arc|כרסא|tr=kursa}} û {{g|arc|כסא|tr=kusa}}, {{hv|he|כיסא|tr=kissê}}, ugarîtî [[𐎋𐎒𐎜]] (kisủ), akadî [[𒄖𒍝]] / [[𒄑𒄖𒍝]] (kussû, kursû)... Peyv ji Rojhilata Navîn belav bûye Başûrê Asyayê jî: ûrdûyî {{g|ur|کرسی|tr=kursī}}, peştûyî {{g|ps|کورسۍ‎|tr=kursiy}}, hindî [[कुरसी]] (kursī), punjabî [[ਕੁਰਸੀ]] (kursī)... ;{{biçûk|Çavkanî: * {{kitêb|en|sernav=The Pennsylvania Sumerian Dictionary<t:Ferhenga sûmerî ya Pennsylvaniayê>|url=http://psd.museum.upenn.edu/nepsd-frame.html}} * {{kitêb|fr|url=http://www.assyrianlanguages.org/akkadian/dosearch.php?searchkey=16&language=id|sernav=Association Assyrophile de France: Dictionnaire akkadien<t:Rêkxistina Aşûrîdostan ya Fransayê: Ferhenga akadî>}} }} ==== Herwiha binêre ==== {{kol3|ku |balguh |balîf |doşek |doşk |lihêf |mobîlya |nivîn |palpişt |qaîdok |qenepe |rûniştek |sofa |text }} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|stoel}} * {{Z|sq}}: {{W-|sq|karrike|m}}, {{W+|sq|karrige}} * {{Z|de}}: {{W+|de|Stuhl|n}} * {{Z|ast}}: {{W+|ast|siella}} * {{Z|az}}: {{W+|az|stul}} * {{Z|eu}}: {{W+|eu|aulki}} * {{Z|bar}}: {{W--|bar|Sessl|n}} * {{Z|be}}: {{W-|be|стул|tr=stul}} * {{Z|br}}: {{W+|br|kador|m}} * {{Z|bg}}: {{W+|bg|стол|tr=stol}} * {{Z|cs}}: {{W+|cs|židle}} * {{Z|zh}}: {{W+|zh|椅子|tr=yǐzi}} * {{Z|da}}: {{W+|da|stol}} * {{Z|id}}: {{W+|id|kursi}} * {{Z|ary}}: {{W--|ary|كرسي}}, {{W--|ary|شلية}} *: {{Z|arz}}: {{W|arz|كرسي|tr=kursî}} {{n}} * {{Z|ar}}: {{W|ar|كرسي|tr=kursiyy}} {{n}}, {{W|ar|مقعد|tr=meq'ed}} {{n}} * {{Z|hy}}: {{W+|hy|աթոռ|tr=atʿoṙ}} * {{Z|eo}}: {{W+|eo|seĝo}} * {{Z|et}}: {{W+|et|tool}} * {{Z|ewo}}: {{W--|ewo|etoa}} * {{Z|fa}}: {{W+|fa|صندلی|tr=sendelî}}, {{W|fa|کرسی|tr=korsî}} * {{Z|fo}}: {{W-|fo|stólur}} * {{Z|fi}}: {{W+|fi|tuoli}}, {{W|fi|istuin}} * {{Z|frp}}: ''(savoyard)'' {{W--|frp|sala}} * {{Z|fr}}: {{W|fr|chaise}} * {{Z|fy}}: {{W-|fy|stoel}}, {{W-|fy|belech}} * {{Z|gd}}: {{W-|gd|suidheachan}}, {{W-|gd|cathair}} * {{Z|gl}}: {{W+|gl|cadeira|m}} * {{Z|ka}}: {{W+|ka|სკამი|tr=sḳami}} * {{Z|hi}}: {{W+|hi|कुरसी|tr=kursī}} * {{Z|nl}}: {{W+|nl|stoel}}, {{W+|nl|zetel}} * {{Z|he}}: {{W+|he|כיסא|tr=kisé}} * {{Z|io}}: {{W+|io|stulo}} * {{Z|ang}}: {{W-|ang|stol}} * {{Z|en}}: {{W+|en|chair}}, {{W+|en|seat}} * {{Z|ga}}: {{W+|ga|cathaoir}} * {{Z|it}}: {{W+|it|assedio}}, {{W+|it|sedia}}, {{W+|it|seggiola}} * {{Z|is}}: {{W+|is|stóll}} * {{Z|ja}}: {{W+|ja|椅子|tr=isu}}, {{W+|ja|いす|tr=isu}} * {{Z|ca}}: {{W+|ca|cadira}} * {{Z|ki}}: {{W--|ki|giti}} * {{Z|ko}}: {{W+|ko|의자|tr=uija}} * {{Z|kw}}: {{W-|kw|cadar}} * {{Z|co}}: {{W+|co|sedia}}, {{W-|co|carreca}} * {{Z|mfe}}: {{W--|mfe|sez}} * {{Z|la}}: {{W-|la|sella}}, {{W-|la|cathedra}}, {{W-|la|solium}} * {{Z|lv}}: {{W+|lv|krēsls}} * {{Z|lo}}: {{W+|lo|ຕັ່ງ}} * {{Z|lt}}: {{W+|lt|kėdė}} * {{Z|mk}}: {{W-|mk|стол|tr=stol}}, {{W-|mk|столица|tr=stolica}} * {{Z|mg}}: {{W+|mg|seza}} * {{Z|ms}}: {{W+|ms|kursi}} * {{Z|mt}}: {{W+|mt|siġġu}} * {{Z|gv}}: {{W-|gv|caair}} * {{Z|yua}}: {{W--|yua|k’anche’}} * {{Z|hu}}: {{W+|hu|szék}} * {{Z|mn}}: {{W+|mn|сандал|tr=sandal}} * {{Z|nrf}}: {{W--|nrf|caire}} * {{Z|no}}: {{W+|no|stol|nt}} * {{Z|oc}}: {{W+|oc|cadièra|m}} * {{Z|uz}}: {{W+|uz|o`rindiq}} * {{Z|uz}}: {{W|uz|o`rindiq}} * {{Z|pap}}: {{W--|pap|stul}} * {{Z|pl}}: {{W+|pl|krzesło}} * {{Z|pt}}: {{W+|pt|cadeira|m}}, {{W+|pt|assento}} * {{Z|kk}}: {{W+|kk|орындық|tr=orındıq}}, {{W-|kk|отырғыш|tr=otırğış}} * {{Z|ro}}: {{W+|ro|scaun}} * {{Z|ru}}: {{W+|ru|стул}} * {{Z|se}}: {{W--|se|stuollu}} * {{Z|srn}}: {{W--|srn|sturu}} * {{Z|sh}}: :* Latînî: {{W+|sh|stolac}}, {{W+|sh|stolica}} :* Kirîlî: {{W-|sh|столац}}, {{W+|sh|столица}} * {{Z|sk}}: {{W-|sk|stolička}} * {{Z|sl}}: {{W+|sl|stol}} * {{Z|dsb}}: {{W--|dsb|stoł}} * {{Z|hsb}}: {{W-|hsb|stólc}} * {{Z|es}}: {{W+|es|silla|m}} * {{Z|sw}}: {{W+|sw|kiti}} * {{Z|sv}}: {{W+|sv|stol}} * {{Z|shy}}: {{W--|shy|amɣim}} * {{Z|zdj}}: {{W--|zdj|hiri}} * {{Z|tg}}: {{W-|tg|сандали|tr=sandali}}, {{W+|tg|курсӣ|tr=kursī}} * {{Z|tl}}: {{W-|tl|sílya}}, {{W-|tl|úpuan}} * {{Z|ta}}: {{W+|ta|நாற்காலி|tr=nāṟkāli}} * {{Z|th}}: {{W+|th|เก้าอี้|tr=gâo-îi}} * {{Z|tr}}: {{W+|tr|sandalye}}, {{W|tr|sandalye}}, {{W|tr|kürsü}}, {{W|tr|koltuk}}, {{W|tr|iskemle}}, {{W|tr|oturak}}, {{W|tr|tabure}}, {{W|tr|sekmen}} * {{Z|tk}}: {{W-|tk|oturgyç}} * {{Z|ur}}: {{W-|ur|کرسی|tr=kursī}} * {{Z|ur}}: {{W|ur|کرسی|tr=kursī}} {{n}} * {{Z|uk}}: {{W+|uk|стілець|tr=stilécʹ}}, {{W-|uk|крісло|tr=kríslo}} * {{Z|vec}}: {{W|vec|carega}} * {{Z|vi}}: {{W|vi|ghế}} * {{Z|cy}}: {{W+|cy|cadair}} * {{Z|cy}}: {{W|cy|cadair}}, {{W|cy|ystôl}} * {{Z|km}}: {{W+|km|កៅអី|tr=kav ’əy}} * {{Z|yi}}: {{W|yi|שטול}} * {{Z|el}}: {{W+|el|καρέκλα|tr=karékla}} * {{Z|el}}: {{W|el|καρέκλα}} {{n}} (karékla) * {{Z|zu}}: {{W+|zu|isihlalo}} {{werger-bin}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb|sc=Latn}} # {{ckb-Arab|کورسی}} == {{ziman|zza}} == === Navdêr === {{navdêr|zza}} # [[kursî#Kurmancî|kursî]] #* {{bêmînak|zza}} s67ts60nw46sfkbhsgltjur0u1qnnh8 6329863 6329839 2026-08-13T00:12:07Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6329863 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Chair.png|thumb|kursiyek]] {{navdêr|ku|z=m}}, {{k-ya nerm}}, {{r-ya nerm}} # {{f|ku|mobîlya}} Alavên bi[[pişt]] û bi[[pêpik]] yên bi [[giştî]] bo [[rûniştin]]a kesekî. #: {{mk|ku|Rûne ser '''kursiyê'''.}} #: {{mk|ku|Li ser '''kursiyê''' rûniştim.}} #: {{mk|ku|Ji ser '''kursiyê''' rabû.}} #: {{mk|ku|Hemû '''kursî''' girtî bûn.|Li ser her yekê kesek hebû û ti yên vala tine bûn.|rêz=1}} # [[diran|Diranên]] [[paşîn]]. #* {{bêmînak|ku}} # [[meqam|Meqam]], [[cih]]. #* {{bêmînak|ku}} # [[meqam|Meqamê]] [[paşa]]yan/[[desthilatdar]]an. #: {{hevmane|ku|text}} #: {{mk|ku|text û '''kursî'''}} # [[meqam|Meqamê]] [[Xwedê]]. #: {{hevmane|ku|erş}} #: {{mk|ku|Ayeta '''Kursî'''|rêz=1|[[ayet]]a 2:255 a [[Qur'an]]ê ye û behsa bê[[hevta]]yiya [[Xwedê]] dike}} #* {{mewlûd|jêgirtin=Nîveka dî çêkirin ji çarî çîz<br>'Erş û '''kursî''' û qelem lewhe temîz<br>Hate emrê Padîşahê Layezal}} # {{e|ku|tehsîl}} [[îdare|Îdareya]] di [[nav]] [[unîversîte]]yan de ku [[li ser]] [[mesele]]yeke [[diyarkirî]] [[lêkolîn]] û [[ders]]an [[dan|dide]]. #* {{jêder-kovar|ku|nivîskar=Clamence Scalbert-yücel|sernav=Perspektîfek dîrokî ji bo lêkolînên li ser Kurdan: Hevpeyvîn li gel Joyce Blau|kovar=The Journal of Mesopotamian Studies|terciman=Yılmaz Özdil|cild=3|hejmar=1|sal=2018|rûpel=203|url=https://dergipark.org.tr/tr/pub/jms/article/386434|jêgirtin=JB{{j-îzah|Joyce Blau}} : '''Kursiya''' zimanê kurdî di sala 1945an de ji aliyê Roger Lescot (1914-1975( ve hate avakirin. Di sala 1947an de Mîr Kamuran Bedir Xan (1895-1978(bû serokê Kursiyê. Wî heta sala 1970yan serokatiya Kursiya zimanê kurdî kir. Paşî ji sala 1970yan heta dema teqawutbûna xwe ya di sala 2000an de min serokatî kir.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|کورسی}} * {{ku-kr|курси}} ==== Formên alternatîv ==== * {{g|ku|kursîk}} ==== Hevmane ==== * {{g|ku|sendelî}} * {{g|ku|sendelye}} * {{g|ku|rûniştek}} ==== Jê ==== * {{g|ku|rûniştin}} ser kursiyê * li ser kursiyê [[rûniştin]] * ji ser kursiyê [[rabûn]] * {{g|ku|kursîk}} ==== Etîmolojî ==== Taliyê ji {{ji|sux|ku|𒄖𒍝|tr=gu.za}}. Hevreha {{hv|ckb|کورسی}}, {{hv|zza|kursî}}, {{hv|fa|کورسی|tr=berê "kursî", niha "korsî"}}, {{hv|tr|kürsü}} (bi {{hv|ota|كرسى|ts=kursî}}), {{hv|ar|‏كرسي}} (bi erebiya standard "kursiyy", bi erebiya devkî "kursî, kirsî"), {{hv|syc|ܟܘܪܣܝܐ‎|tr=kursiya}}, {{hv|arc|כרסא|tr=kursa}} û {{g|arc|כסא|tr=kusa}}, {{hv|he|כיסא|tr=kissê}}, ugarîtî [[𐎋𐎒𐎜]] (kisủ), akadî [[𒄖𒍝]] / [[𒄑𒄖𒍝]] (kussû, kursû)... Peyv ji Rojhilata Navîn belav bûye Başûrê Asyayê jî: ûrdûyî {{g|ur|کرسی|tr=kursī}}, peştûyî {{g|ps|کورسۍ‎|tr=kursiy}}, hindî [[कुरसी]] (kursī), punjabî [[ਕੁਰਸੀ]] (kursī)... ;{{biçûk|Çavkanî: * {{kitêb|en|sernav=The Pennsylvania Sumerian Dictionary<t:Ferhenga sûmerî ya Pennsylvaniayê>|url=http://psd.museum.upenn.edu/nepsd-frame.html}} * {{kitêb|fr|url=http://www.assyrianlanguages.org/akkadian/dosearch.php?searchkey=16&language=id|sernav=Association Assyrophile de France: Dictionnaire akkadien<t:Rêkxistina Aşûrîdostan ya Fransayê: Ferhenga akadî>}} }} ==== Herwiha binêre ==== {{kol3|ku |balguh |balîf |doşek |doşk |lihêf |mobîlya |nivîn |palpişt |qaîdok |qenepe |rûniştek |sofa |text }} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|stoel}} * {{Z|sq}}: {{W-|sq|karrike|m}}, {{W+|sq|karrige}} * {{Z|de}}: {{W+|de|Stuhl|n}} * {{Z|ast}}: {{W+|ast|siella}} * {{Z|az}}: {{W+|az|stul}} * {{Z|eu}}: {{W+|eu|aulki}} * {{Z|bar}}: {{W--|bar|Sessl|n}} * {{Z|be}}: {{W-|be|стул|tr=stul}} * {{Z|br}}: {{W+|br|kador|m}} * {{Z|bg}}: {{W+|bg|стол|tr=stol}} * {{Z|cs}}: {{W+|cs|židle}} * {{Z|zh}}: {{W+|zh|椅子|tr=yǐzi}} * {{Z|da}}: {{W+|da|stol}} * {{Z|id}}: {{W+|id|kursi}} * {{Z|ary}}: {{W--|ary|كرسي}}, {{W--|ary|شلية}} *: {{Z|arz}}: {{W|arz|كرسي|tr=kursî}} {{n}} * {{Z|ar}}: {{W|ar|كرسي|tr=kursiyy}} {{n}}, {{W|ar|مقعد|tr=meq'ed}} {{n}} * {{Z|hy}}: {{W+|hy|աթոռ|tr=atʿoṙ}} * {{Z|eo}}: {{W+|eo|seĝo}} * {{Z|et}}: {{W+|et|tool}} * {{Z|ewo}}: {{W--|ewo|etoa}} * {{Z|fa}}: {{W+|fa|صندلی|tr=sendelî}}, {{W|fa|کرسی|tr=korsî}} * {{Z|fo}}: {{W-|fo|stólur}} * {{Z|fi}}: {{W+|fi|tuoli}}, {{W|fi|istuin}} * {{Z|frp}}: ''(savoyard)'' {{W--|frp|sala}} * {{Z|fr}}: {{W|fr|chaise}} * {{Z|fy}}: {{W-|fy|stoel}}, {{W-|fy|belech}} * {{Z|gd}}: {{W-|gd|suidheachan}}, {{W-|gd|cathair}} * {{Z|gl}}: {{W+|gl|cadeira|m}} * {{Z|ka}}: {{W+|ka|სკამი|tr=sḳami}} * {{Z|hi}}: {{W+|hi|कुरसी|tr=kursī}} * {{Z|nl}}: {{W+|nl|stoel}}, {{W+|nl|zetel}} * {{Z|he}}: {{W+|he|כיסא|tr=kisé}} * {{Z|io}}: {{W+|io|stulo}} * {{Z|ang}}: {{W-|ang|stol}} * {{Z|en}}: {{W+|en|chair}}, {{W+|en|seat}} * {{Z|ga}}: {{W+|ga|cathaoir}} * {{Z|it}}: {{W+|it|assedio}}, {{W+|it|sedia}}, {{W+|it|seggiola}} * {{Z|is}}: {{W+|is|stóll}} * {{Z|ja}}: {{W+|ja|椅子|tr=isu}}, {{W+|ja|いす|tr=isu}} * {{Z|ca}}: {{W+|ca|cadira}} * {{Z|ki}}: {{W--|ki|giti}} * {{Z|ko}}: {{W+|ko|의자|tr=uija}} * {{Z|kw}}: {{W-|kw|cadar}} * {{Z|co}}: {{W+|co|sedia}}, {{W-|co|carreca}} * {{Z|mfe}}: {{W--|mfe|sez}} * {{Z|la}}: {{W-|la|sella}}, {{W-|la|cathedra}}, {{W-|la|solium}} * {{Z|lv}}: {{W+|lv|krēsls}} * {{Z|lo}}: {{W+|lo|ຕັ່ງ}} * {{Z|lt}}: {{W+|lt|kėdė}} * {{Z|mk}}: {{W-|mk|стол|tr=stol}}, {{W-|mk|столица|tr=stolica}} * {{Z|mg}}: {{W+|mg|seza}} * {{Z|ms}}: {{W+|ms|kursi}} * {{Z|mt}}: {{W+|mt|siġġu}} * {{Z|gv}}: {{W-|gv|caair}} * {{Z|yua}}: {{W--|yua|k’anche’}} * {{Z|hu}}: {{W+|hu|szék}} * {{Z|mn}}: {{W+|mn|сандал|tr=sandal}} * {{Z|nrf}}: {{W--|nrf|caire}} * {{Z|no}}: {{W+|no|stol|nt}} * {{Z|oc}}: {{W+|oc|cadièra|m}} * {{Z|uz}}: {{W+|uz|o`rindiq}} * {{Z|uz}}: {{W|uz|o`rindiq}} * {{Z|pap}}: {{W--|pap|stul}} * {{Z|pl}}: {{W+|pl|krzesło}} * {{Z|pt}}: {{W+|pt|cadeira|m}}, {{W+|pt|assento}} * {{Z|kk}}: {{W+|kk|орындық|tr=orındıq}}, {{W-|kk|отырғыш|tr=otırğış}} * {{Z|ro}}: {{W+|ro|scaun}} * {{Z|ru}}: {{W+|ru|стул}} * {{Z|se}}: {{W--|se|stuollu}} * {{Z|srn}}: {{W--|srn|sturu}} * {{Z|sh}}: :* Latînî: {{W+|sh|stolac}}, {{W+|sh|stolica}} :* Kirîlî: {{W-|sh|столац}}, {{W+|sh|столица}} * {{Z|sk}}: {{W-|sk|stolička}} * {{Z|sl}}: {{W+|sl|stol}} * {{Z|dsb}}: {{W--|dsb|stoł}} * {{Z|hsb}}: {{W-|hsb|stólc}} * {{Z|es}}: {{W+|es|silla|m}} * {{Z|sw}}: {{W+|sw|kiti}} * {{Z|sv}}: {{W+|sv|stol}} * {{Z|shy}}: {{W--|shy|amɣim}} * {{Z|zdj}}: {{W--|zdj|hiri}} * {{Z|tg}}: {{W-|tg|сандали|tr=sandali}}, {{W+|tg|курсӣ|tr=kursī}} * {{Z|tl}}: {{W-|tl|sílya}}, {{W-|tl|úpuan}} * {{Z|ta}}: {{W+|ta|நாற்காலி|tr=nāṟkāli}} * {{Z|th}}: {{W+|th|เก้าอี้|tr=gâo-îi}} * {{Z|tr}}: {{W+|tr|sandalye}}, {{W|tr|sandalye}}, {{W|tr|kürsü}}, {{W|tr|koltuk}}, {{W|tr|iskemle}}, {{W|tr|oturak}}, {{W|tr|tabure}}, {{W|tr|sekmen}} * {{Z|tk}}: {{W-|tk|oturgyç}} * {{Z|ur}}: {{W-|ur|کرسی|tr=kursī}} * {{Z|ur}}: {{W|ur|کرسی|tr=kursī}} {{n}} * {{Z|uk}}: {{W+|uk|стілець|tr=stilécʹ}}, {{W-|uk|крісло|tr=kríslo}} * {{Z|vec}}: {{W|vec|carega}} * {{Z|vi}}: {{W|vi|ghế}} * {{Z|cy}}: {{W+|cy|cadair}} * {{Z|cy}}: {{W|cy|cadair}}, {{W|cy|ystôl}} * {{Z|km}}: {{W+|km|កៅអី|tr=kav ’əy}} * {{Z|yi}}: {{W|yi|שטול}} * {{Z|el}}: {{W+|el|καρέκλα|tr=karékla}} * {{Z|el}}: {{W|el|καρέκλα}} {{n}} (karékla) * {{Z|zu}}: {{W+|zu|isihlalo}} {{werger-bin}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb|sc=Latn}} # {{ckb-Arab|کورسی}} == {{ziman|zza}} == === Navdêr === {{navdêr|zza}} # [[kursî#Kurmancî|kursî]] #* {{bêmînak|zza}} 55sg6et974pr4slxyvsjton3077gmzp delîve 0 6941 6329649 6304809 2026-08-12T15:35:53Z Wikihez 7344 +nimûneya bikaranînê bi amûra « [[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]] » (v1.7). 6329649 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[dem]] yan [[dirav]] ya [[şiyan]] hebûn ku kirina tiştekê/î #* {{jêder-malper|ku|jêgirtin=Li dinyaya niha duzimanîtî yan pirzimanîtî ne tiştekî ecêb e lê gelekî normal e. Ji niha pêve yekzimanîtî hêdî-hêdî dibe tiştekî nadir. Ya giring ew e ku derfet û '''delîve''' hebin ku her kurdek bibe xwedî bingeheke xurt yê kurdîzanînê. Ev jî tenê û tenê bi rêya perwerdeya bi zimanê kurdî mimkin e. Lê heta ku em bigihin rojeke wisa, divê ku hemû derfetên heyî bo xwehînkirina kurdî hem bi nivîskî û hem jî bi axiftinê bên bikaranîn.|nivîskar= Zekî Gurur|sernav= Neheqî li vî zarê zêrîn bûne|malper=xwebun.org|url=https://xwebun.org/neheqi-li-vi-zare-zerin-bune|dîrok=07.09.2020}} #* {{jêder-kovar|ku|nivîskar=Kerem Engin|sernav=Narînk li Herêma Culemêrgê|kovar=Kurdiyat|hejmar=13|sal=2026|rûpel=60|url=https://dergipark.org.tr/tr/pub/kurdiyat/article/1818418|jêgirtin=Ji ber ku dewletên ku kurd di nava sinorên wan de dijiyan, '''delîve''' nedaye ku kurd bi dînamîkên xwe ve muzîka xwe îcra bikin.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê|guherto=hemû}} ==== Hevmane ==== {{kol3|ku |derfet |delîv |firset |gengazî |îmkan |mical }} ==== Jê ==== {{kol3|ku|cure=Jê |[[delîve dan]] kesekê/î yan tiştekê/î<pos:lêker> |(kesekê/î) [[delîve hebûn]] | delîve [[ji dest dan]] | delîve [[peyda kirin]] | delîve [[winda kirin]] |delîvedan<pos:navdêr> |delîvehebûn<pos:navdêr> | delîve[[jidestdan]] | delîve[[peyda]]kirin | delîve[[winda]]kirin }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|sq}}: {{W+|sq|mundësi|m}}, {{W-|sq|shans|n}}, {{W+|sq|nge|m}} * {{Z|de}}: {{W+|de|Gelegenheit|m}}, {{W+|de|Chance|m}}, {{W+|de|Möglichkeit|m}} * {{Z|ast}}: {{W-|ast|oportunidá|m}} * {{Z|az}}: {{W+|az|imkan}}, {{W+|az|fürsət}} * {{Z|ba}}: {{W-|ba|форсат}} * {{Z|be}}: {{W-|be|магчы́масць|m}}, {{W-|be|шанс|n}}, {{W-|be|шанц|n}} * {{Z|bn}}: {{W+|bn|মওকা}} * {{Z|bg}}: {{W+|bg|възмо́жност|m}}, {{W+|bg|шанс|n}} * {{Z|my}}: {{W+|my|အခွင့်အရေး}} * {{Z|cs}}: {{W+|cs|příležitost|m}}, {{W+|cs|šance|m}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|機會|tr=gei1 wui6}} *: {{Z|cmn}}: {{W+|cmn|機會|tr=jīhuì}} *: {{Z|nan}}: {{W+|nan|機會|tr=ki-hōe}} * {{Z|da}}: {{W+|da|mulighed|g}}, {{W+|da|chance|g}} * {{Z|ar}}: {{W-|ar|فُرْصَة|m}} *: {{Z|arz}}: {{W-|arz|فرصة|m|tr=furṣa}} * {{Z|hy}}: {{W+|hy|հնարավորություն}} * {{Z|eo}}: {{W-|eo|okazo}}, {{W-|eo|oportuno}} * {{Z|et}}: {{W-|et|võimalus}} * {{Z|fa}}: {{W+|fa|فرصت|tr=forsat}}, {{W+|fa|شانس|tr=šâns}} * {{Z|fi}}: {{W+|fi|tilaisuus}}, {{W+|fi|mahdollisuus}} * {{Z|fr}}: {{W+|fr|occasion|m}}, {{W+|fr|opportunité|m}} * {{Z|gl}}: {{W+|gl|oportunidade|m}}, {{W+|gl|vagar|n}}, {{W-|gl|emposta|m}} * {{Z|got}}: {{W-|got|𐌻𐌴𐍅|nt}} * {{Z|ka}}: {{W-|ka|შესაძლებლობა}}, {{W+|ka|შანსი}} * {{Z|hi}}: {{W+|hi|अवसर|n}}, {{W-|hi|मौक़ा|n}} * {{Z|nl}}: {{W+|nl|kans|m}}, {{W+|nl|mogelijkheid|m}} * {{Z|hrx}}: {{W-|hrx|Gelechenheet|m}}, {{W-|hrx|Gelechenheit|m}} * {{Z|he}}: {{W+|he|הִזְדַּמְנוּת|m|tr=hizdamnut}} * {{Z|en}}: {{W|en|opportunity}} * {{Z|ga}}: {{W-|ga|faill|m}}, {{W+|ga|deis|m}} * {{Z|it}}: {{W+|it|occasione|m}}, {{W+|it|opportunità|m}}, {{W+|it|possibilità|m}}, {{W+|it|chance|m}} * {{Z|is}}: {{W-|is|færi|nt}} * {{Z|ja}}: {{W+|ja|機会|tr=きかい, kikai}}, {{W+|ja|チャンス|tr=chansu}} * {{Z|kea}}: {{W-|kea|txansa}}, {{W-|kea|xanse}} * {{Z|ca}}: {{W+|ca|oportunitat|m}}, {{W+|ca|ocasió|m}} * {{Z|ky}}: {{W+|ky|мүмкүндүк}}, {{W+|ky|мүмкүнчүлүк}} * {{Z|ko}}: {{W+|ko|기회}}, {{W+|ko|찬스}} * {{Z|la}}: {{W-|la|opportūnitās|m}}, {{W-|la|ampla|m}} * {{Z|lv}}: {{W-|lv|iespēja|m}} * {{Z|lo}}: {{W-|lo|ໂອກາດ}} * {{Z|lt}}: {{W-|lt|próga|m}} * {{Z|mk}}: {{W-|mk|можност|m}}, {{W-|mk|шанса|m}} * {{Z|ml}}: {{W+|ml|അവസരം}}, {{W+|ml|തക്കം}} * {{Z|mt}}: {{W-|mt|opportunità|m}} * {{Z|hu}}: {{W+|hu|alkalom}}, {{W+|hu|lehetőség}} * {{Z|mn}}: *: Kirîlî: {{W+|mn|боломж}} * {{Z|nv}}: {{W-|nv|ashja}} * {{Z|no}}: *: {{Z|nb}}: {{W+|nb|mulighet|n|m}}, {{W+|nb|sjanse|m}} * {{Z|oc}}: {{W+|oc|oportunitat|m}} * {{Z|ug}}: {{W-|ug|پۇرسەت}} * {{Z|uz}}: {{W+|uz|imkoniyat}}, {{W+|uz|fursat}} * {{Z|ps}}: {{W+|ps|فرصت|n|tr=fersát}} * {{Z|pl}}: {{W-|pl|gratka|m}}, {{W+|pl|możliwość|m}}, {{W+|pl|okazja|m}}, {{W+|pl|pretekst|n}}, {{W+|pl|sposobność|m}}, {{W+|pl|szansa|m}} * {{Z|pt}}: {{W+|pt|oportunidade|m}} * {{Z|kk}}: {{W+|kk|мүмкіндік}} * {{Z|rm}}: {{W-|rm|pussaivladad|m}} * {{Z|ro}}: {{W+|ro|oportunitate|m}} * {{Z|ru}}: {{W+|ru|возмо́жность|m}}, {{W+|ru|шанс|n}} * {{Z|se}}: {{W-|se|vejolašvuohta}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|могу́ћно̄ст|m}}, {{W-|sh|при́лика|m}}, {{W-|sh|при̏года|m}}, {{W-|sh|ша̏нса|m}} *: Latînî: {{W-|sh|mogúćnōst|m}}, {{W+|sh|prílika|m}}, {{W+|sh|prȉgoda|m}}, {{W+|sh|šȁnsa|m}} * {{Z|sk}}: {{W-|sk|príležitosť|m}}, {{W-|sk|šanca|m}} * {{Z|sl}}: {{W+|sl|priložnost|m}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|góźba|m}} * {{Z|es}}: {{W+|es|oportunidad|m}} * {{Z|sw}}: {{W+|sw|fursa}} * {{Z|sv}}: {{W+|sv|tillfälle}}, {{W+|sv|möjlighet|g}} * {{Z|tg}}: {{W-|tg|фурсат}}, {{W+|tg|имконият}}, {{W-|tg|имкон}} * {{Z|th}}: {{W+|th|โอกาส}} * {{Z|te}}: {{W+|te|అవకాశం}} * {{Z|tt}}: {{W+|tt|форсат}} * {{Z|tr}}: {{W+|tr|fırsat}} * {{Z|tk}}: {{W-|tk|pursat}} * {{Z|ur}}: {{W-|ur|فرصت|m|tr=fursat}}, {{W-|ur|موقع|n|tr=mauqa'}} * {{Z|uk}}: {{W-|uk|можли́вість|m}}, {{W-|uk|шанс|n}} * {{Z|vi}}: {{W+|vi|cơ hội}} * {{Z|km}}: {{W+|km|ឱកាស}} * {{Z|el}}: {{W+|el|ευκαιρία|m}} *: Kevn: {{W-|grc|εὐκαιρία|m}}, {{W-|grc|καιρός|n}} * {{Z|za}}: {{W-|za|gihvei}} {{werger-bin}} :{{werger çavkanî|en|opportunity|beş=Ev qismê Wergerê|oldid=75698445}} rymusa0ro3p5s4ffytt855u3uq6c2sr poşman bûn 0 7164 6329900 6290500 2026-08-13T00:48:03Z Wikihez 7344 /* Lêker */ 6329900 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{lêker|ku}} # {{mane?|ku}} #* {{jêder-pirtûk|ku|jêgirtin=Xort ji bo ku diwestin dizewicin, keç ji bo ku meraq dikin dizewicin, dawîyê hemû jî '''poşman dibin'''.|sernav=Gotinên Navdaran|nivîskar=Firat Cewerî|sal=1995|rûpel=69}} 7dlcedd5gg9qjbtdxckf6guajvc6ufc derbare 0 12948 6329845 6293624 2026-08-12T23:50:55Z Wikihez 7344 [[Bikarhêner:Wikihez/templateScript2.js|TS]]: sererastkirin 6329845 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-derbare.wav|dever=Bidlîs}} * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[nizbet]], [[sebaret]], li [[ser]], li [[dor]], [[derheq]], di [[heq]]ê kesekê/î yan [[tişt]]ekê/î de #: {{nimûne|ku|Me ti agahî '''derbareyî''' wan wernegirtiye.}} #* {{jêder|ku|jêgirtin=Li ser agahiyên di '''derbarê''' navê Bateyî de Babê Zerevanî wiha gotiye; ‘Navê wî yê rast û dûrist Huseyn e, kurê Mistefa ye.’|''[[w:Di Helbestên Melayê Bateyî de Evîn û Hezkirin|Di Helbestên Melayê Bateyî de Evîn û Hezkirin]]'', [[w:Reşît Rojdar Yildiz|Reşît Rojdar Yildiz]], Bingöl Üniversitesi Yaşayan Diller Enstitüsü Dergisi}} # [[dermaf]] #* {{bêmînak|ku}} ==== Jê ==== * {{g|ku|derbarey}} * {{g|ku|derbareyê}} * {{g|ku|derbareyî}} * {{g|ku|derbarê}} * {{g|ku|derbarî}} ==== Etîmolojî ==== Ji {{ji|fa|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|über}}, {{W|de|betreffend}}, {{W|de|anlässlich|guman=erê}} * {{Z|ar}}: {{W+|ar|بخصوص}}, {{W+|ar|حول}}, {{W+|ar|فيما يتعلق ب}}, {{W+|ar|بالنسبة ل}}, {{W|ar|بمناسبة|guman=erê}} * {{Z|fa}}: {{W|fa|دربارهء}}, {{W|fa|درباره}}, {{W|fa|راجع به}}, {{W|fa|به مناسبت}} * {{Z|fr}}: {{W|fr|au sujet de}} * {{Z|en}}: {{W|en|about}}, {{W|en|concerning}}, {{W|en|as regards}}, {{W|en|anent}}, {{W|en|regarding}} * {{Z|es}}: {{W|es|sobre}}, {{W|es|acerca de}}, {{W|en|concerniente}} * {{Z|sv}}: {{W+|sv|om}}, {{W+|sv|angående}}, {{W+|sv|rörande}}, {{W+|sv|gällande}}, {{W+|sv|beträffande}} * {{Z|tr}}: {{W|tr|dair}}, {{W|tr|ilişkin}}, {{W|tr|ilişik}}, {{W|tr|değgin}} {{werger-bin}} bojsdlobo1aasf25dmk2a7d3fndby7f qewirandin 0 15102 6329908 6315775 2026-08-13T01:00:22Z Wikihez 7344 6329908 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker 1 === {{ku-tewîn-lk|qewirandin|form=gerguhêz|niha=qewirîn|borî=qewirand}} {{lêker|ku|c=x-gh}} # [[qewitandin]], [[derxistin]], [[dûr]] xistin, [[derkirin]], [[dûr]] kirin #* {{jêder|ku|jêgirtin=(...) boteke serbazî hat û li ber wan sekinî, ew ji wir '''qewirandin'''.|{{Jêgirtin/Zeynelabidîn Zinar/Balafira Jînê}}}} #* {{jêder-pirtûk|ku|jêgirtin=Her çend min lavahî Memedî kir ku insafê bike, ji hindê malê tiştekî bide min. Memedî çêre min kirî. Ez '''qewirandim'''.|nivîskar=Mele Mehmûdê Bazîdî|sernav=Cami’eya Riseleyan û Hikayetan Bi Zimanê Kurmancî|cîh=Stembol|weşanxane={{w|Weşanên Lîs|Lîs}}|sal=2010|çap=1|rûpel=61|isbn=978-605-5683-27-6}} #* {{jêder-pirtûk|ku|jêgirtin=Lê piştî xwerina genim zikê Adem werimî, û Tawusî Melek ew ji buhuştê '''qewirand''', anî ser rûyê dinyayê.|sernav=Rola û Girîngiya Êzdiyatiyê li Kurdistanê|nivîskar=Çerkezê Reş|cih=Yêrêvan|sal=1998}} ==== Notên bikaranînê ==== Li Efrînê maneya wê "qelandin" e. Herwiha ji bo derxistin û dûrkirin peyva "qewitandin" tê bikaranîn. ==== Bi alfabeyên din ==== * {{ku-ar|قەوراندن}} ==== Formên alternatîv ==== * {{g|ku|qewartin}} * {{g|ku|qewrandin}} ==== Jê ==== * {{g|ku|qewirandî}} * {{g|ku|qewirîner}} * {{g|ku|qewirînk}} ==== Têkildar ==== * {{g|ku|qewirîn}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|bannen}}, {{W-|de|ins Exil schicken}}, {{W+|de|verbannen}}, {{W-|de|ausdörren|guman=erê}}, {{W-|de|forttreiben|guman=erê}}, {{W-|de|in der Pfanne braten|guman=erê}}, {{W+|de|rösten|guman=erê}}, {{W+|de|schnitzen|guman=erê}}, {{W+|de|verjagen|guman=erê}}, {{W+|de|versengen|guman=erê}}, {{W+|de|verstoßen|guman=erê}}, {{W+|de|vertreiben|guman=erê}}, {{W-|de|Versengen|guman=erê}} * {{Z|ar}}: {{W-|ar|الخرم|guman=erê}} * {{Z|eo}}: {{W-|eo|ekzili}} * {{Z|fa}}: {{W+|fa|بیرون کردن|guman=erê}}, {{W+|fa|دک کردن|guman=erê}}, {{W+|fa|گشاد کردن|guman=erê}} * {{Z|fi}}: {{W+|fi|karkottaa}} * {{Z|fr}}: {{W+|fr|bannir}} * {{Z|nl}}: {{W+|nl|uitbannen}}, {{W+|nl|verbannen}} * {{Z|io}}: {{W+|io|exilar}} * {{Z|en}}: to {{W+|en|banish}}, to {{W+|en|exile}}, {{W-|en|beat off the attack|guman=erê}}, {{W+|en|discard|guman=erê}}, {{W+|en|dispel|guman=erê}}, {{W+|en|displace|guman=erê}}, {{W+|en|doff|guman=erê}}, {{W+|en|drive away|guman=erê}}, {{W+|en|drive out|guman=erê}}, {{W+|en|excavation|guman=erê}}, {{W+|en|gouging|guman=erê}}, {{W+|en|hackle|guman=erê}}, {{W+|en|hollowing|guman=erê}}, {{W-|en|kick sb out|guman=erê}}, {{W+|en|rebuff|guman=erê}} * {{Z|it}}: {{W+|it|bandire}}, {{W+|it|esiliare}} * {{Z|pt}}: {{W+|pt|banir}}, {{W+|pt|degredar}}, {{W+|pt|desterrar}}, {{W+|pt|exilar}} * {{Z|es}}: {{W+|es|banir}}, {{W+|es|exilar}}, {{W+|es|desterrar}} * {{Z|tr}}: {{W+|tr|sürgün}} etmek, {{W+|tr|uzaklaştırmak}}, {{W+|tr|kovmak}}, [[sürgün]]e [[göndermek]], {{W+|tr|atlatmak|guman=erê}}, {{W+|tr|def|guman=erê}}, {{W+|tr|defetme|guman=erê}}, {{W+|tr|defetmek|guman=erê}}, {{W+|tr|dehlemek|guman=erê}}, {{W+|tr|deşme|guman=erê}}, {{W+|tr|deşmek|guman=erê}}, {{W+|tr|kavurmak|guman=erê}}, {{W+|tr|kovalama|guman=erê}}, {{W+|tr|kovalamak|guman=erê}}, {{W+|tr|kovalayış|guman=erê}}, {{W+|tr|kovma|guman=erê}} * {{Z|el}}: {{W+|el|εξορίζω|R=exorízo}} {{werger-bin}} === Lêker 2 === {{lêker|ku|c=x-gh}} # [[kun]] kirin, [[qul]] kirin, [[qewar]] kirin #* {{bênimûne|ku}} ==== Formên alternatîv ==== * {{g|ku|qewartin}} * {{g|ku|qewrandin}} ==== Jê ==== * {{g|ku|qewirandî}} * {{g|ku|qewirîner}} * {{g|ku|qewirînk}} ==== Têkildar ==== * {{g|ku|qewirîn}} ==== Etîmolojî ==== Ji {{paş|ku|qewar|-andin}}. ==== Werger ==== {{werger-ser}} * {{Z|ar}}: {{W+|ar|حفر}} * {{Z|en}}: {{W+|en|dig}}, {{W+|en|drill}}, {{W+|en|crave}}, {{W+|en|dig a hole}} * {{Z|tr}}: {{W+|tr|oymak|guman=erê}}, {{W+|tr|püskürtmek|guman=erê}}, {{W+|tr|savmak|guman=erê}}, {{W+|tr|sepetlemek|guman=erê}}, {{W+|tr|süpürmek|guman=erê}}, {{W+|tr|tart etmek|guman=erê}}, {{W+|tr|uğratmak|guman=erê}}, {{W+|tr|ütmek|guman=erê}} {{werger-bin}} === Lêker 3 === {{lêker|ku|c=x-gh}} # [[qelandin]]a tiştan wek goşt, [[îsot]], temetoz #* {{bênimûne|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|braten}} * {{Z|tr}}: {{W+|tr|kavurma}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # {{mane?|ku}} #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 1egcmonzd2ckry08t3j9d7ky5bw5vzl qerepere 0 15554 6329905 6315678 2026-08-13T00:57:18Z Wikihez 7344 6329905 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[qerebalix]], [[zingivor]], [[dengûdor]], [[heytûhot]], [[heysûbeys]], [[hêwirze]], [[helehela]], [[helehel]], [[hêlemêl]], <br>[[elalet]], [[gilûr]], [[boşayî]], [[ajawe]], [[bitom]], [[zirpe]], [[gurimtî]], [[gerxêl]], [[irbet]], [[şîşiltax]], [[geremol]], [[xepse]], [[heleloş]] #* {{jêder-pirtûk|ku|jêgirtin=Apê min î ku di xewna xwe de, di dema xwe ya eskeriyeyê de dijiya, xuya bû ku bi '''qerepera''' me şiyar bûbû.|nivîskar={{w|Azîz Nesîn}}|wergêr={{w|Mustafa Aydogan}}|sernav=Fîl Hemdî|orjînal=Fil Hamdi|cîh={{w|Stenbol}}|weşanxane={{w|Weşanên Doz}}|sal=1999|rûpel=71|isbn=975-6876-10-7}} #* {{jêder-pirtûk|ku|jêgirtin=Bi qasek şûn de '''qerepere''' li ber çavên wî çêbû, gêj bû û di cîh de ket. |nivîskar=Mihemed Şarman|sernav=Pirça Winda|cîh=Stembol|weşanxane={{w|Weşanên Avesta|Avesta}}|sal=2016|çap=2|rûpel=41|isbn=978-605-5585-41-9}} #* {{jêder-malper|ku|jêgirtin=Heya serê sibehan tu dibûyî '''qerepere'''<br>Ne ez ji te re bûm yar, ne jî te devji min berda|malper=helbestakurdi.com|url=https://www.helbestakurdi.com/helbest/m-zahir-kayan--sehida-yekemin.html|sernav=Şehîda Yekemîn|nivîskar=M. Zahir Kayan}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|clamor}} * {{Z|tr}}: {{W+|tr|har gür}}, {{W+|tr|gürültü}}, {{W+|tr|şamata}} {{werger-bin}} l5mzrxv9zfh9ondyuglcaou5gzqqm67 cînav 0 17543 6329636 6304438 2026-08-12T15:06:16Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329636 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/d͡ʒiˈːnɑːv/}} * {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-cînav.wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{f|ku|rêziman}} [[peyv|Peyvên]] li [[şûn]]a [[navdêr]]an tên [[bikaranîn]] daku [[navdêr]] neyên [[dubarekirin]]. #: {{hevmaneyên peyvê|ku|zemîr|şûnnav}} #: {{nm|ku|Bo nimûne vana '''cînav''' in: [[ez]], [[tu]], [[ew]], [[em]], [[hûn]], [[ew]], [[ev]], [[çi]], [[kî]], û [[form]]ên wan yên [[tewandî]].'' #* {{nimûne?|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|جیناڤ}} ==== Formên alternatîv ==== * [[cînavk]] ==== Jê ==== * [[cînavên nîşander]] * [[cînavên kesîn]] * [[cînavên xwedanî]] ==== Etîmolojî ==== Ji {{heve|ku|cî|nav}}. ==== Bide ber ==== {{birren peyvan}} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|voornaamwoord}} * {{Z|sq}}: {{W+|sq|përemri|n}} * {{Z|de}}: {{W+|de|Fürwort|nt}}, {{W-|de|Personwort|nt}}, {{W-|de|Personenwort|nt}}, {{W+|de|Pronomen|nt}}, {{W+|de|Pronom|nt}} *: {{Z|gmh}}: {{W-|gmh|vornam}} * {{Z|alt}}: {{W-|alt|солума}} * {{Z|am}}: {{W-|am|ተውላጠ ስም}} * {{Z|ast}}: {{W+|ast|pronome}} * {{Z|az}}: {{W-|az|əvəzlik}} * {{Z|eu}}: {{W-|eu|izenordain}} * {{Z|ba}}: {{W-|ba|алмаш|sc=Cyrl}} * {{Z|be}}: {{W-|be|займе́ннік|n|sc=Cyrl}} * {{Z|bn}}: {{W+|bn|সর্বনাম}} * {{Z|bcl}}: {{W-|bcl|panangli}} * {{Z|br}}: {{W+|br|raganv|n}} * {{Z|bg}}: {{W+|bg|местоиме́ние|nt}} * {{Z|my}}: {{W+|my|နာမ်စား|sc=Mymr}} * {{Z|ch}}: {{W-|ch|klå'an}} * {{Z|ce}}: {{W-|ce|цӏерметдош}} * {{Z|cs}}: {{W+|cs|zájmeno|nt}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|代詞|tr=doi6 ci4}} *: {{Z|cmn}}: {{W+|cmn|代詞|tr=dàicí}}, {{W+|cmn|代名詞|tr=dàimíngcí}} *: {{Z|nan}}: {{W-|nan|代詞|tr=tāi-sû}} * {{Z|cv}}: {{W-|cv|местоимени|sc=Cyrl}}, {{W-|cv|ылмаш}} * {{Z|da}}: {{W+|da|pronomen}}, {{W+|da|stedord}} * {{Z|id}}: {{W+|id|pronomina}}, {{W+|id|kata ganti}} * {{Z|ar}}: {{W+|ar|ضَمِير|n}}, {{W+|ar|ضَمَائِرُ|n-p}} * {{Z|hy}}: {{W+|hy|դերանուն}} * {{Z|myv}}: {{W-|myv|таркасвал}} * {{Z|eo}}: {{W+|eo|pronomo}} * {{Z|et}}: {{W+|et|asesõna}}, {{W+|et|pronoomen}} * {{Z|ee}}: {{W-|ee|nuŋkɔteƒenɔnya}} * {{Z|fa}}: {{W+|fa|ضمیر|tr=zamir}}, {{W-|fa|پیشنام|tr=pišnâm}} * {{Z|fo}}: {{W+|fo|fornavn|nt}} * {{Z|fi}}: {{W+|fi|asemo}}, {{W+|fi|pronomini}} * {{Z|fr}}: {{W+|fr|pronom|n}} * {{Z|fy}}: {{W+|fy|foarnamwurd|nt}} * {{Z|gd}}: {{W-|gd|riochdair}} * {{Z|gl}}: {{W+|gl|pronome}} * {{Z|ka}}: {{W-|ka|ნაცვალსახელი}} * {{Z|hi}}: {{W+|hi|सर्वनाम|n|sc=Deva}} * {{Z|nl}}: {{W+|nl|voornaamwoord|nt}} * {{Z|he}}: {{W+|he|כנוי גוף|n|tr=kinoi guf|cuda=כִּנּוּי גּוּף / כנוי גוף}}, {{W-|he|שם הגוף|tr=shem hagúf}} * {{Z|io}}: {{W+|io|pronomo}} * {{Z|ang}}: {{W-|ang|bīnama|n}} * {{Z|en}}: {{W+|en|pronoun}} * {{Z|izh}}: {{W-|izh|pronomina}}, {{W-|izh|nimensihalliin}} * {{Z|ia}}: {{W+|ia|pronomine}} * {{Z|ga}}: {{W+|ga|forainm|n}} * {{Z|it}}: {{W+|it|pronome|n}} * {{Z|is}}: {{W+|is|fornafn|nt}} * {{Z|ja}}: {{W+|ja|代名詞|tr=だいめいし, daimeishi|sc=Jpan}} * {{Z|xal}}: {{W-|xal|орч нерн}} * {{Z|pam}}: {{W-|pam|panalili}} * {{Z|ca}}: {{W+|ca|pronom|n}} * {{Z|qu}}: {{W-|qu|sutip rantin}}, {{W-|qu|sutiranti}} * {{Z|ky}}: {{W+|ky|жактама|sc=Cyrl}} * {{Z|ko}}: {{W+|ko|대명사}} * {{Z|kum}}: {{W-|kum|орунча|tr=orunça}} * {{Z|la}}: {{W-|la|prōnōmen|nt}}, {{W-|la|prōvocābulum}} * {{Z|lv}}: {{W+|lv|vietniekvārds|n}} * {{Z|lo}}: {{W-|lo|ສັບພະນາມ}} * {{Z|ln}}: {{W-|ln|likitana}} * {{Z|li}}: {{W+|li|veurnaamwaord|nt}} * {{Z|lt}}: {{W+|lt|įvardis|n}} * {{Z|mk}}: {{W-|mk|заменка|m}} * {{Z|ml}}: {{W+|ml|സര്‍വ്വനാമം|sc=Mlym}} * {{Z|ms}}: {{W-|ms|kata ganti diri}} * {{Z|mt}}: {{W+|mt|pronom|n}} * {{Z|mi}}: {{W-|mi|tūkapi}}, {{W-|mi|kupu tūkapi}} * {{Z|hu}}: {{W+|hu|névmás}} * {{Z|mn}}: {{W-|mn|төлөөний нэр|sc=Cyrl}}, {{W-|mn|төлөөний үг}} * {{Z|nah}}: {{W-|nah|tlācatōcāitl}} * {{Z|ne}}: {{W-|ne|सर्वनाम}} * {{Z|nrf}}: {{W-|nrf|pronom|n}} * {{Z|non}}: {{W-|non|fornafn|nt}} * {{Z|no}}: *: {{Z|nb}}: {{W+|nb|pronomen}} *: {{Z|nn}}: {{W+|nn|pronomen}} * {{Z|oc}}: {{W+|oc|pronom|n}} * {{Z|om}}: {{W-|om|maqdhaala}} * {{Z|os}}: {{W-|os|номивӕг|sc=Cyrl}} * {{Z|ota}}: {{W-|ota|ضمیر|tr=zamir}} * {{Z|ug}}: {{W-|ug|ئالماش}} * {{Z|uz}}: {{W+|uz|olmosh}} * {{Z|ps}}: {{W+|ps|ضمير|n|tr=zamír}} * {{Z|pms}}: {{W-|pms|pronòm|n}} * {{Z|pdt}}: {{W-|pdt|Fawuat|nt}} * {{Z|pl}}: {{W+|pl|zaimek|n}} * {{Z|pt}}: {{W+|pt|pronome|n}} * {{Z|kk}}: {{W-|kk|есімдік|sc=Cyrl}} * {{Z|ro}}: {{W+|ro|pronume|nt}} * {{Z|ru}}: {{W+|ru|местоиме́ние|nt}} * {{Z|rue}}: {{W-|rue|містоназывник|n}} * {{Z|se}}: {{W-|se|pronomen}} * {{Z|sa}}: {{W+|sa|सर्वनामन्|nt}} * {{Z|scn}}: {{W+|scn|prunomu|n}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|заменица|m|sc=Cyrl}} *: Latînî: {{W-|sh|zamenica|m}} * {{Z|sco}}: {{W-|sco|pronoun}} * {{Z|sk}}: {{W+|sk|zámeno|nt}} * {{Z|sl}}: {{W+|sl|zaímek|n}} * {{Z|es}}: {{W+|es|pronombre|n}} * {{Z|sw}}: {{W-|sw|kiwakilishi}} * {{Z|sv}}: {{W+|sv|pronomen|nt}} * {{Z|tg}}: {{W+|tg|ҷонишин|sc=Cyrl}}, {{W-|tg|замир‍|sc=Cyrl}} * {{Z|tl}}: {{W+|tl|panghalip}} * {{Z|ta}}: {{W+|ta|பெயர்ச்சொல்}} * {{Z|th}}: {{W+|th|สรรพนาม}} * {{Z|te}}: {{W+|te|సర్వనామము}} * {{Z|crh}}: {{W-|crh|zamir}} * {{Z|tt}}: {{W+|tt|алмашлык|sc=Cyrl}} * {{Z|tr}}: {{W+|tr|zamir}}, {{W-|tr|ivazlık}}, {{W+|tr|almaş}} * {{Z|tk}}: {{W+|tk|çalyşma}} * {{Z|bo}}: {{W-|bo|མིང་ཚབ}} * {{Z|ur}}: {{W+|ur|ضمیر|n|tr=zamīr|sc=ur-Arab}} * {{Z|uk}}: {{W+|uk|займе́нник|n|sc=Cyrl}} * {{Z|vi}}: {{W+|vi|đại từ}} * {{Z|vo}}: {{W+|vo|pönop}} * {{Z|wa}}: {{W+|wa|prono}} * {{Z|war}}: {{W-|war|imbesngaran}}, {{W-|war|taligngaran}}, {{W-|war|talingaran}}, {{W-|war|talingáran}} * {{Z|cy}}: {{W-|cy|rhagenw|n}} * {{Z|km}}: {{W+|km|សព្វនាម}} * {{Z|yi}}: {{W-|yi|פּראָנאָם|n}} * {{Z|el}}: {{W+|el|αντωνυμία|m}} *: Kevn: {{W-|grc|ἀντωνυμία|m}}, {{W-|grc|ἀντώνυμον|nt}} * {{Z|zu}}: {{W-|zu|isabizwana|c7|c8}} {{werger-bin}} :{{werger çavkanî|en|pronoun|beş=Ev qismê Wergerê|oldid=75397330}} d726cuojopddewto5nlxwjmozvfdp95 6329637 6329636 2026-08-12T15:06:28Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329637 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/d͡ʒiˈːnɑːv/}} * {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-cînav.wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{f|ku|rêziman}} [[peyv|Peyvên]] li [[şûn]]a [[navdêr]]an tên [[bikaranîn]] daku [[navdêr]] neyên [[dubarekirin]]. #: {{hevmaneyên peyvê|ku|zemîr|şûnnav}} #: {{nm|ku|Bo nimûne vana '''cînav''' in: [[ez]], [[tu]], [[ew]], [[em]], [[hûn]], [[ew]], [[ev]], [[çi]], [[kî]], û [[form]]ên wan yên [[tewandî]].}} #* {{nimûne?|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|جیناڤ}} ==== Formên alternatîv ==== * [[cînavk]] ==== Jê ==== * [[cînavên nîşander]] * [[cînavên kesîn]] * [[cînavên xwedanî]] ==== Etîmolojî ==== Ji {{heve|ku|cî|nav}}. ==== Bide ber ==== {{birren peyvan}} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|voornaamwoord}} * {{Z|sq}}: {{W+|sq|përemri|n}} * {{Z|de}}: {{W+|de|Fürwort|nt}}, {{W-|de|Personwort|nt}}, {{W-|de|Personenwort|nt}}, {{W+|de|Pronomen|nt}}, {{W+|de|Pronom|nt}} *: {{Z|gmh}}: {{W-|gmh|vornam}} * {{Z|alt}}: {{W-|alt|солума}} * {{Z|am}}: {{W-|am|ተውላጠ ስም}} * {{Z|ast}}: {{W+|ast|pronome}} * {{Z|az}}: {{W-|az|əvəzlik}} * {{Z|eu}}: {{W-|eu|izenordain}} * {{Z|ba}}: {{W-|ba|алмаш|sc=Cyrl}} * {{Z|be}}: {{W-|be|займе́ннік|n|sc=Cyrl}} * {{Z|bn}}: {{W+|bn|সর্বনাম}} * {{Z|bcl}}: {{W-|bcl|panangli}} * {{Z|br}}: {{W+|br|raganv|n}} * {{Z|bg}}: {{W+|bg|местоиме́ние|nt}} * {{Z|my}}: {{W+|my|နာမ်စား|sc=Mymr}} * {{Z|ch}}: {{W-|ch|klå'an}} * {{Z|ce}}: {{W-|ce|цӏерметдош}} * {{Z|cs}}: {{W+|cs|zájmeno|nt}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|代詞|tr=doi6 ci4}} *: {{Z|cmn}}: {{W+|cmn|代詞|tr=dàicí}}, {{W+|cmn|代名詞|tr=dàimíngcí}} *: {{Z|nan}}: {{W-|nan|代詞|tr=tāi-sû}} * {{Z|cv}}: {{W-|cv|местоимени|sc=Cyrl}}, {{W-|cv|ылмаш}} * {{Z|da}}: {{W+|da|pronomen}}, {{W+|da|stedord}} * {{Z|id}}: {{W+|id|pronomina}}, {{W+|id|kata ganti}} * {{Z|ar}}: {{W+|ar|ضَمِير|n}}, {{W+|ar|ضَمَائِرُ|n-p}} * {{Z|hy}}: {{W+|hy|դերանուն}} * {{Z|myv}}: {{W-|myv|таркасвал}} * {{Z|eo}}: {{W+|eo|pronomo}} * {{Z|et}}: {{W+|et|asesõna}}, {{W+|et|pronoomen}} * {{Z|ee}}: {{W-|ee|nuŋkɔteƒenɔnya}} * {{Z|fa}}: {{W+|fa|ضمیر|tr=zamir}}, {{W-|fa|پیشنام|tr=pišnâm}} * {{Z|fo}}: {{W+|fo|fornavn|nt}} * {{Z|fi}}: {{W+|fi|asemo}}, {{W+|fi|pronomini}} * {{Z|fr}}: {{W+|fr|pronom|n}} * {{Z|fy}}: {{W+|fy|foarnamwurd|nt}} * {{Z|gd}}: {{W-|gd|riochdair}} * {{Z|gl}}: {{W+|gl|pronome}} * {{Z|ka}}: {{W-|ka|ნაცვალსახელი}} * {{Z|hi}}: {{W+|hi|सर्वनाम|n|sc=Deva}} * {{Z|nl}}: {{W+|nl|voornaamwoord|nt}} * {{Z|he}}: {{W+|he|כנוי גוף|n|tr=kinoi guf|cuda=כִּנּוּי גּוּף / כנוי גוף}}, {{W-|he|שם הגוף|tr=shem hagúf}} * {{Z|io}}: {{W+|io|pronomo}} * {{Z|ang}}: {{W-|ang|bīnama|n}} * {{Z|en}}: {{W+|en|pronoun}} * {{Z|izh}}: {{W-|izh|pronomina}}, {{W-|izh|nimensihalliin}} * {{Z|ia}}: {{W+|ia|pronomine}} * {{Z|ga}}: {{W+|ga|forainm|n}} * {{Z|it}}: {{W+|it|pronome|n}} * {{Z|is}}: {{W+|is|fornafn|nt}} * {{Z|ja}}: {{W+|ja|代名詞|tr=だいめいし, daimeishi|sc=Jpan}} * {{Z|xal}}: {{W-|xal|орч нерн}} * {{Z|pam}}: {{W-|pam|panalili}} * {{Z|ca}}: {{W+|ca|pronom|n}} * {{Z|qu}}: {{W-|qu|sutip rantin}}, {{W-|qu|sutiranti}} * {{Z|ky}}: {{W+|ky|жактама|sc=Cyrl}} * {{Z|ko}}: {{W+|ko|대명사}} * {{Z|kum}}: {{W-|kum|орунча|tr=orunça}} * {{Z|la}}: {{W-|la|prōnōmen|nt}}, {{W-|la|prōvocābulum}} * {{Z|lv}}: {{W+|lv|vietniekvārds|n}} * {{Z|lo}}: {{W-|lo|ສັບພະນາມ}} * {{Z|ln}}: {{W-|ln|likitana}} * {{Z|li}}: {{W+|li|veurnaamwaord|nt}} * {{Z|lt}}: {{W+|lt|įvardis|n}} * {{Z|mk}}: {{W-|mk|заменка|m}} * {{Z|ml}}: {{W+|ml|സര്‍വ്വനാമം|sc=Mlym}} * {{Z|ms}}: {{W-|ms|kata ganti diri}} * {{Z|mt}}: {{W+|mt|pronom|n}} * {{Z|mi}}: {{W-|mi|tūkapi}}, {{W-|mi|kupu tūkapi}} * {{Z|hu}}: {{W+|hu|névmás}} * {{Z|mn}}: {{W-|mn|төлөөний нэр|sc=Cyrl}}, {{W-|mn|төлөөний үг}} * {{Z|nah}}: {{W-|nah|tlācatōcāitl}} * {{Z|ne}}: {{W-|ne|सर्वनाम}} * {{Z|nrf}}: {{W-|nrf|pronom|n}} * {{Z|non}}: {{W-|non|fornafn|nt}} * {{Z|no}}: *: {{Z|nb}}: {{W+|nb|pronomen}} *: {{Z|nn}}: {{W+|nn|pronomen}} * {{Z|oc}}: {{W+|oc|pronom|n}} * {{Z|om}}: {{W-|om|maqdhaala}} * {{Z|os}}: {{W-|os|номивӕг|sc=Cyrl}} * {{Z|ota}}: {{W-|ota|ضمیر|tr=zamir}} * {{Z|ug}}: {{W-|ug|ئالماش}} * {{Z|uz}}: {{W+|uz|olmosh}} * {{Z|ps}}: {{W+|ps|ضمير|n|tr=zamír}} * {{Z|pms}}: {{W-|pms|pronòm|n}} * {{Z|pdt}}: {{W-|pdt|Fawuat|nt}} * {{Z|pl}}: {{W+|pl|zaimek|n}} * {{Z|pt}}: {{W+|pt|pronome|n}} * {{Z|kk}}: {{W-|kk|есімдік|sc=Cyrl}} * {{Z|ro}}: {{W+|ro|pronume|nt}} * {{Z|ru}}: {{W+|ru|местоиме́ние|nt}} * {{Z|rue}}: {{W-|rue|містоназывник|n}} * {{Z|se}}: {{W-|se|pronomen}} * {{Z|sa}}: {{W+|sa|सर्वनामन्|nt}} * {{Z|scn}}: {{W+|scn|prunomu|n}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|заменица|m|sc=Cyrl}} *: Latînî: {{W-|sh|zamenica|m}} * {{Z|sco}}: {{W-|sco|pronoun}} * {{Z|sk}}: {{W+|sk|zámeno|nt}} * {{Z|sl}}: {{W+|sl|zaímek|n}} * {{Z|es}}: {{W+|es|pronombre|n}} * {{Z|sw}}: {{W-|sw|kiwakilishi}} * {{Z|sv}}: {{W+|sv|pronomen|nt}} * {{Z|tg}}: {{W+|tg|ҷонишин|sc=Cyrl}}, {{W-|tg|замир‍|sc=Cyrl}} * {{Z|tl}}: {{W+|tl|panghalip}} * {{Z|ta}}: {{W+|ta|பெயர்ச்சொல்}} * {{Z|th}}: {{W+|th|สรรพนาม}} * {{Z|te}}: {{W+|te|సర్వనామము}} * {{Z|crh}}: {{W-|crh|zamir}} * {{Z|tt}}: {{W+|tt|алмашлык|sc=Cyrl}} * {{Z|tr}}: {{W+|tr|zamir}}, {{W-|tr|ivazlık}}, {{W+|tr|almaş}} * {{Z|tk}}: {{W+|tk|çalyşma}} * {{Z|bo}}: {{W-|bo|མིང་ཚབ}} * {{Z|ur}}: {{W+|ur|ضمیر|n|tr=zamīr|sc=ur-Arab}} * {{Z|uk}}: {{W+|uk|займе́нник|n|sc=Cyrl}} * {{Z|vi}}: {{W+|vi|đại từ}} * {{Z|vo}}: {{W+|vo|pönop}} * {{Z|wa}}: {{W+|wa|prono}} * {{Z|war}}: {{W-|war|imbesngaran}}, {{W-|war|taligngaran}}, {{W-|war|talingaran}}, {{W-|war|talingáran}} * {{Z|cy}}: {{W-|cy|rhagenw|n}} * {{Z|km}}: {{W+|km|សព្វនាម}} * {{Z|yi}}: {{W-|yi|פּראָנאָם|n}} * {{Z|el}}: {{W+|el|αντωνυμία|m}} *: Kevn: {{W-|grc|ἀντωνυμία|m}}, {{W-|grc|ἀντώνυμον|nt}} * {{Z|zu}}: {{W-|zu|isabizwana|c7|c8}} {{werger-bin}} :{{werger çavkanî|en|pronoun|beş=Ev qismê Wergerê|oldid=75397330}} rbufu4dc7kmed7yg4xa0j8s1ehuj9qg 6329638 6329637 2026-08-12T15:08:43Z Wikihez 7344 +nimûneya bikaranînê bi amûra « [[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]] » (v1.7). 6329638 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/d͡ʒiˈːnɑːv/}} * {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-cînav.wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{f|ku|rêziman}} [[peyv|Peyvên]] li [[şûn]]a [[navdêr]]an tên [[bikaranîn]] daku [[navdêr]] neyên [[dubarekirin]]. #: {{hevmaneyên peyvê|ku|zemîr|şûnnav}} #: {{nm|ku|Bo nimûne vana '''cînav''' in: [[ez]], [[tu]], [[ew]], [[em]], [[hûn]], [[ew]], [[ev]], [[çi]], [[kî]], û [[form]]ên wan yên [[tewandî]].}} #* {{jêder-kovar|ku|nivîskar=Zafer Açar|sernav=Wergera ji Tirkî bo Kurdî û Bikaranîna Hin Peyv û Qalibên Girîng ên Kurdî di Wergerê de|kovar=Kurdiyat|hejmar=1|sal=2020|rûpel=101|url=https://zenodo.org/record/3895077|jêgirtin='''Cînav''' ew beşa axaftinê ye ku cihê navdêrekê digire ku di axaftinê de qala wê hatiye kirin.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|جیناڤ}} ==== Formên alternatîv ==== * [[cînavk]] ==== Jê ==== * [[cînavên nîşander]] * [[cînavên kesîn]] * [[cînavên xwedanî]] ==== Etîmolojî ==== Ji {{heve|ku|cî|nav}}. ==== Bide ber ==== {{birren peyvan}} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|voornaamwoord}} * {{Z|sq}}: {{W+|sq|përemri|n}} * {{Z|de}}: {{W+|de|Fürwort|nt}}, {{W-|de|Personwort|nt}}, {{W-|de|Personenwort|nt}}, {{W+|de|Pronomen|nt}}, {{W+|de|Pronom|nt}} *: {{Z|gmh}}: {{W-|gmh|vornam}} * {{Z|alt}}: {{W-|alt|солума}} * {{Z|am}}: {{W-|am|ተውላጠ ስም}} * {{Z|ast}}: {{W+|ast|pronome}} * {{Z|az}}: {{W-|az|əvəzlik}} * {{Z|eu}}: {{W-|eu|izenordain}} * {{Z|ba}}: {{W-|ba|алмаш|sc=Cyrl}} * {{Z|be}}: {{W-|be|займе́ннік|n|sc=Cyrl}} * {{Z|bn}}: {{W+|bn|সর্বনাম}} * {{Z|bcl}}: {{W-|bcl|panangli}} * {{Z|br}}: {{W+|br|raganv|n}} * {{Z|bg}}: {{W+|bg|местоиме́ние|nt}} * {{Z|my}}: {{W+|my|နာမ်စား|sc=Mymr}} * {{Z|ch}}: {{W-|ch|klå'an}} * {{Z|ce}}: {{W-|ce|цӏерметдош}} * {{Z|cs}}: {{W+|cs|zájmeno|nt}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|代詞|tr=doi6 ci4}} *: {{Z|cmn}}: {{W+|cmn|代詞|tr=dàicí}}, {{W+|cmn|代名詞|tr=dàimíngcí}} *: {{Z|nan}}: {{W-|nan|代詞|tr=tāi-sû}} * {{Z|cv}}: {{W-|cv|местоимени|sc=Cyrl}}, {{W-|cv|ылмаш}} * {{Z|da}}: {{W+|da|pronomen}}, {{W+|da|stedord}} * {{Z|id}}: {{W+|id|pronomina}}, {{W+|id|kata ganti}} * {{Z|ar}}: {{W+|ar|ضَمِير|n}}, {{W+|ar|ضَمَائِرُ|n-p}} * {{Z|hy}}: {{W+|hy|դերանուն}} * {{Z|myv}}: {{W-|myv|таркасвал}} * {{Z|eo}}: {{W+|eo|pronomo}} * {{Z|et}}: {{W+|et|asesõna}}, {{W+|et|pronoomen}} * {{Z|ee}}: {{W-|ee|nuŋkɔteƒenɔnya}} * {{Z|fa}}: {{W+|fa|ضمیر|tr=zamir}}, {{W-|fa|پیشنام|tr=pišnâm}} * {{Z|fo}}: {{W+|fo|fornavn|nt}} * {{Z|fi}}: {{W+|fi|asemo}}, {{W+|fi|pronomini}} * {{Z|fr}}: {{W+|fr|pronom|n}} * {{Z|fy}}: {{W+|fy|foarnamwurd|nt}} * {{Z|gd}}: {{W-|gd|riochdair}} * {{Z|gl}}: {{W+|gl|pronome}} * {{Z|ka}}: {{W-|ka|ნაცვალსახელი}} * {{Z|hi}}: {{W+|hi|सर्वनाम|n|sc=Deva}} * {{Z|nl}}: {{W+|nl|voornaamwoord|nt}} * {{Z|he}}: {{W+|he|כנוי גוף|n|tr=kinoi guf|cuda=כִּנּוּי גּוּף / כנוי גוף}}, {{W-|he|שם הגוף|tr=shem hagúf}} * {{Z|io}}: {{W+|io|pronomo}} * {{Z|ang}}: {{W-|ang|bīnama|n}} * {{Z|en}}: {{W+|en|pronoun}} * {{Z|izh}}: {{W-|izh|pronomina}}, {{W-|izh|nimensihalliin}} * {{Z|ia}}: {{W+|ia|pronomine}} * {{Z|ga}}: {{W+|ga|forainm|n}} * {{Z|it}}: {{W+|it|pronome|n}} * {{Z|is}}: {{W+|is|fornafn|nt}} * {{Z|ja}}: {{W+|ja|代名詞|tr=だいめいし, daimeishi|sc=Jpan}} * {{Z|xal}}: {{W-|xal|орч нерн}} * {{Z|pam}}: {{W-|pam|panalili}} * {{Z|ca}}: {{W+|ca|pronom|n}} * {{Z|qu}}: {{W-|qu|sutip rantin}}, {{W-|qu|sutiranti}} * {{Z|ky}}: {{W+|ky|жактама|sc=Cyrl}} * {{Z|ko}}: {{W+|ko|대명사}} * {{Z|kum}}: {{W-|kum|орунча|tr=orunça}} * {{Z|la}}: {{W-|la|prōnōmen|nt}}, {{W-|la|prōvocābulum}} * {{Z|lv}}: {{W+|lv|vietniekvārds|n}} * {{Z|lo}}: {{W-|lo|ສັບພະນາມ}} * {{Z|ln}}: {{W-|ln|likitana}} * {{Z|li}}: {{W+|li|veurnaamwaord|nt}} * {{Z|lt}}: {{W+|lt|įvardis|n}} * {{Z|mk}}: {{W-|mk|заменка|m}} * {{Z|ml}}: {{W+|ml|സര്‍വ്വനാമം|sc=Mlym}} * {{Z|ms}}: {{W-|ms|kata ganti diri}} * {{Z|mt}}: {{W+|mt|pronom|n}} * {{Z|mi}}: {{W-|mi|tūkapi}}, {{W-|mi|kupu tūkapi}} * {{Z|hu}}: {{W+|hu|névmás}} * {{Z|mn}}: {{W-|mn|төлөөний нэр|sc=Cyrl}}, {{W-|mn|төлөөний үг}} * {{Z|nah}}: {{W-|nah|tlācatōcāitl}} * {{Z|ne}}: {{W-|ne|सर्वनाम}} * {{Z|nrf}}: {{W-|nrf|pronom|n}} * {{Z|non}}: {{W-|non|fornafn|nt}} * {{Z|no}}: *: {{Z|nb}}: {{W+|nb|pronomen}} *: {{Z|nn}}: {{W+|nn|pronomen}} * {{Z|oc}}: {{W+|oc|pronom|n}} * {{Z|om}}: {{W-|om|maqdhaala}} * {{Z|os}}: {{W-|os|номивӕг|sc=Cyrl}} * {{Z|ota}}: {{W-|ota|ضمیر|tr=zamir}} * {{Z|ug}}: {{W-|ug|ئالماش}} * {{Z|uz}}: {{W+|uz|olmosh}} * {{Z|ps}}: {{W+|ps|ضمير|n|tr=zamír}} * {{Z|pms}}: {{W-|pms|pronòm|n}} * {{Z|pdt}}: {{W-|pdt|Fawuat|nt}} * {{Z|pl}}: {{W+|pl|zaimek|n}} * {{Z|pt}}: {{W+|pt|pronome|n}} * {{Z|kk}}: {{W-|kk|есімдік|sc=Cyrl}} * {{Z|ro}}: {{W+|ro|pronume|nt}} * {{Z|ru}}: {{W+|ru|местоиме́ние|nt}} * {{Z|rue}}: {{W-|rue|містоназывник|n}} * {{Z|se}}: {{W-|se|pronomen}} * {{Z|sa}}: {{W+|sa|सर्वनामन्|nt}} * {{Z|scn}}: {{W+|scn|prunomu|n}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|заменица|m|sc=Cyrl}} *: Latînî: {{W-|sh|zamenica|m}} * {{Z|sco}}: {{W-|sco|pronoun}} * {{Z|sk}}: {{W+|sk|zámeno|nt}} * {{Z|sl}}: {{W+|sl|zaímek|n}} * {{Z|es}}: {{W+|es|pronombre|n}} * {{Z|sw}}: {{W-|sw|kiwakilishi}} * {{Z|sv}}: {{W+|sv|pronomen|nt}} * {{Z|tg}}: {{W+|tg|ҷонишин|sc=Cyrl}}, {{W-|tg|замир‍|sc=Cyrl}} * {{Z|tl}}: {{W+|tl|panghalip}} * {{Z|ta}}: {{W+|ta|பெயர்ச்சொல்}} * {{Z|th}}: {{W+|th|สรรพนาม}} * {{Z|te}}: {{W+|te|సర్వనామము}} * {{Z|crh}}: {{W-|crh|zamir}} * {{Z|tt}}: {{W+|tt|алмашлык|sc=Cyrl}} * {{Z|tr}}: {{W+|tr|zamir}}, {{W-|tr|ivazlık}}, {{W+|tr|almaş}} * {{Z|tk}}: {{W+|tk|çalyşma}} * {{Z|bo}}: {{W-|bo|མིང་ཚབ}} * {{Z|ur}}: {{W+|ur|ضمیر|n|tr=zamīr|sc=ur-Arab}} * {{Z|uk}}: {{W+|uk|займе́нник|n|sc=Cyrl}} * {{Z|vi}}: {{W+|vi|đại từ}} * {{Z|vo}}: {{W+|vo|pönop}} * {{Z|wa}}: {{W+|wa|prono}} * {{Z|war}}: {{W-|war|imbesngaran}}, {{W-|war|taligngaran}}, {{W-|war|talingaran}}, {{W-|war|talingáran}} * {{Z|cy}}: {{W-|cy|rhagenw|n}} * {{Z|km}}: {{W+|km|សព្វនាម}} * {{Z|yi}}: {{W-|yi|פּראָנאָם|n}} * {{Z|el}}: {{W+|el|αντωνυμία|m}} *: Kevn: {{W-|grc|ἀντωνυμία|m}}, {{W-|grc|ἀντώνυμον|nt}} * {{Z|zu}}: {{W-|zu|isabizwana|c7|c8}} {{werger-bin}} :{{werger çavkanî|en|pronoun|beş=Ev qismê Wergerê|oldid=75397330}} bpmqrg5b3ya3sxbfjdd2i6px5i5ly7j 6329639 6329638 2026-08-12T15:09:24Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329639 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/d͡ʒiˈːnɑːv/}} * {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-cînav.wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{f|ku|rêziman}} [[peyv|Peyvên]] li [[şûn]]a [[navdêr]]an tên [[bikaranîn]] daku [[navdêr]] neyên [[dubarekirin]]. #: {{hevmaneyên peyvê|ku|zemîr|şûnnav}} #: {{nm|ku|Bo nimûne vana '''cînav''' in: [[ez]], [[tu]], [[ew]], [[em]], [[hûn]], [[ew]], [[ev]], [[çi]], [[kî]], û [[form]]ên wan yên [[tewandî]].}} #* {{jêder-kovar|ku|nivîskar=Zafer Açar|sernav=Wergera ji Tirkî bo Kurdî û Bikaranîna Hin Peyv û Qalibên Girîng ên Kurdî di Wergerê de|kovar=Kurdiyat|hejmar=1|sal=2020|rûpel=101|url=https://zenodo.org/record/3895077|jêgirtin='''Cînav''' ew beşa axaftinê ye ku cihê navdêrekê digire ku di axaftinê de qala wê hatiye kirin.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|جیناڤ}} ==== Formên alternatîv ==== * [[cînavk]] ==== Jê ==== * [[cînavên nîşander]] * [[cînavên kesîn]] * [[cînavên xwedanî]] ==== Etîmolojî ==== Ji {{heve|ku|cî|nav}}. ==== Bide ber ==== {{birren peyvan}} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|voornaamwoord}} * {{Z|sq}}: {{W+|sq|përemri|n}} * {{Z|de}}: {{W+|de|Fürwort|nt}}, {{W-|de|Personwort|nt}}, {{W-|de|Personenwort|nt}}, {{W+|de|Pronomen|nt}}, {{W+|de|Pronom|nt}} *: {{Z|gmh}}: {{W-|gmh|vornam}} * {{Z|alt}}: {{W-|alt|солума}} * {{Z|am}}: {{W-|am|ተውላጠ ስም}} * {{Z|ast}}: {{W+|ast|pronome}} * {{Z|az}}: {{W-|az|əvəzlik}} * {{Z|eu}}: {{W-|eu|izenordain}} * {{Z|ba}}: {{W-|ba|алмаш|sc=Cyrl}} * {{Z|be}}: {{W-|be|займе́ннік|n|sc=Cyrl}} * {{Z|bn}}: {{W+|bn|সর্বনাম}} * {{Z|bcl}}: {{W-|bcl|panangli}} * {{Z|br}}: {{W+|br|raganv|n}} * {{Z|bg}}: {{W+|bg|местоиме́ние|nt}} * {{Z|my}}: {{W+|my|နာမ်စား|sc=Mymr}} * {{Z|ch}}: {{W-|ch|klå'an}} * {{Z|ce}}: {{W-|ce|цӏерметдош}} * {{Z|cs}}: {{W+|cs|zájmeno|nt}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|代詞|tr=doi6 ci4}} *: {{Z|cmn}}: {{W+|cmn|代詞|tr=dàicí}}, {{W+|cmn|代名詞|tr=dàimíngcí}} *: {{Z|nan}}: {{W-|nan|代詞|tr=tāi-sû}} * {{Z|cv}}: {{W-|cv|местоимени|sc=Cyrl}}, {{W-|cv|ылмаш}} * {{Z|da}}: {{W+|da|pronomen}}, {{W+|da|stedord}} * {{Z|id}}: {{W+|id|pronomina}}, {{W+|id|kata ganti}} * {{Z|ar}}: {{W+|ar|ضَمِير|n}}, {{W+|ar|ضَمَائِرُ|n-p}} * {{Z|hy}}: {{W+|hy|դերանուն}} * {{Z|myv}}: {{W-|myv|таркасвал}} * {{Z|eo}}: {{W+|eo|pronomo}} * {{Z|et}}: {{W+|et|asesõna}}, {{W+|et|pronoomen}} * {{Z|ee}}: {{W-|ee|nuŋkɔteƒenɔnya}} * {{Z|fa}}: {{W+|fa|ضمیر|tr=zamir}}, {{W-|fa|پیشنام|tr=pišnâm}} * {{Z|fo}}: {{W+|fo|fornavn|nt}} * {{Z|fi}}: {{W+|fi|asemo}}, {{W+|fi|pronomini}} * {{Z|fr}}: {{W+|fr|pronom|n}} * {{Z|fy}}: {{W+|fy|foarnamwurd|nt}} * {{Z|gd}}: {{W-|gd|riochdair}} * {{Z|gl}}: {{W+|gl|pronome}} * {{Z|ka}}: {{W-|ka|ნაცვალსახელი}} * {{Z|hi}}: {{W+|hi|सर्वनाम|n|sc=Deva}} * {{Z|nl}}: {{W+|nl|voornaamwoord|nt}} * {{Z|he}}: {{W+|he|כנוי גוף|n|tr=kinoi guf|cuda=כִּנּוּי גּוּף / כנוי גוף}}, {{W-|he|שם הגוף|tr=shem hagúf}} * {{Z|io}}: {{W+|io|pronomo}} * {{Z|ang}}: {{W-|ang|bīnama|n}} * {{Z|en}}: {{W+|en|pronoun}} * {{Z|izh}}: {{W-|izh|pronomina}}, {{W-|izh|nimensihalliin}} * {{Z|ia}}: {{W+|ia|pronomine}} * {{Z|ga}}: {{W+|ga|forainm|n}} * {{Z|it}}: {{W+|it|pronome|n}} * {{Z|is}}: {{W+|is|fornafn|nt}} * {{Z|ja}}: {{W+|ja|代名詞|tr=だいめいし, daimeishi|sc=Jpan}} * {{Z|xal}}: {{W-|xal|орч нерн}} * {{Z|pam}}: {{W-|pam|panalili}} * {{Z|ca}}: {{W+|ca|pronom|n}} * {{Z|qu}}: {{W-|qu|sutip rantin}}, {{W-|qu|sutiranti}} * {{Z|ky}}: {{W+|ky|жактама|sc=Cyrl}} * {{Z|ko}}: {{W+|ko|대명사}} * {{Z|kum}}: {{W-|kum|орунча|tr=orunça}} * {{Z|la}}: {{W-|la|prōnōmen|nt}}, {{W-|la|prōvocābulum}} * {{Z|lv}}: {{W+|lv|vietniekvārds|n}} * {{Z|lo}}: {{W-|lo|ສັບພະນາມ}} * {{Z|ln}}: {{W-|ln|likitana}} * {{Z|li}}: {{W+|li|veurnaamwaord|nt}} * {{Z|lt}}: {{W+|lt|įvardis|n}} * {{Z|mk}}: {{W-|mk|заменка|m}} * {{Z|ml}}: {{W+|ml|സര്‍വ്വനാമം|sc=Mlym}} * {{Z|ms}}: {{W-|ms|kata ganti diri}} * {{Z|mt}}: {{W+|mt|pronom|n}} * {{Z|mi}}: {{W-|mi|tūkapi}}, {{W-|mi|kupu tūkapi}} * {{Z|hu}}: {{W+|hu|névmás}} * {{Z|mn}}: {{W-|mn|төлөөний нэр|sc=Cyrl}}, {{W-|mn|төлөөний үг}} * {{Z|nah}}: {{W-|nah|tlācatōcāitl}} * {{Z|ne}}: {{W-|ne|सर्वनाम}} * {{Z|nrf}}: {{W-|nrf|pronom|n}} * {{Z|non}}: {{W-|non|fornafn|nt}} * {{Z|no}}: *: {{Z|nb}}: {{W+|nb|pronomen}} *: {{Z|nn}}: {{W+|nn|pronomen}} * {{Z|oc}}: {{W+|oc|pronom|n}} * {{Z|om}}: {{W-|om|maqdhaala}} * {{Z|os}}: {{W-|os|номивӕг|sc=Cyrl}} * {{Z|ota}}: {{W-|ota|ضمیر|tr=zamir}} * {{Z|ug}}: {{W-|ug|ئالماش}} * {{Z|uz}}: {{W+|uz|olmosh}} * {{Z|ps}}: {{W+|ps|ضمير|n|tr=zamír}} * {{Z|pms}}: {{W-|pms|pronòm|n}} * {{Z|pdt}}: {{W-|pdt|Fawuat|nt}} * {{Z|pl}}: {{W+|pl|zaimek|n}} * {{Z|pt}}: {{W+|pt|pronome|n}} * {{Z|kk}}: {{W-|kk|есімдік|sc=Cyrl}} * {{Z|ro}}: {{W+|ro|pronume|nt}} * {{Z|ru}}: {{W+|ru|местоиме́ние|nt}} * {{Z|rue}}: {{W-|rue|містоназывник|n}} * {{Z|se}}: {{W-|se|pronomen}} * {{Z|sa}}: {{W+|sa|सर्वनामन्|nt}} * {{Z|scn}}: {{W+|scn|prunomu|n}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|заменица|m|sc=Cyrl}} *: Latînî: {{W-|sh|zamenica|m}} * {{Z|sco}}: {{W-|sco|pronoun}} * {{Z|sk}}: {{W+|sk|zámeno|nt}} * {{Z|sl}}: {{W+|sl|zaímek|n}} * {{Z|es}}: {{W+|es|pronombre|n}} * {{Z|sw}}: {{W-|sw|kiwakilishi}} * {{Z|sv}}: {{W+|sv|pronomen|nt}} * {{Z|tg}}: {{W+|tg|ҷонишин|sc=Cyrl}}, {{W-|tg|замир‍|sc=Cyrl}} * {{Z|tl}}: {{W+|tl|panghalip}} * {{Z|ta}}: {{W+|ta|பெயர்ச்சொல்}} * {{Z|th}}: {{W+|th|สรรพนาม}} * {{Z|te}}: {{W+|te|సర్వనామము}} * {{Z|crh}}: {{W-|crh|zamir}} * {{Z|tt}}: {{W+|tt|алмашлык|sc=Cyrl}} * {{Z|tr}}: {{W+|tr|zamir}}, {{W-|tr|ivazlık}}, {{W+|tr|almaş}} * {{Z|tk}}: {{W+|tk|çalyşma}} * {{Z|bo}}: {{W-|bo|མིང་ཚབ}} * {{Z|ur}}: {{W+|ur|ضمیر|n|tr=zamīr|sc=ur-Arab}} * {{Z|uk}}: {{W+|uk|займе́нник|n|sc=Cyrl}} * {{Z|vi}}: {{W+|vi|đại từ}} * {{Z|vo}}: {{W+|vo|pönop}} * {{Z|wa}}: {{W+|wa|prono}} * {{Z|war}}: {{W-|war|imbesngaran}}, {{W-|war|taligngaran}}, {{W-|war|talingaran}}, {{W-|war|talingáran}} * {{Z|cy}}: {{W-|cy|rhagenw|n}} * {{Z|km}}: {{W+|km|សព្វនាម}} * {{Z|yi}}: {{W-|yi|פּראָנאָם|n}} * {{Z|el}}: {{W+|el|αντωνυμία|m}} *: Kevn: {{W-|grc|ἀντωνυμία|m}}, {{W-|grc|ἀντώνυμον|nt}} * {{Z|zu}}: {{W-|zu|isabizwana|c7|c8}} {{werger-bin}} :{{werger çavkanî|en|pronoun|beş=Ev qismê Wergerê|oldid=75397330}} tl68ki21fr1vyxamd0lczwtchxpk59t 6329640 6329639 2026-08-12T15:11:15Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329640 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/d͡ʒiˈːnɑːv/}} * {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-cînav.wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{f|ku|rêziman}} [[peyv|Peyvên]] li [[şûn]]a [[navdêr]]an tên [[bikaranîn]] daku [[navdêr]] neyên [[dubarekirin]]. #: {{hevmaneyên peyvê|ku|zemîr|şûnnav}} #: {{nm|ku|Bo nimûne vana '''cînav''' in: [[ez]], [[tu]], [[ew]], [[em]], [[hûn]], [[ew]], [[ev]], [[çi]], [[kî]], û [[form]]ên wan yên [[tewandî]].}} #* {{jêder-kovar|ku|nivîskar=Zafer Açar|sernav=Wergera ji Tirkî bo Kurdî û Bikaranîna Hin Peyv û Qalibên Girîng ên Kurdî di Wergerê de|kovar=Kurdiyat|hejmar=1|sal=2020|rûpel=101|url=https://zenodo.org/record/3895077|jêgirtin='''Cînav''' ew beşa axaftinê ye ku cihê navdêrekê digire ku di axaftinê de qala wê hatiye kirin.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|جیناڤ}} ==== Formên alternatîv ==== * [[cînavk]] * {{alt|ku|cihnav}} ==== Jê ==== * [[cînavên nîşander]] * [[cînavên kesîn]] * [[cînavên xwedanî]] ==== Etîmolojî ==== Ji {{heve|ku|cî|nav}}. ==== Bide ber ==== {{birren peyvan}} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|voornaamwoord}} * {{Z|sq}}: {{W+|sq|përemri|n}} * {{Z|de}}: {{W+|de|Fürwort|nt}}, {{W-|de|Personwort|nt}}, {{W-|de|Personenwort|nt}}, {{W+|de|Pronomen|nt}}, {{W+|de|Pronom|nt}} *: {{Z|gmh}}: {{W-|gmh|vornam}} * {{Z|alt}}: {{W-|alt|солума}} * {{Z|am}}: {{W-|am|ተውላጠ ስም}} * {{Z|ast}}: {{W+|ast|pronome}} * {{Z|az}}: {{W-|az|əvəzlik}} * {{Z|eu}}: {{W-|eu|izenordain}} * {{Z|ba}}: {{W-|ba|алмаш|sc=Cyrl}} * {{Z|be}}: {{W-|be|займе́ннік|n|sc=Cyrl}} * {{Z|bn}}: {{W+|bn|সর্বনাম}} * {{Z|bcl}}: {{W-|bcl|panangli}} * {{Z|br}}: {{W+|br|raganv|n}} * {{Z|bg}}: {{W+|bg|местоиме́ние|nt}} * {{Z|my}}: {{W+|my|နာမ်စား|sc=Mymr}} * {{Z|ch}}: {{W-|ch|klå'an}} * {{Z|ce}}: {{W-|ce|цӏерметдош}} * {{Z|cs}}: {{W+|cs|zájmeno|nt}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|代詞|tr=doi6 ci4}} *: {{Z|cmn}}: {{W+|cmn|代詞|tr=dàicí}}, {{W+|cmn|代名詞|tr=dàimíngcí}} *: {{Z|nan}}: {{W-|nan|代詞|tr=tāi-sû}} * {{Z|cv}}: {{W-|cv|местоимени|sc=Cyrl}}, {{W-|cv|ылмаш}} * {{Z|da}}: {{W+|da|pronomen}}, {{W+|da|stedord}} * {{Z|id}}: {{W+|id|pronomina}}, {{W+|id|kata ganti}} * {{Z|ar}}: {{W+|ar|ضَمِير|n}}, {{W+|ar|ضَمَائِرُ|n-p}} * {{Z|hy}}: {{W+|hy|դերանուն}} * {{Z|myv}}: {{W-|myv|таркасвал}} * {{Z|eo}}: {{W+|eo|pronomo}} * {{Z|et}}: {{W+|et|asesõna}}, {{W+|et|pronoomen}} * {{Z|ee}}: {{W-|ee|nuŋkɔteƒenɔnya}} * {{Z|fa}}: {{W+|fa|ضمیر|tr=zamir}}, {{W-|fa|پیشنام|tr=pišnâm}} * {{Z|fo}}: {{W+|fo|fornavn|nt}} * {{Z|fi}}: {{W+|fi|asemo}}, {{W+|fi|pronomini}} * {{Z|fr}}: {{W+|fr|pronom|n}} * {{Z|fy}}: {{W+|fy|foarnamwurd|nt}} * {{Z|gd}}: {{W-|gd|riochdair}} * {{Z|gl}}: {{W+|gl|pronome}} * {{Z|ka}}: {{W-|ka|ნაცვალსახელი}} * {{Z|hi}}: {{W+|hi|सर्वनाम|n|sc=Deva}} * {{Z|nl}}: {{W+|nl|voornaamwoord|nt}} * {{Z|he}}: {{W+|he|כנוי גוף|n|tr=kinoi guf|cuda=כִּנּוּי גּוּף / כנוי גוף}}, {{W-|he|שם הגוף|tr=shem hagúf}} * {{Z|io}}: {{W+|io|pronomo}} * {{Z|ang}}: {{W-|ang|bīnama|n}} * {{Z|en}}: {{W+|en|pronoun}} * {{Z|izh}}: {{W-|izh|pronomina}}, {{W-|izh|nimensihalliin}} * {{Z|ia}}: {{W+|ia|pronomine}} * {{Z|ga}}: {{W+|ga|forainm|n}} * {{Z|it}}: {{W+|it|pronome|n}} * {{Z|is}}: {{W+|is|fornafn|nt}} * {{Z|ja}}: {{W+|ja|代名詞|tr=だいめいし, daimeishi|sc=Jpan}} * {{Z|xal}}: {{W-|xal|орч нерн}} * {{Z|pam}}: {{W-|pam|panalili}} * {{Z|ca}}: {{W+|ca|pronom|n}} * {{Z|qu}}: {{W-|qu|sutip rantin}}, {{W-|qu|sutiranti}} * {{Z|ky}}: {{W+|ky|жактама|sc=Cyrl}} * {{Z|ko}}: {{W+|ko|대명사}} * {{Z|kum}}: {{W-|kum|орунча|tr=orunça}} * {{Z|la}}: {{W-|la|prōnōmen|nt}}, {{W-|la|prōvocābulum}} * {{Z|lv}}: {{W+|lv|vietniekvārds|n}} * {{Z|lo}}: {{W-|lo|ສັບພະນາມ}} * {{Z|ln}}: {{W-|ln|likitana}} * {{Z|li}}: {{W+|li|veurnaamwaord|nt}} * {{Z|lt}}: {{W+|lt|įvardis|n}} * {{Z|mk}}: {{W-|mk|заменка|m}} * {{Z|ml}}: {{W+|ml|സര്‍വ്വനാമം|sc=Mlym}} * {{Z|ms}}: {{W-|ms|kata ganti diri}} * {{Z|mt}}: {{W+|mt|pronom|n}} * {{Z|mi}}: {{W-|mi|tūkapi}}, {{W-|mi|kupu tūkapi}} * {{Z|hu}}: {{W+|hu|névmás}} * {{Z|mn}}: {{W-|mn|төлөөний нэр|sc=Cyrl}}, {{W-|mn|төлөөний үг}} * {{Z|nah}}: {{W-|nah|tlācatōcāitl}} * {{Z|ne}}: {{W-|ne|सर्वनाम}} * {{Z|nrf}}: {{W-|nrf|pronom|n}} * {{Z|non}}: {{W-|non|fornafn|nt}} * {{Z|no}}: *: {{Z|nb}}: {{W+|nb|pronomen}} *: {{Z|nn}}: {{W+|nn|pronomen}} * {{Z|oc}}: {{W+|oc|pronom|n}} * {{Z|om}}: {{W-|om|maqdhaala}} * {{Z|os}}: {{W-|os|номивӕг|sc=Cyrl}} * {{Z|ota}}: {{W-|ota|ضمیر|tr=zamir}} * {{Z|ug}}: {{W-|ug|ئالماش}} * {{Z|uz}}: {{W+|uz|olmosh}} * {{Z|ps}}: {{W+|ps|ضمير|n|tr=zamír}} * {{Z|pms}}: {{W-|pms|pronòm|n}} * {{Z|pdt}}: {{W-|pdt|Fawuat|nt}} * {{Z|pl}}: {{W+|pl|zaimek|n}} * {{Z|pt}}: {{W+|pt|pronome|n}} * {{Z|kk}}: {{W-|kk|есімдік|sc=Cyrl}} * {{Z|ro}}: {{W+|ro|pronume|nt}} * {{Z|ru}}: {{W+|ru|местоиме́ние|nt}} * {{Z|rue}}: {{W-|rue|містоназывник|n}} * {{Z|se}}: {{W-|se|pronomen}} * {{Z|sa}}: {{W+|sa|सर्वनामन्|nt}} * {{Z|scn}}: {{W+|scn|prunomu|n}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|заменица|m|sc=Cyrl}} *: Latînî: {{W-|sh|zamenica|m}} * {{Z|sco}}: {{W-|sco|pronoun}} * {{Z|sk}}: {{W+|sk|zámeno|nt}} * {{Z|sl}}: {{W+|sl|zaímek|n}} * {{Z|es}}: {{W+|es|pronombre|n}} * {{Z|sw}}: {{W-|sw|kiwakilishi}} * {{Z|sv}}: {{W+|sv|pronomen|nt}} * {{Z|tg}}: {{W+|tg|ҷонишин|sc=Cyrl}}, {{W-|tg|замир‍|sc=Cyrl}} * {{Z|tl}}: {{W+|tl|panghalip}} * {{Z|ta}}: {{W+|ta|பெயர்ச்சொல்}} * {{Z|th}}: {{W+|th|สรรพนาม}} * {{Z|te}}: {{W+|te|సర్వనామము}} * {{Z|crh}}: {{W-|crh|zamir}} * {{Z|tt}}: {{W+|tt|алмашлык|sc=Cyrl}} * {{Z|tr}}: {{W+|tr|zamir}}, {{W-|tr|ivazlık}}, {{W+|tr|almaş}} * {{Z|tk}}: {{W+|tk|çalyşma}} * {{Z|bo}}: {{W-|bo|མིང་ཚབ}} * {{Z|ur}}: {{W+|ur|ضمیر|n|tr=zamīr|sc=ur-Arab}} * {{Z|uk}}: {{W+|uk|займе́нник|n|sc=Cyrl}} * {{Z|vi}}: {{W+|vi|đại từ}} * {{Z|vo}}: {{W+|vo|pönop}} * {{Z|wa}}: {{W+|wa|prono}} * {{Z|war}}: {{W-|war|imbesngaran}}, {{W-|war|taligngaran}}, {{W-|war|talingaran}}, {{W-|war|talingáran}} * {{Z|cy}}: {{W-|cy|rhagenw|n}} * {{Z|km}}: {{W+|km|សព្វនាម}} * {{Z|yi}}: {{W-|yi|פּראָנאָם|n}} * {{Z|el}}: {{W+|el|αντωνυμία|m}} *: Kevn: {{W-|grc|ἀντωνυμία|m}}, {{W-|grc|ἀντώνυμον|nt}} * {{Z|zu}}: {{W-|zu|isabizwana|c7|c8}} {{werger-bin}} :{{werger çavkanî|en|pronoun|beş=Ev qismê Wergerê|oldid=75397330}} dcl8nf9a10z8y0fwv4n25s1gwe8g9b4 kifş 0 18270 6329815 6243090 2026-08-12T23:02:28Z Wikihez 7344 6329815 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|kifş}} {{rengdêr|ku}} # [[diyar]], [[berçav]], [[xuya]], [[eşkere]], [[averû]], [[zelal]], [[aşkira]] #* {{jêder-pirtûk|ku|jêgirtin=Lê îro kifş e pir êşiyaye, '''kifş''' e heya tiştekî xirab neke jî nasekine.|nivîskar=Mihemed Şarman|sernav=Pirça Winda|cîh=Stembol|weşanxane={{w|Weşanên Avesta|Avesta}}|sal=2016|çap=2|rûpel=52|isbn=978-605-5585-41-9}} #* {{jêder-malper|ku|jêgirtin=Di vî halî de, navdêr li gor hejmar û zayendê paşgirên cida werdigirin. Ferqên ji hemûyan '''kifştir''' di paşgirên navdêrên pirhejmar û yên yekhejmar yên nebinavkirî de diyar dibin.|nivîskar=Newzad Hirorî|sernav=Behdînî û kurmancî: Navdêr|url=http://www.nefel.com/kolumnists/kolumnist_detail.asp?MemberNr=10&RubricNr=24&ArticleNr=1433|malper=nefel.com|dîrok=22.08.2006}} #* {{jêder-malper|ku|jêgirtin=Şahiya Newroz, kîso gerî, Zêw û sersal mînakên herî '''kifş''' yên hatina Demsala Biharê û dawî hatina mercên zehmet ya Zivistanê ne.|nivîskar=Hewar Gabar|sernav=Dîroka Şano|url=http://candname.com/diroka-sano/|malper=candname.com|dîrok=11.03.2016}} ==== Formên alternatîv ==== * {{g|ku|kefş}} * {{g|ku|kivş}} ==== Ji wêjeya klasîk ==== * {{jêder|ku|{{Jêgirtin/Melayê Cizîrî/Dîwana Melayê Cizirî}}|jêgirtin=Lê hê li uslûba berê</br>Lê '''kifş''' bibîte ji pencerê</br>Bê û biçit teşbîhê ba}} ==== Jê ==== {{kol3|ku|cure=Jê |kifş bûn<pos:lêker> |kifş kirin<pos:lêker> |kifşbûn<pos:navdêr> |kifşkirin<pos:navdêr> |kifşbûyî<pos:rengdêr> |kifşkirî<pos:rengdêr> |kifşî |kifşîtî |kifşker }} ==== Etîmolojî ==== Têkildarî ''[[keşf]]''. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|bekannt}}, {{W|de|ganz klar}}, {{W|de|klar}}, {{W|de|offensichtlich}}, {{W|de|öffentlich}}, {{W|de|sichtbar}}, {{W|de|Entdeckung|f}}, {{W|de|Erscheinung|f}}, {{W|de|Expedition|f}}, {{W|de|Prominenz|f}}, {{W|de|bezeichnet}}, {{W|de|Erkundung|f|guman=erê}}, {{W|de|Rekognoszierung|f|guman=erê}}, {{W|de|ausgeprägt|guman=erê}} * {{Z|ar}}: {{W|ar|اختراع|guman=erê}}, {{W|ar|سافر|guman=erê}}, {{W|ar|منجلى|guman=erê}} * {{Z|fa}}: {{W+|fa|ابتکار}}, {{W+|fa|مشخص}}, {{W+|fa|نشانه}}, {{W+|fa|قابل دیدن}} * {{Z|en}}: {{W+|en|apparent}}, {{W+|en|known}}, {{W+|en|obvious}} * {{Z|tr}}: {{W+|tr|belli}}, {{W+|tr|açıkta}} {{werger-bin}} === Navdêr 1 === {{navdêr|ku|z=m}} # {{rastnivîs|keşf}} #* {{jêder-malper|ku|jêgirtin=NASA’yê bi daxuyaniyeke taybet '''kifşa''' herî dawî ya li Marsê ragihand.|sernav=LI MARSÊ BI AWAYEKÎ TEQEZ AV HATE DÎTIN|url=https://www.parzemin.com/li-marse-bi-awayeki-teqez-av-hate-ditin/|malper=parzemin.com|dîrok=29.09.2015}} #* {{jêder-malper|ku|jêgirtin=Li Diyarbekirê bi rêbaza nû '''kifşa''' neftê|nivîskar=Türkan Tosun|sernav=Li Diyarbekirê bi rêbaza nû kifşa neftê|url=https://www.aa.com.tr/kk/abor%C3%AE/li-diyarbekir%C3%AA-bi-r%C3%AAbaza-n%C3%BB-kifsa-neft%C3%AA/1424927|malper=aa.com.tr/kk|dîrok=21.03.2019}} #* {{jêder-malper|ku|jêgirtin=Li bajarê Kurdan '''kifşa''' mezin!|sernav=FLAŞ – Li bajarê Kurdan kifşa mezin!|url=https://www.rudaw.net/kurmanci/people-places/07072016|malper=rudaw.net|dîrok=07.07.2016}} === Navdêr 2 === {{navdêr|ku|z=n}} # (mil, çeng, bal, bask) {{rastnivîs|kefş}} 58k05zn9g6hov73638e5pdnfim8hcbf 6329840 6329815 2026-08-12T23:41:10Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6329840 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|kifş}} {{rengdêr|ku}} # [[diyar]], [[berçav]], [[xuya]], [[eşkere]], [[averû]], [[zelal]], [[aşkira]] #* {{jêder-pirtûk|ku|jêgirtin=Lê îro kifş e pir êşiyaye, '''kifş''' e heya tiştekî xirab neke jî nasekine.|nivîskar=Mihemed Şarman|sernav=Pirça Winda|cîh=Stembol|weşanxane={{w|Weşanên Avesta|Avesta}}|sal=2016|çap=2|rûpel=52|isbn=978-605-5585-41-9}} #* {{jêder-malper|ku|jêgirtin=Di vî halî de, navdêr li gor hejmar û zayendê paşgirên cida werdigirin. Ferqên ji hemûyan '''kifştir''' di paşgirên navdêrên pirhejmar û yên yekhejmar yên nebinavkirî de diyar dibin.|nivîskar=Newzad Hirorî|sernav=Behdînî û kurmancî: Navdêr|url=http://www.nefel.com/kolumnists/kolumnist_detail.asp?MemberNr=10&RubricNr=24&ArticleNr=1433|malper=nefel.com|dîrok=22.08.2006}} #* {{jêder-malper|ku|jêgirtin=Şahiya Newroz, kîso gerî, Zêw û sersal mînakên herî '''kifş''' yên hatina Demsala Biharê û dawî hatina mercên zehmet ya Zivistanê ne.|nivîskar=Hewar Gabar|sernav=Dîroka Şano|url=http://candname.com/diroka-sano/|malper=candname.com|dîrok=11.03.2016}} ==== Ji wêjeya klasîk ==== * {{jêder|ku|{{Jêgirtin/Melayê Cizîrî/Dîwana Melayê Cizirî}}|jêgirtin=Lê hê li uslûba berê</br>Lê '''kifş''' bibîte ji pencerê</br>Bê û biçit teşbîhê ba}} ==== Formên alternatîv ==== * {{g|ku|kefş}} * {{g|ku|kivş}} ==== Jê ==== {{kol3|ku|cure=Jê |kifş bûn<pos:lêker> |kifş kirin<pos:lêker> |kifşbûn<pos:navdêr> |kifşkirin<pos:navdêr> |kifşbûyî<pos:rengdêr> |kifşkirî<pos:rengdêr> |kifşî |kifşîtî |kifşker }} ==== Etîmolojî ==== Têkildarî ''[[keşf]]''. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|bekannt}}, {{W|de|ganz klar}}, {{W|de|klar}}, {{W|de|offensichtlich}}, {{W|de|öffentlich}}, {{W|de|sichtbar}}, {{W|de|Entdeckung|f}}, {{W|de|Erscheinung|f}}, {{W|de|Expedition|f}}, {{W|de|Prominenz|f}}, {{W|de|bezeichnet}}, {{W|de|Erkundung|f|guman=erê}}, {{W|de|Rekognoszierung|f|guman=erê}}, {{W|de|ausgeprägt|guman=erê}} * {{Z|ar}}: {{W|ar|اختراع|guman=erê}}, {{W|ar|سافر|guman=erê}}, {{W|ar|منجلى|guman=erê}} * {{Z|fa}}: {{W+|fa|ابتکار}}, {{W+|fa|مشخص}}, {{W+|fa|نشانه}}, {{W+|fa|قابل دیدن}} * {{Z|en}}: {{W+|en|apparent}}, {{W+|en|known}}, {{W+|en|obvious}} * {{Z|tr}}: {{W+|tr|belli}}, {{W+|tr|açıkta}} {{werger-bin}} === Navdêr 1 === {{navdêr|ku|z=m}} # {{rastnivîs|keşf}} #* {{jêder-malper|ku|jêgirtin=NASA’yê bi daxuyaniyeke taybet '''kifşa''' herî dawî ya li Marsê ragihand.|sernav=LI MARSÊ BI AWAYEKÎ TEQEZ AV HATE DÎTIN|url=https://www.parzemin.com/li-marse-bi-awayeki-teqez-av-hate-ditin/|malper=parzemin.com|dîrok=29.09.2015}} #* {{jêder-malper|ku|jêgirtin=Li Diyarbekirê bi rêbaza nû '''kifşa''' neftê|nivîskar=Türkan Tosun|sernav=Li Diyarbekirê bi rêbaza nû kifşa neftê|url=https://www.aa.com.tr/kk/abor%C3%AE/li-diyarbekir%C3%AA-bi-r%C3%AAbaza-n%C3%BB-kifsa-neft%C3%AA/1424927|malper=aa.com.tr/kk|dîrok=21.03.2019}} #* {{jêder-malper|ku|jêgirtin=Li bajarê Kurdan '''kifşa''' mezin!|sernav=FLAŞ – Li bajarê Kurdan kifşa mezin!|url=https://www.rudaw.net/kurmanci/people-places/07072016|malper=rudaw.net|dîrok=07.07.2016}} === Navdêr 2 === {{navdêr|ku|z=n}} # (mil, çeng, bal, bask) {{rastnivîs|kefş}} 0lxco86cuee1abk2he19opakos2gqhg wetrê 0 19263 6329633 6252043 2026-08-12T14:48:25Z Bibliophile 1215 /* Hoker */ kirî bi wateya wetrê, dever Sêrt, ji wî kirî (ji wî wetrê) 6329633 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[goya]], [[li gor]], [[kirî]], [[angorî]], li gor [[bawerî|baweriya]] wî #:''Ji te wetrê ku ez nikarim biçim lê ez dikarim.'' #* {{jêder-pirtûk|ku|jêgirtin=Ji min '''wetrê''' qulekê pir mezin e.|nivîskar={{w|J.R.R. Tolkien}}|sernav=Hobbit|wergêr=Samî Hêzil|cîh=Enqere|weşanxane={{w|Weşanên Cervantes|Cervantes}}|sal=2023|çap=1|rûpel=28|isbn=9786257724838}} ==== Reşwendî ==== # [[berê]], [[jê berê]] #:''Ji wî berê ku kesî ji wî rindtir li ser dinê tune.'' #:''Ji min berê ku ez mirim,çûm .'' ==== Formên alternatîv ==== * [[wetirê]] * [[tirê]] ==== Jê ==== * [[wetrêtî]] * [[wetrêyî]] ==== Etîmolojî ==== Ji {{paş|ku|we|-tir}}. Bide ber {{q|ku|jê we bûn}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|anderer}}, {{W+|de|andere}} * {{Z|fi}}: {{W+|fi|muka}}, {{W+|fi|ikään kuin}} * {{Z|en}}: {{W+|en|as if}}, {{W+|en|supposedly}} * {{Z|tr}}: {{W+|tr|sanki}}, {{W+|tr|başka}} {{werger-bin}} 5dt212neimzd4yaukvere38iw3zcnbe 6329651 6329633 2026-08-12T15:41:11Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6329651 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[goya]], [[li gor]], [[kirî]], [[angorî]], li gor [[bawerî|baweriya]] wî #:''Ji te wetrê ku ez nikarim biçim lê ez dikarim.'' #* {{jêder-pirtûk|ku|jêgirtin=Ji min '''wetrê''' qulekê pir mezin e.|nivîskar={{w|J.R.R. Tolkien}}|sernav=Hobbit|wergêr=Samî Hêzil|cîh=Enqere|weşanxane={{w|Weşanên Cervantes|Cervantes}}|sal=2023|çap=1|rûpel=28|isbn=9786257724838}} ==== Formên alternatîv ==== * [[wetirê]] * [[tirê]] ==== Jê ==== * [[wetrêtî]] * [[wetrêyî]] ==== Etîmolojî ==== Ji {{paş|ku|we|-tir}}. Bide ber {{q|ku|jê we bûn}}. ==== Reşwendî ==== # [[berê]], [[jê berê]] #:''Ji wî berê ku kesî ji wî rindtir li ser dinê tune.'' #:''Ji min berê ku ez mirim,çûm .'' ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|anderer}}, {{W+|de|andere}} * {{Z|fi}}: {{W+|fi|muka}}, {{W+|fi|ikään kuin}} * {{Z|en}}: {{W+|en|as if}}, {{W+|en|supposedly}} * {{Z|tr}}: {{W+|tr|sanki}}, {{W+|tr|başka}} {{werger-bin}} imlu0557daav6ifiagbpys8flvtgahi 6329653 6329651 2026-08-12T15:43:13Z Wikihez 7344 [[Bikarhêner:Wikihez/templateScript2.js|TS]]: sererastkirin 6329653 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[goya]], [[li gor]], [[kirî]], [[angorî]], li gor [[bawerî|baweriya]] wî #: {{nimûne|ku|Ji te wetrê ku ez nikarim biçim lê ez dikarim.}} #* {{jêder-pirtûk|ku|jêgirtin=Ji min '''wetrê''' qulekê pir mezin e.|nivîskar={{w|J.R.R. Tolkien}}|sernav=Hobbit|wergêr=Samî Hêzil|cîh=Enqere|weşanxane={{w|Weşanên Cervantes|Cervantes}}|sal=2023|çap=1|rûpel=28|isbn=9786257724838}} # {{e|ku|Reşwendî}} [[berê]], [[jê berê]] #: {{nimûne|ku|Ji wî wetrê ku kesî ji wî rindtir li ser dinê tune.}} #: {{nimûne|ku|Ji min wetrê ku ez mirim, çûm.}} ==== Formên alternatîv ==== * {{g|ku|wetirê}} * {{g|ku|tirê}} ==== Jê ==== * {{g|ku|wetrêtî}} * {{g|ku|wetrêyî}} ==== Etîmolojî ==== Ji {{paş|ku|we|-tir}}. Bide ber {{q|ku|jê we bûn}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|anderer}}, {{W+|de|andere}} * {{Z|fi}}: {{W+|fi|muka}}, {{W+|fi|ikään kuin}} * {{Z|en}}: {{W+|en|as if}}, {{W+|en|supposedly}} * {{Z|tr}}: {{W+|tr|sanki}}, {{W+|tr|başka}} {{werger-bin}} ick03gb1pbys8w5m2f6iun90vh0yyze 6329654 6329653 2026-08-12T15:43:25Z Wikihez 7344 6329654 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[goya]], [[li gor]], [[kirî]], [[angorî]], li gor [[bawerî|baweriya]] wî #: {{nimûne|ku|Ji te wetrê ku ez nikarim biçim lê ez dikarim.}} #* {{jêder-pirtûk|ku|jêgirtin=Ji min '''wetrê''' qulekê pir mezin e.|nivîskar={{w|J.R.R. Tolkien}}|sernav=Hobbit|wergêr=Samî Hêzil|cîh=Enqere|weşanxane={{w|Weşanên Cervantes|Cervantes}}|sal=2023|çap=1|rûpel=28|isbn=9786257724838}} # {{e|ku|Reşwendî}} [[berê]], [[jê berê]] #: {{nimûne|ku|Ji wî '''wetrê''' ku kesî ji wî rindtir li ser dinê tune.}} #: {{nimûne|ku|Ji min '''wetrê''' ku ez mirim, çûm.}} ==== Formên alternatîv ==== * {{g|ku|wetirê}} * {{g|ku|tirê}} ==== Jê ==== * {{g|ku|wetrêtî}} * {{g|ku|wetrêyî}} ==== Etîmolojî ==== Ji {{paş|ku|we|-tir}}. Bide ber {{q|ku|jê we bûn}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|anderer}}, {{W+|de|andere}} * {{Z|fi}}: {{W+|fi|muka}}, {{W+|fi|ikään kuin}} * {{Z|en}}: {{W+|en|as if}}, {{W+|en|supposedly}} * {{Z|tr}}: {{W+|tr|sanki}}, {{W+|tr|başka}} {{werger-bin}} sndtu301pedhw7qis0g0smkfoil4v1s 6329656 6329654 2026-08-12T15:54:25Z Wikihez 7344 +nimûneya bikaranînê bi amûra « [[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]] » (v1.7). 6329656 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[goya]], [[li gor]], [[kirî]], [[angorî]], li gor [[bawerî|baweriya]] wî #: {{nimûne|ku|Ji te wetrê ku ez nikarim biçim lê ez dikarim.}} #* {{jêder-pirtûk|ku|jêgirtin=Ji min '''wetrê''' qulekê pir mezin e.|nivîskar={{w|J.R.R. Tolkien}}|sernav=Hobbit|wergêr=Samî Hêzil|cîh=Enqere|weşanxane={{w|Weşanên Cervantes|Cervantes}}|sal=2023|çap=1|rûpel=28|isbn=9786257724838}} #* {{jêder-websîte|ku|nivîskar=Yakup Gunes|sernav=@GuenesGunes li ser X|websîte=X (berê Twitter)|url=https://x.com/GuenesGunes/status/1871254309079228905|tarîx=2024-12-23|jêgirtin=Dema hat girtin teslîmbu{{sic}}.Ji wî '''wetrê''' herkes lazime teslîm.Ma nizane kurd li zîndana Amedê teslim nebû.}} # {{e|ku|Reşwendî}} [[berê]], [[jê berê]] #: {{nimûne|ku|Ji wî '''wetrê''' ku kesî ji wî rindtir li ser dinê tune.}} #: {{nimûne|ku|Ji min '''wetrê''' ku ez mirim, çûm.}} ==== Formên alternatîv ==== * {{g|ku|wetirê}} * {{g|ku|tirê}} ==== Jê ==== * {{g|ku|wetrêtî}} * {{g|ku|wetrêyî}} ==== Etîmolojî ==== Ji {{paş|ku|we|-tir}}. Bide ber {{q|ku|jê we bûn}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|anderer}}, {{W+|de|andere}} * {{Z|fi}}: {{W+|fi|muka}}, {{W+|fi|ikään kuin}} * {{Z|en}}: {{W+|en|as if}}, {{W+|en|supposedly}} * {{Z|tr}}: {{W+|tr|sanki}}, {{W+|tr|başka}} {{werger-bin}} nnjsnos2h71e087s3e4vjqpftmwh7ng 6329657 6329656 2026-08-12T15:55:06Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329657 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[goya]], [[li gor]], [[kirî]], [[angorî]], li gor [[bawerî|baweriya]] wî #: {{nimûne|ku|Ji te wetrê ku ez nikarim biçim lê ez dikarim.}} #* {{jêder-pirtûk|ku|jêgirtin=Ji min '''wetrê''' qulekê pir mezin e.|nivîskar={{w|J.R.R. Tolkien}}|sernav=Hobbit|wergêr=Samî Hêzil|cîh=Enqere|weşanxane={{w|Weşanên Cervantes|Cervantes}}|sal=2023|çap=1|rûpel=28|isbn=9786257724838}} #* {{jêder-websîte|ku|nivîskar=Yakup Gunes|sernav=@GuenesGunes li ser X|websîte=X (berê Twitter)|url=https://x.com/GuenesGunes/status/1871254309079228905|tarîx=2024-12-23|jêgirtin=Dema hat girtin teslîmbu{{sic}}.Ji wî '''wetrê''' herkes lazime teslîm bîbe.Ma nizane kurd li zîndana Amedê teslim nebû.}} # {{e|ku|Reşwendî}} [[berê]], [[jê berê]] #: {{nimûne|ku|Ji wî '''wetrê''' ku kesî ji wî rindtir li ser dinê tune.}} #: {{nimûne|ku|Ji min '''wetrê''' ku ez mirim, çûm.}} ==== Formên alternatîv ==== * {{g|ku|wetirê}} * {{g|ku|tirê}} ==== Jê ==== * {{g|ku|wetrêtî}} * {{g|ku|wetrêyî}} ==== Etîmolojî ==== Ji {{paş|ku|we|-tir}}. Bide ber {{q|ku|jê we bûn}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|anderer}}, {{W+|de|andere}} * {{Z|fi}}: {{W+|fi|muka}}, {{W+|fi|ikään kuin}} * {{Z|en}}: {{W+|en|as if}}, {{W+|en|supposedly}} * {{Z|tr}}: {{W+|tr|sanki}}, {{W+|tr|başka}} {{werger-bin}} h5iug5lli7i7f03axpdfmh6r14prqy4 6329658 6329657 2026-08-12T16:08:44Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329658 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[goya]], [[li gor]], [[kirî]], [[angorî]], li gor [[bawerî|baweriya]] wî #: {{nimûne|ku|Ji te wetrê ku ez nikarim biçim lê ez dikarim.}} #* {{jêder-pirtûk|ku|jêgirtin=Ji min '''wetrê''' qulekê pir mezin e.|nivîskar={{w|J.R.R. Tolkien}}|sernav=Hobbit|wergêr=Samî Hêzil|cîh=Enqere|weşanxane={{w|Weşanên Cervantes|Cervantes}}|sal=2023|çap=1|rûpel=28|isbn=9786257724838}} #* {{jêder-websîte|ku|nivîskar=Yakup Gunes|sernav=@GuenesGunes|websîte=X (berê Twitter)|url=https://x.com/GuenesGunes/status/1871254309079228905|tarîx=2024-12-23|jêgirtin=Dema hat girtin teslîmbu{{sic}}.Ji wî '''wetrê''' herkes lazime teslîm bîbe.Ma nizane kurd li zîndana Amedê teslim nebû.}} # {{e|ku|Reşwendî}} [[berê]], [[jê berê]] #: {{nimûne|ku|Ji wî '''wetrê''' ku kesî ji wî rindtir li ser dinê tune.}} #: {{nimûne|ku|Ji min '''wetrê''' ku ez mirim, çûm.}} ==== Formên alternatîv ==== * {{g|ku|wetirê}} * {{g|ku|tirê}} ==== Jê ==== * {{g|ku|wetrêtî}} * {{g|ku|wetrêyî}} ==== Etîmolojî ==== Ji {{paş|ku|we|-tir}}. Bide ber {{q|ku|jê we bûn}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|anderer}}, {{W+|de|andere}} * {{Z|fi}}: {{W+|fi|muka}}, {{W+|fi|ikään kuin}} * {{Z|en}}: {{W+|en|as if}}, {{W+|en|supposedly}} * {{Z|tr}}: {{W+|tr|sanki}}, {{W+|tr|başka}} {{werger-bin}} 5p511dmh9d8a5w2purae9wswoipq577 Wîkîferheng:ceribandin 4 23016 6329755 6328211 2026-08-12T21:22:19Z Wikihez 7344 /* Lêker */ 6329755 wikitext text/x-wiki {{/vê rêzê neguhêre}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Lêker === [[Wêne:Example.jpg|thumb|Mînak]] {{lêker|ku|c=h-gh}} # Maneya 1ê. #: {{mk|ku|'''Nimûneyeke''' bikaranînê ya vê peyvê.}} #* {{bênimûne|ku}} # {{f|ku|mecazî}} Maneya 2an. #* {{jêder-pirtûk|tr|t=-|jêgirtin=Jêgirtinek ji kitêbekê.|nivîskar=Rojen Barnas|sernav=Sîlvan/ Silîvan / FARQÎN|dîrok=2013|weşanxane=Nûbihar|rûpel=189|isbn= 9786055402884, 6055402882}} # Maneya 3an. ==== Bikaranîn ==== ''Çend not li ser bikaranîna peyvê.'' ==== Jê ==== {{kol3|ku|cure=Jê |ceribandinvan }} ==== Têkildar ==== * ''Peyvên ku têkiliya [[etîmolojîk]] bi peyvê re hene''. === Etîmolojî === ''Çîroka tarîxî ya eslê kelîmeyê. Nimûneya bandor'': Ji {{deyn|ota|ku|باندره}}, {{q|ota|باكدیره}}, ({{hv|tr|bandıra}}) ji {{ji|vec|ku|bandéra}} ({{hv|it|bandiera}}) ji {{ji|gem|ku}} *''bandwa-'' ({{cotreh|ku|band|bend}}). Bide ber {{hv|fr|bandière}} (wek {{hv|en|banner}}), {{hv|el|παντιέρα}}. ==== Binêre herwiha ==== * ''Peyvên eleqadar lê belê têkiliya etîmolojîk nîne''. * {{wpedî}} ==== Werger ==== {{werger-ser|1|Maneya 1ê}} * {{Z|en}}: {{W+|en|word}} {{werger-bin}} {{werger-ser|2|Maneya an}} {{werger-bin}} {{werger-bnr|Maneya 3an|kelîme}} === Navdêr === {{ku-tewîn-nav|nav=nimûne|mê}} {{navdêr|ku|z=m}} # mane 1 #: mînak 1-1 #: mînak 1-2 #* jêgirtin 1-1 #* jêgirtin 1-2 # mane 2 #: mînak 2-1 #: mînak 2-2 #* jêgirtin 2-1 #* jêgirtin 2-2 # mane 3 ==== Werger ==== {{werger-ser|1|Maneya 1ê}} {{werger-bin}} {{werger-ser|2|Maneya 2an}} {{werger-bin}} {{werger-ser|3|Maneya 3an}} {{werger-bin}} === Çavkanî === {{Çavkanî}} * Çavkaniyên din li vir binivîse. sr0zaxsgy86k54jpx197mtj49rmnfop 6329756 6329755 2026-08-12T21:22:35Z Wikihez 7344 /* Lêker */ 6329756 wikitext text/x-wiki {{/vê rêzê neguhêre}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Lêker === [[Wêne:Example.jpg|thumb|Mînak]] {{lêker|ku|c=h-gh}} # Maneya 1ê. #: {{mk|ku|'''Nimûneyeke''' bikaranînê ya vê peyvê.}} #* {{bênimûne|ku}} # {{f|ku|mecazî}} Maneya 2an. #* {{jêder-pirtûk|tr|t=-|jêgirtin=Jêgirtinek ji kitêbekê.|nivîskar=Rojen Barnas|sernav=Sîlvan/ Silîvan / FARQÎN|sal=2013|weşanxane=Nûbihar|rûpel=189|isbn= 9786055402884, 6055402882}} # Maneya 3an. ==== Bikaranîn ==== ''Çend not li ser bikaranîna peyvê.'' ==== Jê ==== {{kol3|ku|cure=Jê |ceribandinvan }} ==== Têkildar ==== * ''Peyvên ku têkiliya [[etîmolojîk]] bi peyvê re hene''. === Etîmolojî === ''Çîroka tarîxî ya eslê kelîmeyê. Nimûneya bandor'': Ji {{deyn|ota|ku|باندره}}, {{q|ota|باكدیره}}, ({{hv|tr|bandıra}}) ji {{ji|vec|ku|bandéra}} ({{hv|it|bandiera}}) ji {{ji|gem|ku}} *''bandwa-'' ({{cotreh|ku|band|bend}}). Bide ber {{hv|fr|bandière}} (wek {{hv|en|banner}}), {{hv|el|παντιέρα}}. ==== Binêre herwiha ==== * ''Peyvên eleqadar lê belê têkiliya etîmolojîk nîne''. * {{wpedî}} ==== Werger ==== {{werger-ser|1|Maneya 1ê}} * {{Z|en}}: {{W+|en|word}} {{werger-bin}} {{werger-ser|2|Maneya an}} {{werger-bin}} {{werger-bnr|Maneya 3an|kelîme}} === Navdêr === {{ku-tewîn-nav|nav=nimûne|mê}} {{navdêr|ku|z=m}} # mane 1 #: mînak 1-1 #: mînak 1-2 #* jêgirtin 1-1 #* jêgirtin 1-2 # mane 2 #: mînak 2-1 #: mînak 2-2 #* jêgirtin 2-1 #* jêgirtin 2-2 # mane 3 ==== Werger ==== {{werger-ser|1|Maneya 1ê}} {{werger-bin}} {{werger-ser|2|Maneya 2an}} {{werger-bin}} {{werger-ser|3|Maneya 3an}} {{werger-bin}} === Çavkanî === {{Çavkanî}} * Çavkaniyên din li vir binivîse. d08qa5d6rmmauhm6lznltp0fsdl7egj tarîx 0 23283 6329644 6326319 2026-08-12T15:26:29Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329644 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[hedîse|Hedîseyên]] [[dem]]ên [[berê]]. #: {{hevmane|ku|dîrok|mêjû}} #: {{mk|ku|'''Tarîx''' xwe dubare dike.|Tiştên ku berê qewimîne dîsan diqewimin.|birêz=1}} #* {{nimûne?|ku}} # [[ilm|Ilmê]] li ser [[dem]]ên [[berê]]. #: {{hevmane|ku|dîrok|mêjû}} #: {{mk|ku|Şerefxanê Bedlîsî wek bavê '''tarîxa''' kurdan tê nasîn.}} #* {{nimûne?|ku}} # Dema ku tiştek [[qewimîn|qewimiye]] yan hatiye kirin. #: {{mk|ku|Ev name di '''tarîxa''' 1.8.2006 de hatiye nivîsîn.}} #: {{mk|ku|'''Tarîxa''' derketina vê kitêbê ne diyar e.|Li ser vê kitêbê nehatiye nivîsîn ka kengî hatiye çapkirin.|birêz=1}} #* {{jêder|ku|{{Jêgirtin/Ehmedê Xanî/Mem û Zîn}}|jêgirtin=Lewra ko dema ji xeybê fek bû</br>'''Tarîx''' hezar û şêst û yek bû</br>Îsal gihişte çill û çaran}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * {{g|ku|terîx}} * {{g|ku|teirîx}} ==== Jê ==== {{kol3|ku|cure=Jê |tarîxî |tarîxçe |tarîxnas |tarîxnasî |tarîxnivîs |tarîxnivîsî |tarîxvan |tarîxvanî |tarîxzan |tarîxzanî }} ==== Etîmolojî ==== Ji {{deyn|ar|ku|تَارِيخ}}. ==== Bide ber ==== * {{g|ku|wext}} * {{g|ku|dem}} * {{g|ku|kêlîk}} ==== Werger ==== {{werger-ser|hedîseyên berê û ilmê li ser wan|id=ilmê hedîseyên berê}} * {{Z|af}}: {{W+|af|geskiedenis}} * {{Z|sq}}: {{W+|sq|histori|m}} * {{Z|de}}: {{W+|de|Geschichte|m}}, {{W+|de|Historie|m}} * {{Z|alt}}: {{W-|alt|тӱӱки}}, {{W-|alt|тарых}} * {{Z|am}}: {{W-|am|ታሪክ}} * {{Z|an}}: {{W-|an|istoria|m}} * {{Z|arc}}: *: {{Z|syc}}: {{W-|syc|ܬܫܥܝܬܐ|m|tr=tašʿīṯā}} * {{Z|as}}: {{W-|as|ইতিহাস}} * {{Z|ast}}: {{W+|ast|historia|m}}, {{W+|ast|hestoria|m}} * {{Z|aot}}: {{W-|aot|itihas}} * {{Z|av}}: {{W-|av|тарих}} * {{Z|az}}: *: Latînî: {{W+|az|tarix}} *: {{Z|az}}: {{W-|az|تاریخ‎|tr=tārikh}} * {{Z|eu}}: {{W+|eu|historia}} * {{Z|ba}}: {{W-|ba|тарих}} * {{Z|be}}: {{W-|be|гісто́рыя|m}} * {{Z|bn}}: {{W+|bn|ইতিহাস}} * {{Z|bcl}}: {{W-|bcl|uusipon}} * {{Z|br}}: {{W+|br|istor|m}} * {{Z|bg}}: {{W-|bg|исто́рия|m}} * {{Z|my}}: {{W+|my|သမိုင်း}} * {{Z|bua}}: {{W-|bua|түүхэ}} * {{Z|cs}}: {{W+|cs|dějiny|m-p}}, {{W+|cs|historie|m}} * {{Z|chr}}: {{W-|chr|ᎧᏃᎮᏍᎩ}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|歷史|tr=lik6 si2}} *: {{Z|dng}}: {{W-|dng|лисы}} *: {{Z|gan}}: {{W-|gan|歷史|tr=lit6 'si3}} *: {{Z|hak}}: {{W-|hak|歷史|tr=li̍t-sṳ́}} *: {{Z|cmn}}: {{W+|cmn|歷史|tr=lìshǐ}} *: {{Z|cdo}}: {{W-|cdo|歷史|tr=lĭk-sṳ̄}} *: {{Z|nan}}: {{W+|nan|歷史|tr=le̍k-sú}} *: {{Z|wuu}}: {{W-|wuu|歷史|tr=liq sr}} * {{Z|cv}}: {{W-|cv|истори}} * {{Z|da}}: {{W+|da|historie|g}} * {{Z|id}}: {{W+|id|sejarah}}, {{W+|id|histori}} * {{Z|ar}}: {{W+|ar|تَارِيخ|n}} *: {{Z|arz}}: {{W-|arz|تاريخ|n|tr=tarīḵ}} * {{Z|hy}}: {{W+|hy|պատմություն}} * {{Z|eo}}: {{W+|eo|historio}} * {{Z|et}}: {{W+|et|ajalugu}} * {{Z|fa}}: {{W+|fa|تاریخ|tr=târix}} * {{Z|fo}}: {{W-|fo|søga|m}} * {{Z|fi}}: {{W+|fi|historia}} * {{Z|fr}}: {{W+|fr|histoire|m}} * {{Z|fur}}: {{W-|fur|istorie|m}}, {{W-|fur|storie|m}} * {{Z|fy}}: {{W+|fy|skiednis|g}} * {{Z|gd}}: {{W-|gd|eachdraidh|m}} * {{Z|gag}}: {{W-|gag|istoriya}} * {{Z|gl}}: {{W+|gl|historia|m}} * {{Z|gu}}: {{W+|gu|ઇતિહાસ|n}} * {{Z|ka}}: {{W-|ka|ისტორია}} * {{Z|ht}}: {{W-|ht|istwa}} * {{Z|mba}}: {{W-|mba|lasaysayan}} * {{Z|hi}}: {{W+|hi|इतिहास|n}}, {{W-|hi|तारीख़|m}} * {{Z|hil}}: {{W-|hil|kasaysayan}}, {{W-|hil|historya}} * {{Z|nl}}: {{W+|nl|geschiedenis|m}}, {{W+|nl|historie|m}} * {{Z|he}}: {{W+|he|היסטוריה|m|tr=história|cuda=הִסְטוֹרְיָה / היסטוריה}} * {{Z|io}}: {{W+|io|historio}} * {{Z|ilo}}: {{W-|ilo|pakasaritaan}} * {{Z|ang}}: {{W-|ang|stǣr|nt}} * {{Z|en}}: {{W+|en|history}} * {{Z|ia}}: {{W-|ia|historia}} * {{Z|ga}}: {{W+|ga|stair|m}} * {{Z|ist}}: {{W-|ist|stuoria|m}} * {{Z|it}}: {{W+|it|storia|m}} * {{Z|is}}: {{W+|is|saga|m}} * {{Z|ja}}: {{W+|ja|歴史|tr=れきし, rekishi}}, {{W+|ja|沿革|tr=えんかく, enkaku}} * {{Z|xal}}: {{W-|xal|тууҗ}} * {{Z|kn}}: {{W+|kn|ಇತಿಹಾಸ}} * {{Z|pam}}: {{W-|pam|amlat}} * {{Z|ca}}: {{W+|ca|història|m}} * {{Z|ky}}: {{W+|ky|тарых}} * {{Z|si}}: {{W+|si|ඉතිහාසය}}, {{W-|si|පුරාවෘත්තය}} * {{Z|ko}}: {{W+|ko|역사}}, {{W+|ko|력사}} * {{Z|co}}: {{W+|co|storia}} * {{Z|kum}}: {{W-|kum|тарих|tr=tarix}} * {{Z|la}}: {{W+|la|historia|m}} * {{Z|lv}}: {{W-|lv|vēsture|m}} * {{Z|lo}}: {{W+|lo|ປະຫວັດສາດ}}, {{W-|lo|ປະຫວັດ}} * {{Z|lez}}: {{W-|lez|тарих}} * {{Z|lij}}: {{W-|lij|stöia}} * {{Z|lt}}: {{W+|lt|istorija|m}} * {{Z|lg}}: {{W-|lg|ebyafaayo}} * {{Z|mk}}: {{W-|mk|историја|m}} * {{Z|ml}}: {{W+|ml|ചരിത്രം}} * {{Z|ms}}: {{W+|ms|sejarah}} * {{Z|mt}}: {{W-|mt|storja|m}} * {{Z|mnc}}: {{W-|mnc|ᠰᡠᡩᡠᡵᡳ}} * {{Z|mr}}: {{W+|mr|इतिहास}} * {{Z|hu}}: {{W+|hu|történelem}}, {{W+|hu|múlt}} * {{Z|mn}}: *: Kirîlî: {{W+|mn|түүх}} *: Mongolî: {{W-|mn|ᠲᠡᠦᠬᠡ}} * {{Z|na}}: {{W+|na|ekadaedaenigawae}} * {{Z|ne}}: {{W+|ne|इतिहास}} * {{Z|no}}: {{W+|no|historie|m}} * {{Z|oc}}: {{W+|oc|istòria|m}} * {{Z|or}}: {{W-|or|ଇତିହାସ}} * {{Z|om}}: {{W-|om|seenaa}} * {{Z|os}}: {{W-|os|истори}} * {{Z|ota}}: {{W-|ota|تاریخ|tr=tarih}} * {{Z|ug}}: {{W-|ug|تارىخ}} * {{Z|uz}}: {{W+|uz|tarix}} * {{Z|pwn}}: {{W-|pwn|likisi}} * {{Z|ps}}: {{W+|ps|تاريخ|n|tr=tāríx}} * {{Z|pih}}: {{W-|pih|histrei}} * {{Z|pl}}: {{W+|pl|historia|m}}, {{W+|pl|dzieje}} * {{Z|pt}}: {{W+|pt|histórico|n}} * {{Z|prg}}: {{W-|prg|istōrija}} * {{Z|pa}}: {{W+|pa|ਇਤਿਹਾਸ}} * {{Z|kk}}: {{W+|kk|тарих}} * {{Z|rm}}: {{W-|rm|istorgia|m}} * {{Z|ro}}: {{W+|ro|istorie}} * {{Z|ru}}: {{W-|ru|исто́рия|m}} * {{Z|rue}}: {{W-|rue|істо́рія|m}} * {{Z|sgs}}: {{W-|sgs|istuorėjė|m}} * {{Z|sa}}: {{W+|sa|इतिहास|n}} * {{Z|ceb}}: {{W-|ceb|kasaysayan}} * {{Z|scn}}: {{W+|scn|storia|m}} * {{Z|szl}}: {{W-|szl|gyszichta|m}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|хѝсто̄рија|m}}, {{W-|sh|ѝсто̄рија|m}}, {{W-|sh|по̏вије̄ст|m}}, {{W-|sh|по̏ве̄ст|m}} *: Latînî: {{W+|sh|hìstōrija|m}}, {{W+|sh|ìstōrija|m}}, {{W+|sh|pȍvijēst|m}}, {{W+|sh|pȍvēst|m}} * {{Z|sk}}: {{W-|sk|dejiny|m-p}}, {{W-|sk|história|m}} * {{Z|sl}}: {{W+|sl|zgodovina|m}}, {{W+|sl|preteklost|m}} * {{Z|so}}: {{W-|so|taariikh}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|stawizny|p}} * {{Z|es}}: {{W+|es|historia|m}} * {{Z|sw}}: {{W+|sw|historia}} * {{Z|sv}}: {{W+|sv|historia|g}} * {{Z|shn}}: {{W-|shn|ပိုၼ်း}} * {{Z|tab}}: {{W-|tab|тарих}} * {{Z|tg}}: {{W+|tg|таърих}} * {{Z|tl}}: {{W+|tl|kasaysayan}} * {{Z|ta}}: {{W+|ta|வரலாறு}}, {{W+|ta|சரித்திரம்}} * {{Z|th}}: {{W+|th|ประวัติศาสตร์}}, {{W+|th|ประวัติ}} * {{Z|te}}: {{W+|te|చరిత్ర}}, {{W-|te|చరితం}}, {{W+|te|చరిత}} * {{Z|crh}}: {{W-|crh|tarih}} * {{Z|tt}}: {{W+|tt|тарих}} * {{Z|ti}}: {{W+|ti|ታሪኽ}} * {{Z|tr}}: {{W+|tr|tarih}}, {{W+|tr|ötük}} * {{Z|tk}}: {{W-|tk|taryh}} * {{Z|bo}}: {{W-|bo|ལོ་རྒྱུས}} * {{Z|tpi}}: {{W-|tpi|histori}} * {{Z|tyv}}: {{W-|tyv|төөгү}} * {{Z|ur}}: {{W+|ur|اتہاس|n|tr=itihās}}, {{W+|ur|تاریخ|m|tr=tārīx}} * {{Z|uk}}: {{W-|uk|істо́рія|m}} * {{Z|vec}}: {{W-|vec|istoria|m}}, {{W+|vec|storia|m}} * {{Z|vi}}: {{W+|vi|lịch sử}} * {{Z|war}}: {{W-|war|kasaysayan}} * {{Z|cy}}: {{W+|cy|hanes}} * {{Z|wym}}: {{W-|wym|gyśicht|m}} * {{Z|wo}}: {{W+|wo|taariix}} * {{Z|km}}: {{W-|km|ប្រវត្តិសាស្ត្រ}}, {{W+|km|ប្រវត្តិ}} * {{Z|sah}}: {{W-|sah|история}}, {{W-|sah|остуоруйа}} * {{Z|yi}}: {{W+|yi|געשיכטע|m}} * {{Z|el}}: {{W+|el|ιστορία|m}} *: Kevn: {{W-|grc|ἱστορία|m}} {{werger-bin}} :{{werger çavkanî|en|history|beş=Ev qismê Wergerê|oldid=75799073}} {{werger-ser|dema ku tiştek [[qewimîn|qewimiye]] yan hatiye kirin}} * {{Z|de}}: {{W+|de|Datum|n}}, {{W+|de|Zeitpunkt|m}} * {{Z|br}}: {{W+|br|deiziad|m}}, deiziadoù {{p}} * {{Z|id}}: {{W+|id|tanggal}} * {{Z|fi}}: {{W+|fi|päiväys}}, {{W+|fi|päivämäärä}} * {{Z|fr}}: {{W+|fr|date|f}} * {{Z|nl}}: {{W+|nl|datum|m}} * {{Z|en}}: {{W-|en|date|tr=time}} * {{Z|ja}}: {{W+|ja|日付|tr=ひづけ, hitzuke}} * {{Z|pl}}: {{W+|pl|data|f}} * {{Z|ro}}: {{W+|ro|dată|f}} * {{Z|sh}}: {{W+|sh|datum|m}} * {{Z|sh}}: *: Kirîlî: [[датум]] {{mê}} *: Latînî: {{W+|la|datum|m}} * {{Z|sv}}: {{W+|sv|datum|m}} * {{Z|te}}: {{W-|te|తేది|tr=taedi}} * {{Z|tr}}: {{W+|tr|tarih}}, {{W+|tr|gün}} {{werger-bin}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb|sc=Latn}} # {{ckb-Arab|تاریخ}} losovy948gpjgkeru2f9f2oicp5tfdz 6329645 6329644 2026-08-12T15:27:36Z Wikihez 7344 +nimûneya bikaranînê bi amûra « [[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]] » (v1.7). 6329645 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[hedîse|Hedîseyên]] [[dem]]ên [[berê]]. #: {{hevmane|ku|dîrok|mêjû}} #: {{mk|ku|'''Tarîx''' xwe dubare dike.|Tiştên ku berê qewimîne dîsan diqewimin.|birêz=1}} #* {{jêder-kovar|ku|nivîskar=Hayreddin Kızıl|sernav=Bawerîyên Gelêrî di Adat û Rusûmatnameê Tewayifê Ekradiye ya Mela Mehmûdê Bazîdî da|kovar=Kurdiyat|hejmar=13|sal=2026|rûpel=37|url=https://dergipark.org.tr/tr/pub/kurdiyat/article/1849076|jêgirtin=Mela Mehmûdê Bazîdî li ser ziman, '''tarîx''' û civaka Kurdan, folklor û edebiyata wan berhem nivîsîne yan jî wergerandine.}} # [[ilm|Ilmê]] li ser [[dem]]ên [[berê]]. #: {{hevmane|ku|dîrok|mêjû}} #: {{mk|ku|Şerefxanê Bedlîsî wek bavê '''tarîxa''' kurdan tê nasîn.}} #* {{nimûne?|ku}} # Dema ku tiştek [[qewimîn|qewimiye]] yan hatiye kirin. #: {{mk|ku|Ev name di '''tarîxa''' 1.8.2006 de hatiye nivîsîn.}} #: {{mk|ku|'''Tarîxa''' derketina vê kitêbê ne diyar e.|Li ser vê kitêbê nehatiye nivîsîn ka kengî hatiye çapkirin.|birêz=1}} #* {{jêder|ku|{{Jêgirtin/Ehmedê Xanî/Mem û Zîn}}|jêgirtin=Lewra ko dema ji xeybê fek bû</br>'''Tarîx''' hezar û şêst û yek bû</br>Îsal gihişte çill û çaran}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * {{g|ku|terîx}} * {{g|ku|teirîx}} ==== Jê ==== {{kol3|ku|cure=Jê |tarîxî |tarîxçe |tarîxnas |tarîxnasî |tarîxnivîs |tarîxnivîsî |tarîxvan |tarîxvanî |tarîxzan |tarîxzanî }} ==== Etîmolojî ==== Ji {{deyn|ar|ku|تَارِيخ}}. ==== Bide ber ==== * {{g|ku|wext}} * {{g|ku|dem}} * {{g|ku|kêlîk}} ==== Werger ==== {{werger-ser|hedîseyên berê û ilmê li ser wan|id=ilmê hedîseyên berê}} * {{Z|af}}: {{W+|af|geskiedenis}} * {{Z|sq}}: {{W+|sq|histori|m}} * {{Z|de}}: {{W+|de|Geschichte|m}}, {{W+|de|Historie|m}} * {{Z|alt}}: {{W-|alt|тӱӱки}}, {{W-|alt|тарых}} * {{Z|am}}: {{W-|am|ታሪክ}} * {{Z|an}}: {{W-|an|istoria|m}} * {{Z|arc}}: *: {{Z|syc}}: {{W-|syc|ܬܫܥܝܬܐ|m|tr=tašʿīṯā}} * {{Z|as}}: {{W-|as|ইতিহাস}} * {{Z|ast}}: {{W+|ast|historia|m}}, {{W+|ast|hestoria|m}} * {{Z|aot}}: {{W-|aot|itihas}} * {{Z|av}}: {{W-|av|тарих}} * {{Z|az}}: *: Latînî: {{W+|az|tarix}} *: {{Z|az}}: {{W-|az|تاریخ‎|tr=tārikh}} * {{Z|eu}}: {{W+|eu|historia}} * {{Z|ba}}: {{W-|ba|тарих}} * {{Z|be}}: {{W-|be|гісто́рыя|m}} * {{Z|bn}}: {{W+|bn|ইতিহাস}} * {{Z|bcl}}: {{W-|bcl|uusipon}} * {{Z|br}}: {{W+|br|istor|m}} * {{Z|bg}}: {{W-|bg|исто́рия|m}} * {{Z|my}}: {{W+|my|သမိုင်း}} * {{Z|bua}}: {{W-|bua|түүхэ}} * {{Z|cs}}: {{W+|cs|dějiny|m-p}}, {{W+|cs|historie|m}} * {{Z|chr}}: {{W-|chr|ᎧᏃᎮᏍᎩ}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|歷史|tr=lik6 si2}} *: {{Z|dng}}: {{W-|dng|лисы}} *: {{Z|gan}}: {{W-|gan|歷史|tr=lit6 'si3}} *: {{Z|hak}}: {{W-|hak|歷史|tr=li̍t-sṳ́}} *: {{Z|cmn}}: {{W+|cmn|歷史|tr=lìshǐ}} *: {{Z|cdo}}: {{W-|cdo|歷史|tr=lĭk-sṳ̄}} *: {{Z|nan}}: {{W+|nan|歷史|tr=le̍k-sú}} *: {{Z|wuu}}: {{W-|wuu|歷史|tr=liq sr}} * {{Z|cv}}: {{W-|cv|истори}} * {{Z|da}}: {{W+|da|historie|g}} * {{Z|id}}: {{W+|id|sejarah}}, {{W+|id|histori}} * {{Z|ar}}: {{W+|ar|تَارِيخ|n}} *: {{Z|arz}}: {{W-|arz|تاريخ|n|tr=tarīḵ}} * {{Z|hy}}: {{W+|hy|պատմություն}} * {{Z|eo}}: {{W+|eo|historio}} * {{Z|et}}: {{W+|et|ajalugu}} * {{Z|fa}}: {{W+|fa|تاریخ|tr=târix}} * {{Z|fo}}: {{W-|fo|søga|m}} * {{Z|fi}}: {{W+|fi|historia}} * {{Z|fr}}: {{W+|fr|histoire|m}} * {{Z|fur}}: {{W-|fur|istorie|m}}, {{W-|fur|storie|m}} * {{Z|fy}}: {{W+|fy|skiednis|g}} * {{Z|gd}}: {{W-|gd|eachdraidh|m}} * {{Z|gag}}: {{W-|gag|istoriya}} * {{Z|gl}}: {{W+|gl|historia|m}} * {{Z|gu}}: {{W+|gu|ઇતિહાસ|n}} * {{Z|ka}}: {{W-|ka|ისტორია}} * {{Z|ht}}: {{W-|ht|istwa}} * {{Z|mba}}: {{W-|mba|lasaysayan}} * {{Z|hi}}: {{W+|hi|इतिहास|n}}, {{W-|hi|तारीख़|m}} * {{Z|hil}}: {{W-|hil|kasaysayan}}, {{W-|hil|historya}} * {{Z|nl}}: {{W+|nl|geschiedenis|m}}, {{W+|nl|historie|m}} * {{Z|he}}: {{W+|he|היסטוריה|m|tr=história|cuda=הִסְטוֹרְיָה / היסטוריה}} * {{Z|io}}: {{W+|io|historio}} * {{Z|ilo}}: {{W-|ilo|pakasaritaan}} * {{Z|ang}}: {{W-|ang|stǣr|nt}} * {{Z|en}}: {{W+|en|history}} * {{Z|ia}}: {{W-|ia|historia}} * {{Z|ga}}: {{W+|ga|stair|m}} * {{Z|ist}}: {{W-|ist|stuoria|m}} * {{Z|it}}: {{W+|it|storia|m}} * {{Z|is}}: {{W+|is|saga|m}} * {{Z|ja}}: {{W+|ja|歴史|tr=れきし, rekishi}}, {{W+|ja|沿革|tr=えんかく, enkaku}} * {{Z|xal}}: {{W-|xal|тууҗ}} * {{Z|kn}}: {{W+|kn|ಇತಿಹಾಸ}} * {{Z|pam}}: {{W-|pam|amlat}} * {{Z|ca}}: {{W+|ca|història|m}} * {{Z|ky}}: {{W+|ky|тарых}} * {{Z|si}}: {{W+|si|ඉතිහාසය}}, {{W-|si|පුරාවෘත්තය}} * {{Z|ko}}: {{W+|ko|역사}}, {{W+|ko|력사}} * {{Z|co}}: {{W+|co|storia}} * {{Z|kum}}: {{W-|kum|тарих|tr=tarix}} * {{Z|la}}: {{W+|la|historia|m}} * {{Z|lv}}: {{W-|lv|vēsture|m}} * {{Z|lo}}: {{W+|lo|ປະຫວັດສາດ}}, {{W-|lo|ປະຫວັດ}} * {{Z|lez}}: {{W-|lez|тарих}} * {{Z|lij}}: {{W-|lij|stöia}} * {{Z|lt}}: {{W+|lt|istorija|m}} * {{Z|lg}}: {{W-|lg|ebyafaayo}} * {{Z|mk}}: {{W-|mk|историја|m}} * {{Z|ml}}: {{W+|ml|ചരിത്രം}} * {{Z|ms}}: {{W+|ms|sejarah}} * {{Z|mt}}: {{W-|mt|storja|m}} * {{Z|mnc}}: {{W-|mnc|ᠰᡠᡩᡠᡵᡳ}} * {{Z|mr}}: {{W+|mr|इतिहास}} * {{Z|hu}}: {{W+|hu|történelem}}, {{W+|hu|múlt}} * {{Z|mn}}: *: Kirîlî: {{W+|mn|түүх}} *: Mongolî: {{W-|mn|ᠲᠡᠦᠬᠡ}} * {{Z|na}}: {{W+|na|ekadaedaenigawae}} * {{Z|ne}}: {{W+|ne|इतिहास}} * {{Z|no}}: {{W+|no|historie|m}} * {{Z|oc}}: {{W+|oc|istòria|m}} * {{Z|or}}: {{W-|or|ଇତିହାସ}} * {{Z|om}}: {{W-|om|seenaa}} * {{Z|os}}: {{W-|os|истори}} * {{Z|ota}}: {{W-|ota|تاریخ|tr=tarih}} * {{Z|ug}}: {{W-|ug|تارىخ}} * {{Z|uz}}: {{W+|uz|tarix}} * {{Z|pwn}}: {{W-|pwn|likisi}} * {{Z|ps}}: {{W+|ps|تاريخ|n|tr=tāríx}} * {{Z|pih}}: {{W-|pih|histrei}} * {{Z|pl}}: {{W+|pl|historia|m}}, {{W+|pl|dzieje}} * {{Z|pt}}: {{W+|pt|histórico|n}} * {{Z|prg}}: {{W-|prg|istōrija}} * {{Z|pa}}: {{W+|pa|ਇਤਿਹਾਸ}} * {{Z|kk}}: {{W+|kk|тарих}} * {{Z|rm}}: {{W-|rm|istorgia|m}} * {{Z|ro}}: {{W+|ro|istorie}} * {{Z|ru}}: {{W-|ru|исто́рия|m}} * {{Z|rue}}: {{W-|rue|істо́рія|m}} * {{Z|sgs}}: {{W-|sgs|istuorėjė|m}} * {{Z|sa}}: {{W+|sa|इतिहास|n}} * {{Z|ceb}}: {{W-|ceb|kasaysayan}} * {{Z|scn}}: {{W+|scn|storia|m}} * {{Z|szl}}: {{W-|szl|gyszichta|m}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|хѝсто̄рија|m}}, {{W-|sh|ѝсто̄рија|m}}, {{W-|sh|по̏вије̄ст|m}}, {{W-|sh|по̏ве̄ст|m}} *: Latînî: {{W+|sh|hìstōrija|m}}, {{W+|sh|ìstōrija|m}}, {{W+|sh|pȍvijēst|m}}, {{W+|sh|pȍvēst|m}} * {{Z|sk}}: {{W-|sk|dejiny|m-p}}, {{W-|sk|história|m}} * {{Z|sl}}: {{W+|sl|zgodovina|m}}, {{W+|sl|preteklost|m}} * {{Z|so}}: {{W-|so|taariikh}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|stawizny|p}} * {{Z|es}}: {{W+|es|historia|m}} * {{Z|sw}}: {{W+|sw|historia}} * {{Z|sv}}: {{W+|sv|historia|g}} * {{Z|shn}}: {{W-|shn|ပိုၼ်း}} * {{Z|tab}}: {{W-|tab|тарих}} * {{Z|tg}}: {{W+|tg|таърих}} * {{Z|tl}}: {{W+|tl|kasaysayan}} * {{Z|ta}}: {{W+|ta|வரலாறு}}, {{W+|ta|சரித்திரம்}} * {{Z|th}}: {{W+|th|ประวัติศาสตร์}}, {{W+|th|ประวัติ}} * {{Z|te}}: {{W+|te|చరిత్ర}}, {{W-|te|చరితం}}, {{W+|te|చరిత}} * {{Z|crh}}: {{W-|crh|tarih}} * {{Z|tt}}: {{W+|tt|тарих}} * {{Z|ti}}: {{W+|ti|ታሪኽ}} * {{Z|tr}}: {{W+|tr|tarih}}, {{W+|tr|ötük}} * {{Z|tk}}: {{W-|tk|taryh}} * {{Z|bo}}: {{W-|bo|ལོ་རྒྱུས}} * {{Z|tpi}}: {{W-|tpi|histori}} * {{Z|tyv}}: {{W-|tyv|төөгү}} * {{Z|ur}}: {{W+|ur|اتہاس|n|tr=itihās}}, {{W+|ur|تاریخ|m|tr=tārīx}} * {{Z|uk}}: {{W-|uk|істо́рія|m}} * {{Z|vec}}: {{W-|vec|istoria|m}}, {{W+|vec|storia|m}} * {{Z|vi}}: {{W+|vi|lịch sử}} * {{Z|war}}: {{W-|war|kasaysayan}} * {{Z|cy}}: {{W+|cy|hanes}} * {{Z|wym}}: {{W-|wym|gyśicht|m}} * {{Z|wo}}: {{W+|wo|taariix}} * {{Z|km}}: {{W-|km|ប្រវត្តិសាស្ត្រ}}, {{W+|km|ប្រវត្តិ}} * {{Z|sah}}: {{W-|sah|история}}, {{W-|sah|остуоруйа}} * {{Z|yi}}: {{W+|yi|געשיכטע|m}} * {{Z|el}}: {{W+|el|ιστορία|m}} *: Kevn: {{W-|grc|ἱστορία|m}} {{werger-bin}} :{{werger çavkanî|en|history|beş=Ev qismê Wergerê|oldid=75799073}} {{werger-ser|dema ku tiştek [[qewimîn|qewimiye]] yan hatiye kirin}} * {{Z|de}}: {{W+|de|Datum|n}}, {{W+|de|Zeitpunkt|m}} * {{Z|br}}: {{W+|br|deiziad|m}}, deiziadoù {{p}} * {{Z|id}}: {{W+|id|tanggal}} * {{Z|fi}}: {{W+|fi|päiväys}}, {{W+|fi|päivämäärä}} * {{Z|fr}}: {{W+|fr|date|f}} * {{Z|nl}}: {{W+|nl|datum|m}} * {{Z|en}}: {{W-|en|date|tr=time}} * {{Z|ja}}: {{W+|ja|日付|tr=ひづけ, hitzuke}} * {{Z|pl}}: {{W+|pl|data|f}} * {{Z|ro}}: {{W+|ro|dată|f}} * {{Z|sh}}: {{W+|sh|datum|m}} * {{Z|sh}}: *: Kirîlî: [[датум]] {{mê}} *: Latînî: {{W+|la|datum|m}} * {{Z|sv}}: {{W+|sv|datum|m}} * {{Z|te}}: {{W-|te|తేది|tr=taedi}} * {{Z|tr}}: {{W+|tr|tarih}}, {{W+|tr|gün}} {{werger-bin}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb|sc=Latn}} # {{ckb-Arab|تاریخ}} mxc3r0pcns876n3byczoqpcnjcqgju6 wawik 0 24606 6329727 6244612 2026-08-12T20:59:59Z Dûrzan 875 6329727 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Golden_Jackal_sa02.jpg|thumb|Wawikek]] {{navdêr|ku|z=n}} # [[çeqel|Çeqel]], [[torî]], [[şeqel]], <br>[[cûn]]ek [[se]]yên [[kûvî]] ye. #* {{bêmînak|ku}} # {{f|ku|mecazî}} [[hîlebaz]], [[fêlbaz]], [[cambaz]], [[lêbker]], [[pîs]], [[pespaye]], [[kone]], [[rûvî]] #* {{bêmînak|ku}} ==== Formên alternatîv ==== * [[wawîk]] * [[wawk]] ==== Navê zanistî ==== * ''[[Canis aureus]]'' ==== Etîmolojî ==== Ji {{ji|ar|ku|واوي|tr=wawî}} + kurdî [[-ik]] ==== Jê ==== * [[çeqelane]] * [[çeqelî]] ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|jakkals}} * {{Z|de}}: {{W+|de|Schakal|m}} * {{Z|ar}}: {{W-|ar|ابن اوی}} * {{Z|eo}}: {{W-|eo|ŝakalo}} * {{Z|fa}}: {{W+|fa|توره}}, {{W+|fa|شغال}}, {{W+|fa|کفتار}} * {{Z|fi}}: {{W+|fi|sakaali}} * {{Z|fr}}: {{W+|fr|chacal|m}} * {{Z|nl}}: {{W+|nl|jakhals|m}} * {{Z|en}}: {{W+|en|jackal}} * {{Z|ca}}: {{W+|ca|xacal}} * {{Z|pt}}: {{W+|pt|chacal}} * {{Z|es}}: {{W+|es|chacal|m}} * {{Z|sw}}: {{W+|sw|mbweha}} * {{Z|sv}}: {{W+|sv|schakal}} * {{Z|tr}}: {{W+|tr|çakal}} {{werger-bin}} {{mijar|ku|guhandar}} i2jxxvvs1i5wylj005uqz12fxq64rju 6329759 6329727 2026-08-12T21:32:44Z Wikihez 7344 [[Bikarhêner:Wikihez/templateScript2.js|TS]]: sererastkirin 6329759 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Golden_Jackal_sa02.jpg|thumb|Wawikek]] {{navdêr|ku|z=n}} # {{mijar|ku|guhandar}} [[cûn|Cûn]]ek [[se]]yên [[kûvî]] ye. #: {{hevmane|ku|çeqel|torî|şeqel}} #* {{bêmînak|ku}} # {{f|ku|mecazî}} [[hîlebaz]], [[fêlbaz]], [[cambaz]], [[lêbker]], [[pîs]], [[pespaye]], [[kone]], [[rûvî]] #* {{bêmînak|ku}} ==== Formên alternatîv ==== * {{g|ku|wawîk}} * {{g|ku|wawk}} ==== Navê zanistî ==== * ''[[Canis aureus]]'' ==== Etîmolojî ==== Ji {{qf|ku|ar:واوي<tr:wawî>|-ik}}. ==== Jê ==== * {{g|ku|çeqelane}} * {{g|ku|çeqelî}} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|jakkals}} * {{Z|de}}: {{W+|de|Schakal|m}} * {{Z|ar}}: {{W-|ar|ابن اوی}} * {{Z|eo}}: {{W-|eo|ŝakalo}} * {{Z|fa}}: {{W+|fa|توره}}, {{W+|fa|شغال}}, {{W+|fa|کفتار}} * {{Z|fi}}: {{W+|fi|sakaali}} * {{Z|fr}}: {{W+|fr|chacal|m}} * {{Z|nl}}: {{W+|nl|jakhals|m}} * {{Z|en}}: {{W+|en|jackal}} * {{Z|ca}}: {{W+|ca|xacal}} * {{Z|pt}}: {{W+|pt|chacal}} * {{Z|es}}: {{W+|es|chacal|m}} * {{Z|sw}}: {{W+|sw|mbweha}} * {{Z|sv}}: {{W+|sv|schakal}} * {{Z|tr}}: {{W+|tr|çakal}} {{werger-bin}} a6u5glljimd69hj6kxjza96vs1lkukc 6329760 6329759 2026-08-12T21:33:15Z Wikihez 7344 +{{ku-tewîn-nav|+{{ku-tewîn-nav| 6329760 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Golden_Jackal_sa02.jpg|thumb|Wawikek]] {{navdêr|ku|z=n}} # {{mijar|ku|guhandar}} [[cûn|Cûn]]ek [[se]]yên [[kûvî]] ye. #: {{hevmane|ku|çeqel|torî|şeqel}} #* {{bêmînak|ku}} # {{f|ku|mecazî}} [[hîlebaz]], [[fêlbaz]], [[cambaz]], [[lêbker]], [[pîs]], [[pespaye]], [[kone]], [[rûvî]] #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav|nêr}} ==== Formên alternatîv ==== * {{g|ku|wawîk}} * {{g|ku|wawk}} ==== Navê zanistî ==== * ''[[Canis aureus]]'' ==== Etîmolojî ==== Ji {{qf|ku|ar:واوي<tr:wawî>|-ik}}. ==== Jê ==== * {{g|ku|çeqelane}} * {{g|ku|çeqelî}} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|jakkals}} * {{Z|de}}: {{W+|de|Schakal|m}} * {{Z|ar}}: {{W-|ar|ابن اوی}} * {{Z|eo}}: {{W-|eo|ŝakalo}} * {{Z|fa}}: {{W+|fa|توره}}, {{W+|fa|شغال}}, {{W+|fa|کفتار}} * {{Z|fi}}: {{W+|fi|sakaali}} * {{Z|fr}}: {{W+|fr|chacal|m}} * {{Z|nl}}: {{W+|nl|jakhals|m}} * {{Z|en}}: {{W+|en|jackal}} * {{Z|ca}}: {{W+|ca|xacal}} * {{Z|pt}}: {{W+|pt|chacal}} * {{Z|es}}: {{W+|es|chacal|m}} * {{Z|sw}}: {{W+|sw|mbweha}} * {{Z|sv}}: {{W+|sv|schakal}} * {{Z|tr}}: {{W+|tr|çakal}} {{werger-bin}} 5s495bt53w1yqkvult7y1vhxo5dg41m 6329761 6329760 2026-08-12T21:33:36Z Wikihez 7344 /* Jê */ ne sayfeya çeqel (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6329761 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Golden_Jackal_sa02.jpg|thumb|Wawikek]] {{navdêr|ku|z=n}} # {{mijar|ku|guhandar}} [[cûn|Cûn]]ek [[se]]yên [[kûvî]] ye. #: {{hevmane|ku|çeqel|torî|şeqel}} #* {{bêmînak|ku}} # {{f|ku|mecazî}} [[hîlebaz]], [[fêlbaz]], [[cambaz]], [[lêbker]], [[pîs]], [[pespaye]], [[kone]], [[rûvî]] #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav|nêr}} ==== Formên alternatîv ==== * {{g|ku|wawîk}} * {{g|ku|wawk}} ==== Navê zanistî ==== * ''[[Canis aureus]]'' ==== Etîmolojî ==== Ji {{qf|ku|ar:واوي<tr:wawî>|-ik}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|jakkals}} * {{Z|de}}: {{W+|de|Schakal|m}} * {{Z|ar}}: {{W-|ar|ابن اوی}} * {{Z|eo}}: {{W-|eo|ŝakalo}} * {{Z|fa}}: {{W+|fa|توره}}, {{W+|fa|شغال}}, {{W+|fa|کفتار}} * {{Z|fi}}: {{W+|fi|sakaali}} * {{Z|fr}}: {{W+|fr|chacal|m}} * {{Z|nl}}: {{W+|nl|jakhals|m}} * {{Z|en}}: {{W+|en|jackal}} * {{Z|ca}}: {{W+|ca|xacal}} * {{Z|pt}}: {{W+|pt|chacal}} * {{Z|es}}: {{W+|es|chacal|m}} * {{Z|sw}}: {{W+|sw|mbweha}} * {{Z|sv}}: {{W+|sv|schakal}} * {{Z|tr}}: {{W+|tr|çakal}} {{werger-bin}} ejfkx5asrsqctkvbr8sgl737qfta36u 6329784 6329761 2026-08-12T22:12:06Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6329784 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Golden_Jackal_sa02.jpg|thumb|Wawikek]] {{navdêr|ku|z=n}} # {{mijar|ku|guhandar}} [[cûn|Cûnek]] [[se]]yên [[kûvî]] ye. #: {{hevmane|ku|çeqel|torî|şeqel}} #* {{bêmînak|ku}} # {{f|ku|mecazî}} [[hîlebaz]], [[fêlbaz]], [[cambaz]], [[lêbker]], [[pîs]], [[pespaye]], [[kone]], [[rûvî]] #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav|nêr}} ==== Formên alternatîv ==== * {{g|ku|wawîk}} * {{g|ku|wawk}} ==== Navê zanistî ==== * ''[[Canis aureus]]'' ==== Etîmolojî ==== Ji {{qf|ku|ar:واوي<tr:wawî>|-ik}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|jakkals}} * {{Z|de}}: {{W+|de|Schakal|m}} * {{Z|ar}}: {{W-|ar|ابن اوی}} * {{Z|eo}}: {{W-|eo|ŝakalo}} * {{Z|fa}}: {{W+|fa|توره}}, {{W+|fa|شغال}}, {{W+|fa|کفتار}} * {{Z|fi}}: {{W+|fi|sakaali}} * {{Z|fr}}: {{W+|fr|chacal|m}} * {{Z|nl}}: {{W+|nl|jakhals|m}} * {{Z|en}}: {{W+|en|jackal}} * {{Z|ca}}: {{W+|ca|xacal}} * {{Z|pt}}: {{W+|pt|chacal}} * {{Z|es}}: {{W+|es|chacal|m}} * {{Z|sw}}: {{W+|sw|mbweha}} * {{Z|sv}}: {{W+|sv|schakal}} * {{Z|tr}}: {{W+|tr|çakal}} {{werger-bin}} iazuadcarzgw72pkumxgkfnoxpaip1p 6329794 6329784 2026-08-12T22:39:56Z Wikihez 7344 /* Navdêr */ e (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6329794 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Golden_Jackal_sa02.jpg|thumb|Wawikek]] {{navdêr|ku|z=n}} # {{e|ku|guhandar}} [[cûn|Cûnek]] [[se]]yên [[kûvî]] ye. #: {{hevmane|ku|çeqel|torî|şeqel}} #* {{bêmînak|ku}} # {{f|ku|mecazî}} [[hîlebaz]], [[fêlbaz]], [[cambaz]], [[lêbker]], [[pîs]], [[pespaye]], [[kone]], [[rûvî]] #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav|nêr}} ==== Formên alternatîv ==== * {{g|ku|wawîk}} * {{g|ku|wawk}} ==== Navê zanistî ==== * ''[[Canis aureus]]'' ==== Etîmolojî ==== Ji {{qf|ku|ar:واوي<tr:wawî>|-ik}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|jakkals}} * {{Z|de}}: {{W+|de|Schakal|m}} * {{Z|ar}}: {{W-|ar|ابن اوی}} * {{Z|eo}}: {{W-|eo|ŝakalo}} * {{Z|fa}}: {{W+|fa|توره}}, {{W+|fa|شغال}}, {{W+|fa|کفتار}} * {{Z|fi}}: {{W+|fi|sakaali}} * {{Z|fr}}: {{W+|fr|chacal|m}} * {{Z|nl}}: {{W+|nl|jakhals|m}} * {{Z|en}}: {{W+|en|jackal}} * {{Z|ca}}: {{W+|ca|xacal}} * {{Z|pt}}: {{W+|pt|chacal}} * {{Z|es}}: {{W+|es|chacal|m}} * {{Z|sw}}: {{W+|sw|mbweha}} * {{Z|sv}}: {{W+|sv|schakal}} * {{Z|tr}}: {{W+|tr|çakal}} {{werger-bin}} reucapeskkuuynzsjjobtii5i0y5979 nifûz 0 30666 6329889 6313418 2026-08-13T00:31:41Z Wikihez 7344 6329889 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[hêz|Hêz]] an jî [[kontrol]]a ku diyarker in bi taybetî di warê siyasî de. #* {{jêder-malper|ku|jêgirtin=Emerîka dixwaze '''nifûza''' Îranê ya li Iraqê û Kurdistanê bişkêne.|malper=Nefel.com|sal=1/2007}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * {{g|ku|nufûz}} ==== Jê ==== {{kol3|ku|cure=Jê |nifûz kirin<pos:lêker> |nifûzkirin<pos:navdêr> |nifûzkirî<pos:rengdêr> |nifûzî}} ==== Etîmolojî ==== Ji {{deyn|ar|tr|نُفُوذ}}. Ji rehê {{ar-reh|ن ف ذ|nekat=1}}. ==== Bide ber ==== * {{g|ku|nifûs}} ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|نفوذ}} * {{Z|tr}}: {{W+|tr|nüfuz}} * {{Z|en}}: {{W+|en|influence}}, {{W+|en|sway}} {{werger-bin}} bq8kcbx8kjjncgr24xc6w4zr25vk9ef bikêr 0 31810 6329676 6133371 2026-08-12T18:13:12Z Wikihez 7344 xelet 6329676 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|bikêr}} {{rengdêr|ku}} # [[kêrhatî]], [[bimifa]], [[sûdmend]], [[bifêde]], [[bifeyde]], [[sûdder]], [[bisûd]], [[bikelk]], [[bixêr]], [[biber]], [[guncav]], [[bikar]] #* {{jêder|ku|jêgirtin=Lê tiştekî '''bikêrtir''' bi dest min ket.|{{Jêgirtin/Robert Louis Stevenson/Meseleya Seyr a Dr. Jekyll û Mr. Hyde|r=39}}}} # {{kontrol|rêz=erê|[[minasib]], [[qenc]], [[rind]], [[mifadar]], [[baş]], [[xêrdar]]}} ==== Dijmane ==== * [[bêkêr]] * [[kêrnehatî]] ==== Jê ==== {{stûn| * {{mj|lêker}} [[bikêr bûn]] * {{mj|lêker}} [[bikêr kirin]] * {{mj|navdêr}} [[bikêrbûn]] * {{mj|navdêr}} [[bikêrkirin]] * {{mj|navdêr}} [[bikêranîn]] * {{mj|rengdêr}} [[bikêrbûyî]] * {{mj|rengdêr}} [[bikêrkirî]] }} ==== Etîmolojî ==== Ji {{pêş|ku|bi-|kêr}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|geskikt}} * {{Z|sq}}: {{W+|sq|dobishëm}} * {{Z|de}}: {{W+|de|nützlich}}, {{W+|de|füglich}}, {{W+|de|gebührend}}, {{W+|de|gelegen}}, {{W+|de|gemächlich}}, {{W+|de|geziemend}}, {{W+|de|zusagend}}, {{W+|de|angebracht}}, {{W-|de|ausnutzbar|guman=erê}}, {{W+|de|zweckdienlich|guman=erê}}, {{W+|de|verwendbar|guman=erê}} * {{Z|az}}: {{W-|az|lazımlı}} * {{Z|bg}}: {{W-|bg|полезен|tr=polezen}} * {{Z|cs}}: {{W+|cs|užitečný}} * {{Z|zh}}: {{W-|zh|有用|tr=yǒuyòng}} * {{Z|da}}: {{W-|da|nyttig}} * {{Z|id}}: {{W+|id|berguna}} * {{Z|ar}}: {{W-|ar|مفيد|tr=mufîd}} * {{Z|eo}}: {{W-|eo|utila}} * {{Z|et}}: {{W-|et|kasulik}} * {{Z|fa}}: {{W-|fa|سودمند|tr=sûdmend}}, {{W+|fa|کارآمد}}, {{W+|fa|کارآمد}} * {{Z|fo}}: {{W-|fo|nýttigur}} * {{Z|fi}}: {{W+|fi|hyödyllinen}} * {{Z|fr}}: {{W+|fr|utile}} * {{Z|fy}}: {{W-|fy|nuttich}} * {{Z|ka}}: {{W-|ka|სასარგებლო|tr=sasargeblo}} * {{Z|hi}}: {{W-|hi|upayogi}} * {{Z|nl}}: {{W+|nl|nuttig}} * {{Z|he}}: {{W-|he|שִׁמּוּשִׁי|tr=šimuši}} * {{Z|ang}}: {{W-|ang|nytt}} * {{Z|en}}: {{W+|en|useful}}, {{W+|en|fit}} * {{Z|ga}}: {{W-|ga|úsáideach}} * {{Z|it}}: {{W+|it|utile}} * {{Z|ja}}: {{W-|ja|有用|tr=[[ゆうよう]], yūyō}}, {{W-|ja|便利な|tr=べんりな, benrina}} * {{Z|ca}}: {{W+|ca|útil}} * {{Z|ko}}: {{W-|ko|유용한|tr=yuyonghan}} * {{Z|lv}}: {{W-|lv|derīgs}} * {{Z|lt}}: {{W+|lt|naudingas}} * {{Z|ms}}: {{W+|ms|berguna}} * {{Z|hu}}: {{W+|hu|hasznos}} * {{Z|mn}}: {{W-|mn|хэрэгтэй|tr=heregtey}} * {{Z|no}}: {{W+|no|nyttig}} * [[oygurî]]: [[bolmaq]] * {{Z|pap}}: {{W-|pap|útil}} * {{Z|pl}}: {{W+|pl|pożyteczny}} * {{Z|pt}}: {{W+|pt|útil}} * {{Z|ro}}: {{W+|ro|folositor}} * {{Z|ru}}: {{W-|ru|полезный|tr=poléznyj}} * {{Z|sh}}: {{W-|az|употребљив|tr=[[upotrebljiv]]}} * {{Z|sk}}: {{W-|sk|činný}} * {{Z|sl}}: {{W-|sl|uporaben}} * {{Z|es}}: {{W+|es|útil}} * {{Z|sw}}: {{W+|sw|faida}} * {{Z|sv}}: {{W+|sv|nyttig}}, {{W+|sv|användbar}} * {{Z|tl}}: {{W-|tl|makabuluhan}} * {{Z|th}}: {{W-|th|ที่มีประโยชน์|tr=têe mee bprà-yôte}} * {{Z|te}}: {{W-|te|ఉపయోగకరము|tr=upayOgakaramu}} * {{Z|tr}}: {{W+|tr|faydalı}}, {{W+|tr|yararlı}}, {{W+|tr|gözü açık}}, {{W+|tr|hayırlı}}, {{W+|tr|onat}}, {{W+|tr|tirendaz}}, {{W+|tr|uz}}, {{W+|tr|yatkın}}, {{W+|tr|yordamlı}}, {{W+|tr|olçum}}, {{W+|tr|varlık}}, {{W+|tr|işe yarar|guman=erê}}, {{W+|tr|yarayışlı|guman=erê}} * {{Z|uk}}: [[корисний]] (korýsnyj) * {{Z|vi}}: {{W+|vi|có ích}} * {{Z|cy}}: {{W+|cy|buddiol}} * {{Z|yi}}: {{W-|yi|nusik}} * {{Z|el}}: {{W-|el|χρήσιμος|tr=khrēsimos}} {{werger-bin}} 0h7j1q1vcxp5d794mh70o1ripw2hucp 6329677 6329676 2026-08-12T18:13:28Z Wikihez 7344 /* Jê */ 6329677 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|bikêr}} {{rengdêr|ku}} # [[kêrhatî]], [[bimifa]], [[sûdmend]], [[bifêde]], [[bifeyde]], [[sûdder]], [[bisûd]], [[bikelk]], [[bixêr]], [[biber]], [[guncav]], [[bikar]] #* {{jêder|ku|jêgirtin=Lê tiştekî '''bikêrtir''' bi dest min ket.|{{Jêgirtin/Robert Louis Stevenson/Meseleya Seyr a Dr. Jekyll û Mr. Hyde|r=39}}}} # {{kontrol|rêz=erê|[[minasib]], [[qenc]], [[rind]], [[mifadar]], [[baş]], [[xêrdar]]}} ==== Dijmane ==== * [[bêkêr]] * [[kêrnehatî]] ==== Jê ==== {{kol3|ku|cure=Jê |bikêr bûn<q:lêker> |bikêr kirin<q:lêker> |bikêrbûn<q:navdêr> |bikêrkirin<q:navdêr> |bikêranîn<q:navdêr> |bikêrbûyî<q:rengdêr> |bikêrkirî<q:rengdêr> }} ==== Etîmolojî ==== Ji {{pêş|ku|bi-|kêr}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|geskikt}} * {{Z|sq}}: {{W+|sq|dobishëm}} * {{Z|de}}: {{W+|de|nützlich}}, {{W+|de|füglich}}, {{W+|de|gebührend}}, {{W+|de|gelegen}}, {{W+|de|gemächlich}}, {{W+|de|geziemend}}, {{W+|de|zusagend}}, {{W+|de|angebracht}}, {{W-|de|ausnutzbar|guman=erê}}, {{W+|de|zweckdienlich|guman=erê}}, {{W+|de|verwendbar|guman=erê}} * {{Z|az}}: {{W-|az|lazımlı}} * {{Z|bg}}: {{W-|bg|полезен|tr=polezen}} * {{Z|cs}}: {{W+|cs|užitečný}} * {{Z|zh}}: {{W-|zh|有用|tr=yǒuyòng}} * {{Z|da}}: {{W-|da|nyttig}} * {{Z|id}}: {{W+|id|berguna}} * {{Z|ar}}: {{W-|ar|مفيد|tr=mufîd}} * {{Z|eo}}: {{W-|eo|utila}} * {{Z|et}}: {{W-|et|kasulik}} * {{Z|fa}}: {{W-|fa|سودمند|tr=sûdmend}}, {{W+|fa|کارآمد}}, {{W+|fa|کارآمد}} * {{Z|fo}}: {{W-|fo|nýttigur}} * {{Z|fi}}: {{W+|fi|hyödyllinen}} * {{Z|fr}}: {{W+|fr|utile}} * {{Z|fy}}: {{W-|fy|nuttich}} * {{Z|ka}}: {{W-|ka|სასარგებლო|tr=sasargeblo}} * {{Z|hi}}: {{W-|hi|upayogi}} * {{Z|nl}}: {{W+|nl|nuttig}} * {{Z|he}}: {{W-|he|שִׁמּוּשִׁי|tr=šimuši}} * {{Z|ang}}: {{W-|ang|nytt}} * {{Z|en}}: {{W+|en|useful}}, {{W+|en|fit}} * {{Z|ga}}: {{W-|ga|úsáideach}} * {{Z|it}}: {{W+|it|utile}} * {{Z|ja}}: {{W-|ja|有用|tr=[[ゆうよう]], yūyō}}, {{W-|ja|便利な|tr=べんりな, benrina}} * {{Z|ca}}: {{W+|ca|útil}} * {{Z|ko}}: {{W-|ko|유용한|tr=yuyonghan}} * {{Z|lv}}: {{W-|lv|derīgs}} * {{Z|lt}}: {{W+|lt|naudingas}} * {{Z|ms}}: {{W+|ms|berguna}} * {{Z|hu}}: {{W+|hu|hasznos}} * {{Z|mn}}: {{W-|mn|хэрэгтэй|tr=heregtey}} * {{Z|no}}: {{W+|no|nyttig}} * [[oygurî]]: [[bolmaq]] * {{Z|pap}}: {{W-|pap|útil}} * {{Z|pl}}: {{W+|pl|pożyteczny}} * {{Z|pt}}: {{W+|pt|útil}} * {{Z|ro}}: {{W+|ro|folositor}} * {{Z|ru}}: {{W-|ru|полезный|tr=poléznyj}} * {{Z|sh}}: {{W-|az|употребљив|tr=[[upotrebljiv]]}} * {{Z|sk}}: {{W-|sk|činný}} * {{Z|sl}}: {{W-|sl|uporaben}} * {{Z|es}}: {{W+|es|útil}} * {{Z|sw}}: {{W+|sw|faida}} * {{Z|sv}}: {{W+|sv|nyttig}}, {{W+|sv|användbar}} * {{Z|tl}}: {{W-|tl|makabuluhan}} * {{Z|th}}: {{W-|th|ที่มีประโยชน์|tr=têe mee bprà-yôte}} * {{Z|te}}: {{W-|te|ఉపయోగకరము|tr=upayOgakaramu}} * {{Z|tr}}: {{W+|tr|faydalı}}, {{W+|tr|yararlı}}, {{W+|tr|gözü açık}}, {{W+|tr|hayırlı}}, {{W+|tr|onat}}, {{W+|tr|tirendaz}}, {{W+|tr|uz}}, {{W+|tr|yatkın}}, {{W+|tr|yordamlı}}, {{W+|tr|olçum}}, {{W+|tr|varlık}}, {{W+|tr|işe yarar|guman=erê}}, {{W+|tr|yarayışlı|guman=erê}} * {{Z|uk}}: [[корисний]] (korýsnyj) * {{Z|vi}}: {{W+|vi|có ích}} * {{Z|cy}}: {{W+|cy|buddiol}} * {{Z|yi}}: {{W-|yi|nusik}} * {{Z|el}}: {{W-|el|χρήσιμος|tr=khrēsimos}} {{werger-bin}} jkmwg2t1b2ki1c30p1q0ebpwaj0vkne 6329678 6329677 2026-08-12T18:13:48Z Wikihez 7344 6329678 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|bikêr}} {{rengdêr|ku}} # [[kêrhatî]], [[bimifa]], [[sûdmend]], [[bifêde]], [[bifeyde]], [[sûdder]], [[bisûd]], [[bikelk]], [[bixêr]], [[biber]], [[guncav]], [[bikar]] #* {{jêder|ku|jêgirtin=Lê tiştekî '''bikêrtir''' bi dest min ket.|{{Jêgirtin/Robert Louis Stevenson/Meseleya Seyr a Dr. Jekyll û Mr. Hyde|r=39}}}} # {{kontrol|rêz=erê|[[minasib]], [[qenc]], [[rind]], [[mifadar]], [[baş]], [[xêrdar]]}} ==== Dijmane ==== * [[bêkêr]] * [[kêrnehatî]] ==== Jê ==== {{kol3|ku|cure=Jê |bikêr bûn<crz:lêker> |bikêr kirin<crz:lêker> |bikêrbûn<crz:navdêr> |bikêrkirin<crz:navdêr> |bikêranîn<crz:navdêr> |bikêrbûyî<crz:rengdêr> |bikêrkirî<crz:rengdêr> }} ==== Etîmolojî ==== Ji {{pêş|ku|bi-|kêr}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|geskikt}} * {{Z|sq}}: {{W+|sq|dobishëm}} * {{Z|de}}: {{W+|de|nützlich}}, {{W+|de|füglich}}, {{W+|de|gebührend}}, {{W+|de|gelegen}}, {{W+|de|gemächlich}}, {{W+|de|geziemend}}, {{W+|de|zusagend}}, {{W+|de|angebracht}}, {{W-|de|ausnutzbar|guman=erê}}, {{W+|de|zweckdienlich|guman=erê}}, {{W+|de|verwendbar|guman=erê}} * {{Z|az}}: {{W-|az|lazımlı}} * {{Z|bg}}: {{W-|bg|полезен|tr=polezen}} * {{Z|cs}}: {{W+|cs|užitečný}} * {{Z|zh}}: {{W-|zh|有用|tr=yǒuyòng}} * {{Z|da}}: {{W-|da|nyttig}} * {{Z|id}}: {{W+|id|berguna}} * {{Z|ar}}: {{W-|ar|مفيد|tr=mufîd}} * {{Z|eo}}: {{W-|eo|utila}} * {{Z|et}}: {{W-|et|kasulik}} * {{Z|fa}}: {{W-|fa|سودمند|tr=sûdmend}}, {{W+|fa|کارآمد}}, {{W+|fa|کارآمد}} * {{Z|fo}}: {{W-|fo|nýttigur}} * {{Z|fi}}: {{W+|fi|hyödyllinen}} * {{Z|fr}}: {{W+|fr|utile}} * {{Z|fy}}: {{W-|fy|nuttich}} * {{Z|ka}}: {{W-|ka|სასარგებლო|tr=sasargeblo}} * {{Z|hi}}: {{W-|hi|upayogi}} * {{Z|nl}}: {{W+|nl|nuttig}} * {{Z|he}}: {{W-|he|שִׁמּוּשִׁי|tr=šimuši}} * {{Z|ang}}: {{W-|ang|nytt}} * {{Z|en}}: {{W+|en|useful}}, {{W+|en|fit}} * {{Z|ga}}: {{W-|ga|úsáideach}} * {{Z|it}}: {{W+|it|utile}} * {{Z|ja}}: {{W-|ja|有用|tr=[[ゆうよう]], yūyō}}, {{W-|ja|便利な|tr=べんりな, benrina}} * {{Z|ca}}: {{W+|ca|útil}} * {{Z|ko}}: {{W-|ko|유용한|tr=yuyonghan}} * {{Z|lv}}: {{W-|lv|derīgs}} * {{Z|lt}}: {{W+|lt|naudingas}} * {{Z|ms}}: {{W+|ms|berguna}} * {{Z|hu}}: {{W+|hu|hasznos}} * {{Z|mn}}: {{W-|mn|хэрэгтэй|tr=heregtey}} * {{Z|no}}: {{W+|no|nyttig}} * [[oygurî]]: [[bolmaq]] * {{Z|pap}}: {{W-|pap|útil}} * {{Z|pl}}: {{W+|pl|pożyteczny}} * {{Z|pt}}: {{W+|pt|útil}} * {{Z|ro}}: {{W+|ro|folositor}} * {{Z|ru}}: {{W-|ru|полезный|tr=poléznyj}} * {{Z|sh}}: {{W-|az|употребљив|tr=[[upotrebljiv]]}} * {{Z|sk}}: {{W-|sk|činný}} * {{Z|sl}}: {{W-|sl|uporaben}} * {{Z|es}}: {{W+|es|útil}} * {{Z|sw}}: {{W+|sw|faida}} * {{Z|sv}}: {{W+|sv|nyttig}}, {{W+|sv|användbar}} * {{Z|tl}}: {{W-|tl|makabuluhan}} * {{Z|th}}: {{W-|th|ที่มีประโยชน์|tr=têe mee bprà-yôte}} * {{Z|te}}: {{W-|te|ఉపయోగకరము|tr=upayOgakaramu}} * {{Z|tr}}: {{W+|tr|faydalı}}, {{W+|tr|yararlı}}, {{W+|tr|gözü açık}}, {{W+|tr|hayırlı}}, {{W+|tr|onat}}, {{W+|tr|tirendaz}}, {{W+|tr|uz}}, {{W+|tr|yatkın}}, {{W+|tr|yordamlı}}, {{W+|tr|olçum}}, {{W+|tr|varlık}}, {{W+|tr|işe yarar|guman=erê}}, {{W+|tr|yarayışlı|guman=erê}} * {{Z|uk}}: [[корисний]] (korýsnyj) * {{Z|vi}}: {{W+|vi|có ích}} * {{Z|cy}}: {{W+|cy|buddiol}} * {{Z|yi}}: {{W-|yi|nusik}} * {{Z|el}}: {{W-|el|χρήσιμος|tr=khrēsimos}} {{werger-bin}} r42suo4sg9b72p72o8jrxg0rx6yj767 mîn 0 36775 6329847 6312828 2026-08-12T23:52:23Z Wikihez 7344 /* Kurmancî */ {{bnr-h|mîn|mìn|miñ}} (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6329847 wikitext text/x-wiki {{bnr-h|min|mìn|miñ}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{f|ku|çek}} {{guharto|ku|mayin}} #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb|sc=Latn}} # [[mayin]] #* {{bêmînak|ckb}} b61qoxhgdvtrsxcz6sq73p6cnaemzr7 kirû 0 39482 6329817 6310253 2026-08-12T23:05:47Z Wikihez 7344 6329817 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{f|ku|xeyalet}} [[waqia]], [[heqîqet]] #* {{jêder-kovar|ku|jêgirtin=Ev rewşa han ne tenê di dibistan û xwendegehan de heye; di zanîngehan de jî ev eynî wisa ye. Kirû ya{{sic}} bêtir nîşanker ev e ku meriv dikare li Fransayê bibe "pisporekî" felsefê, xwedîyê dîplomayên bilindtirînên ku zanîngehên fransizî didin {{...}}|url=https://bnk.institutkurde.org/catalogue/detail.php?pirtuk=540|kovar=Azadî|sal=1979|hj=6-7|r=18|nivîskar=S. Politzer|sernav=Bingehên Destpêkiyên Felsefê}} #* {{jêder-kovar|ku|jêgirtin=ji hêlekê ve ev biryara ku piştgirtina Kurd a dida xwanî, bi rastî rûçkê wê îlhaq û daxûrîya kolonyalîst di çespand û dixwest ku têkoşîna dij van '''kirûyan''' jî mahkûm bik e.{{sic}} |kovar=Rizgarî|sernav=Sernivîs|r=7|sal=1992|hj=hejmara xisûsî}} #* {{jêder|ku|jêgirtin=Rengdêra ‘baş’ê, ji bo bûyer an jî '''kirûyên''' erênî tê gotin. Heger bûyer, kirû an jî tiştek bi hişmendiyê re li hev be û ji alî êqil ve hatibe qebûlkirin di statuya “baş”ê de ye. Tiştên ku dûrî êqil û fêmkirinê bin û di çarçoveya lojîk de cih negirtibin nikarin baş bin. ‘Baş’ piştî muhakeme, qenaet û erêkirina êqil biwesif dibe.|Rênas Jiyan: '' Baş û xweş û hêja'', Azadiyawelat.com, 5/2007}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ev peyv cara pêşî di kovara Azadî (1979) de tê dîtin û di ferhengoka vê hejmarê de bi {{q+|tr|olgu}}, {{q+|fr|fait}} tê manadarkirin. Bi ferhenga Îzolî berbelav dibe. Paşgireka wek "-û" di kurmancî da nîn e. Esilê peyvê {{q|ckb|کراو|tr=kiraw|t=kirî, îcrakirî}} ya soranî ye ku hêmana "-ra" di zaravayê soranî da ji bo avanîya pasîf tê bikaranîn. Mîna {{q|ku|rûdaw|t=rûdayî, qewimî}}. Ihtimalen cara ewil bi xwendina xelet a {{q|ckb|کراو|tr=kiraw}} weke ''*kirû'' peyveka weha [[peyva xeyalet|xeyalet]] hatiye wicûdê. Peyva {{q|ckb|کراو|tr=kiraw}} bi xurtî mihtemel e ku ji berdêla xwe ya {{yekser|en|ku|fact|nivîsna=1}} hatibe wergerandin. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Ereignis|n}} * {{Z|fa}}: {{W+|fa|رویداد}}, {{W+|fa|اتفاق}} * {{Z|fi}}: {{W+|fi|teko}} * {{Z|en}}: {{W+|en|fact}} * {{Z|tr}}: {{W+|tr|olgu}}, {{W+|tr|fenomen}}, {{W|tr|vakıa}} {{werger-bin}} flwv9cpggdgo79u837138xq9wcxnjz7 pêkhatî 0 40878 6329898 6124739 2026-08-13T00:46:34Z Wikihez 7344 6329898 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Tiştê ku hatiye [[pêkanîn]]; [[lihevhatî]]; tam û bêqusûr. #* {{jêder-pirtûk|ku|jêgirtin=Difikire ku ji dûr ve siwarekî '''pêkhatî''' bi libas û çek têtin.|nivîskar=Mele Mehmûdê Bazîdî|sernav=Cami’eya Riseleyan û Hikayetan Bi Zimanê Kurmancî|cîh=Stembol|weşanxane={{w|Weşanên Lîs|Lîs}}|sal=2010|çap=1|rûpel=119|isbn=978-605-5683-27-6}} # {{f|ku|rêzimanî}} [[darişt|Dariştî]]; [[lêker]] û navên ku bi [[qertaf]]an temam û ava dibin. #* {{jêder-pirtûk|ku|jêgirtin=Mijara herî berfireh mijara lêkerên '''pêkhatî''' ye.|sernav=Rêzimana Kurmancî|nivîskar={{w|Samî Tan}}|çap=nûkirî|sal=2015|weşanxane=Weşanên Enstîtuya Kurdî ya Stenbolêr|rûpel=257}} # [[bicihhatî|Bicihhatî]]; [[qewimî]]. #* {{mk|ku|Daxwazên '''pêknehatî''' û dernebirrî dikarin bibin sedema nexweşiyên derûnî.}} ==== Bi alfabeyên din ==== * {{ku-ar|پێكهاتی}} ==== Herweha ==== * {{g|ku|pêkhate}} ==== Têkildar ==== * {{g|ku|pêkînayî}} ==== Etîmolojî ==== Ji {{qertaf|ku|pêk|hatin|-î}}. ==== Jê ==== {{kol3|ku|cure=Jê |pêkhatî bûn<pos:lêker> |pêkhatî kirin<pos:lêker> |pêkhatîbûn<pos:navdêr> |pêkhatîkirin<pos:navdêr> |pêkhatîbûyî<pos:rengdêr> |pêkhatîkirî<pos:rengdêr> }} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|hervorgebracht}}, {{W+|de|vollendet}}, {{W+|de|eingetreten}}, {{W+|de|vorgekommen|guman=erê}}, {{W+|de|entstanden|guman=erê}}, {{W+|de|zusammengesetzt|guman=erê}}, {{W+|de|Ableitung|guman=erê}}, {{W+|de|Zutat|guman=erê}} * {{Z|ar}}: {{W-|ar|التركیب}}, {{W-|ar|الـوفق|guman=erê}} * {{Z|fa}}: {{W+|fa|متشکل}}, {{W-|fa|بدست آمده}}, {{W-|fa|ایجاد شده}}, {{W-|fa|تحقق یافته}} * {{Z|en}}: {{W+|en|contain}}, {{W+|en|derivative}}, {{W+|en|accordant}}, {{W+|en|built-up|guman=erê}}, {{W+|en|compact|guman=erê}}, {{W+|en|compliant|guman=erê}}, {{W+|en|compound|guman=erê}}, {{W+|en|compromised|guman=erê}}, {{W+|en|consentaneous|guman=erê}}, {{W+|en|decompound|guman=erê}}, {{W+|en|compliable|guman=erê}}, {{W-|en|composit|guman=erê}}, {{W-|en|compositive|guman=erê}}, {{W+|en|concordant|guman=erê}}, {{W+|en|concurred|guman=erê}}, {{W+|en|equitant|guman=erê}}, {{W+|en|fortuitous|guman=erê}}, {{W+|en|haphazard|guman=erê}}, {{W+|en|in line with|guman=erê}}, {{W+|en|reconciled|guman=erê}} * {{Z|tr}}: {{W+|tr|becerikli}}, {{W+|tr|girgin}}, {{W+|tr|girişken}}, {{W+|tr|yatkın}}, {{W-|tr|cebar}}, {{W+|tr|oluşuk}}, {{W+|tr|müteşekkil}}, {{W-|tr|oluşmuş}}, {{W+|tr|çakır}}, {{W+|tr|çakır pençe|guman=erê}} {{werger-bin}} iiabey6csod89mlk1r7ge4u98jtarsa 6329916 6329898 2026-08-13T01:41:07Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6329916 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Tiştê ku hatiye [[pêkanîn]]; [[lihevhatî]]; tam û bêqusûr. #* {{jêder-pirtûk|ku|jêgirtin=Difikire ku ji dûr ve siwarekî '''pêkhatî''' bi libas û çek têtin.|nivîskar=Mele Mehmûdê Bazîdî|sernav=Cami’eya Riseleyan û Hikayetan Bi Zimanê Kurmancî|cîh=Stembol|weşanxane={{w|Weşanên Lîs|Lîs}}|sal=2010|çap=1|rûpel=119|isbn=978-605-5683-27-6}} # {{f|ku|rêzimanî}} [[darişt|Dariştî]]; [[lêker]] û navên ku bi [[qertaf]]an temam û ava dibin. #* {{jêder-pirtûk|ku|jêgirtin=Mijara herî berfireh mijara lêkerên '''pêkhatî''' ye.|sernav=Rêzimana Kurmancî|nivîskar={{w|Samî Tan}}|çap=nûkirî|sal=2015|weşanxane=Weşanên Enstîtuya Kurdî ya Stenbolêr|rûpel=257}} # [[bicihhatî|Bicihhatî]]; [[qewimî]]. #* {{mk|ku|Daxwazên '''pêknehatî''' û dernebirrî dikarin bibin sedema nexweşiyên derûnî.}} ==== Bi alfabeyên din ==== * {{ku-ar|پێكهاتی}} ==== Formên alternatîv ==== * {{g|ku|pêkhate}} ==== Jê ==== {{kol3|ku|cure=Jê |pêkhatî bûn<pos:lêker> |pêkhatî kirin<pos:lêker> |pêkhatîbûn<pos:navdêr> |pêkhatîkirin<pos:navdêr> |pêkhatîbûyî<pos:rengdêr> |pêkhatîkirî<pos:rengdêr> }} ==== Têkildar ==== * {{g|ku|pêkînayî}} ==== Etîmolojî ==== Ji {{qertaf|ku|pêk|hatin|-î}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|hervorgebracht}}, {{W+|de|vollendet}}, {{W+|de|eingetreten}}, {{W+|de|vorgekommen|guman=erê}}, {{W+|de|entstanden|guman=erê}}, {{W+|de|zusammengesetzt|guman=erê}}, {{W+|de|Ableitung|guman=erê}}, {{W+|de|Zutat|guman=erê}} * {{Z|ar}}: {{W-|ar|التركیب}}, {{W-|ar|الـوفق|guman=erê}} * {{Z|fa}}: {{W+|fa|متشکل}}, {{W-|fa|بدست آمده}}, {{W-|fa|ایجاد شده}}, {{W-|fa|تحقق یافته}} * {{Z|en}}: {{W+|en|contain}}, {{W+|en|derivative}}, {{W+|en|accordant}}, {{W+|en|built-up|guman=erê}}, {{W+|en|compact|guman=erê}}, {{W+|en|compliant|guman=erê}}, {{W+|en|compound|guman=erê}}, {{W+|en|compromised|guman=erê}}, {{W+|en|consentaneous|guman=erê}}, {{W+|en|decompound|guman=erê}}, {{W+|en|compliable|guman=erê}}, {{W-|en|composit|guman=erê}}, {{W-|en|compositive|guman=erê}}, {{W+|en|concordant|guman=erê}}, {{W+|en|concurred|guman=erê}}, {{W+|en|equitant|guman=erê}}, {{W+|en|fortuitous|guman=erê}}, {{W+|en|haphazard|guman=erê}}, {{W+|en|in line with|guman=erê}}, {{W+|en|reconciled|guman=erê}} * {{Z|tr}}: {{W+|tr|becerikli}}, {{W+|tr|girgin}}, {{W+|tr|girişken}}, {{W+|tr|yatkın}}, {{W-|tr|cebar}}, {{W+|tr|oluşuk}}, {{W+|tr|müteşekkil}}, {{W-|tr|oluşmuş}}, {{W+|tr|çakır}}, {{W+|tr|çakır pençe|guman=erê}} {{werger-bin}} j4cemx9ulx7cwxzjp4r15ttosfirdgb nehs 0 43107 6329887 6285030 2026-08-13T00:30:49Z Wikihez 7344 6329887 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|nehs}} {{rengdêr|ku}} # Kesê [[kar]]ên [[xirab]] dike yan li cihê xwe [[sekinîn|nasekine]] (bi taybetî [[zarok]]); ne [[vehewiyayî]], ne [[tebitî]], ne [[aram]], ne [[rehet]], ne [[hêmin]]. #: {{hevmane|ku|şûm|neqet|destmatî}} #* {{jêder|ku|jêgirtin=Ez di zaroktiya xwe de yekî pir '''nehs''' bûme|{{Zana Farqînî|r=1277}}}} #* {{jêder|ku|jêgirtin=...carinan zarokên '''nehs''' yên cîranan xwe li ber deriyê me dikirin [[teht]] ku bila porê wan jî kur bike...|{{Jêgirtin/Înan Eroglu/Têbîniyek/2019|r=34}}}} #* {{jêder-kovar|ku|jêgirtin=Di vê rêzikê de karektereke bi navê Maya heye ku ew [[şûm]] û '''nehs''' e û li dijberê wê karakterekî bi navê Willy heye ku ew jî tirsonek û bi [[fikar]] e.|kovar=e-şarkiyat ilmi araştırmalar dergisi JOSR|sernav=Kurtedîroka Çapemenî û Medyaya Zarokan a Kurdî|url=http://acikerisim.artuklu.edu.tr/xmlui/bitstream/handle/20.500.12514/2129/KURTED%c3%8eROKA%20%c3%87APEMEN%c3%8e%20%c3%9b%20MEDYAYA%20ZAROKAN%20A%20KURD%c3%8e.pdf?sequence=1&isAllowed=y|nivîskar=Kenan Subaşı|cîld=9|hejmar=1|sal=2017|rûpel=113}} #* {{jêder|ku|{{Jêgirtin/Melayê Cizîrî/Dîwana Melayê Cizirî}}|jêgirtin=Spêde kifş-i bû dîsa<br />Merîxa '''nehs'''ê ava bû<br />Xwiya bû roj di şerqê da}} ==== Jê ==== {{kol3|ku|cure=Jê |nehs bûn<pos:lêker> |nehs kirin<pos:lêker> |nehsbûn<pos:navdêr> |nehskirin<pos:navdêr> |nehsbûyî<pos:rengdêr> |nehskirî<pos:rengdêr> |nehsî |nehsîtî |nehistî }} ==== Formên alternatîv ==== * {{g|ku|nehis}} ==== Bide ber ==== * {{g|ku|necis}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|بدسگالی}}, {{W+|fa|شوم}}, {{W+|fa|نحس}} * {{Z|en}}: {{W+|en|obstreperous}}, {{W+|en|roguish}}, {{W+|en|naughty|guman=erê}} * {{Z|tr}}: {{W+|tr|afacan}}, {{W+|tr|haşarı}}, {{W+|tr|uçarı}}, {{W+|tr|yaramaz}}, {{W+|tr|kurnaz}}, {{W+|tr|entrikacı}}, {{W+|tr|bastıbacak}}, {{W+|tr|haylaz}}, {{W+|tr|kuduruk}}, {{W+|tr|baylan|guman=erê}}, {{W+|tr|haydut|guman=erê}}, {{W+|tr|yumurcak|guman=erê}} {{werger-bin}} n28nh44wzh7yxzd9emgzra1ggs8sv22 6329894 6329887 2026-08-13T00:41:10Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6329894 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|nehs}} {{rengdêr|ku}} # Kesê [[kar]]ên [[xirab]] dike yan li cihê xwe [[sekinîn|nasekine]] (bi taybetî [[zarok]]); ne [[vehewiyayî]], ne [[tebitî]], ne [[aram]], ne [[rehet]], ne [[hêmin]]. #: {{hevmane|ku|şûm|neqet|destmatî}} #* {{jêder|ku|jêgirtin=Ez di zaroktiya xwe de yekî pir '''nehs''' bûme|{{Zana Farqînî|r=1277}}}} #* {{jêder|ku|jêgirtin=...carinan zarokên '''nehs''' yên cîranan xwe li ber deriyê me dikirin [[teht]] ku bila porê wan jî kur bike...|{{Jêgirtin/Înan Eroglu/Têbîniyek/2019|r=34}}}} #* {{jêder-kovar|ku|jêgirtin=Di vê rêzikê de karektereke bi navê Maya heye ku ew [[şûm]] û '''nehs''' e û li dijberê wê karakterekî bi navê Willy heye ku ew jî tirsonek û bi [[fikar]] e.|kovar=e-şarkiyat ilmi araştırmalar dergisi JOSR|sernav=Kurtedîroka Çapemenî û Medyaya Zarokan a Kurdî|url=http://acikerisim.artuklu.edu.tr/xmlui/bitstream/handle/20.500.12514/2129/KURTED%c3%8eROKA%20%c3%87APEMEN%c3%8e%20%c3%9b%20MEDYAYA%20ZAROKAN%20A%20KURD%c3%8e.pdf?sequence=1&isAllowed=y|nivîskar=Kenan Subaşı|cîld=9|hejmar=1|sal=2017|rûpel=113}} #* {{jêder|ku|{{Jêgirtin/Melayê Cizîrî/Dîwana Melayê Cizirî}}|jêgirtin=Spêde kifş-i bû dîsa<br />Merîxa '''nehs'''ê ava bû<br />Xwiya bû roj di şerqê da}} ==== Formên alternatîv ==== * {{g|ku|nehis}} ==== Jê ==== {{kol3|ku|cure=Jê |nehs bûn<pos:lêker> |nehs kirin<pos:lêker> |nehsbûn<pos:navdêr> |nehskirin<pos:navdêr> |nehsbûyî<pos:rengdêr> |nehskirî<pos:rengdêr> |nehsî |nehsîtî |nehistî }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Bide ber ==== * {{g|ku|necis}} ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|بدسگالی}}, {{W+|fa|شوم}}, {{W+|fa|نحس}} * {{Z|en}}: {{W+|en|obstreperous}}, {{W+|en|roguish}}, {{W+|en|naughty|guman=erê}} * {{Z|tr}}: {{W+|tr|afacan}}, {{W+|tr|haşarı}}, {{W+|tr|uçarı}}, {{W+|tr|yaramaz}}, {{W+|tr|kurnaz}}, {{W+|tr|entrikacı}}, {{W+|tr|bastıbacak}}, {{W+|tr|haylaz}}, {{W+|tr|kuduruk}}, {{W+|tr|baylan|guman=erê}}, {{W+|tr|haydut|guman=erê}}, {{W+|tr|yumurcak|guman=erê}} {{werger-bin}} ax6tyy5eu589pr66mcadvwbrez8rkmk mereqdar 0 44763 6329836 6244560 2026-08-12T23:39:35Z Wikihez 7344 6329836 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|mereqdar}} {{rengdêr|ku}} # Kesa/ê ku [[xwestin|dixwaze]] tiştan [[zanîn|bizane]], kesa/ê ku [[bala xwe dan|bala xwe dide]] tiştan. #* {{jêder-kovar|ku|jêgirtin=Rojekê ji hevalên Qasidê Xwedê yekî mîna me '''mereqdar''' jê pirsiye em ê li cenetê çi xwe bikin.|url=http://books.google.com.tr/books?id=H_-jDwAAQBAJ&pg=PA33&dq=%22mereqdar%22&hl=&cd=4&source=gbs_api|sernav=Cihê ku xeyala wê jî xweş e|nivîskarDilek Topaktaş|kovar=Siyer Dergisi|hejmar=6|weşanxane= SIYER BASIM YAYIN DAGITIM SAN. VE TIC. LTD. STI.|rûpel=33|sal=2018}} # Kesa/ê ku dixwaze tiştek hebe yan tiştekî [[bibîne]]. #* {{bêmînak|ku}} # Kesê ku dixwaze derbarê hin tiştan de xwedan agahî be herçend ku ew tişt ne têkidarî wî/wê ye. #* {{bêmînak|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|مەرەقدار}} ==== Formên alternatîv ==== * {{g|ku|meraqdar}} ==== Hevmane ==== * {{g|ku|bimereq}} ==== Jê ==== {{kol3|ku|cure=Jê |mereqdarî |mereqdarîtî |mereqdartî |mereqdar bûn<pos:lêker> |mereqdar kirin<pos:lêker> |mereqdarbûn<pos:navdêr> |mereqdarkirin<pos:navdêr> |mereqdarbûyî<pos:rengdêr> |mereqdarkirî<pos:rengdêr> }} ==== Etîmolojî ==== Ji {{paş|ku|mereq|-dar}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|nuuskierig}} * {{Z|de}}: {{W+|de|neugierig}}, {{W|de|versessen|guman=erê}}, {{W|de|wissbegierig|guman=erê}}, {{W|de|Dilettant|guman=erê}} * {{Z|br}}: {{W+|br|kurius}} * {{Z|da}}: {{W+|da|nysgerrig}} * {{Z|eo}}: {{W+|eo|kurioza}} * {{Z|fa}}: {{W+|fa|مشتاق}}, {{W+|fa|با حسرت}} * {{Z|fi}}: {{W+|fi|utelias}} * {{Z|fr}}: {{W|fr|curieux|m}}, {{W|fr|curieuse|f}} * {{Z|nl}}: {{W+|nl|curieus}}, {{W+|nl|nieuwsgierig}} * {{Z|en}}: {{W+|en|curious}}, {{W+|en|inquisitive}}, {{W+|en|interested}}, {{W+|en|eager}}, {{W+|en|juicy|guman=erê}}, 2 {{W+|en|keen}}, {{W+|en|desirous of}}, {{W|en|aspirant|guman=erê}}, {{W|en|overeager|guman=erê}}, {{W|en|tryhard|guman=erê}}, {{W|en|wannabe|guman=erê}} * {{Z|it}}: {{W+|it|curioso}} * {{Z|ca}}: {{W+|ca|curiós}} * {{Z|qu}}: {{W+|qu|hañas}} * {{Z|no}}: {{W+|no|kuriøs}}, {{W+|no|nysgjerrig}} * {{Z|pt}}: {{W+|pt|curioso}} * {{Z|ro}}: {{W+|ro|curios}} * {{Z|scn}}: {{W+|scn|curiusa}}, {{W+|scn|curiusu}} * {{Z|so}}: {{W+|so|barto}} * {{Z|es}}: {{W+|es|curioso}} * {{Z|sv}}: {{W+|sv|frågvis}}, {{W+|sv|nyfiken}} * {{Z|tr}}: {{W+|tr|meraklı}}, {{W+|tr|bağımlı}}, {{W+|tr|düşkün}}, {{W+|tr|müptela}}, {{W+|tr|kırk merak}}, {{W|tr|araştırıcı|guman=erê}} {{werger-bin}} s6b28jtwotf45g7zmb1qixkwxoftbc7 6329837 6329836 2026-08-12T23:40:06Z Wikihez 7344 6329837 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|mereqdar}} {{rengdêr|ku}} # Kesa/ê ku [[xwestin|dixwaze]] tiştan [[zanîn|bizane]], kesa/ê ku [[bala xwe dan|bala xwe dide]] tiştan. #* {{jêder-kovar|ku|jêgirtin=Rojekê ji hevalên Qasidê Xwedê yekî mîna me '''mereqdar''' jê pirsiye em ê li cenetê çi xwe bikin.|url=http://books.google.com.tr/books?id=H_-jDwAAQBAJ&pg=PA33&dq=%22mereqdar%22&hl=&cd=4&source=gbs_api|sernav=Cihê ku xeyala wê jî xweş e|nivîskar=Dilek Topaktaş|kovar=Siyer Dergisi|hejmar=6|weşanxane= Siyer Basim Yayin|rûpel=33|sal=2018}} # Kesa/ê ku dixwaze tiştek hebe yan tiştekî [[bibîne]]. #* {{bêmînak|ku}} # Kesê ku dixwaze derbarê hin tiştan de xwedan agahî be herçend ku ew tişt ne têkidarî wî/wê ye. #* {{bêmînak|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|مەرەقدار}} ==== Formên alternatîv ==== * {{g|ku|meraqdar}} ==== Hevmane ==== * {{g|ku|bimereq}} ==== Jê ==== {{kol3|ku|cure=Jê |mereqdarî |mereqdarîtî |mereqdartî |mereqdar bûn<pos:lêker> |mereqdar kirin<pos:lêker> |mereqdarbûn<pos:navdêr> |mereqdarkirin<pos:navdêr> |mereqdarbûyî<pos:rengdêr> |mereqdarkirî<pos:rengdêr> }} ==== Etîmolojî ==== Ji {{paş|ku|mereq|-dar}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|nuuskierig}} * {{Z|de}}: {{W+|de|neugierig}}, {{W|de|versessen|guman=erê}}, {{W|de|wissbegierig|guman=erê}}, {{W|de|Dilettant|guman=erê}} * {{Z|br}}: {{W+|br|kurius}} * {{Z|da}}: {{W+|da|nysgerrig}} * {{Z|eo}}: {{W+|eo|kurioza}} * {{Z|fa}}: {{W+|fa|مشتاق}}, {{W+|fa|با حسرت}} * {{Z|fi}}: {{W+|fi|utelias}} * {{Z|fr}}: {{W|fr|curieux|m}}, {{W|fr|curieuse|f}} * {{Z|nl}}: {{W+|nl|curieus}}, {{W+|nl|nieuwsgierig}} * {{Z|en}}: {{W+|en|curious}}, {{W+|en|inquisitive}}, {{W+|en|interested}}, {{W+|en|eager}}, {{W+|en|juicy|guman=erê}}, 2 {{W+|en|keen}}, {{W+|en|desirous of}}, {{W|en|aspirant|guman=erê}}, {{W|en|overeager|guman=erê}}, {{W|en|tryhard|guman=erê}}, {{W|en|wannabe|guman=erê}} * {{Z|it}}: {{W+|it|curioso}} * {{Z|ca}}: {{W+|ca|curiós}} * {{Z|qu}}: {{W+|qu|hañas}} * {{Z|no}}: {{W+|no|kuriøs}}, {{W+|no|nysgjerrig}} * {{Z|pt}}: {{W+|pt|curioso}} * {{Z|ro}}: {{W+|ro|curios}} * {{Z|scn}}: {{W+|scn|curiusa}}, {{W+|scn|curiusu}} * {{Z|so}}: {{W+|so|barto}} * {{Z|es}}: {{W+|es|curioso}} * {{Z|sv}}: {{W+|sv|frågvis}}, {{W+|sv|nyfiken}} * {{Z|tr}}: {{W+|tr|meraklı}}, {{W+|tr|bağımlı}}, {{W+|tr|düşkün}}, {{W+|tr|müptela}}, {{W+|tr|kırk merak}}, {{W|tr|araştırıcı|guman=erê}} {{werger-bin}} k6xe7inn90ja93gxon3881gevs46o1c 6329838 6329837 2026-08-12T23:40:39Z Wikihez 7344 6329838 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|mereqdar}} {{rengdêr|ku}} # Kesa/ê ku [[xwestin|dixwaze]] tiştan [[zanîn|bizane]], kesa/ê ku [[bala xwe dan|bala xwe dide]] tiştan. #* {{jêder-kovar|ku|jêgirtin=Rojekê ji hevalên Qasidê Xwedê yekî mîna me '''mereqdar''' jê pirsiye em ê li cenetê çi xwe bikin.|url=http://books.google.com.tr/books?id=H_-jDwAAQBAJ&pg=PA33&dq=%22mereqdar%22&hl=&cd=4&source=gbs_api|sernav=Cihê ku xeyala wê jî xweş e|nivîskar=Dilek Topaktaş|kovar=Siyer Dergisi|hejmar=6|weşanxane= Siyer Basim Yayin|rûpel=33|sal=2018}} # Kesa/ê ku dixwaze tiştek hebe yan tiştekî [[bibîne]]. #* {{bêmînak|ku}} # Kesê ku [[xwastin|dixwaze]] [[derbar|derbarê]] [[hin|hin]] [[tişt|tiştan]] de [[xwedan|xwedan]] [[agahî|agahî]] be [[herçend|herçend]] ku ew tişt ne [[têkidarî|têkidarî]] wî/wê ye. #* {{bêmînak|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|مەرەقدار}} ==== Formên alternatîv ==== * {{g|ku|meraqdar}} ==== Hevmane ==== * {{g|ku|bimereq}} ==== Jê ==== {{kol3|ku|cure=Jê |mereqdarî |mereqdarîtî |mereqdartî |mereqdar bûn<pos:lêker> |mereqdar kirin<pos:lêker> |mereqdarbûn<pos:navdêr> |mereqdarkirin<pos:navdêr> |mereqdarbûyî<pos:rengdêr> |mereqdarkirî<pos:rengdêr> }} ==== Etîmolojî ==== Ji {{paş|ku|mereq|-dar}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|nuuskierig}} * {{Z|de}}: {{W+|de|neugierig}}, {{W|de|versessen|guman=erê}}, {{W|de|wissbegierig|guman=erê}}, {{W|de|Dilettant|guman=erê}} * {{Z|br}}: {{W+|br|kurius}} * {{Z|da}}: {{W+|da|nysgerrig}} * {{Z|eo}}: {{W+|eo|kurioza}} * {{Z|fa}}: {{W+|fa|مشتاق}}, {{W+|fa|با حسرت}} * {{Z|fi}}: {{W+|fi|utelias}} * {{Z|fr}}: {{W|fr|curieux|m}}, {{W|fr|curieuse|f}} * {{Z|nl}}: {{W+|nl|curieus}}, {{W+|nl|nieuwsgierig}} * {{Z|en}}: {{W+|en|curious}}, {{W+|en|inquisitive}}, {{W+|en|interested}}, {{W+|en|eager}}, {{W+|en|juicy|guman=erê}}, 2 {{W+|en|keen}}, {{W+|en|desirous of}}, {{W|en|aspirant|guman=erê}}, {{W|en|overeager|guman=erê}}, {{W|en|tryhard|guman=erê}}, {{W|en|wannabe|guman=erê}} * {{Z|it}}: {{W+|it|curioso}} * {{Z|ca}}: {{W+|ca|curiós}} * {{Z|qu}}: {{W+|qu|hañas}} * {{Z|no}}: {{W+|no|kuriøs}}, {{W+|no|nysgjerrig}} * {{Z|pt}}: {{W+|pt|curioso}} * {{Z|ro}}: {{W+|ro|curios}} * {{Z|scn}}: {{W+|scn|curiusa}}, {{W+|scn|curiusu}} * {{Z|so}}: {{W+|so|barto}} * {{Z|es}}: {{W+|es|curioso}} * {{Z|sv}}: {{W+|sv|frågvis}}, {{W+|sv|nyfiken}} * {{Z|tr}}: {{W+|tr|meraklı}}, {{W+|tr|bağımlı}}, {{W+|tr|düşkün}}, {{W+|tr|müptela}}, {{W+|tr|kırk merak}}, {{W|tr|araştırıcı|guman=erê}} {{werger-bin}} tao1yjq0h74cxs36ryhkgbl7q6mrs21 6329842 6329838 2026-08-12T23:42:41Z Wikihez 7344 /* Rengdêr */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6329842 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|mereqdar}} {{rengdêr|ku}} # Kesa/ê ku [[xwestin|dixwaze]] tiştan [[zanîn|bizane]], kesa/ê ku [[bala xwe dan|bala xwe dide]] tiştan. #* {{jêder-kovar|ku|jêgirtin=Rojekê ji hevalên Qasidê Xwedê yekî mîna me '''mereqdar''' jê pirsiye em ê li cenetê çi xwe bikin.|url=http://books.google.com.tr/books?id=H_-jDwAAQBAJ&pg=PA33&dq=%22mereqdar%22&hl=&cd=4&source=gbs_api|sernav=Cihê ku xeyala wê jî xweş e|nivîskar=Dilek Topaktaş|kovar=Siyer Dergisi|hejmar=6|weşanxane= Siyer Basim Yayin|rûpel=33|sal=2018}} # Kesa/ê ku dixwaze tiştek hebe yan tiştekî [[bibîne]]. #* {{bêmînak|ku}} # Kesê ku [[xwastin|dixwaze]] [[derbare|derbarê]] [[hin|hin]] [[tişt|tiştan]] de [[xwedan|xwedan]] [[agahî|agahî]] be [[herçend|herçend]] ku ew tişt ne [[têkidarî|têkidarî]] wî/wê ye. #* {{bêmînak|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|مەرەقدار}} ==== Formên alternatîv ==== * {{g|ku|meraqdar}} ==== Hevmane ==== * {{g|ku|bimereq}} ==== Jê ==== {{kol3|ku|cure=Jê |mereqdarî |mereqdarîtî |mereqdartî |mereqdar bûn<pos:lêker> |mereqdar kirin<pos:lêker> |mereqdarbûn<pos:navdêr> |mereqdarkirin<pos:navdêr> |mereqdarbûyî<pos:rengdêr> |mereqdarkirî<pos:rengdêr> }} ==== Etîmolojî ==== Ji {{paş|ku|mereq|-dar}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|nuuskierig}} * {{Z|de}}: {{W+|de|neugierig}}, {{W|de|versessen|guman=erê}}, {{W|de|wissbegierig|guman=erê}}, {{W|de|Dilettant|guman=erê}} * {{Z|br}}: {{W+|br|kurius}} * {{Z|da}}: {{W+|da|nysgerrig}} * {{Z|eo}}: {{W+|eo|kurioza}} * {{Z|fa}}: {{W+|fa|مشتاق}}, {{W+|fa|با حسرت}} * {{Z|fi}}: {{W+|fi|utelias}} * {{Z|fr}}: {{W|fr|curieux|m}}, {{W|fr|curieuse|f}} * {{Z|nl}}: {{W+|nl|curieus}}, {{W+|nl|nieuwsgierig}} * {{Z|en}}: {{W+|en|curious}}, {{W+|en|inquisitive}}, {{W+|en|interested}}, {{W+|en|eager}}, {{W+|en|juicy|guman=erê}}, 2 {{W+|en|keen}}, {{W+|en|desirous of}}, {{W|en|aspirant|guman=erê}}, {{W|en|overeager|guman=erê}}, {{W|en|tryhard|guman=erê}}, {{W|en|wannabe|guman=erê}} * {{Z|it}}: {{W+|it|curioso}} * {{Z|ca}}: {{W+|ca|curiós}} * {{Z|qu}}: {{W+|qu|hañas}} * {{Z|no}}: {{W+|no|kuriøs}}, {{W+|no|nysgjerrig}} * {{Z|pt}}: {{W+|pt|curioso}} * {{Z|ro}}: {{W+|ro|curios}} * {{Z|scn}}: {{W+|scn|curiusa}}, {{W+|scn|curiusu}} * {{Z|so}}: {{W+|so|barto}} * {{Z|es}}: {{W+|es|curioso}} * {{Z|sv}}: {{W+|sv|frågvis}}, {{W+|sv|nyfiken}} * {{Z|tr}}: {{W+|tr|meraklı}}, {{W+|tr|bağımlı}}, {{W+|tr|düşkün}}, {{W+|tr|müptela}}, {{W+|tr|kırk merak}}, {{W|tr|araştırıcı|guman=erê}} {{werger-bin}} ecbqua9smu0obhmmeojtuwhapy8xrma 6329843 6329842 2026-08-12T23:43:35Z Wikihez 7344 /* Rengdêr */ 6329843 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|mereqdar}} {{rengdêr|ku}} # Kesa/ê ku [[xwestin|dixwaze]] tiştan [[zanîn|bizane]], kesa/ê ku [[bala xwe dan|bala xwe dide]] tiştan. #* {{jêder-kovar|ku|jêgirtin=Rojekê ji hevalên Qasidê Xwedê yekî mîna me '''mereqdar''' jê pirsiye em ê li cenetê çi xwe bikin.|url=http://books.google.com.tr/books?id=H_-jDwAAQBAJ&pg=PA33&dq=%22mereqdar%22&hl=&cd=4&source=gbs_api|sernav=Cihê ku xeyala wê jî xweş e|nivîskar=Dilek Topaktaş|kovar=Siyer Dergisi|hejmar=6|weşanxane= Siyer Basim Yayin|rûpel=33|sal=2018}} # Kesa/ê ku dixwaze tiştek hebe yan tiştekî [[bibîne]]. #* {{bêmînak|ku}} # Kesê ku [[xwastin|dixwaze]] [[derbare|derbarê]] [[hin|hin]] [[tişt|tiştan]] de [[xwedan|xwedan]] [[agahî|agahî]] be [[herçend|herçend]] ku ew tişt ne [[têkildar|têkildarî]] wî/wê ye. #* {{bêmînak|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|مەرەقدار}} ==== Formên alternatîv ==== * {{g|ku|meraqdar}} ==== Hevmane ==== * {{g|ku|bimereq}} ==== Jê ==== {{kol3|ku|cure=Jê |mereqdarî |mereqdarîtî |mereqdartî |mereqdar bûn<pos:lêker> |mereqdar kirin<pos:lêker> |mereqdarbûn<pos:navdêr> |mereqdarkirin<pos:navdêr> |mereqdarbûyî<pos:rengdêr> |mereqdarkirî<pos:rengdêr> }} ==== Etîmolojî ==== Ji {{paş|ku|mereq|-dar}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|nuuskierig}} * {{Z|de}}: {{W+|de|neugierig}}, {{W|de|versessen|guman=erê}}, {{W|de|wissbegierig|guman=erê}}, {{W|de|Dilettant|guman=erê}} * {{Z|br}}: {{W+|br|kurius}} * {{Z|da}}: {{W+|da|nysgerrig}} * {{Z|eo}}: {{W+|eo|kurioza}} * {{Z|fa}}: {{W+|fa|مشتاق}}, {{W+|fa|با حسرت}} * {{Z|fi}}: {{W+|fi|utelias}} * {{Z|fr}}: {{W|fr|curieux|m}}, {{W|fr|curieuse|f}} * {{Z|nl}}: {{W+|nl|curieus}}, {{W+|nl|nieuwsgierig}} * {{Z|en}}: {{W+|en|curious}}, {{W+|en|inquisitive}}, {{W+|en|interested}}, {{W+|en|eager}}, {{W+|en|juicy|guman=erê}}, 2 {{W+|en|keen}}, {{W+|en|desirous of}}, {{W|en|aspirant|guman=erê}}, {{W|en|overeager|guman=erê}}, {{W|en|tryhard|guman=erê}}, {{W|en|wannabe|guman=erê}} * {{Z|it}}: {{W+|it|curioso}} * {{Z|ca}}: {{W+|ca|curiós}} * {{Z|qu}}: {{W+|qu|hañas}} * {{Z|no}}: {{W+|no|kuriøs}}, {{W+|no|nysgjerrig}} * {{Z|pt}}: {{W+|pt|curioso}} * {{Z|ro}}: {{W+|ro|curios}} * {{Z|scn}}: {{W+|scn|curiusa}}, {{W+|scn|curiusu}} * {{Z|so}}: {{W+|so|barto}} * {{Z|es}}: {{W+|es|curioso}} * {{Z|sv}}: {{W+|sv|frågvis}}, {{W+|sv|nyfiken}} * {{Z|tr}}: {{W+|tr|meraklı}}, {{W+|tr|bağımlı}}, {{W+|tr|düşkün}}, {{W+|tr|müptela}}, {{W+|tr|kırk merak}}, {{W|tr|araştırıcı|guman=erê}} {{werger-bin}} rin8l2xklhrevwu19v497bo8rxn7tob 6329909 6329843 2026-08-13T01:12:07Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6329909 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|mereqdar}} {{rengdêr|ku}} # Kesa/ê ku [[xwestin|dixwaze]] tiştan [[zanîn|bizane]], kesa/ê ku [[bala xwe dan|bala xwe dide]] tiştan. #* {{jêder-kovar|ku|jêgirtin=Rojekê ji hevalên Qasidê Xwedê yekî mîna me '''mereqdar''' jê pirsiye em ê li cenetê çi xwe bikin.|url=http://books.google.com.tr/books?id=H_-jDwAAQBAJ&pg=PA33&dq=%22mereqdar%22&hl=&cd=4&source=gbs_api|sernav=Cihê ku xeyala wê jî xweş e|nivîskar=Dilek Topaktaş|kovar=Siyer Dergisi|hejmar=6|weşanxane= Siyer Basim Yayin|rûpel=33|sal=2018}} # Kesa/ê ku dixwaze tiştek hebe yan tiştekî [[bibîne]]. #* {{bêmînak|ku}} # Kesê ku [[xwastin|dixwaze]] [[derbare|derbarê]] [[hin]] [[tişt]]an de [[xwedan]] [[agahî]] be [[herçend]] ku ew tişt ne [[têkildar]]î wî/wê ye. #* {{bêmînak|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|مەرەقدار}} ==== Formên alternatîv ==== * {{g|ku|meraqdar}} ==== Hevmane ==== * {{g|ku|bimereq}} ==== Jê ==== {{kol3|ku|cure=Jê |mereqdarî |mereqdarîtî |mereqdartî |mereqdar bûn<pos:lêker> |mereqdar kirin<pos:lêker> |mereqdarbûn<pos:navdêr> |mereqdarkirin<pos:navdêr> |mereqdarbûyî<pos:rengdêr> |mereqdarkirî<pos:rengdêr> }} ==== Etîmolojî ==== Ji {{paş|ku|mereq|-dar}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|nuuskierig}} * {{Z|de}}: {{W+|de|neugierig}}, {{W|de|versessen|guman=erê}}, {{W|de|wissbegierig|guman=erê}}, {{W|de|Dilettant|guman=erê}} * {{Z|br}}: {{W+|br|kurius}} * {{Z|da}}: {{W+|da|nysgerrig}} * {{Z|eo}}: {{W+|eo|kurioza}} * {{Z|fa}}: {{W+|fa|مشتاق}}, {{W+|fa|با حسرت}} * {{Z|fi}}: {{W+|fi|utelias}} * {{Z|fr}}: {{W|fr|curieux|m}}, {{W|fr|curieuse|f}} * {{Z|nl}}: {{W+|nl|curieus}}, {{W+|nl|nieuwsgierig}} * {{Z|en}}: {{W+|en|curious}}, {{W+|en|inquisitive}}, {{W+|en|interested}}, {{W+|en|eager}}, {{W+|en|juicy|guman=erê}}, 2 {{W+|en|keen}}, {{W+|en|desirous of}}, {{W|en|aspirant|guman=erê}}, {{W|en|overeager|guman=erê}}, {{W|en|tryhard|guman=erê}}, {{W|en|wannabe|guman=erê}} * {{Z|it}}: {{W+|it|curioso}} * {{Z|ca}}: {{W+|ca|curiós}} * {{Z|qu}}: {{W+|qu|hañas}} * {{Z|no}}: {{W+|no|kuriøs}}, {{W+|no|nysgjerrig}} * {{Z|pt}}: {{W+|pt|curioso}} * {{Z|ro}}: {{W+|ro|curios}} * {{Z|scn}}: {{W+|scn|curiusa}}, {{W+|scn|curiusu}} * {{Z|so}}: {{W+|so|barto}} * {{Z|es}}: {{W+|es|curioso}} * {{Z|sv}}: {{W+|sv|frågvis}}, {{W+|sv|nyfiken}} * {{Z|tr}}: {{W+|tr|meraklı}}, {{W+|tr|bağımlı}}, {{W+|tr|düşkün}}, {{W+|tr|müptela}}, {{W+|tr|kırk merak}}, {{W|tr|araştırıcı|guman=erê}} {{werger-bin}} cf3xzbpj3suaj5ufe9k9qadztsur8g8 hişîn 0 45774 6329718 6328985 2026-08-12T20:42:17Z Wikihez 7344 6329718 wikitext text/x-wiki {{bnr-h|hisin|hîsîn|hîşîn}} == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/hɘˈʃiːn/}} * {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-hişîn.wav|dever=Wan}} * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|hişîn}} [[Wêne:Ship atrium small white sail.JPG|thumb|Esman û derya di rengên '''hişîn''' ên curbicur de. (1)]] [[Wêne:The green color.jpg|thumb|Guliyeke '''hişîn'''. (2)]] {{rengdêr|ku}} # {{f|ku|reng}} [[şîn|Şîn]]; [[reng]]ê wek rengê [[esman]]î yan wek yê [[derya]]yê. {{reng|#0000FF}} #* {{jêder-kitêb|ku|metna-orîjînal=ku:بحرا رجز بو چه خوش مرفل<br>اخضر چه کسکه احمر خو صوره<br>ازرق '''هشینه''' جورب چه گوره|jêgirtin=Beḥra recez bo çi xweş mureffel?<br>Exḍer çi? Kesk e; eḥmer xwe ṣor e<br>Ezreq '''hişîn''' e. Cewreb çi? Gore|nivîskar={{w|Ehmedê Xanî}}|sernav={{w|Nûbihara biçûkan}}|sal=1683}} # {{f|ku|reng}} [[kesk|Kesk]]; ji bo tiştên [[xweza]]yî wek: [[belg]], [[pîvaz]] û [[sêv]]. {{reng|#00C853}} #* {{bênimûne|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|هشین}} ==== Formên alternatîv ==== * {{g|ku|hêşîn}} ==== Jê ==== {{kol3|ku | reşûhişîn | hişînî | hişînîtî | hişîntî }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser|şîn}} * {{Z|de}}: {{W+|de|blau}} * {{Z|ar}}: {{W|ar|أَزْرَق}} * {{Z|fa}}: {{W+|fa|آبی|tr=âbi}} * {{Z|fr}}: {{W+|fr|bleu}} * {{Z|en}}: {{W+|en|blue}} * {{Z|tr}}: {{W+|tr|mavi}} {{werger-bin}} {{werger-ser|kesk, rengê riwek/giyayan}} * {{Z|de}}: {{W+|de|grün}} * {{Z|fa}}: {{W+|fa|سرسبز|tr=sarsabz}} * {{Z|fr}}: {{W+|fr|vert}} * {{Z|en}}: {{W+|en|green}} * {{Z|tr}}: {{i|özellikle ot, yaprak ve bitkiler için}} {{W+|tr|yeşil}} {{werger-bin}} {{werger-ser|[[teze]]}} * {{Z|tr}}: {{W+|tr|taze}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=n}} # Rengê [[şîn]]. #* {{bênimûne|ku}} # Rengê [[kesk]]. #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Werger ==== {{werger-ser|şîn}} * {{Z|fr}}: {{W+|fr|bleu|n}} * {{Z|en}}: {{W+|en|blue}} {{werger-bin}} {{werger-ser|kesk}} * {{Z|fr}}: {{W+|fr|vert|n}} * {{Z|en}}: {{W+|en|green}} {{werger-bin}} {{bend}} === Lêker === {{ku-tewîn-lk|form=gerguhêz|niha=hiş|borî=hişî}} {{lêker|ku|c=x-gh}} # [[ramîn]], [[fikirîn]], [[hizirîn]], [[pûnijîn]] #* {{jêder-malper|ku|jêgirtin=Zimanek bi tena serê xwe... hişmend pê '''nehişin''', roşenbîr pê roniyê nedêrin, siyasetmedar wî wekî heyîna xwe nebînin... ew ziman dê çawakî karibe li ber zimanê duyemîn yanî zimanê serdestan; tirkî, farisî, erebî... raweste, bijî?!|nivîskar=Arjen Arî|sernav=Kurdî dê çawa karibe li ber zimanê duyem bijî|malper=Diyarname.com|sal=9/2007}} # [[hiş]] bûn, [[bêdeng]] bûn, [[mitîn]], [[mit]] bûn #* {{bênimûne|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|هشین}} ==== Jê ==== {{stûn| * {{mj|lêker}} {{g|ku|hişîn bûn}} * {{mj|lêker}} {{g|ku|hişîn kirin}} * {{mj|navdêr}} {{g|ku|hişînbûn}} * {{mj|navdêr}} {{g|ku|hişînkirin}} * {{mj|rengdêr}} {{g|ku|hişînbûyî}} * {{mj|rengdêr}} {{g|ku|hişînkirî}} }} ==== Têkildar ==== * {{g|ku|hişandin}} ==== Etîmolojî ==== Ji {{paş|ku|hiş|-în}}. ==== Bide ber ==== * {{g|ku|hisîn}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 5jrc5pwr4shqhl7tr118jhen4xukogc 6329719 6329718 2026-08-12T20:43:04Z Wikihez 7344 /* Rengdêr */ ok? 6329719 wikitext text/x-wiki {{bnr-h|hisin|hîsîn|hîşîn}} == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/hɘˈʃiːn/}} * {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-hişîn.wav|dever=Wan}} * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|hişîn}} [[Wêne:Ship atrium small white sail.JPG|thumb|Esman û derya di rengên '''hişîn''' ên curbicur de. (1)]] [[Wêne:The green color.jpg|thumb|Guliyeke '''hişîn'''. (2)]] {{rengdêr|ku}} # {{f|ku|reng}} [[şîn|Şîn]]; [[reng]]ê wek rengê [[esman]]î yan wek yê [[derya]]yê. {{reng|#0000FF}} #* {{jêder-kitêb|ku|metna-orîjînal=ku:<br>بحرا رجز بو چه خوش مرفل<br>اخضر چه کسکه احمر خو صوره<br>ازرق '''هشینه''' جورب چه گوره<br>|jêgirtin=Beḥra recez bo çi xweş mureffel?<br>Exḍer çi? Kesk e; eḥmer xwe ṣor e<br>Ezreq '''hişîn''' e. Cewreb çi? Gore|nivîskar={{w|Ehmedê Xanî}}|sernav={{w|Nûbihara biçûkan}}|sal=1683}} # {{f|ku|reng}} [[kesk|Kesk]]; ji bo tiştên [[xweza]]yî wek: [[belg]], [[pîvaz]] û [[sêv]]. {{reng|#00C853}} #* {{bênimûne|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|هشین}} ==== Formên alternatîv ==== * {{g|ku|hêşîn}} ==== Jê ==== {{kol3|ku | reşûhişîn | hişînî | hişînîtî | hişîntî }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser|şîn}} * {{Z|de}}: {{W+|de|blau}} * {{Z|ar}}: {{W|ar|أَزْرَق}} * {{Z|fa}}: {{W+|fa|آبی|tr=âbi}} * {{Z|fr}}: {{W+|fr|bleu}} * {{Z|en}}: {{W+|en|blue}} * {{Z|tr}}: {{W+|tr|mavi}} {{werger-bin}} {{werger-ser|kesk, rengê riwek/giyayan}} * {{Z|de}}: {{W+|de|grün}} * {{Z|fa}}: {{W+|fa|سرسبز|tr=sarsabz}} * {{Z|fr}}: {{W+|fr|vert}} * {{Z|en}}: {{W+|en|green}} * {{Z|tr}}: {{i|özellikle ot, yaprak ve bitkiler için}} {{W+|tr|yeşil}} {{werger-bin}} {{werger-ser|[[teze]]}} * {{Z|tr}}: {{W+|tr|taze}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=n}} # Rengê [[şîn]]. #* {{bênimûne|ku}} # Rengê [[kesk]]. #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Werger ==== {{werger-ser|şîn}} * {{Z|fr}}: {{W+|fr|bleu|n}} * {{Z|en}}: {{W+|en|blue}} {{werger-bin}} {{werger-ser|kesk}} * {{Z|fr}}: {{W+|fr|vert|n}} * {{Z|en}}: {{W+|en|green}} {{werger-bin}} {{bend}} === Lêker === {{ku-tewîn-lk|form=gerguhêz|niha=hiş|borî=hişî}} {{lêker|ku|c=x-gh}} # [[ramîn]], [[fikirîn]], [[hizirîn]], [[pûnijîn]] #* {{jêder-malper|ku|jêgirtin=Zimanek bi tena serê xwe... hişmend pê '''nehişin''', roşenbîr pê roniyê nedêrin, siyasetmedar wî wekî heyîna xwe nebînin... ew ziman dê çawakî karibe li ber zimanê duyemîn yanî zimanê serdestan; tirkî, farisî, erebî... raweste, bijî?!|nivîskar=Arjen Arî|sernav=Kurdî dê çawa karibe li ber zimanê duyem bijî|malper=Diyarname.com|sal=9/2007}} # [[hiş]] bûn, [[bêdeng]] bûn, [[mitîn]], [[mit]] bûn #* {{bênimûne|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|هشین}} ==== Jê ==== {{stûn| * {{mj|lêker}} {{g|ku|hişîn bûn}} * {{mj|lêker}} {{g|ku|hişîn kirin}} * {{mj|navdêr}} {{g|ku|hişînbûn}} * {{mj|navdêr}} {{g|ku|hişînkirin}} * {{mj|rengdêr}} {{g|ku|hişînbûyî}} * {{mj|rengdêr}} {{g|ku|hişînkirî}} }} ==== Têkildar ==== * {{g|ku|hişandin}} ==== Etîmolojî ==== Ji {{paş|ku|hiş|-în}}. ==== Bide ber ==== * {{g|ku|hisîn}} ==== Werger ==== {{werger-ser}} {{werger-bin}} ld7zicqtvx2gn4ouk3kz04kzalrsjcp 6329720 6329719 2026-08-12T20:43:16Z Wikihez 7344 6329720 wikitext text/x-wiki {{bnr-h|hisin|hîsîn|hîşîn}} == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/hɘˈʃiːn/}} * {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-hişîn.wav|dever=Wan}} * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|hişîn}} [[Wêne:Ship atrium small white sail.JPG|thumb|Esman û derya di rengên '''hişîn''' ên curbicur de. (1)]] [[Wêne:The green color.jpg|thumb|Guliyeke '''hişîn'''. (2)]] {{rengdêr|ku}} # {{f|ku|reng}} [[şîn|Şîn]]; [[reng]]ê wek rengê [[esman]]î yan wek yê [[derya]]yê. {{reng|#0000FF}} #* {{jêder-kitêb|ku|metna-orîjînal=ku:<br>بحرا رجز بو چه خوش مرفل<br>اخضر چه کسکه احمر خو صوره<br>ازرق '''هشینه''' جورب چه گوره|jêgirtin=Beḥra recez bo çi xweş mureffel?<br>Exḍer çi? Kesk e; eḥmer xwe ṣor e<br>Ezreq '''hişîn''' e. Cewreb çi? Gore|nivîskar={{w|Ehmedê Xanî}}|sernav={{w|Nûbihara biçûkan}}|sal=1683}} # {{f|ku|reng}} [[kesk|Kesk]]; ji bo tiştên [[xweza]]yî wek: [[belg]], [[pîvaz]] û [[sêv]]. {{reng|#00C853}} #* {{bênimûne|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|هشین}} ==== Formên alternatîv ==== * {{g|ku|hêşîn}} ==== Jê ==== {{kol3|ku | reşûhişîn | hişînî | hişînîtî | hişîntî }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser|şîn}} * {{Z|de}}: {{W+|de|blau}} * {{Z|ar}}: {{W|ar|أَزْرَق}} * {{Z|fa}}: {{W+|fa|آبی|tr=âbi}} * {{Z|fr}}: {{W+|fr|bleu}} * {{Z|en}}: {{W+|en|blue}} * {{Z|tr}}: {{W+|tr|mavi}} {{werger-bin}} {{werger-ser|kesk, rengê riwek/giyayan}} * {{Z|de}}: {{W+|de|grün}} * {{Z|fa}}: {{W+|fa|سرسبز|tr=sarsabz}} * {{Z|fr}}: {{W+|fr|vert}} * {{Z|en}}: {{W+|en|green}} * {{Z|tr}}: {{i|özellikle ot, yaprak ve bitkiler için}} {{W+|tr|yeşil}} {{werger-bin}} {{werger-ser|[[teze]]}} * {{Z|tr}}: {{W+|tr|taze}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=n}} # Rengê [[şîn]]. #* {{bênimûne|ku}} # Rengê [[kesk]]. #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Werger ==== {{werger-ser|şîn}} * {{Z|fr}}: {{W+|fr|bleu|n}} * {{Z|en}}: {{W+|en|blue}} {{werger-bin}} {{werger-ser|kesk}} * {{Z|fr}}: {{W+|fr|vert|n}} * {{Z|en}}: {{W+|en|green}} {{werger-bin}} {{bend}} === Lêker === {{ku-tewîn-lk|form=gerguhêz|niha=hiş|borî=hişî}} {{lêker|ku|c=x-gh}} # [[ramîn]], [[fikirîn]], [[hizirîn]], [[pûnijîn]] #* {{jêder-malper|ku|jêgirtin=Zimanek bi tena serê xwe... hişmend pê '''nehişin''', roşenbîr pê roniyê nedêrin, siyasetmedar wî wekî heyîna xwe nebînin... ew ziman dê çawakî karibe li ber zimanê duyemîn yanî zimanê serdestan; tirkî, farisî, erebî... raweste, bijî?!|nivîskar=Arjen Arî|sernav=Kurdî dê çawa karibe li ber zimanê duyem bijî|malper=Diyarname.com|sal=9/2007}} # [[hiş]] bûn, [[bêdeng]] bûn, [[mitîn]], [[mit]] bûn #* {{bênimûne|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|هشین}} ==== Jê ==== {{stûn| * {{mj|lêker}} {{g|ku|hişîn bûn}} * {{mj|lêker}} {{g|ku|hişîn kirin}} * {{mj|navdêr}} {{g|ku|hişînbûn}} * {{mj|navdêr}} {{g|ku|hişînkirin}} * {{mj|rengdêr}} {{g|ku|hişînbûyî}} * {{mj|rengdêr}} {{g|ku|hişînkirî}} }} ==== Têkildar ==== * {{g|ku|hişandin}} ==== Etîmolojî ==== Ji {{paş|ku|hiş|-în}}. ==== Bide ber ==== * {{g|ku|hisîn}} ==== Werger ==== {{werger-ser}} {{werger-bin}} sbl4imm01kroew5jnvv2z9x02d0ynop 6329721 6329720 2026-08-12T20:43:57Z Wikihez 7344 /* Jê */ 6329721 wikitext text/x-wiki {{bnr-h|hisin|hîsîn|hîşîn}} == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/hɘˈʃiːn/}} * {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-hişîn.wav|dever=Wan}} * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|hişîn}} [[Wêne:Ship atrium small white sail.JPG|thumb|Esman û derya di rengên '''hişîn''' ên curbicur de. (1)]] [[Wêne:The green color.jpg|thumb|Guliyeke '''hişîn'''. (2)]] {{rengdêr|ku}} # {{f|ku|reng}} [[şîn|Şîn]]; [[reng]]ê wek rengê [[esman]]î yan wek yê [[derya]]yê. {{reng|#0000FF}} #* {{jêder-kitêb|ku|metna-orîjînal=ku:<br>بحرا رجز بو چه خوش مرفل<br>اخضر چه کسکه احمر خو صوره<br>ازرق '''هشینه''' جورب چه گوره|jêgirtin=Beḥra recez bo çi xweş mureffel?<br>Exḍer çi? Kesk e; eḥmer xwe ṣor e<br>Ezreq '''hişîn''' e. Cewreb çi? Gore|nivîskar={{w|Ehmedê Xanî}}|sernav={{w|Nûbihara biçûkan}}|sal=1683}} # {{f|ku|reng}} [[kesk|Kesk]]; ji bo tiştên [[xweza]]yî wek: [[belg]], [[pîvaz]] û [[sêv]]. {{reng|#00C853}} #* {{bênimûne|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|هشین}} ==== Formên alternatîv ==== * {{g|ku|hêşîn}} ==== Jê ==== {{kol3|ku | reşûhişîn | hişînî | hişînîtî | hişîntî }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser|şîn}} * {{Z|de}}: {{W+|de|blau}} * {{Z|ar}}: {{W|ar|أَزْرَق}} * {{Z|fa}}: {{W+|fa|آبی|tr=âbi}} * {{Z|fr}}: {{W+|fr|bleu}} * {{Z|en}}: {{W+|en|blue}} * {{Z|tr}}: {{W+|tr|mavi}} {{werger-bin}} {{werger-ser|kesk, rengê riwek/giyayan}} * {{Z|de}}: {{W+|de|grün}} * {{Z|fa}}: {{W+|fa|سرسبز|tr=sarsabz}} * {{Z|fr}}: {{W+|fr|vert}} * {{Z|en}}: {{W+|en|green}} * {{Z|tr}}: {{i|özellikle ot, yaprak ve bitkiler için}} {{W+|tr|yeşil}} {{werger-bin}} {{werger-ser|[[teze]]}} * {{Z|tr}}: {{W+|tr|taze}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=n}} # Rengê [[şîn]]. #* {{bênimûne|ku}} # Rengê [[kesk]]. #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Werger ==== {{werger-ser|şîn}} * {{Z|fr}}: {{W+|fr|bleu|n}} * {{Z|en}}: {{W+|en|blue}} {{werger-bin}} {{werger-ser|kesk}} * {{Z|fr}}: {{W+|fr|vert|n}} * {{Z|en}}: {{W+|en|green}} {{werger-bin}} {{bend}} === Lêker === {{ku-tewîn-lk|form=gerguhêz|niha=hiş|borî=hişî}} {{lêker|ku|c=x-gh}} # [[ramîn]], [[fikirîn]], [[hizirîn]], [[pûnijîn]] #* {{jêder-malper|ku|jêgirtin=Zimanek bi tena serê xwe... hişmend pê '''nehişin''', roşenbîr pê roniyê nedêrin, siyasetmedar wî wekî heyîna xwe nebînin... ew ziman dê çawakî karibe li ber zimanê duyemîn yanî zimanê serdestan; tirkî, farisî, erebî... raweste, bijî?!|nivîskar=Arjen Arî|sernav=Kurdî dê çawa karibe li ber zimanê duyem bijî|malper=Diyarname.com|sal=9/2007}} # [[hiş]] bûn, [[bêdeng]] bûn, [[mitîn]], [[mit]] bûn #* {{bênimûne|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|هشین}} ==== Jê ==== {{kol3|ku|cure=Jê |hişîn bûn<crz:lêker> |hişîn kirin<crz:lêker> |hişînbûn<crz:navdêr> |hişînkirin<crz:navdêr> |hişînbûyî<crz:rengdêr> |hişînkirî<crz:rengdêr> }} ==== Têkildar ==== * {{g|ku|hişandin}} ==== Etîmolojî ==== Ji {{paş|ku|hiş|-în}}. ==== Bide ber ==== * {{g|ku|hisîn}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 1v0evuh6jp4ixiiojjd3qa5v0qg6v1u manewî 0 46996 6329648 6244597 2026-08-12T15:32:43Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329648 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[arişî]], [[ruhî]], [[canî]], [[giyanî]], [[exlaqî]], [[moralî]], [[psîkolojî]], [[sincî]], <br>ne [[madî]] yan [[bedenî]] #:''alîkariya madî û manewî'' (hem pare û hem jî [[sempatî]]), <br>''zarrokên manewî'' (zarrokên ku ne yên kesekî bi xwe ne lê wî xwedî kirine), <br>''Gelek kes Mistefa Barzanî wek babê manewî yê neteweya kurd dipejirînin.'' #* {{nimûne?|ku}} ==== Formên alternatîv ==== * [[mahnewî]] * [[mehnewî]] * [[me'newî]] ==== Ji wêjeyê ==== ''Rewşenbîr û nivîskarên ku êş nekişandine hêjmara wan pir kêm e. M. Uzun herçend bi awayeke ferdî êş kişandibe jî, gelê Kurd bi xurtî xwedî lê derketiye û bi qasî ku hewce bûye zêdetir, qedir û qimetê nîşan dayê. Orhan Pamuk û Ahmet Altan dibêjin “Kurdan qîmeta Mehmed Uzun nezanî” Ev daxuyaniyên wan, an nîşan didin ku ew ji rastiyê ne hayedar in an jî ev yek gilî û gazincên asayî yên rewşenbîran in. Piştî ku nexweşiya wî ket rojevê, navê wî li pir deran hat lêkirin. Bi taybetî jî Şaredariya Amedê ji aliyê madî û manewî ve pir xizmet girtin ser xwe. Hem belediye bi xwe seferber bû hem jî ew şevbêrkên dengbêjan ên ku ji bo xatirê wî hatibûn amade kirin gelek watedar bûn. Herwiha hin rewşenbîrên Tirkiyeyî û hukumeta Kurdistanê jî xwedî lê derketin. Heta niha kîjan rewşenbîr bi merasimeke ewqas berbiçav û girseyî hatiye rêwî kirin. Ger mirov bibêje Kurd xwedî li M. Uzun derneketine, neheqî ye.'' (Aydin Dere: ''Pişti Mehmed Uzun rexneyên vekirî'', Amidakurd.com, 11/2007) ==== Etîmolojî ==== Ji {{ji|ar|ku}} ==== Jê ==== * [[manewîtî]] * [[manewiyat]] * [[manewiyet]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|geistig}} * {{Z|fa}}: {{W+|fa|معنوی}} * {{Z|fi}}: {{W+|fi|henkinen}} * {{Z|en}}: {{W+|en|spiritual}}, {{W+|en|intangible}}, {{W+|en|immaterial}}, {{W+|en|moral}}, {{W+|en|pastoral}}, {{W+|en|psychological}}, {{W+|en|unworldly}}, {{W|en|manichean|guman=erê}} * {{Z|tr}}: {{W+|tr|manevi}}, {{W+|tr|tinsel}} {{werger-bin}} hjj46oetliahdmfytkszlwko76mnbau 6329650 6329648 2026-08-12T15:41:08Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6329650 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[arişî]], [[ruhî]], [[canî]], [[giyanî]], [[exlaqî]], [[moralî]], [[psîkolojî]], [[sincî]], <br>ne [[madî]] yan [[bedenî]] #:''alîkariya madî û manewî'' (hem pare û hem jî [[sempatî]]), <br>''zarrokên manewî'' (zarrokên ku ne yên kesekî bi xwe ne lê wî xwedî kirine), <br>''Gelek kes Mistefa Barzanî wek babê manewî yê neteweya kurd dipejirînin.'' #* {{nimûne?|ku}} ==== Ji wêjeyê ==== ''Rewşenbîr û nivîskarên ku êş nekişandine hêjmara wan pir kêm e. M. Uzun herçend bi awayeke ferdî êş kişandibe jî, gelê Kurd bi xurtî xwedî lê derketiye û bi qasî ku hewce bûye zêdetir, qedir û qimetê nîşan dayê. Orhan Pamuk û Ahmet Altan dibêjin “Kurdan qîmeta Mehmed Uzun nezanî” Ev daxuyaniyên wan, an nîşan didin ku ew ji rastiyê ne hayedar in an jî ev yek gilî û gazincên asayî yên rewşenbîran in. Piştî ku nexweşiya wî ket rojevê, navê wî li pir deran hat lêkirin. Bi taybetî jî Şaredariya Amedê ji aliyê madî û manewî ve pir xizmet girtin ser xwe. Hem belediye bi xwe seferber bû hem jî ew şevbêrkên dengbêjan ên ku ji bo xatirê wî hatibûn amade kirin gelek watedar bûn. Herwiha hin rewşenbîrên Tirkiyeyî û hukumeta Kurdistanê jî xwedî lê derketin. Heta niha kîjan rewşenbîr bi merasimeke ewqas berbiçav û girseyî hatiye rêwî kirin. Ger mirov bibêje Kurd xwedî li M. Uzun derneketine, neheqî ye.'' (Aydin Dere: ''Pişti Mehmed Uzun rexneyên vekirî'', Amidakurd.com, 11/2007) ==== Formên alternatîv ==== * [[mahnewî]] * [[mehnewî]] * [[me'newî]] ==== Jê ==== * [[manewîtî]] * [[manewiyat]] * [[manewiyet]] ==== Etîmolojî ==== Ji {{ji|ar|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|geistig}} * {{Z|fa}}: {{W+|fa|معنوی}} * {{Z|fi}}: {{W+|fi|henkinen}} * {{Z|en}}: {{W+|en|spiritual}}, {{W+|en|intangible}}, {{W+|en|immaterial}}, {{W+|en|moral}}, {{W+|en|pastoral}}, {{W+|en|psychological}}, {{W+|en|unworldly}}, {{W|en|manichean|guman=erê}} * {{Z|tr}}: {{W+|tr|manevi}}, {{W+|tr|tinsel}} {{werger-bin}} bytqcfmm04zmxhfq2raxwijilcxcy2e online 0 47044 6329892 6329377 2026-08-13T00:33:40Z Wikihez 7344 6329892 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === : {{ku-tîp|onlayn}} * {{ku-IPA|onlayn}} * {{kîte|ku|on|line}} === Rengdêr === {{rengdêr|ku}} # {{f|ku|informatîk}} [[serhêl]], [[serxet]], [[liserxetê]], [[elektronîkî]], li ser [[Internet]]ê #: {{dijmane|ku|offline|derhêl|derxet}} #: {{nimûne|ku|Gelek kovarên kurdî yên '''online''' hene.|anku li ser Internetê derdikevin, ne li ser kaxezê|rêz=1}} #* {{jêder|ku|jêgirtin=Malpera Kitêbxaneyê têt nû kirin. Gelek pirtûkên dijîtalîzekirî dê di malpera nû de bên bi cih kirin. Hinek agahiyên nû û babetên nû dê lê bên zêde kirin û madeyên kevin dê bên serast kirin. Herweha, îmkana lêgerînê di kataloga '''onlineyê''' ya Kitêbxaneyê de hêsantir dibe. Ez ji vê zêdetir behs nakim ta ko malper temam dibe û dikeve karî.|Newzad Hirorî di hevpeyivînekê de li gel Enwer Karahan, Nefel.com, 12/2007}} ==== Etîmolojî ==== Ji {{ji|en|ku|online}} ji {{q|en|on|w=li ser}} + {{q|en|line|w=hêl, xet}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|eingeschaltet}}, {{W+|de|verbunden}}, {{W+|de|online}} * {{Z|fi}}: {{W+|fi|sähköinen}}, {{W+|fi|online}} * {{Z|fr}}: {{W+|fr|en ligne}} * {{Z|nl}}: {{W+|nl|online}}, {{W+|nl|verbonden}} * {{Z|en}}: {{W+|en|online}} * {{Z|pt}}: {{W+|pt|em linha}}, {{W+|pt|online}} * {{Z|es}}: {{W+|es|en línea}} * {{Z|tr}}: {{W+|tr|çevrim içi}} {{werger-bin}} == {{ziman|de}} == === Bilêvkirin === * {{IPA|de|/ˈɔnlaɪ̯n/}} * {{deng|de|De-online.ogg}} * {{kîte|de|on|line}} === Rengdêr === {{rengdêr|de}} # {{g|ku|online}}, [[serhêl]], [[serxet]] #* {{bêmînak|de}} jbqidf7h97lsas5akss1816839nvust pronav 0 48156 6329902 6136239 2026-08-13T00:52:28Z Wikihez 7344 6329902 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=?}} # {{f|ku|rêziman}} [[cînav]], [[zemîr]], [[pronom]] #* {{jêder-pirtûk|ku|jêgirtin='''Pronav''' ew bêje ye ko dikeve şûna navdêrê. Pronav, mêjer û carina jî zayendê navdêrê dide zanîn. Ji hêla din pronav wezîfeyên navdêra ko dinimîne li xwe digere û wan ditîne cih.|nivîskar=Celadet Alî Bedir-Xan|sernav=Elfabêya kurdî & Bingehên gramera kurdmancî|weşanxane=Nefel|cih=Stockholm|sal=2002|rûpel=72}} # {{kontrol|rêz=erê|[[şûnnav]]}} ==== Etîmolojî ==== Ji {{qertaf|ku|pro-|nav}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Pronomen|n}}, {{W+|de|Fürwort|n}}, {{W+|de|Nomen|n}} * {{Z|cs}}: {{W+|cs|zájmeno|n}} * {{Z|ar}}: {{W+|ar|ضمير|guman=erê}}, {{W+|ar|ضمیر|guman=erê}}, {{W-|ar|الضمــیر|guman=erê}} * {{Z|eo}}: {{W+|eo|pronomo}} * {{Z|fa}}: {{W+|fa|ضمیر}} (zamir), {{W-|fa|پیشنام}} (pîşnam), {{W+|fa|ضمایر}}, {{W+|fa|ضمیر}} * {{Z|fo}}: {{W+|fo|fornavn}} * {{Z|fi}}: {{W+|fi|pronomini}} * {{Z|fr}}: {{W+|fr|pronom}} * {{Z|fy}}: {{W+|fy|foarnamwurd}} * {{Z|nl}}: {{W+|nl|voornaamwoord|n}} * {{Z|en}}: {{W+|en|pronoun}} * {{Z|ia}}: {{W+|ia|pronomine}} * {{Z|it}}: {{W+|it|pronome|m}} * {{Z|is}}: {{W+|is|fornafn}} * {{Z|ja}}: {{W+|ja|代名詞}} (daimeishí) * {{Z|ca}}: {{W+|ca|pronom}} * {{Z|la}}: {{W-|la|pronomen|n}} * {{Z|ln}}: {{W-|ln|mokitani-nkómbó}} * {{Z|no}}: * {{Z|pap}}: {{W-|pap|pronòmber}} * {{Z|pl}}: {{W+|pl|zaimek|m}} * {{Z|pt}}: {{W+|pt|pronome|m}} * {{Z|ro}}: {{W+|ro|pronume|n}} * {{Z|ru}}: {{W+|ru|местоимение}} (mestoiménije) * {{Z|es}}: {{W+|es|pronombre|m}} * {{Z|sv}}: {{W+|sv|pronomen}} * {{Z|tr}}: {{W+|tr|zamir}}, {{W+|tr|adıl}} * {{Z|grc}}: {{W-|grc|ἀντωνυμία}} (antōnymía) * {{Z|el}}: {{W+|el|αντωνυμία}} (andonimía) {{werger-bin}} hfxm20jab60xc408g1imgzltw5yy6f5 6329903 6329902 2026-08-13T00:53:18Z Wikihez 7344 /* Etîmolojî */ 6329903 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=?}} # {{f|ku|rêziman}} [[cînav]], [[zemîr]], [[pronom]] #* {{jêder-pirtûk|ku|jêgirtin='''Pronav''' ew bêje ye ko dikeve şûna navdêrê. Pronav, mêjer û carina jî zayendê navdêrê dide zanîn. Ji hêla din pronav wezîfeyên navdêra ko dinimîne li xwe digere û wan ditîne cih.|nivîskar=Celadet Alî Bedir-Xan|sernav=Elfabêya kurdî & Bingehên gramera kurdmancî|weşanxane=Nefel|cih=Stockholm|sal=2002|rûpel=72}} # {{kontrol|rêz=erê|[[şûnnav]]}} ==== Etîmolojî ==== {{yekser|fr|ku|pronom<t:zemîr>}}.{{anlz|ku|pro-|nav}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Pronomen|n}}, {{W+|de|Fürwort|n}}, {{W+|de|Nomen|n}} * {{Z|cs}}: {{W+|cs|zájmeno|n}} * {{Z|ar}}: {{W+|ar|ضمير|guman=erê}}, {{W+|ar|ضمیر|guman=erê}}, {{W-|ar|الضمــیر|guman=erê}} * {{Z|eo}}: {{W+|eo|pronomo}} * {{Z|fa}}: {{W+|fa|ضمیر}} (zamir), {{W-|fa|پیشنام}} (pîşnam), {{W+|fa|ضمایر}}, {{W+|fa|ضمیر}} * {{Z|fo}}: {{W+|fo|fornavn}} * {{Z|fi}}: {{W+|fi|pronomini}} * {{Z|fr}}: {{W+|fr|pronom}} * {{Z|fy}}: {{W+|fy|foarnamwurd}} * {{Z|nl}}: {{W+|nl|voornaamwoord|n}} * {{Z|en}}: {{W+|en|pronoun}} * {{Z|ia}}: {{W+|ia|pronomine}} * {{Z|it}}: {{W+|it|pronome|m}} * {{Z|is}}: {{W+|is|fornafn}} * {{Z|ja}}: {{W+|ja|代名詞}} (daimeishí) * {{Z|ca}}: {{W+|ca|pronom}} * {{Z|la}}: {{W-|la|pronomen|n}} * {{Z|ln}}: {{W-|ln|mokitani-nkómbó}} * {{Z|no}}: * {{Z|pap}}: {{W-|pap|pronòmber}} * {{Z|pl}}: {{W+|pl|zaimek|m}} * {{Z|pt}}: {{W+|pt|pronome|m}} * {{Z|ro}}: {{W+|ro|pronume|n}} * {{Z|ru}}: {{W+|ru|местоимение}} (mestoiménije) * {{Z|es}}: {{W+|es|pronombre|m}} * {{Z|sv}}: {{W+|sv|pronomen}} * {{Z|tr}}: {{W+|tr|zamir}}, {{W+|tr|adıl}} * {{Z|grc}}: {{W-|grc|ἀντωνυμία}} (antōnymía) * {{Z|el}}: {{W+|el|αντωνυμία}} (andonimía) {{werger-bin}} 93keacd7521dkqjjn9wc6jwl485hyxb benav 0 50857 6329701 6298645 2026-08-12T19:36:23Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329701 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === [[Wêne:Fraxinus excelsior 002.jpg|thumb|Darek '''benavê'''.]] [[Wêne:Fraxinus excelsior.jpg|thumb|Pelên '''benavê'''.]] {{navdêr|ku|z=m}} # {{f|ku|dar}} [[dar|Dar]]ek e. #* {{jêder|ku|jêgirtin=Ji min bihata min ê ji te re çi bi rê bikira, tu dizanî? Di serî de terhek dara mazî. Cotek kevokên spî. Hespekî kumêt î kapreş. Karxezaleke kovî. Xencereke destî û kalan zîv. Çiqulek dara kinêrê. Sewilek ava kaniya Girdeşîn. Destek şal û şapik. Goreyeke rîs a sê nix. Gopalek ji dara '''benavê'''. Bazbendek. Qevdek nêrgizan. Baqek şuşan. Tayek rihan. Bermilek beybûn. Gurzek qurnefîl. Pelek berfa serê çiyayê Mereto. Kulmek ax ji qebra Bermal û teyrekî baz.|Merdan Newayî: ''Ji bo roja me'', Canemcafem.com, 3/2007}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Jê ==== * [[benavistan]] * [[benavî]] * [[darbenav]] * [[darbenavistan]] * [[darbenavî]] {{bend}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Bide ber ==== * [[benaw]] * [[bênav]] * [[binav]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Esche|f}} * {{Z|cs}}: {{W+|cs|jasan|m}} * {{Z|zh}}: {{W-|zh|桉樹}}, [[桉树]] (ān shù) * {{Z|ar}}: {{W-|ar|شجرة الدردار}} (şeceret ed-derdar) * {{Z|et}}: {{W+|et|saar}} * {{Z|fa}}: {{W-|fa|نوعی درخت}} * {{Z|fi}}: {{W+|fi|saarni}} * {{Z|fr}}: {{W+|fr|frêne|m}} * {{Z|nl}}: {{W+|nl|es|m}} * {{Z|en}}: {{W+|en|ash tree}}, {{W+|en|ash}}, {{W+|en|willow tree|guman=erê}} * {{Z|it}}: {{W+|it|frassino|m}} * {{Z|is}}: {{W+|is|askur|m}} * {{Z|ja}}: {{W+|ja|トネリコ|tr=toneriko}} * {{Z|ca}}: {{W-|ca|freixe|m}} * {{Z|mk}}: {{W-|mk|јасен|tr=jasen}} * {{Z|hu}}: {{W+|hu|kőris}} * {{Z|pl}}: {{W+|pl|jesion|m}} * {{Z|pt}}: {{W+|pt|freixo|m}} * {{Z|ro}}: {{W+|ro|frasin|m}} * {{Z|ru}}: [[ясень]] (jásen’) * {{Z|sh}}: {{W+|sh|jasen|m}} * {{Z|sco}}: {{W-|sco|uinnseann|m}} * {{Z|es}}: {{W+|es|fresno|m}} * {{Z|sv}}: {{W+|sv|ask}} * {{Z|tr}}: {{W+|tr|dişbudak}}, {{W-|tr|zeytingiller}} {{werger-bin}} rfkqvro7w3nx8mmhsgno5efzc04ge5e 6329743 6329701 2026-08-12T21:12:08Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6329743 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === [[Wêne:Fraxinus excelsior 002.jpg|thumb|Darek '''benavê'''.]] [[Wêne:Fraxinus excelsior.jpg|thumb|Pelên '''benavê'''.]] {{navdêr|ku|z=m}} # {{f|ku|dar}} [[dar|Darek]] e. #* {{jêder|ku|jêgirtin=Ji min bihata min ê ji te re çi bi rê bikira, tu dizanî? Di serî de terhek dara mazî. Cotek kevokên spî. Hespekî kumêt î kapreş. Karxezaleke kovî. Xencereke destî û kalan zîv. Çiqulek dara kinêrê. Sewilek ava kaniya Girdeşîn. Destek şal û şapik. Goreyeke rîs a sê nix. Gopalek ji dara '''benavê'''. Bazbendek. Qevdek nêrgizan. Baqek şuşan. Tayek rihan. Bermilek beybûn. Gurzek qurnefîl. Pelek berfa serê çiyayê Mereto. Kulmek ax ji qebra Bermal û teyrekî baz.|Merdan Newayî: ''Ji bo roja me'', Canemcafem.com, 3/2007}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Jê ==== * [[benavistan]] * [[benavî]] * [[darbenav]] * [[darbenavistan]] * [[darbenavî]] {{bend}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Bide ber ==== * [[benaw]] * [[bênav]] * [[binav]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Esche|f}} * {{Z|cs}}: {{W+|cs|jasan|m}} * {{Z|zh}}: {{W-|zh|桉樹}}, [[桉树]] (ān shù) * {{Z|ar}}: {{W-|ar|شجرة الدردار}} (şeceret ed-derdar) * {{Z|et}}: {{W+|et|saar}} * {{Z|fa}}: {{W-|fa|نوعی درخت}} * {{Z|fi}}: {{W+|fi|saarni}} * {{Z|fr}}: {{W+|fr|frêne|m}} * {{Z|nl}}: {{W+|nl|es|m}} * {{Z|en}}: {{W+|en|ash tree}}, {{W+|en|ash}}, {{W+|en|willow tree|guman=erê}} * {{Z|it}}: {{W+|it|frassino|m}} * {{Z|is}}: {{W+|is|askur|m}} * {{Z|ja}}: {{W+|ja|トネリコ|tr=toneriko}} * {{Z|ca}}: {{W-|ca|freixe|m}} * {{Z|mk}}: {{W-|mk|јасен|tr=jasen}} * {{Z|hu}}: {{W+|hu|kőris}} * {{Z|pl}}: {{W+|pl|jesion|m}} * {{Z|pt}}: {{W+|pt|freixo|m}} * {{Z|ro}}: {{W+|ro|frasin|m}} * {{Z|ru}}: [[ясень]] (jásen’) * {{Z|sh}}: {{W+|sh|jasen|m}} * {{Z|sco}}: {{W-|sco|uinnseann|m}} * {{Z|es}}: {{W+|es|fresno|m}} * {{Z|sv}}: {{W+|sv|ask}} * {{Z|tr}}: {{W+|tr|dişbudak}}, {{W-|tr|zeytingiller}} {{werger-bin}} 7hbxfuxmt308lh9j3cfdgmlne6ddf06 avemast 0 51632 6329674 6328870 2026-08-12T18:04:14Z Wikihez 7344 [[Bikarhêner:Wikihez/templateScript2.js|TS]]: sererastkirin 6329674 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[dew]], [[mastav]], [[çeqilmast]], <br>[[vexwarin]]a ku ji [[têkil]]kirina [[mast]]î û [[av]]ê hatiye çêkirin #* {{jêder-websîte|ku|jêgirtin=Piştî şîvxwarinê car care vexwarin û kakil bo mêvanan dihatine danan. Yek ji wan caran avemast hate pêşkêşkirin. Dilopeka '''avemastê''' bi rihên Mîrê Hekariya ve ma, hoşmendê wî viya agahdar bike bêyî kes pê bihesît û got:”Qirê rîte hêlîna xwe. ” Civatê hemiyê berê xwe da mîrî û pêk ve kire kenî. Evê carê jî hoşmendê mîrê Hekariya dorand.|nivîskar=Ehmed Qerenî|sernav=Girew û hevrikî di navbera mîrê Hekariya û paşayê Behdînan d|not=transkrîpsiyon ji hêla Hallocî Larê ve|websîte=Nefel.com|sal=2/2009}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * {{g|ku|avmast}} ==== Jê ==== * {{g|ku|avemastî}} ==== Etîmolojî ==== Ji {{qertaf|ku|av|-e-|mast}}. ==== Werger ==== {{werger-ser}} * {{Z|fa}}:{{W+|fa|دوغ}}, {{W+|fa|آبدوغ|guman=erê}} * {{Z|en}}:{{W+|en|buttermilk}} {{werger-bin}} qlaugdwrqplpxqc74pr3oz5xtu51wyw 6329675 6329674 2026-08-12T18:04:43Z Wikihez 7344 [[Bikarhêner:Wikihez/templateScript2.js|TS]]: sererastkirin 6329675 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{e|ku|vexwarin}} Vexwarina ku ji [[têkil]]kirina [[mast]]î û [[av]]ê hatiye çêkirin. #: {{hevmane|ku|dew|mastav|çeqilmast}} #* {{jêder-websîte|ku|jêgirtin=Piştî şîvxwarinê car care vexwarin û kakil bo mêvanan dihatine danan. Yek ji wan caran avemast hate pêşkêşkirin. Dilopeka '''avemastê''' bi rihên Mîrê Hekariya ve ma, hoşmendê wî viya agahdar bike bêyî kes pê bihesît û got:”Qirê rîte hêlîna xwe. ” Civatê hemiyê berê xwe da mîrî û pêk ve kire kenî. Evê carê jî hoşmendê mîrê Hekariya dorand.|nivîskar=Ehmed Qerenî|sernav=Girew û hevrikî di navbera mîrê Hekariya û paşayê Behdînan d|not=transkrîpsiyon ji hêla Hallocî Larê ve|websîte=Nefel.com|sal=2/2009}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * {{g|ku|avmast}} ==== Jê ==== * {{g|ku|avemastî}} ==== Etîmolojî ==== Ji {{qertaf|ku|av|-e-|mast}}. ==== Werger ==== {{werger-ser}} * {{Z|fa}}:{{W+|fa|دوغ}}, {{W+|fa|آبدوغ|guman=erê}} * {{Z|en}}:{{W+|en|buttermilk}} {{werger-bin}} jr9o87dxvzngvi1dho74rd4smplykor biyero 0 53379 6329854 5021852 2026-08-13T00:04:02Z Wikihez 7344 /* Lêker */ 6329854 wikitext text/x-wiki == {{ziman|zza}} == === Lêker === {{lêker|zza}} # [[bêt]], [[bêt]], [[were]] #* {{jêder-malper|zza|jêgirtin=Netîceyê xebata standardîzekerdişê na lehçe de nê nameyan ra “kirmanckî” maqul ameya dîyayîş (8) û nika wareyê [[nuştiş]]î de no [[name]] [[yeno]] [[şuxulnayîş]]. Eke çekuya “zazakî” [[biyero|bîyero]] [[şuxulnayîş]] zî, zaf rey sey “kurdkîya zazakî” [[yena]] nuştiş.|nivîskar=w:Roşan Lezgîn|sernav=Kirmanckî, Kirdkî, Dimilkî, Zazakî|websîte=Zazaki.net|sal=9/2009}} 1evbbnvnklafn6d6a8q6wr0vc01jfkv Şablon:jêder 10 59619 6329630 6241759 2026-08-12T14:34:50Z Wikihez 7344 '<templatestyles src="jêder/style.css"/><includeonly>{{#invoke:jêder|jeder_t}}</includeonly><noinclude> [[Kategorî:Çavkanî|{{PAGENAME}}]] {{belgekirin}} </noinclude>' ket şûna rûpelê. 6329630 wikitext text/x-wiki <templatestyles src="jêder/style.css"/><includeonly>{{#invoke:jêder|jeder_t}}</includeonly><noinclude> [[Kategorî:Çavkanî|{{PAGENAME}}]] {{belgekirin}} </noinclude> hyg6yfjuwwwzy7abc9n164vsl5916ys bikerî 0 60955 6329728 5845927 2026-08-12T21:01:46Z Wikihez 7344 /* {{ziman|zza}} */ 6329728 wikitext text/x-wiki == {{ziman|zza}} == === Formeke lêkerê === {{lêker|zza|form=erê}} # [[kirin|bikin]] #* {{jêder-websîte|zza|jêgirtin=Bernameyî Mehmud Kizil ra pey rektorî Zanîngehî Hekarî Prof. Dr. Îbrahim Belenlî qisê kerd. Prof. Dr. Îbrahim Belenlî va, eger yew roj Tirkîya de kurdolojî sey yew şaxî îlmî bîyero akerdiş, ganî laboratuwarî nê Hekarî bo û qisêkerdişî xo inahawa rûmna, “kulturî şarî kurd, şeklî ciwîyayîşî şarî kurd hêna hol na mintiqa de ameyo qorî kerdiş. Semed ke no kultur vînî nebo, ganî cigêrayox hol xebat '''bikerî'''. Na xebat encax kesî zanayê eşkenî bikerî, no kar karî merdimanî zanayan o. Ma hewl danî ke ardimî na xebat bikerî. Verî ke merdim bieşko derheqî yew gel de, derheqî yew cemat de karo îlmî bikero, ganî no şar neyero înkar kerdiş. Wext ke yew gel bîyero înkar kerdiş merdim neşkeno na gelî ser xebata îlmî bikero. Ez îta de gazî pîyerê rojnamewananî mintiqa, pîyerê cigêrayoxan kena ke makînayanî xo yê fotograf, hacetanî xo yê vengqeydkerdişî bigerî, şîyerî dewan materyal top bikerî û ma re bîyarî. Ma hedreyî înan re her qede ardim bikeri. Ma heme materyalanî înan bierni û arşîvê xo de qorî bikeri. Ma inahawa eşkenî nê materyalan pêşkêşî kesanî cigêrayoxan û zanayan bikeri.”|nivîskar=[[Seyîdxan Kurij|Seyîdxan Kurij]]|sernav=Hekarî de Konferansa Kurdolojî|websîte=Zazaki.net|sal=6/2011}} ==== Etîmolojî ==== Ji {{qertaf|zza|bi-|kerdene}}. tq8o42yjaopa9kg3e10iyrk8nw7a17c 6329729 6329728 2026-08-12T21:02:05Z Wikihez 7344 /* Formeke lêkerê */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6329729 wikitext text/x-wiki == {{ziman|zza}} == === Formeke lêkerê === {{lêker|zza|form=erê}} # [[kirin|bikin]] #* {{jêder-websîte|zza|jêgirtin=Bernameyî Mehmud Kizil ra pey rektorî Zanîngehî Hekarî Prof. Dr. Îbrahim Belenlî qisê kerd. Prof. Dr. Îbrahim Belenlî va, eger yew roj Tirkîya de kurdolojî sey yew şaxî îlmî bîyero akerdiş, ganî laboratuwarî nê Hekarî bo û qisêkerdişî xo inahawa rûmna, “kulturî şarî kurd, şeklî ciwîyayîşî şarî kurd hêna hol na mintiqa de ameyo qorî kerdiş. Semed ke no kultur vînî nebo, ganî cigêrayox hol xebat '''bikerî'''. Na xebat encax kesî zanayê eşkenî bikerî, no kar karî merdimanî zanayan o. Ma hewl danî ke ardimî na xebat bikerî. Verî ke merdim bieşko derheqî yew gel de, derheqî yew cemat de karo îlmî bikero, ganî no şar neyero înkar kerdiş. Wext ke yew gel bîyero înkar kerdiş merdim neşkeno na gelî ser xebata îlmî bikero. Ez îta de gazî pîyerê rojnamewananî mintiqa, pîyerê cigêrayoxan kena ke makînayanî xo yê fotograf, hacetanî xo yê vengqeydkerdişî bigerî, şîyerî dewan materyal top bikerî û ma re bîyarî. Ma hedreyî înan re her qede ardim bikeri. Ma heme materyalanî înan bierni û arşîvê xo de qorî bikeri. Ma inahawa eşkenî nê materyalan pêşkêşî kesanî cigêrayoxan û zanayan bikeri.”|nivîskar=w:Seyîdxan Kurij|sernav=Hekarî de Konferansa Kurdolojî|websîte=Zazaki.net|sal=6/2011}} ==== Etîmolojî ==== Ji {{qertaf|zza|bi-|kerdene}}. dw2ocdhlqd2cp9o6xj3z31hq9oiuyvx kult 0 61607 6329819 6329031 2026-08-12T23:08:15Z Wikihez 7344 6329819 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[kom]]ek [[dînî]] yan [[felsefî]] yan [[çandeyî]] (bi taybetî ya [[nehînî]] û [[marjînal]]) # [[heyranî]], kesa/ê ku wek [[pîroz]] tê [[peristin]] #* {{jêder-kovar|ku|jêgirtin=Di çapemenîyê de, ev yek êdî qet nabe sedema gumanan: "Staline is back" ["Stalîn vegerîya"], Putîn "bi lez û bez şeref li Yekîtîya Sovyetê û '''kulta''' Stalîn vegerand"; jixwe, "Putîn, Stalînê serdema Înternetê ye."|nivîskar=Jean-Marie Chauvier|sernav=Cinên Meydana Sor|wergêr=Simko Destan|kovar=Le Monde Diplomatique kurdî|hejmar=19|sal=6/2011}} # tiştê ku xelk yan [[kom]]ek [[pirr]] [[heyran]]ê wê/wî ye ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Jê ==== * {{g|ku|kultane}} * {{g|ku|kultî}} * {{g|ku|kultperês}} * {{g|ku|kultperêsî}} ==== Etîmolojî ==== Ji {{ji|fr|ku|culte}} yan ji {{ji|en|ku|cult}} ji {{ji|la|ku|cultus}} ([[heyranî]]; [[xemxwerî]]) ji [[colō]] ([[parastin]]) ==== Werger ==== {{werger-ser}} * {{Z|fi}}: {{W+|fi|kultti}} * {{Z|fr}}: {{W+|fr|culte}} * {{Z|en}}: {{W+|en|cult}} * {{Z|tr}}: {{W+|tr|kült}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=n}} # [[qeft]], [[gurz]], [[gimş]], [[dest]] #* {{jêder-malper|ku|jêgirtin=Ya din, ev kultek pereyan ji bo rojên destengîyê hatibûn komkirin, ne ji tiştekî din ra û loma dera ku tu kesî dest tê nedaba|nivîskar=Franz Kafka|wergêr=Nuh Ateş|sernav=Veguherîn – II –|url=birnebun.eu/2015/10/veguherin-ii-franz-kafka|malper=birnebun.eu|dîrok=21.04. 2015}} ==== Werger ==== {{werger-ser}} {{werger-bin}} == {{ziman|pl}} == === Navdêr === {{navdêr|pl|z=n}} # {{mijar|pl|dîn}} {{g|ku|îbadet}}, {{g|ku|peristin}} === Çavkanî === {{rûpela wergerê|pl|îbadet}} 5s4z6r0cf9zyfw1xc7yy7eciukkx6f4 xêvik 0 61964 6329883 6329247 2026-08-13T00:29:05Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6329883 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[aqilsivik]], [[dînik]], [[kêmaqil]], [[xirrexav]], [[geve]], [[lur]], [[hişsivik]], [[bodek]], [[peledîn]], [[tirredîn]], [[bûdele]], [[xêtik]], [[balûle]] #* {{jêder-malper|ku|jêgirtin=Dibêje “Rastî tevlîheve û bê bêserûbere, aydolojî vê tevlîheviyê ji hole radikin û çareseriyên hesan pêşniyardikin. Bi vê sedemê kesen ne jîr û '''xêvik''' berê xwe didin van rêxistin û aydolojiyên parêzker an jî lîberal.|sernav=Encamê Lekolîna Zanistî. Kesên xêvik dibin nijadperest |url=https://www.rojavanews.com/kurdish/index.php/cihan/item/2519-rojava-news|malper=rojavanews.com|sal=2015}} #* {{jêder-malper|ku|jêgirtin='''Xêvik''' û bêhiş nebin, gotiye kurd, ez nabim Rewanduz Begê (yê ku teslîm bûye) duyem.|sernav=Rêberê Kurd ê herî çeleng, lê bênav|url=http://www.bitlisname.com/2016/02/15/rebere-kurd-e-heri-celeng-le-benav-3/|malper=bitlisname.com|sal=2016}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Herwiha binêre ==== {{stûn| * {{g|ku|bomik}} * {{g|ku|bêhiş}} * {{g|ku|bodle}} * {{g|ku|delodîn}} * {{g|ku|cahil}} * {{g|ku|naşî}} * {{g|ku|nezan}} * {{g|ku|ehmeq}} * {{g|ku|dîn}}}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|dumm}} * {{Z|fa}}: {{W+|fa|احمق}}, {{W+|fa|تفکر}}, {{W+|fa|اندیشه}}, {{W+|fa|ذهنیت}} * {{Z|en}}: {{W+|en|asinine}}, {{W+|en|rocker}}, {{W-|en|off one, rocker|guman=erê}} * {{Z|tr}}: {{W+|tr|alık}}, {{W+|tr|aptal}}, {{W+|tr|çatlak}}, {{W+|tr|unutkan}}, {{W+|tr|budala}}, {{W-|tr|hafızası zayıf}} {{werger-bin}} i8dn3gu92pldlggkx5falt08f7b2yph sênc 0 63135 6329912 6329302 2026-08-13T01:17:02Z Wikihez 7344 /* Navdêr */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6329912 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/seːnd͡ʒ/}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[dîwar|Dîwarê]] ji keviran li dor rez, [[bax]], baxçe an malan tê lêkirin, tê pêçan. #: {{hevmaneyên peyvê|ku|tan|çeper|bend}} #* {{jêder-kovar|ku|jêgirtin=Qada xwe em pê cudakin '''Sênc''' û Bendan bidne dor.|kovar=Kovara METÎN|hj=45|dîrok=Çirya pêşin 1995|url=http://www.welateme.net/kurdi/modules.php?name=News&file=article&sid=2407&mode=thread&order=0&thold=0}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|سێنج}} ==== Jê ==== {{kol3|ku|cure=Jê |sênc kirin<pos:lêker> |sênckirin<pos:navdêr> |sênckirî<pos:rengdêr> }} ==== Etîmolojî ==== Ji formeke berê *''sêc'', ji {{deyn|ar|ku|سیاج|tr=siyac}}. Ji bo peydabûna /n/ekê ya ber /c/ê, bide ber [[armanc]], [[derence]]... ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Hecke|f}}, {{W+|de|Mauer|f}}, {{W+|de|Schutzwall}}, {{W+|de|Zaun|m}} * {{Z|ar}}: {{W-|ar|سياج}}, {{W+|ar|ساحة}} * {{Z|fa}}: {{W+|fa|حرارت}}, {{W+|fa|دما}}, {{W+|fa|درد}} * {{Z|en}}: {{W+|en|hector}}, {{W+|en|fence}} * {{Z|tr}}: {{W+|tr|duvar}}, {{W+|tr|çit}}, {{W+|tr|çeper}}, {{W+|tr|diken}}, {{W+|tr|iğde}}, {{W+|tr|çalı}}, {{W+|tr|harım}}, {{W+|tr|barı|guman=erê}} {{werger-bin}} 4kavwj50b5gg4i351rofnyam577ijpw 6329913 6329912 2026-08-13T01:17:24Z Wikihez 7344 /* Navdêr */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6329913 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/seːnd͡ʒ/}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[dîwar|Dîwarê]] ji keviran li dor rez, [[bax]], baxçe an malan tê lêkirin, tê pêçan. #: {{hevmaneyên peyvê|ku|tan|çeper|bend}} #* {{jêder-kovar|ku|jêgirtin=Qada xwe em pê cudakin '''Sênc''' û Bendan bidne dor.|kovar=Kovara METÎN|hj=45|sal=çiriya pêşin 1995|url=http://www.welateme.net/kurdi/modules.php?name=News&file=article&sid=2407&mode=thread&order=0&thold=0}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|سێنج}} ==== Jê ==== {{kol3|ku|cure=Jê |sênc kirin<pos:lêker> |sênckirin<pos:navdêr> |sênckirî<pos:rengdêr> }} ==== Etîmolojî ==== Ji formeke berê *''sêc'', ji {{deyn|ar|ku|سیاج|tr=siyac}}. Ji bo peydabûna /n/ekê ya ber /c/ê, bide ber [[armanc]], [[derence]]... ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Hecke|f}}, {{W+|de|Mauer|f}}, {{W+|de|Schutzwall}}, {{W+|de|Zaun|m}} * {{Z|ar}}: {{W-|ar|سياج}}, {{W+|ar|ساحة}} * {{Z|fa}}: {{W+|fa|حرارت}}, {{W+|fa|دما}}, {{W+|fa|درد}} * {{Z|en}}: {{W+|en|hector}}, {{W+|en|fence}} * {{Z|tr}}: {{W+|tr|duvar}}, {{W+|tr|çit}}, {{W+|tr|çeper}}, {{W+|tr|diken}}, {{W+|tr|iğde}}, {{W+|tr|çalı}}, {{W+|tr|harım}}, {{W+|tr|barı|guman=erê}} {{werger-bin}} 5uun9idaydqv2errif1xl19kuug1sy7 MediaWiki:Gadgets-definition 8 118586 6329679 6325677 2026-08-12T18:17:22Z Bikarhêner 3719 6329679 wikitext text/x-wiki Binêre [[Taybet:Gadgets]] ji bo belgekirina amûrên li jêr. * LegacyScripts[ResourceLoader|default|dependencies=site,mediawiki.util,mediawiki.cookie,ext.gadget.LegacyScriptsNewNode,ext.gadget.StorageUtils|type=general]|legacy.js ==Rû== * LiveClock[ResourceLoader|dependencies=mediawiki.util]|LiveClock.js * charinsert-styles[ResourceLoader|hidden|type=styles]|charinsert-styles.css * LanguagesAndScripts[ResourceLoader|default]|LanguagesAndScripts.css * jeder[ResourceLoader|default]|jeder.css|jeder.js * CodeLinks[ResourceLoader|default|dependencies=site,mediawiki.util]|CodeLinks.js * Tabset[ResourceLoader|default]|Tabset.js|Tabset.css * kuTewandin[ResourceLoader|default]|kuTewandin.js ==AmûrênGuhartinê== * wikEd[ResourceLoader]|wikEd.js * charinsert[ResourceLoader|default|peers=charinsert-styles]|charinsert.js * translation_editor[ResourceLoader|default|dependencies=mediawiki.notification|type=general]|silent_fail_storage.js|editor.js|translation_editor.js|translation_editor.css * QQ[ResourceLoader|dependencies=mediawiki.util,oojs-ui-core,oojs-ui-widgets|type=general]|QQ.js|QQ.css * WiktAccFormCreation[ResourceLoader|dependencies=mediawiki.util]|WiktAccFormCreation.js * AjaxEdit[ResourceLoader|dependencies=mediawiki.util,mediawiki.Uri,mediawiki.user,mediawiki.api]|AjaxEdit.js * aWa[ResourceLoader|rights=autoconfirmed|dependencies=mediawiki.util,mediawiki.api,mediawiki.user,user.options,mediawiki.Uri,mediawiki.Title|type=general]|aWa.js|aWa.css * purgetab[ResourceLoader|dependencies=mediawiki.api,mediawiki.util]|purgetab.js * start[ResourceLoader|default|package|dependencies=mediawiki.util,ext.gadget.StorageUtils,ext.gadget.citoid-helper,oojs-ui-core,oojs-ui-widgets,oojs-ui-windows]|start.js|start.css|start/data.json * wikt.add-examples[ResourceLoader|dependencies=oojs,oojs-ui,ext.gadget.citoid-helper,ext.gadget.StorageUtils|default]|wikt.add-examples.js|wikt.add-examples.css * linkify[ResourceLoader|default|dependencies=mediawiki.api,jquery.textSelection,ext.wikiEditor]|linkify.js ==Kategorî== * HotCat[ResourceLoader]|HotCat.js * Cat-a-lot[ResourceLoader|rights=autoconfirmed]|Cat-a-lot.css|Cat-a-lot.js ==AmûrênVeşartî== * LegacyScriptsNewNode[ResourceLoader|hidden|targets=desktop,mobile]|LegacyScriptsNewNode.js * StorageUtils[ResourceLoader|hidden|dependencies=mediawiki.cookie,mediawiki.storage]|StorageUtils.js * charinsert-core[ResourceLoader|hidden|dependencies=jquery.textSelection,user,mediawiki.storage]|charinsert-core.js * VisibilityToggles[ResourceLoader|hidden|targets=desktop,mobile|dependencies=user,mediawiki.cookie]|VisibilityToggles.js * defaultVisibilityToggles[ResourceLoader|hidden|default|targets=desktop,mobile|dependencies=ext.gadget.VisibilityToggles]|defaultVisibilityToggles.js * Site[ResourceLoader|hidden|default]|Site.css * catfix[ResourceLoader|hidden|default|dependencies=mediawiki.Title|categories=Pages using catfix]|catfix.js * Palette[ResourceLoader|hidden|default]|Palette.css * citoid-helper[ResourceLoader|hidden|default|dependencies=mediawiki.util]|citoid-helper.js pqoysxxn62jfo0sdl7p6s379ua6dref 6329696 6329679 2026-08-12T19:14:35Z Bikarhêner 3719 6329696 wikitext text/x-wiki Binêre [[Taybet:Gadgets]] ji bo belgekirina amûrên li jêr. * LegacyScripts[ResourceLoader|default|dependencies=site,mediawiki.util,mediawiki.cookie,ext.gadget.LegacyScriptsNewNode,ext.gadget.StorageUtils|type=general]|legacy.js ==Rû== * LiveClock[ResourceLoader|dependencies=mediawiki.util]|LiveClock.js * charinsert-styles[ResourceLoader|hidden|type=styles]|charinsert-styles.css * LanguagesAndScripts[ResourceLoader|default]|LanguagesAndScripts.css * jeder[ResourceLoader|dependencies=ext.gadget.VisibilityToggles|default]|jeder.css|jeder.js * CodeLinks[ResourceLoader|default|dependencies=site,mediawiki.util]|CodeLinks.js * Tabset[ResourceLoader|default]|Tabset.js|Tabset.css * kuTewandin[ResourceLoader|default]|kuTewandin.js ==AmûrênGuhartinê== * wikEd[ResourceLoader]|wikEd.js * charinsert[ResourceLoader|default|peers=charinsert-styles]|charinsert.js * translation_editor[ResourceLoader|default|dependencies=mediawiki.notification|type=general]|silent_fail_storage.js|editor.js|translation_editor.js|translation_editor.css * QQ[ResourceLoader|dependencies=mediawiki.util,oojs-ui-core,oojs-ui-widgets|type=general]|QQ.js|QQ.css * WiktAccFormCreation[ResourceLoader|dependencies=mediawiki.util]|WiktAccFormCreation.js * AjaxEdit[ResourceLoader|dependencies=mediawiki.util,mediawiki.Uri,mediawiki.user,mediawiki.api]|AjaxEdit.js * aWa[ResourceLoader|rights=autoconfirmed|dependencies=mediawiki.util,mediawiki.api,mediawiki.user,user.options,mediawiki.Uri,mediawiki.Title|type=general]|aWa.js|aWa.css * purgetab[ResourceLoader|dependencies=mediawiki.api,mediawiki.util]|purgetab.js * start[ResourceLoader|default|package|dependencies=mediawiki.util,ext.gadget.StorageUtils,ext.gadget.citoid-helper,oojs-ui-core,oojs-ui-widgets,oojs-ui-windows]|start.js|start.css|start/data.json * wikt.add-examples[ResourceLoader|dependencies=oojs,oojs-ui,ext.gadget.citoid-helper,ext.gadget.StorageUtils|default]|wikt.add-examples.js|wikt.add-examples.css * linkify[ResourceLoader|default|dependencies=mediawiki.api,jquery.textSelection,ext.wikiEditor]|linkify.js ==Kategorî== * HotCat[ResourceLoader]|HotCat.js * Cat-a-lot[ResourceLoader|rights=autoconfirmed]|Cat-a-lot.css|Cat-a-lot.js ==AmûrênVeşartî== * LegacyScriptsNewNode[ResourceLoader|hidden|targets=desktop,mobile]|LegacyScriptsNewNode.js * StorageUtils[ResourceLoader|hidden|dependencies=mediawiki.cookie,mediawiki.storage]|StorageUtils.js * charinsert-core[ResourceLoader|hidden|dependencies=jquery.textSelection,user,mediawiki.storage]|charinsert-core.js * VisibilityToggles[ResourceLoader|hidden|targets=desktop,mobile|dependencies=user,mediawiki.cookie]|VisibilityToggles.js * defaultVisibilityToggles[ResourceLoader|hidden|default|targets=desktop,mobile|dependencies=ext.gadget.VisibilityToggles]|defaultVisibilityToggles.js * Site[ResourceLoader|hidden|default]|Site.css * catfix[ResourceLoader|hidden|default|dependencies=mediawiki.Title|categories=Pages using catfix]|catfix.js * Palette[ResourceLoader|hidden|default]|Palette.css * citoid-helper[ResourceLoader|hidden|default|dependencies=mediawiki.util]|citoid-helper.js 6v0s3ntmlo055tpur25xsuyji54g5fi 6329707 6329696 2026-08-12T20:08:59Z Bikarhêner 3719 6329707 wikitext text/x-wiki Binêre [[Taybet:Gadgets]] ji bo belgekirina amûrên li jêr. * LegacyScripts[ResourceLoader|default|dependencies=site,mediawiki.util,mediawiki.cookie,ext.gadget.LegacyScriptsNewNode,ext.gadget.StorageUtils|type=general]|legacy.js ==Rû== * LiveClock[ResourceLoader|dependencies=mediawiki.util]|LiveClock.js * charinsert-styles[ResourceLoader|hidden|type=styles]|charinsert-styles.css * LanguagesAndScripts[ResourceLoader|default]|LanguagesAndScripts.css * jeder[ResourceLoader|dependencies=ext.gadget.VisibilityToggles|default]|jeder.css|jeder.js * CodeLinks[ResourceLoader|default|dependencies=site,mediawiki.util]|CodeLinks.js * Tabset[ResourceLoader|default]|Tabset.js|Tabset.css * kuTewandin[ResourceLoader|default]|kuTewandin.js ==AmûrênGuhartinê== * wikEd[ResourceLoader]|wikEd.js * charinsert[ResourceLoader|default|peers=charinsert-styles]|charinsert.js * translation_editor[ResourceLoader|default|dependencies=mediawiki.notification|type=general]|silent_fail_storage.js|editor.js|translation_editor.js|translation_editor.css * QQ[ResourceLoader|dependencies=mediawiki.util,oojs-ui-core,oojs-ui-widgets|type=general]|QQ.js|QQ.css * WiktAccFormCreation[ResourceLoader|dependencies=mediawiki.util]|WiktAccFormCreation.js * AjaxEdit[ResourceLoader|dependencies=mediawiki.util,mediawiki.Uri,mediawiki.user,mediawiki.api]|AjaxEdit.js * aWa[ResourceLoader|rights=autoconfirmed|dependencies=mediawiki.util,mediawiki.api,mediawiki.user,user.options,mediawiki.Title|type=general]|aWa.js|aWa.css * purgetab[ResourceLoader|dependencies=mediawiki.api,mediawiki.util]|purgetab.js * start[ResourceLoader|default|package|dependencies=mediawiki.util,ext.gadget.StorageUtils,ext.gadget.citoid-helper,oojs-ui-core,oojs-ui-widgets,oojs-ui-windows]|start.js|start.css|start/data.json * wikt.add-examples[ResourceLoader|dependencies=oojs,oojs-ui,ext.gadget.citoid-helper,ext.gadget.StorageUtils|default]|wikt.add-examples.js|wikt.add-examples.css * linkify[ResourceLoader|default|dependencies=mediawiki.api,jquery.textSelection,ext.wikiEditor]|linkify.js ==Kategorî== * HotCat[ResourceLoader]|HotCat.js * Cat-a-lot[ResourceLoader|rights=autoconfirmed]|Cat-a-lot.css|Cat-a-lot.js ==AmûrênVeşartî== * LegacyScriptsNewNode[ResourceLoader|hidden|targets=desktop,mobile]|LegacyScriptsNewNode.js * StorageUtils[ResourceLoader|hidden|dependencies=mediawiki.cookie,mediawiki.storage]|StorageUtils.js * charinsert-core[ResourceLoader|hidden|dependencies=jquery.textSelection,user,mediawiki.storage]|charinsert-core.js * VisibilityToggles[ResourceLoader|hidden|targets=desktop,mobile|dependencies=user,mediawiki.cookie]|VisibilityToggles.js * defaultVisibilityToggles[ResourceLoader|hidden|default|targets=desktop,mobile|dependencies=ext.gadget.VisibilityToggles]|defaultVisibilityToggles.js * Site[ResourceLoader|hidden|default]|Site.css * catfix[ResourceLoader|hidden|default|dependencies=mediawiki.Title|categories=Pages using catfix]|catfix.js * Palette[ResourceLoader|hidden|default]|Palette.css * citoid-helper[ResourceLoader|hidden|default|dependencies=mediawiki.util]|citoid-helper.js m6p35xdfa58eb5yrmwdl4sangkk9c6u 6329712 6329707 2026-08-12T20:22:52Z Bikarhêner 3719 6329712 wikitext text/x-wiki Binêre [[Taybet:Gadgets]] ji bo belgekirina amûrên li jêr. * LegacyScripts[ResourceLoader|default|dependencies=site,mediawiki.util,mediawiki.cookie,ext.gadget.LegacyScriptsNewNode,ext.gadget.StorageUtils|type=general]|legacy.js ==Rû== * LiveClock[ResourceLoader|dependencies=mediawiki.util]|LiveClock.js * charinsert-styles[ResourceLoader|hidden|type=styles]|charinsert-styles.css * LanguagesAndScripts[ResourceLoader|default]|LanguagesAndScripts.css * jeder[ResourceLoader|dependencies=ext.gadget.VisibilityToggles|default]|jeder.css|jeder.js * CodeLinks[ResourceLoader|default|dependencies=site,mediawiki.util]|CodeLinks.js * Tabset[ResourceLoader|default]|Tabset.js|Tabset.css * kuTewandin[ResourceLoader|default]|kuTewandin.js ==AmûrênGuhartinê== * wikEd[ResourceLoader]|wikEd.js * charinsert[ResourceLoader|default|peers=charinsert-styles]|charinsert.js * translation_editor[ResourceLoader|default|dependencies=mediawiki.notification|type=general]|silent_fail_storage.js|editor.js|translation_editor.js|translation_editor.css * QQ[ResourceLoader|dependencies=mediawiki.util,oojs-ui-core,oojs-ui-widgets|type=general]|QQ.js|QQ.css * WiktAccFormCreation[ResourceLoader|dependencies=mediawiki.util]|WiktAccFormCreation.js * AjaxEdit[ResourceLoader|dependencies=mediawiki.util,mediawiki.user,mediawiki.api]|AjaxEdit.js * aWa[ResourceLoader|rights=autoconfirmed|dependencies=mediawiki.util,mediawiki.api,mediawiki.user,user.options,mediawiki.Title|type=general]|aWa.js|aWa.css * purgetab[ResourceLoader|dependencies=mediawiki.api,mediawiki.util]|purgetab.js * start[ResourceLoader|default|package|dependencies=mediawiki.util,ext.gadget.StorageUtils,ext.gadget.citoid-helper,oojs-ui-core,oojs-ui-widgets,oojs-ui-windows]|start.js|start.css|start/data.json * wikt.add-examples[ResourceLoader|dependencies=oojs,oojs-ui,ext.gadget.citoid-helper,ext.gadget.StorageUtils|default]|wikt.add-examples.js|wikt.add-examples.css * linkify[ResourceLoader|default|dependencies=mediawiki.api,jquery.textSelection,ext.wikiEditor]|linkify.js ==Kategorî== * HotCat[ResourceLoader]|HotCat.js * Cat-a-lot[ResourceLoader|rights=autoconfirmed]|Cat-a-lot.css|Cat-a-lot.js ==AmûrênVeşartî== * LegacyScriptsNewNode[ResourceLoader|hidden|targets=desktop,mobile]|LegacyScriptsNewNode.js * StorageUtils[ResourceLoader|hidden|dependencies=mediawiki.cookie,mediawiki.storage]|StorageUtils.js * charinsert-core[ResourceLoader|hidden|dependencies=jquery.textSelection,user,mediawiki.storage]|charinsert-core.js * VisibilityToggles[ResourceLoader|hidden|targets=desktop,mobile|dependencies=user,mediawiki.cookie]|VisibilityToggles.js * defaultVisibilityToggles[ResourceLoader|hidden|default|targets=desktop,mobile|dependencies=ext.gadget.VisibilityToggles]|defaultVisibilityToggles.js * Site[ResourceLoader|hidden|default]|Site.css * catfix[ResourceLoader|hidden|default|dependencies=mediawiki.Title|categories=Pages using catfix]|catfix.js * Palette[ResourceLoader|hidden|default]|Palette.css * citoid-helper[ResourceLoader|hidden|default|dependencies=mediawiki.util]|citoid-helper.js o1b4msa704ss909njtqm0i2ht0wi41d parantez 0 158386 6329897 6329314 2026-08-13T00:45:31Z Wikihez 7344 6329897 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[kevane]], [[kevanek]] #* {{jêder-malper|ku|jêgirtin=Çend bêjeyên ku ez ji xwendina wan ne emîn im, min piştî wan, di nava '''parantezên''' goşedar da nîşana pirsê danî. Tîp û bêjeyên ku di nava '''parantêzên''' goşedar de ne, min lê zêdekirin da ku metn hêsantir bihê fêmkirin.|malper=pelkurd.com|nivîskar={{w|Mehemed Malmîsanij}}|sernav=Du nameyên Elîşêrê Qoçgîriyê (1920)|url=https://pelkurd.com/malmisanij/du-nameyen-elisere-qocgiriye-1920/|sal=2019 (?)}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ji {{ji|fr|ku|parenthèse}} an ji {{ji|en|ku|parenthesis}}, ew jî ji {{ji|la|ku|parenthesis}}. ==== Werger ==== {{werger-bnr|kevanek}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # [[kevane]], [[kevanek]], {{g|ku|parantez}} nv4ep98c37ozt75cw5ve2192g5ucduq taşıma su ile değirmen dönmez 0 166391 6329627 4644328 2026-08-12T14:04:03Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329627 wikitext text/x-wiki == {{ziman|tr}} == === Gotineke pêşiyan === {{gp|tr}} # bi ava milan aş nagere 8taks4jv1jz9btpz6f24thamb0g8oea pistepist 0 187134 6329899 6329094 2026-08-13T00:47:23Z Wikihez 7344 6329899 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{f|ku|dengê siriştî}} [[pistîn]], [[pistandin]], li ber [[guh]]ên [[hev]] bi [[deng]]ê [[nizm]] [[peyivîn]] <br>([[bi taybetî]] daku hinekên din [[bîstin|nebîzin]]) #* {{jêder-kovar|ku|jêgirtin=Zazî jî di guhê kurê xwe de dike '''pistepist'''.|kovar=Mukaddime|sernav=Romanek û Fîlmê Xwe: Vegotin, Dîtin, Temsîl|nivîskar=Selîm Temo|url=https://dergipark.org.tr/tr/download/article-file/184104|hejmar=4|sal=2011|rûpel=78}} #* {{jêder-malper|ku|jêgirtin=Bekir piştî meyt şuşt devê xwe kir guhê wî di guh da kir '''pistepist'''.|nivîskar=Zinarê Xamo|sernav=Çîroka Bekirê dîn|url=https://zinarexamo.blogspot.com/2013/12/ciroka-bekire-din.html|malper=zinarexamo.blogspot.com|dîrok=21.12.2013}} #* {{jêder-malper|ku|jêgirtin=Di wê qerebalixiyê de bayekî hênik tê û li ber guhê te dike '''pistepist'''.|nivîskar=Sevda Orak Reşitoğlu|sernav=Tirs Zîl Didin|url=https://botantimes.com/tirs-zil-didin/|malper=Botan Times|dîrok=2024-03-27}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|پستەپست}} ==== Formên alternatîv ==== {{kol3|ku|cure=Herwiha |pist-pist |pispist }} ==== Jê ==== {{kol3|ku|cure=Jê |pistepist kirin<pos:lêker> |pistepistkirin<pos:navdêr> |pistepistkirî<pos:rengdêr> }} ==== Etîmolojî ==== Ji {{qertaf|ku|pist|-e-|pist}}. ==== Werger ==== '''piste-pist kirin''': {{werger-ser}} * {{Z|sq}}: {{W+|sq|pëshpërit}} * {{Z|de}}: {{W+|de|flüstern}}, {{W-|de|Flüstern}}, {{W-|de|Munkeln}}, {{W+|de|Raunen|n}}, {{W+|de|Geflüster|m}}, {{W-|de|Tuscheln|guman=erê}}, {{W-|de|Gesäusel|guman=erê}}, {{W-|de|Wispern|guman=erê}} * {{Z|da}}: {{W-|da|hviske}} * {{Z|ar}}: {{W-|ar|النجوى}}, {{W-|ar|الهمس}} * {{Z|eo}}: {{W+|eo|flustri}} * {{Z|fa}}: {{W+|fa|غرولند}}, {{W-|fa|غر غرکردن}} * {{Z|fo}}: {{W-|fo|teska}} * {{Z|fi}}: {{W+|fi|kuiskata}} * {{Z|fr}}: {{W+|fr|chuchoter}} * {{Z|nl}}: {{W+|nl|fluisteren}}, {{W+|nl|smoezelen}}, {{W+|nl|smoezen}} * {{Z|en}}: {{W+|en|whisper}}, (2) {{W+|en|rumor}}, {{W+|en|chirp}} * {{Z|it}}: {{W+|it|sussurrare}}, {{W+|it|bisbigliare}} * {{Z|is}}: {{W+|is|hvísla}} * {{Z|ca}}: {{W+|ca|xiuxiuejar}} * {{Z|ms}}: {{W-|ms|bisik … berbisik-bisik}} * {{Z|hu}}: {{W+|hu|súg}}; {{W+|hu|susog}} * {{Z|no}}: {{W+|no|hviske}} * {{Z|pap}}: {{W-|pap|kuchikuchi}} * {{Z|pt}}: {{W+|pt|cochichar}}, {{W+|pt|segredar}} * {{Z|ro}}: {{W+|ro|șopti}} * {{Z|srn}}: {{W-|srn|safri taki}} * {{Z|es}}: {{W+|es|cuchichear}} * {{Z|sv}}: {{W+|sv|tissla}}, {{W+|sv|viska}} * {{Z|tr}}: {{W+|tr|fısıldamak}}, {{W+|tr|fiskos}}, {{W+|tr|fısır fısır}}, {{W+|tr|fıs fıs|guman=erê}} {{werger-bin}} eb3ha40b1cdxx988wivxdyridojzu53 qopik 0 187417 6329911 6325288 2026-08-13T01:15:52Z Wikihez 7344 6329911 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === [[Wêne:07. Camel Profile, near Silverton, NSW, 07.07.2007.jpg|thumb|Hêştirek bi '''qopikekî''' (2)]] {{navdêr|ku|z=n}} # {{maneid|ku|qozê ser pişta mirovan}} {{f|ku|anatomî}} [[qoz|Qozê]] ku ji ber tewîna hestiyên piştê li pişta mirovan çêdibe.<ref name = "Farqînî"/><ref>{{JBlau 1991|r=247}}</ref><ref>{{Chyet2020|cild=M-Z}}</ref> #: {{hevmaneyên peyvê|ku|qilûz|milik|qiloz|kubik|qor|xûr}} #* {{jêder-pirtûk |ku| jêgirtin = Johnny rûniştîbû. '''Qopika''' pişta wî derketibû û li erdê dinihêrî. | nivîskar = Jack London | wergêr = {{w|Mustafa Aydogan}} | sernav = ZAROKA ŞEVÊ | weşanxane = Weşanên NÛDEM | sal = 1995 | rûpel = 44 }} # {{maneid|ku|girên li pişta hêştiran}} {{f|ku|heywannasî}} Yek an du [[gir]]ên bi av li pişta [[hêştir]]an.<ref name = "Farqînî">{{Zana Farqînî|r=1528}}</ref> #* {{jêder-pirtûk |ku|jêgirtin=Hêştirê mîna ku kevirek bixe şûna wî got:</br >“Wisa be careke din xwe mezin mebîne û ji hedê xwe dernekeve!”</br >Û gotina xwe berdewam kir, “Xwe bavê ser '''qopikê''' min em herin.” |nivîskar=Sadık Yalsızuçanlar |wergêr=Azîz Samûr |sernav=Çiroken Mesnewiya Şerifa Hz. Mewlana |url=https://sadikyalsizucanlar.dergibi.com/eskisite/PDF/mesnewi.pdf|weşanxane=Nûbihar |sal= }} #* {{jêder-kovar|ku|jêgirtin=Gava ez li Aracatacê zarokekî biçûk bûm, tê bîra min ku kalikê min ez biribûm sîrkê, da em temaşeyî hêştireke yek '''qopikî''' bikin.|kovar=Nûdem|sernav=Bi Marquez re hevpeyvîn|nivîskar=Plino A. Mendoza|wergêr=Firat Cewerî|hejmar=1|sal=1996|rûpel=216}} # {{maneid|ku|cigareya xilasbûyî}} [[cigare|Cigareya]] ku hatiye kişandin.<ref>{{Ferhenga Destî|r=324}}</ref><ref>{{Ferhenga Kamêran|r=559}}</ref><ref>{{malper|nivîskar=Husein Muhammed|url=https://zimannas.wordpress.com/2016/02/29/kurdizar-ferhenga-sorani-kurmanci-q/|sernav=KURDÎZAR: ferhenga soranî-kurmancî: Q|malper=zimannas.wordpress.com|sal=2016}}</ref> #: {{hevmaneyên peyvê|ku|boçik|qotik|id1=cigareya xilasbûyî|id2=cigareya xilasbûyî}} #* {{jêgirtin?|ku}} # {{maneid|ku|serê kîr}} {{f|ku|argo|anatomî|Sirûc}} [[ser|Serikê]] [[kîr]].<ref>{{Ç:ku:Bedirxan:2009|r=233}}</ref> #* {{jêgirtin?|ku}} # {{f|ku|argo|anatomî}} [[kîr]]<ref>{{Ç:ku:Mehmet Oncu:2020|r=271}}</ref> #* {{jêder-malper |ku|jêgirtin=Li gundekî yek mir. Li ser piştê wefat kiribû. Destê wî yê rastê li ser dilê wî bû û destê çepê jî li ser "qamîşê/'''qopikê'''" wî bû.|nivîskar=Zinarê Xamo |sernav=Mesaja merhûm |url=https://zinarexamo.blogspot.com/2019/03/mesaja-merhum.html |malper=zinarexamo.blogspot.com |sal=2019 }} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Formên alternatîv ==== * {{mane|qozê ser pişta mirovan}} {{herwiha|ku|qozek}} * {{mane|serikê kîr}} {{herwiha|ku|hopik||Semsûr}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|کۆپارە}} {{mane|girên li pişta hêştiran}} ==== Werger ==== {{werger-ser|qozê ser pişta mirovan|1|id=qozê ser pişta mirovan}} * {{Z|sq}}: {{W+|sq|gungë|m}} * {{Z|de}}: {{W+|de|Buckel|n}} * {{Z|as}}: {{W-|as|কুঁজ}} * {{Z|az}}: {{W-|az|donqa}} * {{Z|be}}: {{W-|be|горб|n}} * {{Z|bn}}: {{W-|bn|কুঁজ}} * {{Z|bg}}: {{W-|bg|гъ́рбица|m}} * {{Z|my}}: {{W+|my|လပို့}} * {{Z|cs}}: {{W+|cs|hrb|n}} * {{Z|da}}: {{W-|da|pukkel|g}} * {{Z|ar}}: {{W+|ar|سَنَام|n}} * {{Z|hy}}: {{W+|hy|կուզ}} * {{Z|fa}}: {{W-|fa|غوز|tr=quz|sc=fa-Arab}}, {{W+|fa|گوژ|tr=guž|sc=fa-Arab}} * {{Z|fi}}: {{W+|fi|kyttyrä}} * {{Z|fr}}: {{W+|fr|bosse|m}} * {{Z|ka}}: {{W-|ka|კუზი}} * {{Z|hi}}: {{W+|hi|कूबड़}} * {{Z|nl}}: {{W+|nl|bult|n}}, {{W+|nl|bochel|n}} * {{Z|io}}: {{W+|io|gibozeso}} * {{Z|ang}}: {{W-|ang|hofor|n}} * {{Z|en}}: {{W+|en|hump}} * {{Z|it}}: {{W+|it|gobba|m}} * {{Z|ja}}: {{W+|ja|瘤|tr=こぶ, kobu}} * {{Z|ca}}: {{W+|ca|gep|n}} * {{Z|ky}}: {{W+|ky|бүкүр}} * {{Z|ko}}: {{W-|ko|곱사}}, {{W-|ko|곱사등}} * {{Z|la}}: {{W-|la|gibbus|n}}, {{W-|la|gibber|n}} * {{Z|lo}}: {{W+|lo|ໜອກ}}, {{W-|lo|ອອງ}} * {{Z|mk}}: {{W-|mk|грб|n}}, {{W-|mk|грпка|m}} * {{Z|ms}}: {{W+|ms|bonggol}} * {{Z|cmn}}: {{W+|cmn|駝背}}, {{W-|cmn|驼背|tr=tuóbèi}} * {{Z|hu}}: {{W+|hu|púp}}, {{W+|hu|kinövés}} * {{Z|mn}}: {{W+|mn|бөх}} * {{Z|nb}}: {{W+|nb|pukkel|n}} * {{Z|nn}}: {{W-|nn|pukkel|n}} * {{Z|uz}}: {{W+|uz|bukur}} * {{Z|pl}}: {{W+|pl|garb|n}} * {{Z|pt}}: {{W+|pt|corcunda|m}} * {{Z|kk}}: {{W-|kk|бүкір}}, {{W-|kk|дөңес}} * {{Z|ro}}: {{W+|ro|cocoașă|m}} * {{Z|ru}}: {{W+|ru|горб|n}} * {{Z|scn}}: {{W+|scn|jimmu|n}} * {{Z|sh}}: {{W-|sh|гр̏ба|m}}, {{W+|sh|gȑba|m}} * {{Z|cu}}: {{W-|cu|гръбъ|n}} * {{Z|orv}}: {{W-|orv|гръбъ|n}} * {{Z|sk}}: {{W+|sk|hrb|n}} * {{Z|sl}}: {{W+|sl|gŕba|m}} * {{Z|dsb}}: {{W-|dsb|gjarb|n}} * {{Z|hsb}}: {{W-|hsb|horb|n}} * {{Z|es}}: {{W+|es|joroba|m}}, {{W+|es|corcova|m}} * {{Z|sv}}: {{W+|sv|puckel|g}} * {{Z|tg}}: {{W-|tg|кӯз}}, {{W-|tg|кӯж}} * {{Z|th}}: {{W+|th|หนอก}} * {{Z|te}}: {{W+|te|గూని}} * {{Z|tr}}: {{W+|tr|kambur}} * {{Z|ur}}: {{W-|ur|کوبڑ|tr=kūbaṛ}} * {{Z|uk}}: {{W-|uk|горб|n}} * {{Z|vi}}: {{W+|vi|bướu}} * {{Z|gmq-bot}}: {{W-|gmq-bot|qwejs|m}} * {{Z|km}}: {{W+|km|បូក}} * {{Z|el}}: {{W+|el|καμπούρα|m}} {{werger-bin}} {{werger-ser|Girên li pişta hêştiran|2|id=girên li pişta hêştiran}} * {{Z|de}}: {{W+|de|Höcker|n}} * {{Z|as}}: {{W-|as|কুঁজ}}, {{W-|as|চুট}} * {{Z|ba}}: {{W-|ba|үркәс|sc=Cyrl}} * {{Z|be}}: {{W-|be|горб|n}} * {{Z|bg}}: {{W-|bg|гърбица|m|sc=Cyrl}} * {{Z|my}}: {{W+|my|လပို့}} * {{Z|ar}}: {{W-|ar|حَدَبَة|m}}, {{W+|ar|سَنَام|n}} * {{Z|hy}}: {{W+|hy|սապատ}} * {{Z|eo}}: {{W-|eo|ĝibo}} * {{Z|fi}}: {{W+|fi|kyttyrä}} * {{Z|fr}}: {{W+|fr|bosse|m}} * {{Z|ka}}: {{W-|ka|კუზი}} * {{Z|ha}}: {{W+|ha|tozo}} * {{Z|hi}}: {{W+|hi|कोहान|n}}, {{W+|hi|कूबड़|n}}, {{W+|hi|डिल्ला|n}}, {{W+|hi|कुब्बा|n}} * {{Z|nl}}: {{W+|nl|bult|n}} * {{Z|ang}}: {{W-|ang|hofor|n}} * {{Z|en}}: {{W+|en|hump}} * {{Z|it}}: {{W+|it|gobba|m}}, {{W-|it|gibbo|n}} * {{Z|ja}}: {{W+|ja|こぶ|tr=kobu}} * {{Z|ky}}: {{W+|ky|өркөч|sc=Cyrl}} * {{Z|ki}}: {{W-|ki|iguku}} * {{Z|cmn}}: {{W+|cmn|駝背}}, {{W-|cmn|驼背|tr=tuóbèi}}, {{W+|cmn|駝峰}}, {{W-|cmn|驼峰|tr=tuófēng}}, {{W+|cmn|峰|tr=fēng}}, {{W+|cmn|瘤|tr=liú}} * {{Z|mi}}: {{W-|mi|hiwi}} * {{Z|hu}}: {{W+|hu|púp}} * {{Z|mn}}: {{W+|mn|бөх}} * {{Z|nb}}: {{W+|nb|pukkel|n}} * {{Z|nn}}: {{W-|nn|pukkel|n}} * {{Z|ug}}: {{W-|ug|ئوركەچ}} * {{Z|uz}}: {{W+|uz|oʻrkach}} * {{Z|ps}}: {{W-|ps|بوکام|n|tr=bokām}} * {{Z|pl}}: {{W+|pl|garb|n}} * {{Z|pt}}: {{W+|pt|corcova|m}} * {{Z|kk}}: {{W-|kk|өркеш|sc=Cyrl}} * {{Z|ro}}: {{W+|ro|cocoașă|m}} * {{Z|ru}}: {{W+|ru|горб|n}} * {{Z|sh}}: {{W+|sh|kvrga|m}} * {{Z|dsb}}: {{W-|dsb|gjarb|n}} * {{Z|hsb}}: {{W-|hsb|horb|n}} * {{Z|es}}: {{W+|es|joroba|m}}, {{W+|es|giba|m}} * {{Z|sw}}: {{W+|sw|nundu}} * {{Z|sv}}: {{W+|sv|puckel|g}} * {{Z|th}}: {{W+|th|หนอก}} * {{Z|tt}}: {{W+|tt|өркәч|sc=Cyrl}} * {{Z|tr}}: {{W+|tr|hörgüç}} * {{Z|tk}}: {{W-|tk|örküç}} * {{Z|uk}}: {{W-|uk|горб|n}} * {{Z|vo}}: {{W+|vo|gobad}} * {{Z|km}}: {{W+|km|បូក}} * {{Z|el}}: {{W+|el|ύβος|n}}, {{W+|el|καμπούρα|m}} {{werger-bin}} {{werger-ser|cigareya ku hatiye kişandin|3|id=cigareya xilasbûyî}} * {{Z|de}}: {{W+|de|Stummel|n}}, {{W+|de|Zigarettenstummel|n}}, {{W+|de|Kippe|m}}, {{W-|de|Zigarettenkippe|m}} * {{Z|be}}: {{W-|be|недаку́рак|n}} * {{Z|bg}}: {{W+|bg|угарка|m}}, {{W+|bg|фас|n}} * {{Z|my}}: {{W-|my|ก้นบุหรี่}} * {{Z|cs}}: {{W-|cs|nedopalek|n}}, {{W+|cs|oharek|n}}, {{W+|cs|špaček|n}}, {{W+|cs|vajgl}} * {{Z|da}}: {{W-|da|skod|nt}} * {{Z|ar}}: {{W-|ar|عَقْب سِيجَارَة}} * {{Z|hy}}: {{W+|hy|կճատ}} * {{Z|fi}}: {{W+|fi|natsa}}, {{W+|fi|tumppi}}, {{W+|fi|tupakantumppi}} * {{Z|fr}}: {{W+|fr|mégot|n}} * {{Z|gd}}: {{W-|gd|bun|n}} * {{Z|gl}}: {{W+|gl|cabicha|m}} * {{Z|nl}}: {{W+|nl|peuk|n}} * {{Z|en}}: {{W+|en|butt}} {{mane|of a cigarette}} * {{Z|ga}}: {{W-|ga|bun|n}}, {{W-|ga|bun toitín|n}} * {{Z|it}}: {{W+|it|mozzicone|n}} * {{Z|is}}: {{W-|is|stubbur|n}}, {{W-|is|sígarettustubbur|n}} * {{Z|ja}}: {{W+|ja|吸殻|tr=すいがら, suigara}} * {{Z|ca}}: {{W+|ca|punta|m}}, {{W+|ca|burilla|m}} * {{Z|ko}}: {{W-|ko|꽁초}}, {{W-|ko|담배꽁초}} * {{Z|lv}}: {{W-|lv|izsmēķis|n}} * {{Z|mk}}: {{W-|mk|отпушок|n}}, {{W-|mk|пикавец|n}} * {{Z|ms}}: {{W-|ms|puntung rokok}} * {{Z|cmn}}: {{W+|cmn|煙頭}}, {{W+|cmn|烟头|tr=yāntóu}} * {{Z|gv}}: {{W-|gv|bun|n}} * {{Z|hu}}: {{W+|hu|csikk}} * {{Z|nb}}: {{W+|nb|sneip|n}} * {{Z|pl}}: {{W+|pl|niedopałek|n}}, {{W+|pl|pet|n}} * {{Z|pt}}: {{W+|pt|bituca|m}}, {{W-|pt|guimba|m}}, {{W+|pt|beata|m}} * {{Z|ro}}: {{W+|ro|muc|nt}}, {{W+|ro|chiștoc|nt}} * {{Z|ru}}: {{W+|ru|оку́рок|n}}, {{W+|ru|бычо́к|n}} * {{Z|scn}}: {{W+|scn|muzzuni|n}} * {{Z|sh}}: {{W-|sh|опушак|n|sc=Cyrl}}, {{W+|sh|opušak|n}} * {{Z|sk}}: {{W-|sk|ohorok|n}} * {{Z|sl}}: {{W-|sl|ogorek|n}} * {{Z|es}}: {{W+|es|colilla|m}}, {{W+|es|bacha|m}}, {{W+|es|calilla|m}}, {{W-|es|chenca|m}}, {{W+|es|chicote|n}}, {{W+|es|chinga|m}}, {{W+|es|chiva|m}}, {{W+|es|pava|m}}, {{W+|es|pucho|n}} * {{Z|sv}}: {{W+|sv|fimp|g}}, {{W+|sv|stump|g}} * {{Z|th}}: {{W+|th|ก้นบุหรี่}} * {{Z|tr}}: {{W+|tr|izmarit}} * {{Z|uk}}: {{W-|uk|недо́палок|n}} * {{Z|cy}}: {{W-|cy|stwmp|n}}, {{W-|cy|bonyn|n}}, {{W-|cy|stwmpyn|n}} * {{Z|km}}: {{W-|km|កន្ទុយបារី|tr=kɑntuy baarəy}} * {{Z|el}}: {{W+|el|αποτσίγαρο|nt}} {{werger-bin}} {{werger-ser|serikê kîr|4}} {{werger-bin}} {{werger-bnr|kîr (5)|kîr}} {{werger-bin}} === Rengdêr === {{rengdêr|ku}} # {{guharto|ku|qop|w=[[kulek]], [[seqet]]}} ==== Etîmolojî ==== Ji {{paş|ku|qop|-ik}}. === Çavkanî === {{çavkanî}} 9y50eri3989odhsqa2eih8mzqm494ka vacant 0 201572 6329683 6088624 2026-08-12T18:22:08Z ~2026-39478-20 15145 /* {{ziman|en}} */ ji bo van mehnan hemuyan yek gotinek kurdi heye; vacate: betilandin > vacation: betilan, lewma vacant: betal 6329683 wikitext text/x-wiki == {{ziman|en}} == === Bilêvkirin === * {{deng|en|en-us-vacant.ogg|dever=DYA}} === Rengdêr === {{rengdêr|en}} # [[betal]] 8isop24tx2gzgagq3qp7imjuox9rfby 6329689 6329683 2026-08-12T18:53:22Z Wikihez 7344 Guhartinên [[Special:Contributions/~2026-39478-20|~2026-39478-20]] ([[User talk:~2026-39478-20|gotûbêj]]) hatine betalkirin, vegerand guhartoya dawî ya [[User:Balyozbot|Balyozbot]] 6088624 wikitext text/x-wiki == {{ziman|en}} == === Bilêvkirin === * {{deng|en|en-us-vacant.ogg|dever=DYA}} === Rengdêr === {{rengdêr|en}} # [[vala]], [[vekirî]], [[bêkar]], bi nêrînên bêwate, (huk.) hatî terkirin, [[bêxwedî]], [[bêwêrîs]], [[bêmîratgir]] ntrrfjxqq2wmjxw8fxws7c4dtxr47an kefik 0 261287 6329616 6329615 2026-08-12T12:12:11Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6329616 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Kefik.jpg|thumb|kefik]] {{navdêr|ku|z=m}} # [[amûr|Amûra]] ku ji bo [[carû]]kirinê, [[sewax]]kirinê tê [[bi kar anîn|bikaranîn]]. #: {{hevmaneyên peyvê|ku|malinc}} # Cihê kevir tê xistin ê [[çeqelîk]]an. ==== Hevmane ==== * {{g|ku|male}} ==== Jê ==== {{kol3|ku|cure=Jê |kefik kirin<pos:lêker> |kefikkirin<pos:navdêr> |kefikkirî<pos:rengdêr> }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|maurerkelle}} * {{Z|fa}}: {{W+|fa|برآمدگی}}, {{W+|fa|قوس}}, {{W+|fa|انحنا}} * {{Z|en}}: {{W+|en|trowel}}, {{W|en|mould|guman=erê}} * {{Z|tr}}: {{W+|tr|mala}}, {{W+|tr|dışık}}, {{W+|tr|küf}}, {{W|tr|köpük|guman=erê}}, {{W+|tr|aya}} {{werger-bin}} q0766j2mb1h4iww1fzaj9f68uz6yjtl qîtik 0 265073 6329910 6329303 2026-08-13T01:12:09Z Wikihez 7344 6329910 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=m}} # {{maneid|ku|çiqilk}} [[girêk]], [[pirsik]]<ref>{{Ferhenga Kamêran}}</ref>, [[çiqilk]]<ref>{{Ferhenga Destî|r=324}}</ref> #: '''''qîtika''' darê; ang girêkên liser qurmê daran'' #* {{jêder-malper|ku|jêgirtin=Hin şax û '''qîtikan''' li ber xwe dibîne, radibe dide hev û datîne ser barê xwe...|nivîskar=Ciwanê Abdal|sernav=Xêza Şîn|url=http://www.xoybun.com/modules.php?name=Sektions&op=printpage&artid=245|malper=xoybun.com|sal=}} # {{f|ku|balinde}} {{q|navz|Phalacrocorax}}.<ref name="Farqînî" >{{Zana Farqînî|r=1525}}</ref> #* {{jêder-malper|ku|metna-orîjînal=tr:Belki bir kuştur. Belki tosbağadır. Belki bir kirpidir. Belki de yakın denizden seslenen bir balık, bir canavardır. Karabataktır. Mihalaki kuşudur.|url2=http://derkenar.com/sait-faik-abasiyanik+hist-hist|orîjînal=Hişt, Hişt!|nivîskar=Sait Faik Abasıyanık|wergêr=Ömer Özbek|sernav=HİŞT HİŞT!|url=https://sehrengizdergisi.wordpress.com/|malper=sehrengizdergisi.wordpress|sal=2016|jêgirtin=Dibe ku çûkek e. Dibe ku kîsoyek e. Dibe ku jîjoyek e. Dibe ku ê badike ji behrekî nêzîk ve masîyek, cinawirek e. '''Qîtik''' e. Çûkê mihalakî ye.}} # {{f|ku|sebze}} [[ecûr]], [[tirozî]]<ref name="Farqînî" /> # {{guharto|ku|gilik|w=klîtoris}}<ref name="Farqînî" /> ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser|1}} * {{Z|tr}}: {{W+|tr|budak}}<ref name="izolî">{{ferhenga izolî|r=344}}</ref> {{werger-bin}} {{werger-ser|2}} * {{Z|tr}}: {{W+|tr|karabatak}}<ref name="Farqînî" /> {{werger-bin}} {{werger-ser|3}} * {{Z|tr}}: {{W+|tr|acur}}<ref name="Farqînî" /> {{werger-bin}} {{werger-bnr|4|gilik}} {{werger-ser|?}} * {{Z|de}}: {{W+|de|Wadenbein}} {{n}} * {{Z|fa}}: {{W+|fa|بست}}, {{W-|fa|خیلی سریع}}, {{W-|fa|ساقه کوچک}}, {{W+|fa|فوری}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=n}} # [[hestî|Hestiyekî]] [[ling]]ê.<ref name="yusuf paşa" >{{ferhenga yusuf paşa|r=185}}</ref> #* {{jêder-kitêb|ku|jêgirtin=Em jî li ser vê gotina pêşiyên me gotî: "Mî (mêşin) û bizin her yekê bi '''qîtik(ling)ên''' xwe va têne dalqandin" bi hişmendî fikirin.|nivîskar=Kemal Tolan|sernav=Gengeşe û Sedemên Peyva ku Êzdî Bilêvnakin|weşanxane=Weşanên Na|sal=2013|rûpel=92|isbn=9786056392627}} # {{f|ku|lîstik}} [[qîtê]] #: {{hevmane|ku|tûtê|darqîtik}}<ref>{{kovara kurmancî|hejmar=61|sernav=Hin peyvên kêmnas – nenas|nivîskar=Reşo Zîlan|r=4}}</ref> #* {{jêder-malper|ku|jêgirtin='''Qîtik''': Du kom dilîzin. Bi şiva tê lîstin. Ji komê dor bi dor yek qîtikê davêje. Şiv destekî da, parçekî darê ku jê ra dibêjin qîtik, didine ser qevda dest û şivê, wê qîtikê davêjin hewa û bi şivê lê dixin davêjin dûr.|nivîskar=Yaşar Eroğlu|sernav=Lîstikê zara yê gundê Qazî|url=https://gundeqazi.blogspot.com/2019/03/litike-zara-ye-gunde-qazi.html|malper=gundeqazi.blogspot.com|sal=2018}} #* {{jêder-malper|ku|jêgirtin=Zarokan bi hindilk, '''qîtik''', heftok û xara dilîstin.|nivîskar=Xidir Ûso|sernav=Berpirsîyarîya Xerzan|url=https://portal.netewe.com/berpirsiyariya-xerzan/|malper=portal.netewe.com|sal=2016}} # [[şiv|Şiva]] ku ev [[lîstik]] pê re tê [[lîstin]].<ref name="Farqînî" /> #: {{hevmane|ku|tirtîl|tût}}<ref>{{kovara kurmancî|hejmar=61|sernav=Hin peyvên hêla Bașûrê Wanê|nivîskar=Mele Şeban Turgut û Elîṣêr|r=1}}</ref> #* {{jêder-malper|ku|jêgirtin=Qîtik: Du kom dilîzin. Bi şiva tê lîstin. Ji komê dor bi dor yek qîtikê davêje. Şiv destekî da, parçekî darê ku jê ra dibêjin '''qîtik''', didine ser qevda dest û şivê, wê qîtikê davêjin hewa û bi şivê lê dixin davêjin dûr.|nivîskar=Yaşar Eroğlu|sernav=Lîstikê zara yê gundê Qazî|url=https://gundeqazi.blogspot.com/2019/03/litike-zara-ye-gunde-qazi.html|malper=gundeqazi.blogspot.com|sal=2018}} #* {{jêder-kitêb|ku|jêgirtin=Amûrên vê lîstikê darek 70-80 cm û '''qîtikek''' bi qasî 20-25 cm ye.|nivîskar=Aram Gernas|sernav=Folklor û Cıvat -Folklor, wêje, ziman, çand, xeyset, muzîk, urf û adet, dîrok-|url=https://www.google.com.tr/books/edition/Folklor_%C3%BB_C%C4%B1vat_Folklor_w%C3%AAje_ziman_%C3%A7/iUqeEAAAQBAJ?hl=en&gbpv=1&dq=%22q%C3%AEtikek%22&pg=PA573&printsec=frontcover|weşanxane=Pak Ajans|sal=2022|rûpel=573|isbn=9786257383578}} # [[parçe]]<ref name="Farqînî" /> #* {{jêder-malper|ku|jêgirtin=Paşê jî rima xwe ya nola rima di destê Dewrêşê Evdî de, tedît ew rima dowazde movik û çarde '''qîtikî''', diziqitîne gewriya Chimeria.|nivîskar=Agîd Yazar|sernav=Bellerefon û dêwe sê serî chimeria|url=https://xwebun1.org/bellerefon-u-dewe-se-seri-chimeria/|malper=xwebun1.org|sal=2022}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Formên alternatîv ==== * {{hw|ku|qîçik||hestiyê lingê}}<ref name="yusuf paşa" /> ==== Werger ==== {{werger-ser|1}} * {{Z|en}}: {{W+|en|fibula}}, {{W+|tr|calf bone}} * {{Z|tr}}: {{W+|tr|baldır kemiği}},<ref name="izolî"/> {{W-|tr|bacak kemiği}},<ref name="Anter">{{Musa Anter|r=113}}</ref><ref name="Farqînî" /> {{W-|tr|paça kemiği}},<ref name="Anter"/> {{werger-bin}} {{werger-ser|2}} * {{Z|tr}}: {{W+|tr|çelik çomak}} {{werger-bin}} {{werger-ser|3}} {{werger-bin}} {{werger-ser|4}} {{werger-bin}} === Çavkanî === {{çavkanî}} == {{ziman|zza}} == === Navdêr === {{navdêr|zza|z=n}} # {{g|ku|qîtik|id=çiqilk}},<ref>{{kovar|kovar=Nüsha|url=https://dergipark.org.tr/en/download/article-file/1301542|sernav=TÜRKÇE-KİRMANCCA (ZAZACA) SÖZLÜK BAĞLAMINDA ZAZACADA EŞANLAMLI SÖZCÜKLER|nivîskar=Ahmet Kırkan|hejmar=51|sal=2020|rûpel=180}}</ref> [[çiqilk]] #: {{hevmane|zza|qît|z1=n|toke|z2=m|girçike|z3=n}} === Çavkanî === {{çavkanî}} 7nhh41zzyg1o44gbr5ofxf8jfn15tdl jinûvekirin 0 358079 6329797 6309365 2026-08-12T22:42:01Z Wikihez 7344 6329797 wikitext text/x-wiki {{bnr-l|ji nû ve kirin}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m|lk=ji nû ve kirin}} # kirina carekî din, [[dubarekirin]] #* {{jêder-kovar|ku|jêgirtin=Ev studyoya çêkerên lîstikan ên ji Mîlanoyê, di sala 2003yan de hat damezrandin, bi awayekî zelal projeyeke '''jinûvekirina''' malê xwe ya lîstikên kompûterê bû û bangeke radîkalkirina çanda populer îfade dikir.|kovar=Le Monde diplomatique kurdî|sernav=Ruhê rexnegir û lîstika komputerê|url=https://diplo-kurdi.com/sites/default/files/2020-06/LMD-50-dlg.pdf|nivîskar=Vincent de Maupéou|wergêr=Luqman Guldivê|hejmar=50|sal=4/2020|rûpel=20}} #* {{jêder-malper|ku|jêgirtin=Îtaliya '''jinûvekirina''' balyozxaneya xwe li Sûriyê gotûbêj dike|sernav=Îtaliya jinûvekirina balyozxaneya xwe li Sûriyê gotûbêj dike|url=https://www.arknews.net/ku/node/6730|malper=arknews.net|dîrok=14.01.2019}} #* {{jêder-malper|ku|jêgirtin=Ev hejmar tên tomarkirin du rojan berî sistkirina bendan û '''jinûvekirina''' bazar û xwaringeh û navendên ayînî.|sernav=Hindistan bi Hejmara Keysên Korona Dikeve Pêş Îtalya|url=https://www.dengeamerika.com/a/india-coronavirus-new-cases/5451982.html|malper=dengeamerika.com|sal=6/2020}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ji {{pêk|ku|ji nû ve|kirin}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|repeat}}, {{W|en|refresh}} * {{Z|tr}}: {{W|tr|yenileme}}, {{W|tr|tekrarlama}} {{werger-bin}} === Çavkanî === # {{Chyet|r=291}} tq4xvfjn74cj4kf9k28eujy3dpu304k vegotinnasî 0 380582 6329621 6270090 2026-08-12T13:44:07Z Wikihez 7344 6329621 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[vegêrannasî]] #* {{jêder-kitêb|ku|nivîskar=Nüket Esen; Ramazan Çeçen|sernav=Sempozyûma Edebiyata Berawirdî Ji Duh Heta Îro di Edebiyatên Tirkî û Kurdî de Texeyulên Nasnameyî|weşanxane=Unîversîteya Artukluyê|sal=2015|rûpel=7|isbn=978-605-4202-19-5|jêgirtin=Piştre li ser daweta Zanîngeha Mardîn Artukluyê, di Medreseya Zincîriyeyê de, ku avahiyeke şaheser e, bi navê "Destpêka '''Vegotinnasiyê'''" min konferansek da.}} #* {{jêder-websîte|ku|nivîskar=Zinarê Xamo|sernav=Li ser hevpeyvîna Remezan Alan|websîte=zinarexamo.blogspot.com|url=https://zinarexamo.blogspot.com/2014/06/li-ser-hevpeyvina-remezan-alan.html|tarîx=2014-06-03|jêgirtin=Ew li zanîngeha Artukluyê dersên ”edebiyata kurdî ya modern, “rexneya edebî”, “'''vegotinnasî”''' û “zanista edebiyata modern” dide.}} #* {{jêder-kovar|ku|jêgirtin=Li zanîngehê, li dersê, li xwaringehê, li qantînê wextê ku ez bi hevalan re diştexilîm jî min bi xwe digot gelo ez çawa dest bi çîrokekê bikim, hewce ye ez hin çîrokan bixwînim an jî hinek kitêbên teorîk ku mamoste di dersa '''vegotinnasiyê''' de rayî me dabû û me hin piratîk jî li ser wan kiribûn, bixwînim?|kovar=Bar|sernav=Pîrebokên Qubalekan - II|nivîskar=Mehmet Emîn Cîrîk|hejmar=4|sal=2020|rûpel=32}} ==== Etîmolojî ==== Ji {{qertaf|ku|vegotin|-nasî}}. ==== Werger ==== {{werger-ser|lêkolîna vegotinê ya akademîk|1}} * {{Z|de}}: {{W-|de|Erzähltheorie|m}}, {{W+|de|Narratologie|m}} * {{Z|zh}}: *: {{Z|cmn}}: {{W-|cmn|敘事學|tr=xùshìxué}} * {{Z|fi}}: {{W+|fi|narratologia}} * {{Z|fr}}: {{W+|fr|narratologie|m}} * {{Z|nl}}: {{W+|nl|narratologie|m}} * {{Z|en}}: {{W+|en|narratology}} * {{Z|it}}: {{W-|it|narratologia|m}} * {{Z|ca}}: {{W-|ca|narratologia|m}} * {{Z|ky}}: {{W-|ky|нарратология}} * {{Z|lt}}: {{W-|lt|naratologija|m}} * {{Z|hu}}: {{W+|hu|narratológia}} * {{Z|pl}}: {{W+|pl|narratologia|m}} * {{Z|pt}}: {{W-|pt|narratologia|m}} * {{Z|kk}}: {{W-|kk|нарратология}} * {{Z|ru}}: {{W+|ru|нарратоло́гия|m}} * {{Z|es}}: {{W+|es|narratología|m}} * {{Z|tr}}: {{W-|tr|naratoloji}}, {{W+|tr|anlatıbilim}}, {{W+|tr|anlatı bilimi}} {{werger-bin}} :{{werger çavkanî|en|narratology|beş=Ev qismê Wergerê|oldid=88652576}} e93w91jjdfepr7sdrinmcp2c3id5i2p kustex 0 450166 6329829 6245407 2026-08-12T23:25:57Z Wikihez 7344 /* Rengdêr */ 6329829 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Kesê [[qure]], [[qebe]] û [[bêedeb]]. #: {{hevmane|ku|qure|pozbilind|kanc|nefsmezin|mexrûr|bêar|bisteh|bêfedî}} #* {{jêder-kovar|ku|jêgirtin=Ger zimên were sadekirin wê demê qîmeta rîsaleyan piçûk dibe û ew ên hewl didin ku vê karî bikin mirovên '''kustex''' in.|kovar=Muhakemat Uluslararası Risale-i Nur Araştırmaları Dergisi|sernav=Mela Îbrahîm Xelîlê Amedî û Rêbaza Wî di Wergera Rîsaleyên Nûrê da|nivîskar=Nesim SÖNMEZ|url=https://dergipark.org.tr/en/download/article-file/2767930|cîld=1|hejmar=2|dîrok=31.12.2022|rûpel=82}} ==== Formên alternatîv ==== * {{hw|ku|kustah}} ==== Etîmolojî ==== Ji {{ji|fa|ku|گستاخ|tr=gostâx}} (?). ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|frech}}, {{W+|de|anmassend}}, {{W+|de|keck}}, {{W|de|kess}} * {{Z|fa}}: {{W+|fa|پرنخوت}}, {{W+|fa|فرومایه}} * {{Z|en}}: {{W+|en|insolent}}, {{W+|en|impertinent}}, {{W+|en|arrogant}}, {{W+|en|immodest}}, {{W+|en|presumptuous}}, {{W+|en|cheeky}}, {{W+|en|brash}}, {{W+|en|flippant}} * {{Z|tr}}: {{W+|tr|küstah}} {{werger-bin}} 76f4waeln6ja3ubbk390myn778e9h7g kartêk 0 459812 6329800 6309656 2026-08-12T22:46:42Z Wikihez 7344 6329800 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[tesîr|Tesîr]], [[bandor]]. #* {{jêder|ku|jêgirtin=Van tiştên ku di nava kêliyekê de qewimîbûn '''kartêkeke''' mezin li ser Remezan hiştibûn.|{{Jêgirtin/Mîran Janbar/Qolyeya Cecileê|r=35}}}} #* {{jêder-malper|ku|jêgirtin=Dengê Xalê Muzeferê ku ev 20 sal e çaverêya kurê xwe dike ne ku bi tenê gazî me dike em govaniyê li kurê wî yê winda û li jinavçûna mala wî bikin, lê herwiha em govaniyê li karesatekê jî bikin, a ku di mêjûya nêzîk de cemawerdane ber pêlên '''kartêka''' xwe.|sernav=Li bajêr binihêre, ji bo ku tu di bîr bînî û bibêjî|url=https://archive.org/details/revealingthecitythroughmemorykurdishenglish|malper=Anadolu Kultur.org|sal=01/2014}} #* {{jêder-malper|ku|jêgirtin=Loma jî, di vê qonaxê de, ‘biyanek’ heye. Ev ‘biyan’ di qonaxa avakirina ‘xwebûnî’yê de, dibe sedem û '''kartêka''' ‘nebanbûnê’.|nivîskar=Dilawer Zeraq|sernav=‘Xwebûnî ya Wêjaya Kurdî’|url=https://web.archive.org/web/20200401134204/https://yeniozgurpolitika.net/xwebuni-ya-wejaya-kurdi/|malper=Yeni Özgür Politika|dîrok=20.07.2019}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Neologizmeke ji [[kar]] + [[tê]] + [[kirin]] ==== Werger ==== {{werger-ser|bandor}} * {{Z|en}}: {{W+|en|effect}} * {{Z|tr}}: {{W+|tr|etki}} {{werger-bin}} {{werger-ser|tevkirî}} * {{Z|en}}: {{W+|en|contribution|guman=erê}} * {{Z|tr}}: {{W+|tr|katkı|guman=erê}} {{werger-bin}} 9sh48tnkhospkg51ev75bi3f2v21166 Şablon:werger-ser 10 517149 6329699 6111628 2026-08-12T19:29:45Z Wikihez 7344 6329699 wikitext text/x-wiki <templatestyles src="Şablon:werger-ser/style.css"/><includeonly><div style="background-color: transparent; border-collapse: collapse;"> <div class="NavFrame werger-content" data-toggle-category="Wergerê" {{#if:{{{id|{{{1|}}}}}}|id="Werger-{{anchorencode:{{{id|{{{1|}}}}}}}}"}}> <div class="NavHead"><i>{{{1|}}}</i>{{#if:{{{2|}}}|&nbsp;({{{2|}}})}}</div> <div class="NavContent"> <div style="{{#if: {{{stûn|}}} | column-count: {{{stûn}}}; -webkit-column-count: {{{stûn}}}; -moz-column-count: {{{stûn}}}; | {{#if: {{{firehî|}}} | column-width: {{{firehî}}}; -webkit-column-width: {{{firehî}}}; -moz-column-width: {{{firehî}}}; | column-width: 26em; -webkit-column-width: 26em; -moz-column-width: 26em; }}}} {{#if:{{{bgcolor|}}}|background-color: {{{bgcolor|}}}; | }} {{#if:{{{valign|}}}|vertical-align: {{{valign|}}}; |vertical-align: top; }} {{#if:{{{align|}}}|text-align: {{{align|}}};|text-align: left; }}"><div class="translations"></includeonly><noinclude>{{belgekirin}}</noinclude> 7626g1kir00ts9ak9vha1elp1d98jip 6329703 6329699 2026-08-12T19:37:40Z Wikihez 7344 Guhartoya [[Special:Diff/6329699|6329699]] yê [[Special:Contributions/Wikihez|Wikihez]] ([[User talk:Wikihez|gotûbêj]]) şûnde kir 6329703 wikitext text/x-wiki <templatestyles src="Şablon:werger-ser/style.css"/><includeonly><div style="background-color: transparent; border-collapse: collapse;"> <div class="NavFrame werger-content" {{#if:{{{id|{{{1|}}}}}}|id="Werger-{{anchorencode:{{{id|{{{1|}}}}}}}}"}}> <div class="NavHead"><i>{{{1|}}}</i>{{#if:{{{2|}}}|&nbsp;({{{2|}}})}}</div> <div class="NavContent"> <div style="{{#if: {{{stûn|}}} | column-count: {{{stûn}}}; -webkit-column-count: {{{stûn}}}; -moz-column-count: {{{stûn}}}; | {{#if: {{{firehî|}}} | column-width: {{{firehî}}}; -webkit-column-width: {{{firehî}}}; -moz-column-width: {{{firehî}}}; | column-width: 26em; -webkit-column-width: 26em; -moz-column-width: 26em; }}}} {{#if:{{{bgcolor|}}}|background-color: {{{bgcolor|}}}; | }} {{#if:{{{valign|}}}|vertical-align: {{{valign|}}}; |vertical-align: top; }} {{#if:{{{align|}}}|text-align: {{{align|}}};|text-align: left; }}"><div class="translations"></includeonly><noinclude>{{belgekirin}}</noinclude> 5vffqfgtzo4mziw4km2q6w0fo92owu8 kero, nemire heta qîvar şîn dibin 0 519628 6329801 6251730 2026-08-12T22:52:04Z Wikihez 7344 6329801 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Gotineke pêşiyan === {{gp|ku}} # [[tehemil|Tehemil]] kirin di [[dem]]ên [[teng]] de ku [[herdem]] [[nexweşî]] nabe, lê [[wext]]ê [[xweş]] wê bê ==== Bi alfabeyên din ==== * {{ku-ar|کەرو، نەمرە حەتا قیڤار شین دبن}} ==== Formên alternatîv ==== {{kol3|ku|cure=Formên alternatîv |kero nemir heta qîvar şînbê |kero nemir bihar hat, pîrê nemir qîvar hat |kero nemire heya qîfar şîn dibin.<ref:{{malper|sernav=Kero nemire heya qîfar şîn dibin.|url=http://www.gotinenpesiyan.com/?p=5361|malper=gotinenpesiyan.com|ziman=ku}}> |kero nemire heta biharê ku qîvar çêdibin<ref:{{malper|nivîskar=Zeynelabidîn Zinar|url=http://www.lotikxane.com/2020/11/11/qaso-gotinen-pesiyan-in/|sernav=Qaşo “Gotinên Pêşiyan“ in|malper=lotikxane.com|dîrok=2020|ziman=ku}}> |kero nemıre buhare heta çêbin qîvare<ref:{{pirtûk|nekat=1|nivîskar=Michael L. Chyet|url=https://books.google.com.tr/books?id=ZDLPDwAAQBAJ&pg=PA176&lpg=PA176&dq=%22kero+nemire%22&source=bl&ots=mlKNXBV2QC&sig=ACfU3U0u6kxo_dIha9bPAz1osEkWiBTb9A&hl=tr&sa=X&ved=2ahUKEwjk4IOfrKPtAhVFxYUKHf-cCjA4ChDoATADegQIARAC#v=onepage&q=%22kero%20nemire%22&f=false|sernav=FERHENGA BIRÛSKÎ - Kurmanji-English Dictionary - Volume Two: M-Z|weşanxane=Transnational Press London|sal=2020|rûpel=176|isbn=9781912997077}}> |kero nemire bihar e, heta qêvar heşîn dibe<ref:{{malper|nivîskar=MIRAD GUNDIKÎ|url=http://www.nefel.com/articles/article_detail.asp?RubricNr=1&ArticleNr=4104|sernav=Dewlemendiya îdyomên kurdî|malper=nefel.com|dîrok=2009|ziman=ku}}> |kero nemire heta kîvar şînbît <ref:{{malper|nivîskar=VAHİT AKIN|url=http://guzeres.tv.tr/sayfa.asp?sayfaID=9|sernav=Gotinêt Mezinan|malper=guzeres.tv.tr|ziman=ku}}> |kero nemire buhar e giya şîn bû qîfar e<ref:{{kovar|kovar=Agirî|url=https://kurdistanmedia.com/content/upload/1/newsletter/agiri-371.pdf|sernav=Kero nemire buhar e giya şîn bû qîfar e|nivîskar=Elî Munezemî|hejmar=371|dîrok=05.04.2020|rûpel=4|ziman=ku}}> |kero nemire heta kîvar şîn dibin<ref:{{kovara kurmancî|hejmar=14-15|sernav=Hinek metelok û gotinên pês,iya ji hêla Hekarîya|nivîskar=Rojan HAZIM|r=147}}> |pîrê memire bihar tê, kero nemire qîvar tê<ref:{{malper|url=http://www.xoybun.com/modules/Content/print.php?pid=860|sernav=Gotinên pêşiyan|malper=xoybun.com|ziman=ku}}> |kero nemire heta qîfal şinbibin<ref:{{malper|nivîskar=dilazadart|url=https://dilazad.wordpress.com/2013/10/19/ji-kaniya-zanine-cend-tilop/|sernav=JI KANÎYA ZANÎNÊ ÇEND TILOP|malper=dilazad.wordpress.com|dîrok=2013|ziman=ku}}> |kero nemire qîar şîn tê<ref:{{kovar|kovar=Pîne|url=http://www.arsivakurd.org/images/arsiva_kurd/kovar/pine/pine_29.pdf|sernav=Caşik|hejmar=29|sal=2000|rûpel=|ziman=ku}}> }} ==== Hevmane ==== * [[kerê nemir bihar ê tê, pîrê nemir pincar î tê]] ==== Etîmolojî ==== Ji ''[[kero]] + [[nemire]] + [[heta]] + [[qîvar]] + [[şîn]] + [[dibin]]'' ==== Werger ==== {{werger-ser|stûn=1}} * {{Z|en}}: (lit) {{W|en|donkey, don't die until the thistles sprout}}, (dynamic equivalent) {{W|en|keep your chin up}} {{werger-bin}} === Çavkanî === {{çavkanî}} [[Kategorî:Kurmanciya kolankî li Dihokê]] 0hydeeuidqqky4ia772r15dk73fc5xt 6329802 6329801 2026-08-12T22:52:40Z Wikihez 7344 Guhartoya [[Special:Diff/6329801|6329801]] yê [[Special:Contributions/Wikihez|Wikihez]] ([[User talk:Wikihez|gotûbêj]]) şûnde kir 6329802 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Gotineke pêşiyan === {{gp|ku}} # [[tehemil|Tehemil]] kirin di [[dem]]ên [[teng]] de ku [[herdem]] [[nexweşî]] nabe, lê [[wext]]ê [[xweş]] wê bê ==== Bi alfabeyên din ==== * {{ku-ar|کەرو، نەمرە حەتا قیڤار شین دبن}} ==== Formên alternatîv ==== {{stûn| * [[kero nemir heta qîvar şînbê]] * [[kero nemir bihar hat, pîrê nemir qîvar hat]] * [[kero nemire heya qîfar şîn dibin.]]<ref>{{malper|sernav=Kero nemire heya qîfar şîn dibin.|url=http://www.gotinenpesiyan.com/?p=5361|malper=gotinenpesiyan.com|ziman=ku}}</ref> * [[kero nemire heta biharê ku qîvar çêdibin]]<ref>{{malper|nivîskar=Zeynelabidîn Zinar|url=http://www.lotikxane.com/2020/11/11/qaso-gotinen-pesiyan-in/|sernav=Qaşo “Gotinên Pêşiyan“ in|malper=lotikxane.com|dîrok=2020|ziman=ku}}</ref> * [[kero nemıre buhare heta çêbin qîvare]]<ref>{{pirtûk|nekat=1|nivîskar=Michael L. Chyet|url=https://books.google.com.tr/books?id=ZDLPDwAAQBAJ&pg=PA176&lpg=PA176&dq=%22kero+nemire%22&source=bl&ots=mlKNXBV2QC&sig=ACfU3U0u6kxo_dIha9bPAz1osEkWiBTb9A&hl=tr&sa=X&ved=2ahUKEwjk4IOfrKPtAhVFxYUKHf-cCjA4ChDoATADegQIARAC#v=onepage&q=%22kero%20nemire%22&f=false|sernav=FERHENGA BIRÛSKÎ - Kurmanji-English Dictionary - Volume Two: M-Z|weşanxane=Transnational Press London|sal=2020|rûpel=176|isbn=9781912997077}}</ref> * [[kero nemire bihar e, heta qêvar heşîn dibe]]<ref>{{malper|nivîskar=MIRAD GUNDIKÎ|url=http://www.nefel.com/articles/article_detail.asp?RubricNr=1&ArticleNr=4104|sernav=Dewlemendiya îdyomên kurdî|malper=nefel.com|dîrok=2009|ziman=ku}}</ref> * [[kero nemire heta kîvar şînbît]] <ref>{{malper|nivîskar=VAHİT AKIN|url=http://guzeres.tv.tr/sayfa.asp?sayfaID=9|sernav=Gotinêt Mezinan|malper=guzeres.tv.tr|ziman=ku}}</ref> * [[kero nemire buhar e giya şîn bû qîfar e]]<ref>{{kovar|kovar=Agirî|url=https://kurdistanmedia.com/content/upload/1/newsletter/agiri-371.pdf|sernav=Kero nemire buhar e giya şîn bû qîfar e|nivîskar=Elî Munezemî|hejmar=371|dîrok=05.04.2020|rûpel=4|ziman=ku}}</ref> * [[kero nemire heta kîvar şîn dibin]]<ref>{{kovara kurmancî|hejmar=14-15|sernav=Hinek metelok û gotinên pês,iya ji hêla Hekarîya|nivîskar=Rojan HAZIM|r=147}}</ref> * [[pîrê memire bihar tê, kero nemire qîvar tê]]<ref>{{malper|url=http://www.xoybun.com/modules/Content/print.php?pid=860|sernav=Gotinên pêşiyan|malper=xoybun.com|ziman=ku}}</ref> * [[kero nemire heta qîfal şinbibin]]<ref>{{malper|nivîskar=dilazadart|url=https://dilazad.wordpress.com/2013/10/19/ji-kaniya-zanine-cend-tilop/|sernav=JI KANÎYA ZANÎNÊ ÇEND TILOP|malper=dilazad.wordpress.com|dîrok=2013|ziman=ku}}</ref> * [[kero nemire qîar şîn tê]]<ref>{{kovar|kovar=Pîne|url=http://www.arsivakurd.org/images/arsiva_kurd/kovar/pine/pine_29.pdf|sernav=Caşik|hejmar=29|sal=2000|rûpel=|ziman=ku}}</ref> }} ==== Hevmane ==== * [[kerê nemir bihar ê tê, pîrê nemir pincar î tê]] ==== Etîmolojî ==== Ji ''[[kero]] + [[nemire]] + [[heta]] + [[qîvar]] + [[şîn]] + [[dibin]]'' ==== Werger ==== {{werger-ser|stûn=1}} * {{Z|en}}: (lit) {{W|en|donkey, don't die until the thistles sprout}}, (dynamic equivalent) {{W|en|keep your chin up}} {{werger-bin}} === Çavkanî === {{çavkanî}} [[Kategorî:Kurmanciya kolankî li Dihokê]] 0lhj8d9c4t539zprea8j8vdp6lyu0ns 6329803 6329802 2026-08-12T22:53:29Z Wikihez 7344 6329803 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Gotineke pêşiyan === {{gp|ku}} # [[tehemil|Tehemil]] kirin di [[dem]]ên [[teng]] de ku [[herdem]] [[nexweşî]] nabe, lê [[wext]]ê [[xweş]] wê bê ==== Bi alfabeyên din ==== * {{ku-ar|کەرو، نەمرە حەتا قیڤار شین دبن}} ==== Formên alternatîv ==== {{stûn| * [[kero nemir heta qîvar şînbê]] * [[kero nemir bihar hat, pîrê nemir qîvar hat]] * [[kero nemire heya qîfar şîn dibin.]]<ref>{{malper|sernav=Kero nemire heya qîfar şîn dibin.|url=http://www.gotinenpesiyan.com/?p=5361|malper=gotinenpesiyan.com|ziman=ku}}</ref> * [[kero nemire heta biharê ku qîvar çêdibin]]<ref>{{malper|nivîskar=Zeynelabidîn Zinar|url=http://www.lotikxane.com/2020/11/11/qaso-gotinen-pesiyan-in/|sernav=Qaşo “Gotinên Pêşiyan“ in|malper=lotikxane.com|sal=2020|ziman=ku}}</ref> * [[kero nemıre buhare heta çêbin qîvare]]<ref>{{pirtûk|nekat=1|nivîskar=Michael L. Chyet|url=https://books.google.com.tr/books?id=ZDLPDwAAQBAJ&pg=PA176&lpg=PA176&dq=%22kero+nemire%22&source=bl&ots=mlKNXBV2QC&sig=ACfU3U0u6kxo_dIha9bPAz1osEkWiBTb9A&hl=tr&sa=X&ved=2ahUKEwjk4IOfrKPtAhVFxYUKHf-cCjA4ChDoATADegQIARAC#v=onepage&q=%22kero%20nemire%22&f=false|sernav=FERHENGA BIRÛSKÎ - Kurmanji-English Dictionary - Volume Two: M-Z|weşanxane=Transnational Press London|sal=2020|rûpel=176|isbn=9781912997077}}</ref> * [[kero nemire bihar e, heta qêvar heşîn dibe]]<ref>{{malper|nivîskar=MIRAD GUNDIKÎ|url=http://www.nefel.com/articles/article_detail.asp?RubricNr=1&ArticleNr=4104|sernav=Dewlemendiya îdyomên kurdî|malper=nefel.com|sal=2009|ziman=ku}}</ref> * [[kero nemire heta kîvar şînbît]] <ref>{{malper|nivîskar=VAHİT AKIN|url=http://guzeres.tv.tr/sayfa.asp?sayfaID=9|sernav=Gotinêt Mezinan|malper=guzeres.tv.tr|ziman=ku}}</ref> * [[kero nemire buhar e giya şîn bû qîfar e]]<ref>{{kovar|kovar=Agirî|url=https://kurdistanmedia.com/content/upload/1/newsletter/agiri-371.pdf|sernav=Kero nemire buhar e giya şîn bû qîfar e|nivîskar=Elî Munezemî|hejmar=371|dîrok=05.04.2020|rûpel=4|ziman=ku}}</ref> * [[kero nemire heta kîvar şîn dibin]]<ref>{{kovara kurmancî|hejmar=14-15|sernav=Hinek metelok û gotinên pês,iya ji hêla Hekarîya|nivîskar=Rojan HAZIM|r=147}}</ref> * [[pîrê memire bihar tê, kero nemire qîvar tê]]<ref>{{malper|url=http://www.xoybun.com/modules/Content/print.php?pid=860|sernav=Gotinên pêşiyan|malper=xoybun.com|ziman=ku}}</ref> * [[kero nemire heta qîfal şinbibin]]<ref>{{malper|nivîskar=dilazadart|url=https://dilazad.wordpress.com/2013/10/19/ji-kaniya-zanine-cend-tilop/|sernav=JI KANÎYA ZANÎNÊ ÇEND TILOP|malper=dilazad.wordpress.com|sal=2013|ziman=ku}}</ref> * [[kero nemire qîar şîn tê]]<ref>{{kovar|kovar=Pîne|url=http://www.arsivakurd.org/images/arsiva_kurd/kovar/pine/pine_29.pdf|sernav=Caşik|hejmar=29|sal=2000|rûpel=|ziman=ku}}</ref> }} ==== Hevmane ==== * [[kerê nemir bihar ê tê, pîrê nemir pincar î tê]] ==== Etîmolojî ==== Ji ''[[kero]] + [[nemire]] + [[heta]] + [[qîvar]] + [[şîn]] + [[dibin]]'' ==== Werger ==== {{werger-ser|stûn=1}} * {{Z|en}}: (lit) {{W|en|donkey, don't die until the thistles sprout}}, (dynamic equivalent) {{W|en|keep your chin up}} {{werger-bin}} === Çavkanî === {{çavkanî}} [[Kategorî:Kurmanciya kolankî li Dihokê]] abtaueqv6s0snzqyiooy3ydbndqgunx kêlsim 0 539985 6329813 6310896 2026-08-12T23:00:54Z Wikihez 7344 6329813 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[xeml]] #* {{jêder-kovar|ku|jêgirtin=Mensûrê Girgaşî nizanibû ku dê hewqas reşî û belengazî bi serê Neteweyê wî ve bêtin. Eger wî zanibiya, bêguman wî hewqas pesn û wesyetê delalî û '''kêlsima''' biharê nedida.|kovar=Nûbihar|sernav=Mela Mensure Gêrgaşî|url=http://bnk.institutkurde.org/images/pdf/MS1GC63EVP.pdf|urlya-arşîvê=https://web.archive.org/web/20210224111421/https://bnk.institutkurde.org/images/pdf/MS1GC63EVP.pdf |nivîskar=Zeynelabidîn Zinar|hejmar=10|sal=1994|rûpel=82}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|süs}}<ref>{{Zana Farqînî|r=1007}}</ref> {{werger-bin}} === Çavkanî === {{çavkanî}} g57rdyuz1uffknfbofga0ape6hpsm92 6329814 6329813 2026-08-12T23:02:01Z Wikihez 7344 6329814 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[xeml]] #* {{jêder-kovar|ku|jêgirtin=Mensûrê Girgaşî nizanibû ku dê hewqas reşî û belengazî bi serê Neteweyê wî ve bêtin. Eger wî zanibiya, bêguman wî hewqas pesn û wesyetê delalî û '''kêlsima''' biharê nedida.|kovar=Nûdem|sernav=Mela Mensure Gêrgaşî|url=http://bnk.institutkurde.org/images/pdf/MS1GC63EVP.pdf|urlya-arşîvê=https://web.archive.org/web/20210224111421/https://bnk.institutkurde.org/images/pdf/MS1GC63EVP.pdf |nivîskar=Zeynelabidîn Zinar|hejmar=10|sal=1994|rûpel=82}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|süs}}<ref>{{Zana Farqînî|r=1007}}</ref> {{werger-bin}} === Çavkanî === {{çavkanî}} am7ksed7tohtphxb3v9q8k5ixy9mm2g rainbows and unicorns 0 628097 6329660 6094345 2026-08-12T16:20:02Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329660 wikitext text/x-wiki == {{ziman|en}} == === Bilêvkirin === * {{deng|en|en-au-rainbows and unicorns.ogg|dever=Awistralya}} === Navdêr === {{navdêr|en}} # {{e|en|biwêjî}} [[senaryo]]yeke [[pir]] [[baş]] #* {{jêder-malper|ku|jêgirtin=''Just a few days earlier, the president [Donald Trump] had remarked that "nobody knew that healthcare could be so complicated". Now he's promising '''rainbows and unicorns'''.''|nivîskar=Anthony Zurcher|sernav=Trump addresses Congress: A kinder, gentler president|url=http://www.bbc.com/news/world-us-canada-39124349|malper=BBC News|dîrok=2017-03-01|t=Tenê berî çend rojan serokdewlet [Donald Trump] vê îşaret kiribû ku "kes nedizanî ku tenduristî dikare ewqasî kompleks bibe". Ew vêga soza senaryoyeke niwaze dide.}} ==== Hevmane ==== * {{g|en|sunshine and rainbows}} ==== Dijmane ==== * {{g|en|doom and gloom}} ==== Etîmolojî ==== Ji ''[[rainbows]] + [[and]] + [[unicorns]]''. glbz6cxbmpilm1xwgoor78zqccb7wrz 6329661 6329660 2026-08-12T16:21:11Z Wikihez 7344 /* Navdêr */ 6329661 wikitext text/x-wiki == {{ziman|en}} == === Bilêvkirin === * {{deng|en|en-au-rainbows and unicorns.ogg|dever=Awistralya}} === Navdêr === {{navdêr|en}} # {{e|en|biwêjî}} [[senaryo]]yeke [[pir]] [[baş]] #* {{jêder-malper|ku|jêgirtin=Just a few days earlier, the president {{j-îzah|1==Donald Trump}} had remarked that "nobody knew that healthcare could be so complicated". Now he's promising '''rainbows and unicorns'''.|nivîskar=Anthony Zurcher|sernav=Trump addresses Congress: A kinder, gentler president|url=http://www.bbc.com/news/world-us-canada-39124349|malper=BBC News|dîrok=2017-03-01|t=Tenê berî çend rojan serokdewlet {{j-îzah|1==Donald Trump}} vê îşaret kiribû ku "kes nedizanî ku tenduristî dikare ewqasî kompleks bibe". Ew vêga soza senaryoyeke niwaze dide.}} ==== Hevmane ==== * {{g|en|sunshine and rainbows}} ==== Dijmane ==== * {{g|en|doom and gloom}} ==== Etîmolojî ==== Ji ''[[rainbows]] + [[and]] + [[unicorns]]''. brh667un3kwp331wq8pca3t83w4s4ce 6329662 6329661 2026-08-12T16:21:26Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329662 wikitext text/x-wiki == {{ziman|en}} == === Bilêvkirin === * {{deng|en|en-au-rainbows and unicorns.ogg|dever=Awistralya}} === Navdêr === {{navdêr|en|j=tp}} # {{e|en|biwêjî}} [[senaryo]]yeke [[pir]] [[baş]] #* {{jêder-malper|ku|jêgirtin=Just a few days earlier, the president {{j-îzah|1==Donald Trump}} had remarked that "nobody knew that healthcare could be so complicated". Now he's promising '''rainbows and unicorns'''.|nivîskar=Anthony Zurcher|sernav=Trump addresses Congress: A kinder, gentler president|url=http://www.bbc.com/news/world-us-canada-39124349|malper=BBC News|dîrok=2017-03-01|t=Tenê berî çend rojan serokdewlet {{j-îzah|1==Donald Trump}} vê îşaret kiribû ku "kes nedizanî ku tenduristî dikare ewqasî kompleks bibe". Ew vêga soza senaryoyeke niwaze dide.}} ==== Hevmane ==== * {{g|en|sunshine and rainbows}} ==== Dijmane ==== * {{g|en|doom and gloom}} ==== Etîmolojî ==== Ji ''[[rainbows]] + [[and]] + [[unicorns]]''. cwu0h3gs1hr7dtmb032wkvhdzrcm6yf 6329663 6329662 2026-08-12T16:21:52Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329663 wikitext text/x-wiki == {{ziman|en}} == === Bilêvkirin === * {{deng|en|en-au-rainbows and unicorns.ogg|dever=Awistralya}} === Navdêr === {{navdêr|en|j=tp}} # {{e|en|biwêjî}} [[senaryo]]yeke [[pir]] [[baş]] #* {{jêder-malper|ku|jêgirtin=Just a few days earlier, the president {{j-îzah|Donald Trump}} had remarked that "nobody knew that healthcare could be so complicated". Now he's promising '''rainbows and unicorns'''.|nivîskar=Anthony Zurcher|sernav=Trump addresses Congress: A kinder, gentler president|url=http://www.bbc.com/news/world-us-canada-39124349|malper=BBC News|dîrok=2017-03-01|t=Tenê berî çend rojan serokdewlet {{j-îzah|Donald Trump}} vê îşaret kiribû ku "kes nedizanî ku tenduristî dikare ewqasî kompleks bibe". Ew vêga soza senaryoyeke niwaze dide.}} ==== Hevmane ==== * {{g|en|sunshine and rainbows}} ==== Dijmane ==== * {{g|en|doom and gloom}} ==== Etîmolojî ==== Ji ''[[rainbows]] + [[and]] + [[unicorns]]''. sqx4jphojdxun8ewjm4lkf1qrbwe34n nêrûmê 0 649877 6329888 5751531 2026-08-13T00:31:24Z Wikihez 7344 6329888 wikitext text/x-wiki == {{ziman|ku}} == === Rengdêr 1 === {{rengdêr|ku}} # Kesê ku tenê ji kesên bi heman zayendê hez dike. #* {{jêder-malper|ku|jêgirtin=Wê çaxa go hê em û zarokên dînozoran nehatibûn qetilkirin, birrek zarokên ca min hebûn. Em malbateke pirrceleb bûn û tu zagonan navê me nekiribûn “Bênamûs.” Em: Lezbiyen, '''nêrûmê''', tog û ensest gişk bi şanazî di bin banekî de dijiyan. Me parîkê nanê tisî jî bi hev re par ve dikir, pevşabûn jî.|nivîskar=Kovan Baqî|sernav=CERIBÎN – 2|url=https://krd.riataza.com/2016/11/26/ceribin-2/|malper=riataza.com|dîrok=26.11.2016}} #* {{jêder-kovar|ku|jêgirtin=Çavên tije hêsir, mirovên kelogirî, civakên hestyar û ciyewaz ên ku Almodovar bi jîrbûneke mezin ji nav wan çîrokên xwe lihev tine, her kes bi çavên şil hestên xwe tîne ziman, poşmanî û lixwemikurbûn, her dem prisgirêkên sêksî yên ku wek mijarek balkêş di hemû filimên wî de têne xuyan, bitaybet “aumo sexuel” û yên '''nêrûmê''' wek mirovên nerim û dilneya û xwedî nirxên taybet û bi ser civakê de vekirî.|kovar=Kovara Şar|sernav=ALMODOVAR DERHÊNEREKÎ NAYÊ.AVANYA.ÇAVÊN TIJE..HÊSIR.Û.MIROVÊN KELOGIRÎ|url=http://shar-magazine.com/wp-content/uploads/2018/06/Issue5_Kurdi.pdf|nivîskar=Şêro Hindê|weşanxane=Weşanên rêxistina ŞAR a geşpêdanê|hejmar=5|sal=2016|rûpel=22}} #* {{jêder-malper|ku|jêgirtin=Bes bila Kurdayetî û Kurdistanîbûnê nekin, doza netew-dewletbûnê nekin bes e. Qûnek e, qûnde ye, lezbîyen e, trans e, '''nêrûmê''' ye, qey ferq nake, hêç e. Hewceyî cîrantî û mîrantîyê nake yaw, ji xwe em di bin konekî de dijîn“ filan û xeftan.|nivîskar=Miradê Torî|sernav=Gelo hûn cîranên qûnek û qûnde dixwazin?|url=http://www.lotikxane.com/2015/05/12/gelo-hun-ciranen-qunek-u-qunde-dixwazin/|malper=lotikxane.com|dîrok=2015-05-12}} ==== Hevmane ==== * [[hevzayend]] * [[homoseksuel]] ==== Etîmolojî ==== [[nêr]] + [[û]] + [[mê]] ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|homosexual}}, {{W+|en|queer}} {{werger-bin}} === Rengdêr 2 === {{rengdêr|ku}} # {{bnr|nêremê}} 1nxlvl5cxiekapiycz4q2vmzn1gzifp 6329893 6329888 2026-08-13T00:41:07Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6329893 wikitext text/x-wiki == {{ziman|ku}} == === Rengdêr 1 === {{rengdêr|ku}} # Kesê ku tenê ji kesên bi heman zayendê hez dike. #* {{jêder-malper|ku|jêgirtin=Wê çaxa go hê em û zarokên dînozoran nehatibûn qetilkirin, birrek zarokên ca min hebûn. Em malbateke pirrceleb bûn û tu zagonan navê me nekiribûn “Bênamûs.” Em: Lezbiyen, '''nêrûmê''', tog û ensest gişk bi şanazî di bin banekî de dijiyan. Me parîkê nanê tisî jî bi hev re par ve dikir, pevşabûn jî.|nivîskar=Kovan Baqî|sernav=CERIBÎN – 2|url=https://krd.riataza.com/2016/11/26/ceribin-2/|malper=riataza.com|dîrok=26.11.2016}} #* {{jêder-kovar|ku|jêgirtin=Çavên tije hêsir, mirovên kelogirî, civakên hestyar û ciyewaz ên ku Almodovar bi jîrbûneke mezin ji nav wan çîrokên xwe lihev tine, her kes bi çavên şil hestên xwe tîne ziman, poşmanî û lixwemikurbûn, her dem prisgirêkên sêksî yên ku wek mijarek balkêş di hemû filimên wî de têne xuyan, bitaybet “aumo sexuel” û yên '''nêrûmê''' wek mirovên nerim û dilneya û xwedî nirxên taybet û bi ser civakê de vekirî.|kovar=Kovara Şar|sernav=ALMODOVAR DERHÊNEREKÎ NAYÊ.AVANYA.ÇAVÊN TIJE..HÊSIR.Û.MIROVÊN KELOGIRÎ|url=http://shar-magazine.com/wp-content/uploads/2018/06/Issue5_Kurdi.pdf|nivîskar=Şêro Hindê|weşanxane=Weşanên rêxistina ŞAR a geşpêdanê|hejmar=5|sal=2016|rûpel=22}} #* {{jêder-malper|ku|jêgirtin=Bes bila Kurdayetî û Kurdistanîbûnê nekin, doza netew-dewletbûnê nekin bes e. Qûnek e, qûnde ye, lezbîyen e, trans e, '''nêrûmê''' ye, qey ferq nake, hêç e. Hewceyî cîrantî û mîrantîyê nake yaw, ji xwe em di bin konekî de dijîn“ filan û xeftan.|nivîskar=Miradê Torî|sernav=Gelo hûn cîranên qûnek û qûnde dixwazin?|url=http://www.lotikxane.com/2015/05/12/gelo-hun-ciranen-qunek-u-qunde-dixwazin/|malper=lotikxane.com|dîrok=2015-05-12}} ==== Hevmane ==== * [[hevzayend]] * [[homoseksuel]] ==== Etîmolojî ==== [[nêr]] + [[û]] + [[mê]] ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|homosexual}}, {{W+|en|queer}} {{werger-bin}} === Rengdêr 2 === {{rengdêr|ku}} # {{bnr|nêremê}} dnwzuxavf8jo5levepad3r3vxdkksym qilfkerê 0 810083 6329715 4282103 2026-08-12T20:34:40Z Wikihez 7344 /* {{ziman|ku}} */ 6329715 wikitext text/x-wiki == {{ziman|ku}} == === Formeke navdêrê === {{ku-tew-nav|qilfker|mê û nêr}} {{navdêr|ku|form=erê}} # {{ku-tewîna-nav|qilfker|mê û nêr}} hjc12p7oo1yq63u346gl0son3fmdaiy qepaçe kirin 0 837140 6329904 6286296 2026-08-13T00:55:41Z Wikihez 7344 6329904 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{lêker|ku|c=h-ngh}} # {{mane?|ku}} #* {{jêder-malper|ku|jêgirtin=Li devê dêrî xêrhatina me dike. Ew û Egîdê Cimo kêfxweşiyê didin hev. Hev '''qepaçe dikin'''.|nivîskar=Salihê Kevirbirî|sernav=Karapetê Xaço : ‘50 Milyon Kurmanc Nikare li min Xwedî Derkeve!..’|url=http://www.pdk-xoybun.com/modules/Content/print.php?pid=1419 |urlya-arşîvê=https://web.archive.org/web/20200218150215/http://www.pdk-xoybun.com/modules/Content/print.php?pid=1419|malper=PDK-XOYBUN|dîrok=15.01.2005}} #* {{jêder|ku|jêgirtin=Ew ber pê ve diçû, wî '''qepaçe dikir''' û ji kêfa hem dikeniya û hem jî digiriya.|Kamil Geylanî: ''Wezîrê Zindanê'' Armanc, 1996, r. 13}} #* {{jêder|ku|jêgirtin=Gava Xalê Hecî ez '''qepaçe kirim''' û dest pê kir bi mekîneyê porê min kur kir...|Înan Eroglu: ''Têbîniyek'', Avesta, 2019, r.35}} ==== Hevmane ==== * [[hembêz kirin]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|kucaklamak}}<ref>{{Zana Farqînî|r=1492}}</ref>, {{W+|tr|sarmak}}<ref>{{Zana Farqînî|r=1492}}</ref> {{werger-bin}} === Çavkanî === {{çavkanî}} f1j6hjzueyda3xv1p0aw2rksmtka3jn nikulsor 0 839520 6329891 5020618 2026-08-13T00:33:05Z Wikihez 7344 6329891 wikitext text/x-wiki == {{ziman|ku}} == === Rengdêr === {{rengdêr|ku}} # {{rastnivîs|nikilsor}} #* {{jêder-pirtûk|ku|jêgirtin=Em '''nikulsor''' in, basknexşîn in.|nivîskar={{w|Roşan Lezgîn}}|sernav=Serketina Kewan|weşanxane=Weşanên Roşna|sal=2020|rûpel=68}} #* {{jêder-kovar|ku|jêgirtin=Dengê wê yê nazik û nermik di guhê min de mîna dengê Kewa '''nikulsor''' bû.|kovar=Kovara Bîrnebûn|url=http://birnebun.eu/hejmar/birnebunweb40.pdf|nivîskar=Xizan Şîlan|hejmar=40|sal=2009|r=41}} 9wzimmpim8ig35r37r5kjckjic6efao nikilsor 0 839521 6329890 6195270 2026-08-13T00:32:27Z Wikihez 7344 6329890 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|nikilsor}} [[Wêne:Piwiya nikulsor.jpg|thumb|Pîwiyeke '''nikilsor'''.]] {{rengdêr|ku}} # [[heywan|Heywan]]ên ku [[nikil]]ên wan [[sor]] e. #* {{jêder-pirtûk|ku|jêgirtin=Em '''nikulsor''' in, basknexşîn in.|nivîskar={{w|Roşan Lezgîn}}|sernav=Serketina Kewan|weşanxane=Weşanên Roşna|sal=2020|rûpel=68}} #* {{jêder-kovar|ku|jêgirtin=Dengê wê yê nazik û nermik di guhê min de mîna dengê Kewa '''nikulsor''' bû.|kovar=Kovara Bîrnebûn|url=http://birnebun.eu/hejmar/birnebunweb40.pdf|nivîskar=Xizan Şîlan|hejmar=40|sal=2009|r=41}} ==== Jê ==== * [[pîwiya nikilsor]] ==== Etîmolojî ==== Ji {{qertaf|ku|nikil|sor}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|red-billed}} * {{Z|tr}}: {{W-|tr|kırmızı gagalı}} {{werger-bin}} 88pkywzvgnff9dh3z609vt03tw8sdpt 6329919 6329890 2026-08-13T02:12:14Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6329919 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|nikilsor}} [[Wêne:Piwiya nikulsor.jpg|thumb|Pîwiyeke '''nikilsor'''.]] {{rengdêr|ku}} # [[heywan|Heywanên]] ku [[nikil]]ên wan [[sor]] e. #* {{jêder-pirtûk|ku|jêgirtin=Em '''nikulsor''' in, basknexşîn in.|nivîskar={{w|Roşan Lezgîn}}|sernav=Serketina Kewan|weşanxane=Weşanên Roşna|sal=2020|rûpel=68}} #* {{jêder-kovar|ku|jêgirtin=Dengê wê yê nazik û nermik di guhê min de mîna dengê Kewa '''nikulsor''' bû.|kovar=Kovara Bîrnebûn|url=http://birnebun.eu/hejmar/birnebunweb40.pdf|nivîskar=Xizan Şîlan|hejmar=40|sal=2009|r=41}} ==== Jê ==== * [[pîwiya nikilsor]] ==== Etîmolojî ==== Ji {{qertaf|ku|nikil|sor}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|red-billed}} * {{Z|tr}}: {{W-|tr|kırmızı gagalı}} {{werger-bin}} jawewc0pos091rxdrz2kotin73ef2aq mozvan 0 844588 6329871 6195372 2026-08-13T00:21:41Z Wikihez 7344 /* Navdêr */ 6329871 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # {{f|en|pîşe}} [[mêşok]], [[mêşvan]], [[kes]]ê ku ji bo bidestxistina [[hingiv]]ê [[mêş]]an [[xwedî kirin|xwedî dike]] #* {{jêder-malper|ku|url=https://kurmanci.sahartv.ir/news/tirkiye-i317815|jêgirtin=Gelek '''mozvanên''' ji navçe û bajarên dorberê hatin Meletiyê kewarên xwe datînin zozanan.|sernav=Mozvanên gerok li zozanên Meletiyê ne|malper=kurmanci.sahartv.ir|dîrok=2020-07-18}} ==== Etîmolojî ==== * Ji {{paş|ku|moz|-van}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|arıcı}} {{werger-bin}} muyj1c8sgxg4jfw6k6b81e6g2nmz664 6329872 6329871 2026-08-13T00:21:50Z Wikihez 7344 /* Etîmolojî */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6329872 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # {{f|en|pîşe}} [[mêşok]], [[mêşvan]], [[kes]]ê ku ji bo bidestxistina [[hingiv]]ê [[mêş]]an [[xwedî kirin|xwedî dike]] #* {{jêder-malper|ku|url=https://kurmanci.sahartv.ir/news/tirkiye-i317815|jêgirtin=Gelek '''mozvanên''' ji navçe û bajarên dorberê hatin Meletiyê kewarên xwe datînin zozanan.|sernav=Mozvanên gerok li zozanên Meletiyê ne|malper=kurmanci.sahartv.ir|dîrok=2020-07-18}} ==== Etîmolojî ==== Ji {{paş|ku|moz|-van}}. ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|arıcı}} {{werger-bin}} 3cauq8ciqngq093wy2s9cbf5zk6kn9q 6329873 6329872 2026-08-13T00:22:11Z Wikihez 7344 [[Bikarhêner:Wikihez/templateScript2.js|TS]]: sererastkirin 6329873 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # {{f|en|pîşe}} [[kes|Kes]]ê ku ji bo bidestxistina [[hingiv]]ê [[mêş]]an [[xwedî kirin|xwedî dike]]. #: {{hevmane|ku|mêşok|mêşvan}} #* {{jêder-malper|ku|url=https://kurmanci.sahartv.ir/news/tirkiye-i317815|jêgirtin=Gelek '''mozvanên''' ji navçe û bajarên dorberê hatin Meletiyê kewarên xwe datînin zozanan.|sernav=Mozvanên gerok li zozanên Meletiyê ne|malper=kurmanci.sahartv.ir|dîrok=2020-07-18}} ==== Etîmolojî ==== Ji {{paş|ku|moz|-van}}. ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|arıcı}} {{werger-bin}} jgrl2hny2xauwhf36u674u1bpcff9k2 6329921 6329873 2026-08-13T02:12:20Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir, --Valahiyên nehewce.) 6329921 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # {{f|en|pîşe}} [[kes|Kesê]] ku ji bo bidestxistina [[hingiv]]ê [[mêş]]an [[xwedî kirin|xwedî dike]]. #: {{hevmane|ku|mêşok|mêşvan}} #* {{jêder-malper|ku|url=https://kurmanci.sahartv.ir/news/tirkiye-i317815|jêgirtin=Gelek '''mozvanên''' ji navçe û bajarên dorberê hatin Meletiyê kewarên xwe datînin zozanan.|sernav=Mozvanên gerok li zozanên Meletiyê ne|malper=kurmanci.sahartv.ir|dîrok=2020-07-18}} ==== Etîmolojî ==== Ji {{paş|ku|moz|-van}}. ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|arıcı}} {{werger-bin}} ay3z8vlxeshg1ij8toi9hjy06ifk0a4 navcîtî 0 844589 6329875 6248187 2026-08-13T00:25:49Z Balyozbot 7867 /* Navdêr */ sererastkirin 6329875 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[navbeynkarî]], [[qencnavbêjî]], [[navbêjî]], [[nav bêjî]], [[berhengarî]] #* {{jêder-malper|ku|jêgirtin=''Îran amade ye jibo kêmkirina kêşeyê navbera Ermenistan û Komara Azerbaycanê '''navcîtiyê''' bike.''|url=https://kurmanci.sahartv.ir/news/%C3%8Eran-i317801|malper=kurmanci.sahartv.ir|dîrok=2020-07-18}} ==== Formên alternatîv ==== * [[navçîtî]] ==== Etîmolojî ==== Ji {{qertaf|ku|nav|cîtî}}. ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|وساطت}} * {{Z|en}}: {{W+|en|good office}}, {{W+|en|good offices}}, {{W+|en|intercession}} * {{Z|tr}}: {{W|tr|ara buluculuk}} {{werger-bin}} 38vyhfetkpbq2l8t27te15oxs3toi0r 6329886 6329875 2026-08-13T00:30:22Z Wikihez 7344 6329886 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[navbeynkarî]], [[qencnavbêjî]], [[navbêjî]], [[nav bêjî]], [[berhengarî]] #* {{jêder-malper|ku|jêgirtin=Îran amade ye jibo kêmkirina kêşeyê navbera Ermenistan û Komara Azerbaycanê '''navcîtiyê''' bike.|url=https://kurmanci.sahartv.ir/news/%C3%8Eran-i317801|malper=kurmanci.sahartv.ir|dîrok=2020-07-18}} ==== Formên alternatîv ==== * [[navçîtî]] ==== Etîmolojî ==== Ji {{qertaf|ku|nav|cîtî}}. ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|وساطت}} * {{Z|en}}: {{W+|en|good office}}, {{W+|en|good offices}}, {{W+|en|intercession}} * {{Z|tr}}: {{W|tr|ara buluculuk}} {{werger-bin}} gf7d33n6l3hnzzyawpmckpfqcxtb2h3 wesil kirin 0 844615 6329882 6153508 2026-08-13T00:28:56Z Balyozbot 7867 sererastkirin 6329882 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|wesil kirin|form=gerguhêz|niha=k|borî=kir|pêşgir=wesil|valahî=erê}} {{lêker|ku|c=h-gh}} # [[gihandin]] #* {{jêder-malper|ku|url=http://www.hawarnews.com/kr/haber/saredariy-av-gihand-kobanya-n-h10702.html|malper=ANHA|sernav=Şaredariyê Av Gihand Kobanêya Nû|dîrok=2018-12-07|jêgirtin=Ev tax nû tê avakirin, me av bi zehmet peyda dikir, hêdî hêdî pêdiviyên me tên bicîhanîn. Av ji me re '''wesil kirin''', em bi hêvî ne kanalazîsyonê jî ji me re çêkin.}} ==== Etîmolojî ==== Ji {{heve|ku|wesil|kirin}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|deliver}}, {{W+|en|advance}}, {{W+|en|convey}}, {{W+|en|transmit}} * {{Z|tr}}: {{W+|tr|eriştirmek}}, {{W+|tr|ulaştırmak}} {{werger-bin}} === Çavkanî === * {{kovar|url=https://dilname.files.wordpress.com/2011/06/rojnameya-dilname-hijmar-73.pdf|jêgirtin=5- Wesil: hevdîtin, pêrgîn.|nivîskar=Ji danhevên Ebdil-Rehmanê Kurimî|kovar=Dilname|sal=2011|hejmar=7|dîrok=2011-06-10|sernav=Helbestek|rûpel=2}} suwp1rg71tgyxu0xquka6gakvpoeqwf Gotûbêj:wesil kirin 1 844618 6329881 5021764 2026-08-13T00:28:52Z Balyozbot 7867 /* Çavkanî */ sererastkirin 6329881 wikitext text/x-wiki == Çavkanî == Çavkaniyeke ji bo peyva "wesil": {{jêder-kovar|ku|url=https://dilname.files.wordpress.com/2011/06/rojnameya-dilname-hijmar-73.pdf|jêgirtin=5- Wesil: hevdîtin, pêrgîn.|nivîskar=Ji danhevên Ebdil-Rehmanê Kurimî|kovar=Dilname|sal=2011|hejmar=7|dîrok=2011-06-10|sernav=Helbestek|rûpel=2}} -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 20:04, 20 tîrmeh 2020 (UTC) rysayu6kgog2fklghxaki34o7q1ef36 MediaWiki:Gadget-jeder.js 8 845753 6329685 6069025 2026-08-12T18:33:21Z Bikarhêner 3719 test 6329685 javascript text/javascript // Ji bo şablonên [[Şablon:jêder]] hatiye nivîsandin. // Parametreyên ku di navbera "<span class="j-pewist">...</span>" an "{{j-pêwîst|...}}" de ne venaşêre. $(function() { function nivisaKurtTevliBike(sund, nivisKurt) { var zede = $('<a>+</a>') .addClass('click') .attr('href', '#') .attr('title', 'zêdetir') .css('font-weight', 'bold'); var kurt = $(' <a>↩</a>') .addClass('click-kurt') .attr('href', '#') .attr('title', 'veşêre') .css('font-weight', 'bold'); $('<span>' + nivisKurt + '</span>') .append(zede).append(')') .addClass('jeder-kurt') .css('font-size', '0.85em') .insertAfter(sund); sund.append(' ').append(kurt); // Only hide the full citation once the short summary actually exists. // If this script never runs (no-JS clients, hover-preview extracts, // action=render, etc.), the full citation stays visible instead of // silently disappearing. sund.css('display', 'none'); } function vesere() { $('.jeder').each(function() { var elmTab = $(this).find('.j-pewist').clone(); if (elmTab.length) { var elm = ''; for (var i = elmTab.length - 1; i >= 0; i--) { elm = elmTab.eq(i).html() + ', ' + elm; } var nivisKurt = ' — (' + elm; nivisaKurtTevliBike($(this), nivisKurt); } // else: no j-pewist fields to shorten — leave the full citation // as it already renders (visible), nothing to do. }); } vesere(); $(".click").click(function(e) { e.preventDefault(); $(this).parent('.jeder-kurt').css('display', 'none'); $(this).parent('.jeder-kurt').prev().css('display', 'inline'); }); $(".click-kurt").click(function(e) { e.preventDefault(); $(this).parent('.jeder').css('display', 'none'); $(this).parent('.jeder').next().css('display', 'inline'); }); }); hkchv58y5mnst3qk7t0f45qu26slf7r 6329695 6329685 2026-08-12T19:13:33Z Bikarhêner 3719 6329695 javascript text/javascript // Ji bo şablonên [[Şablon:jêder]] hatiye nivîsandin. // Parametreyên ku di navbera "<span class="j-pewist">...</span>" an "{{j-pêwîst|...}}" de ne venaşêre. // Each jeder is registered under the "Jêderê" category in window.VisibilityToggles // (from [[MediaWiki:Gadget-VisibilityToggles.js]]), so the "Jêderê veşêre / Jêderê nîşan bide" // sidebar link can show or hide every jeder at once; each "+"/"↩" link toggles just its own entry. $(function() { function nivisaKurtTevliBike(sund, nivisKurt) { var zede = $('<a>+</a>') .addClass('click') .attr('href', '#') .attr('title', 'zêdetir') .css('font-weight', 'bold'); var kurt = $(' <a>↩</a>') .addClass('click-kurt') .attr('href', '#') .attr('title', 'veşêre') .css('font-weight', 'bold'); var jederKurt = $('<span>' + nivisKurt + '</span>') .append(zede).append(')') .addClass('jeder-kurt') .css('font-size', '0.85em') .insertAfter(sund); sund.append(' ').append(kurt); // defaultStatus = false: the category's initial status is "visible" (full // citation shown), so the sidebar link starts as "Jêderê veşêre". var toggle = window.VisibilityToggles.register("Jêderê", function show() { sund.css('display', 'inline'); jederKurt.css('display', 'none'); }, function hide() { sund.css('display', 'none'); jederKurt.css('display', 'inline'); }, false); zede.add(kurt).on('click', function(e) { e.preventDefault(); toggle(); }); } function vesere() { $('.jeder').each(function() { var elmTab = $(this).find('.j-pewist').clone(); if (elmTab.length) { var elm = ''; for (var i = elmTab.length - 1; i >= 0; i--) { elm = elmTab.eq(i).html() + ', ' + elm; } var nivisKurt = ' — (' + elm; nivisaKurtTevliBike($(this), nivisKurt); } // else: no j-pewist fields to shorten — leave the full citation // as it already renders (visible), nothing to do. }); } vesere(); }); aa6lfvd1tx59sbzf70fv1lmpn2ndxu3 MediaWiki:Gadget-jeder.css 8 845754 6329686 4003801 2026-08-12T18:33:29Z Bikarhêner 3719 6329686 css text/css .jeder { /* display: revert !important;*/ } lkmv67im47ojb210ipbbbiot7xunj9r sîrqûnî 0 845804 6329879 6196137 2026-08-13T00:27:47Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6329879 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Kesa/ê ku zû [[hêrs bûn|hêrs dibe]].<ref>{{malper|ku|nivîskar=nijdevan1|sernav=Sîrqûnî|url=https://twitter.com/nijdevan1/status/1288509583875616768|malper=twitter.com|dîrok=29.07.2020}}</ref><br>Kesa/ê [[cirnexweş]], [[cirxerab]].<ref>{{malper|ku|nivîskar=mansurvk|url=https://twitter.com/mansurvk/status/1288507267239890948|sernav=Sîrqûnî|malper=twitter.com|dîrok=29.07.2020}}</ref> #* {{jêder|ku|jêgirtin=...tu ji vî gedeyî re pîne dikî law go ev çi '''sîrqûnî''' ye...|{{Jêgirtin/Înan Eroglu/Têbîniyek/2019}}|r=35}} #* {{jêder-malper|ku|jêgirtin=Li gora lêkolînerên Rêxistina Tendurîstiya Dinyayê World Health Organization (WHO), mêr ji jinan bêhtir '''sîrqûnî''' ne.|sernav=Jin ji mêran qewîntir derketin!!|url=http://www.lotikxane.com/arsiv/arsiv%2010-Dateien.htm|malper=lotikxane.com|dîrok=05.06.06}} #* {{jêder-malper|ku|jêgirtin=Nizane ku rewşenbîr jî dê jina min a feqîr rexne bikin û îca wer û nebe benîştê devê xelkê, li vê Ewrupa han a ku heta niha heqê rûniştinê nedane me û lawê min ê ku ev çend roj in '''sîrqûnî''' bûye bi qaçaxî diçe welatan û tê.|nivîskar=Bavê Qeşmerok Xelek|sernav=Sîrwanê Hecî Virqo Yan Sîrqûnê Hecî Virikî|url=http://www.amude.net/kurdi/bave_qeshmerok.pdf|malper=Tefsho.com}} ==== Têkildar ==== * [[sîrqûn]] ==== Etîmolojî ==== Ji {{paş|ku|sîrqûn|-î}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W-|tr|çabuk sinirlenip alınan çok alıngan}} {{werger-bin}} === Çavkanî === {{çavkanî}} 7r80ig3g47f2yj9t3jwke4cy9863hqw 6329914 6329879 2026-08-13T01:19:23Z Wikihez 7344 6329914 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Kesa/ê ku zû [[hêrs bûn|hêrs dibe]].<ref>{{malper|ku|nivîskar=nijdevan1|sernav=Sîrqûnî|url=https://twitter.com/nijdevan1/status/1288509583875616768|malper=twitter.com|dîrok=29.07.2020}}</ref><br>Kesa/ê [[cirnexweş]], [[cirxerab]].<ref>{{malper|ku|nivîskar=mansurvk|url=https://twitter.com/mansurvk/status/1288507267239890948|sernav=Sîrqûnî|malper=twitter.com|dîrok=29.07.2020}}</ref> #* {{jêder|ku|jêgirtin=...tu ji vî gedeyî re pîne dikî law go ev çi '''sîrqûnî''' ye...|{{Jêgirtin/Înan Eroglu/Têbîniyek/2019|r=35}}}} #* {{jêder-malper|ku|jêgirtin=Li gora lêkolînerên Rêxistina Tendurîstiya Dinyayê World Health Organization (WHO), mêr ji jinan bêhtir '''sîrqûnî''' ne.|sernav=Jin ji mêran qewîntir derketin!!|url=http://www.lotikxane.com/arsiv/arsiv%2010-Dateien.htm|malper=lotikxane.com|dîrok=05.06.2006}} #* {{jêder-malper|ku|jêgirtin=Nizane ku rewşenbîr jî dê jina min a feqîr rexne bikin û îca wer û nebe benîştê devê xelkê, li vê Ewrupa han a ku heta niha heqê rûniştinê nedane me û lawê min ê ku ev çend roj in '''sîrqûnî''' bûye bi qaçaxî diçe welatan û tê.|nivîskar=Bavê Qeşmerok Xelek|sernav=Sîrwanê Hecî Virqo Yan Sîrqûnê Hecî Virikî|url=http://www.amude.net/kurdi/bave_qeshmerok.pdf|malper=Tefsho.com}} ==== Têkildar ==== * [[sîrqûn]] ==== Etîmolojî ==== Ji {{paş|ku|sîrqûn|-î}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W-|tr|çabuk sinirlenip alınan çok alıngan}} {{werger-bin}} === Çavkanî === {{çavkanî}} 49rk4to9fh5mc5130q3v7aqd9usmq60 kîjan ba were û tu bi ber bikevî, kîjan av were û tu bi ser bikevî, tu yê ji dinyayê derkevî 0 846336 6329818 6196346 2026-08-12T23:06:24Z Wikihez 7344 /* Çavkanî */ 6329818 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Gotineke pêşiyan === {{gp|ku}} # Divê mirov bi her karî re têkildar nebe ji ber ku carinan hinek tişt pêwîst in û hinek tişt jî qet ne pêwîst in. ==== Werger ==== {{werger-ser|stûn=1}} * {{Z|fr}}: {{W|fr|se mêler de ses affaires}}, {{W|fr|se mêler de ses oignons}} * {{Z|tr}}: {{W|tr|her şeye maydanoz olmamak}}, {{W|tr|her şeye salça olmamak}} {{werger-bin}} === Çavkanî === * {{malper|url=https://twitter.com/araratmemm/status/1292898761673519104|sernav=Gotina Pêşiyên Kurda|malper=twitter.com/araratmemm|sal=2020|ziman=ku}} acf27swolz9y7bmpqdf1na9izzs5bgn kafiroş 0 846406 6329798 6309493 2026-08-12T22:43:00Z Wikihez 7344 6329798 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # kesê/a ku [[ka]] difiroşe # kesê/a ku [[kar|karê]] wî/ê [[kafirotin]] e, [[firotin]]a [[ka|kayê]] ye #* {{jêder-malper|ku|jêgirtin=Keça Kafiroş ji alîyê kurdan we bûye sîmbola bedewiyê, bi alîkî din eger di şaristaniya Ewrupî de çawa şanazî bi Monalîziya dikin, em jî wisa şanazî bi Keça '''Kafiroş '''dikin, ku jê ra dibêjin Madona Kurdan.|url=https://krd.riataza.com/2015/12/02/keca-kafiros-madona-kurdan/|malper=Riataza|nivîskar=Bêlla Stûrkî|dîrok=2015-11-02|sernav=“Keça Kafiroş” – Madona Kurdan…}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê û nêr}} ==== Bi alfabeyên din ==== * {{ku-ar|کافرۆش}} * {{ku-kr|кафьрош}} ==== Etîmolojî ==== Ji {{paş|ku|ka|-firoş}}. ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|کافرۆش|tr=kafiroş}} ==== Werger ==== {{werger-ser}} {{werger-bin}} tdc8x1jrahdvfycj0gghj1v3vorj99x 6329865 6329798 2026-08-13T00:12:14Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6329865 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # kesê/a ku [[ka]] difiroşe # kesê/a ku [[kar]]ê wî/ê [[kafirotin]] e, [[firotin]]a [[ka]]yê ye #* {{jêder-malper|ku|jêgirtin=Keça Kafiroş ji alîyê kurdan we bûye sîmbola bedewiyê, bi alîkî din eger di şaristaniya Ewrupî de çawa şanazî bi Monalîziya dikin, em jî wisa şanazî bi Keça '''Kafiroş '''dikin, ku jê ra dibêjin Madona Kurdan.|url=https://krd.riataza.com/2015/12/02/keca-kafiros-madona-kurdan/|malper=Riataza|nivîskar=Bêlla Stûrkî|dîrok=2015-11-02|sernav=“Keça Kafiroş” – Madona Kurdan…}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê û nêr}} ==== Bi alfabeyên din ==== * {{ku-ar|کافرۆش}} * {{ku-kr|кафьрош}} ==== Etîmolojî ==== Ji {{paş|ku|ka|-firoş}}. ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|کافرۆش|tr=kafiroş}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 15rekmgnf3qvb4lmw0kpgmt09cmbcp5 li berdem 0 872848 6329832 6196441 2026-08-12T23:34:08Z Wikihez 7344 6329832 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Daçek === {{daçek|ku}} # [[li ber]], [[li pêşiya]] #* {{jêder-malper|ku|jêgirtin='''Li berdem''' avahîya Neteweyên Yekgirtî li bajêrê Hewlêrê sedan kes li hev hatin û daxwaza dawîanîna êrîşên leşkerê Tirkiye bi ser mîlîtanên kurd kirin.|url=https://www.dengeamerika.com/a/3180480.html|malper=Dengê Amerîka|sernav=Xwe Nîşandan Dijî Tirkiye Li Herêma Kurdistanê Têne Darxistin|dîrok=2016-02-07}} ==== Etîmolojî ==== Ji ''[[li]] + [[ber]] + [[dem#Navdêr 1 2|dem]] (dev)''. "Berdem" bi soranî tê maneya "berdev". Bi mantiqa kurmancî divê wek ''"li ber devê ..."'' bûya. ==== Werger ==== {{werger-ser}} {{werger-bin}} cb3ip71uuk4ox12ecngaw9suk8kbnpa prescriptionist 0 872916 6329901 5021034 2026-08-13T00:50:38Z Wikihez 7344 6329901 wikitext text/x-wiki == {{ziman|en}} == === Bilêvkirin === : {{ku-tîp|prîskrîpşinîst}} === Navdêr === {{navdêr|en|p=prescriptionists}} # [[preskrîptiyonîst]] <br/> kesa/ê ku alîgirê [[ekol|ekol]]a [[preskrîptîvîzm|preskrîptîvîzmê]] ye. # [[pispor|Pispor]]ê [[hazirkirin]]a [[derman]]an. # kesa/ê ku xwediyê [[meyl]]a [[pênasîn]]ê ye. ==== Hevmane ==== * [[prescriptivist]] ==== Dijmane ==== * [[descriptivist]] ==== Têkildar ==== * [[prescribe]] * [[prescriptivism]] * [[prescriptivistic]] === Rengdêr === {{rengdêr|en}} # {{f|en|zimannasî}} [[preskrîptiyonîst]] {{îzah|kesê ku [[bawerî|baweriya]] [[xwe|xwe]] ji [[emsal|emsalên]] [[dîrokî|dîrokî]] [[zêde|zêdetir]] bi [[bikaranîn|bikaranîna]] [[mewcûd|mewcûd]] [[anîn|tîne]] ([[ji bo]] [[tesbîtkirin|tesbîtkirina]] [[rastî|rastî]] an [[rastbûn|rastbûnê]])}} #* {{jêder-pirtûk|en|jêgirtin=Educators often come into the profession with a certain view of language that is more '''prescriptionist''' in nature (Edwards, 1982; Taylor, 1983; Trudgill, 1975; Williams, 1976). |werger=Kesên perwerdekar ji ber karê xwe bi piranî xwedî nêrîneke qetî dibin ku zêdetir preskrîptiyonîst e, bi tabietê xwe |nivîskar=Maria Elisa Paredes|sernav=Language Attitudes, Linguistic Knowledge, and the Multicultural Education of Pre-Service Teachers|sal=2008|isbn=9780549963042|url=https://pdfs.semanticscholar.org/2365/5fe520db4a080ce671d339c010ad601e79d8.pdf|rûpel=33}} ==== Etîmolojî ==== Ji {{paş|en|prescription|-ist}}. h73jyj5jo9p7r9zewfnwihekdwl7btl 6329917 6329901 2026-08-13T02:12:08Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir, --Valahiyên nehewce.) 6329917 wikitext text/x-wiki == {{ziman|en}} == === Bilêvkirin === : {{ku-tîp|prîskrîpşinîst}} === Navdêr === {{navdêr|en|p=prescriptionists}} # [[preskrîptiyonîst]] <br/> kesa/ê ku alîgirê [[ekol]]a [[preskrîptîvîzm]]ê ye. # [[pispor|Pisporê]] [[hazirkirin]]a [[derman]]an. # kesa/ê ku xwediyê [[meyl]]a [[pênasîn]]ê ye. ==== Hevmane ==== * [[prescriptivist]] ==== Dijmane ==== * [[descriptivist]] ==== Têkildar ==== * [[prescribe]] * [[prescriptivism]] * [[prescriptivistic]] === Rengdêr === {{rengdêr|en}} # {{f|en|zimannasî}} [[preskrîptiyonîst]] {{îzah|kesê ku [[bawerî|baweriya]] [[xwe]] ji [[emsal]]ên [[dîrokî]] [[zêde]]tir bi [[bikaranîn]]a [[mewcûd]] [[anîn|tîne]] ([[ji bo]] [[tesbîtkirin]]a [[rastî]] an [[rastbûn]]ê)}} #* {{jêder-pirtûk|en|jêgirtin=Educators often come into the profession with a certain view of language that is more '''prescriptionist''' in nature (Edwards, 1982; Taylor, 1983; Trudgill, 1975; Williams, 1976). |werger=Kesên perwerdekar ji ber karê xwe bi piranî xwedî nêrîneke qetî dibin ku zêdetir preskrîptiyonîst e, bi tabietê xwe |nivîskar=Maria Elisa Paredes|sernav=Language Attitudes, Linguistic Knowledge, and the Multicultural Education of Pre-Service Teachers|sal=2008|isbn=9780549963042|url=https://pdfs.semanticscholar.org/2365/5fe520db4a080ce671d339c010ad601e79d8.pdf|rûpel=33}} ==== Etîmolojî ==== Ji {{paş|en|prescription|-ist}}. 90ltaav3330nui5fxv8w3ax7fdws15b nerm û niyan 0 873052 6329876 5032295 2026-08-13T00:26:09Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6329876 wikitext text/x-wiki == {{ziman|ckb}} == === Rengdêr === {{rengdêr|ckb|sc=Latn}} # [[nerm û narîn]]<ref>{{malper|ku|nivîskar=HUSEIN MUHAMMED|url=https://zimannas.wordpress.com/2016/03/04/kurdizar-ferhenga-sorani-kurmanci-n/|sernav=KURDÎZAR: ferhenga soranî – kurmancî: N|malper=zimannas.wordpress.com|dîrok=2016}}</ref> #: ''Wa piyaw debête dirinde û<br>Kîjoleyek nêçîrêkî '''nerm û niyan'''<br>Desa boçî çend ayetê<br>Be zimanî ew mîllete nefame<br>Danabezênîş'' === Çavkanî === {{çavkanî}} 6u6pmj62zltcanayiwbge7y26hieah5 6329884 6329876 2026-08-13T00:29:41Z Wikihez 7344 6329884 wikitext text/x-wiki == {{ziman|ckb}} == === Rengdêr === {{rengdêr|ckb|sc=Latn}} # [[nerm û narîn]]<ref>{{malper|ku|nivîskar=HUSEIN MUHAMMED|url=https://zimannas.wordpress.com/2016/03/04/kurdizar-ferhenga-sorani-kurmanci-n/|sernav=KURDÎZAR: ferhenga soranî – kurmancî: N|malper=zimannas.wordpress.com|sal=2016}}</ref> #: ''Wa piyaw debête dirinde û<br>Kîjoleyek nêçîrêkî '''nerm û niyan'''<br>Desa boçî çend ayetê<br>Be zimanî ew mîllete nefame<br>Danabezênîş'' === Çavkanî === {{çavkanî}} t59h9t4vf48amxtf59qez00l1ntr93k 6329885 6329884 2026-08-13T00:29:49Z Wikihez 7344 6329885 wikitext text/x-wiki == {{ziman|ckb}} == === Rengdêr === {{rengdêr|ckb|sc=Latn}} # [[nerm û narîn]]<ref>{{malper|ku|nivîskar=Husein Muhammed|url=https://zimannas.wordpress.com/2016/03/04/kurdizar-ferhenga-sorani-kurmanci-n/|sernav=KURDÎZAR: ferhenga soranî – kurmancî: N|malper=zimannas.wordpress.com|sal=2016}}</ref> #: ''Wa piyaw debête dirinde û<br>Kîjoleyek nêçîrêkî '''nerm û niyan'''<br>Desa boçî çend ayetê<br>Be zimanî ew mîllete nefame<br>Danabezênîş'' === Çavkanî === {{çavkanî}} l33k9qkseni4okn9u848cukvbc5p4fz kevçika dil 0 873234 6329804 6283502 2026-08-12T22:54:13Z Wikihez 7344 /* Navdêr */ 6329804 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # {{mane?|ku}} #* {{jêder-pirtûk|ku|jêgirtin=Ga ji hewla canê xwe şaxekî li Siyahmed didetin û Siyahmed ji wê nizarê gêr dibitin. Li jêrê li binê nizarê darekî diriyê hişk serê tîj hebûye, rast ji jorve bi sing deverûyê Siyahmed dikeve ser wî darê tîj, serê darê rastê '''kevçikadilê''' têtin û ji piştê biderkeve, filhal ruh teslîm diketin.|nivîskar=Mele Mehmûdê Bazîdî|sernav=Cami’eya Riseleyan û Hikayetan Bi Zimanê Kurmancî|cîh=Stembol|weşanxane={{w|Weşanên Lîs|Lîs}}|sal=2010|çap=1|rûpel=77|isbn=978-605-5683-27-6}} #* {{jêder-pirtûk|ku|jêgirtin=Tika kirim?<br>Ji '''kevçika dil''' rûxandim qut qutî kirim destên wê<br>Wekî kelha hilweşandim tenha hîştim li ber darê|nivîskar=Bêçare Kurd|sernav=Elestek ji koçberî|url=https://en.calameo.com/read/005270298e8dbf76761e9|sal=2019|rûpel=133}} #* {{jêder-pirtûk|ku|jêgirtin=Ronahiyê di reşika çavan de hêlîna xwe çêkiriye<br>hemberî reştariyê diçirisîne<br>Mêrxasî di '''kevçika dil''' de rûniştiye<br>Lewra têlên tembûra evîna şikestî û tirs|nivîskar=Medenî ferho|sernav=zîlan, agir û stranên jiyanê|sal=1999|rûpel=105}} ==== Têkildar ==== * [[li kevçika dilê (yekî) xistin]] * [[gule li ser kevçika dil ketin]] * [[di kevçika dil de lêxistin]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|fr}}: {{W|fr|valve cardiaque}}, {{W|fr|point vital}}<ref name="kurmanci42">{{kovar|kovar=Kurmancî|url=https://www.institutkurde.org/publications/kurmanci/telechargement/ku42.pdf|sernav=Peyvên di stranan de|nivîskar=Emîn Narozî|hejmar=42|sal=2008|rûpel=3|ziman=ku}}</ref> * {{Z|en|}}: {{W|en|heart valve}}, {{W|en|a vital spot}}<ref name="kurmanci42" /> * {{Z|tr}}: {{W|tr|kalp kapakçığı}}, {{W|tr|can evi}}<ref name="kurmanci42" /> {{werger-bin}} === Çavkanî === {{çavkanî}} 324nb46708ijzc2b5o778mblx0upbk9 6329806 6329804 2026-08-12T22:55:31Z Wikihez 7344 6329806 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # {{mane?|ku}} #* {{jêder-pirtûk|ku|jêgirtin=Ga ji hewla canê xwe şaxekî li Siyahmed didetin û Siyahmed ji wê nizarê gêr dibitin. Li jêrê li binê nizarê darekî diriyê hişk serê tîj hebûye, rast ji jorve bi sing deverûyê Siyahmed dikeve ser wî darê tîj, serê darê rastê '''kevçikadilê''' têtin û ji piştê biderkeve, filhal ruh teslîm diketin.|nivîskar=Mele Mehmûdê Bazîdî|sernav=Cami’eya Riseleyan û Hikayetan Bi Zimanê Kurmancî|cîh=Stembol|weşanxane={{w|Weşanên Lîs|Lîs}}|sal=2010|çap=1|rûpel=77|isbn=978-605-5683-27-6}} #* {{jêder-pirtûk|ku|jêgirtin=Tika kirim?<br>Ji '''kevçika dil''' rûxandim qut qutî kirim destên wê<br>Wekî kelha hilweşandim tenha hîştim li ber darê|nivîskar=Bêçare Kurd|sernav=Elestek ji koçberî|url=https://en.calameo.com/read/005270298e8dbf76761e9|sal=2019|rûpel=133}} #* {{jêder-pirtûk|ku|jêgirtin=Ronahiyê di reşika çavan de hêlîna xwe çêkiriye<br>hemberî reştariyê diçirisîne<br>Mêrxasî di '''kevçika dil''' de rûniştiye<br>Lewra têlên tembûra evîna şikestî û tirs|nivîskar=Medenî ferho|sernav=zîlan, agir û stranên jiyanê|sal=1999|rûpel=105}} ==== Têkildar ==== * [[li kevçika dilê (yekî) xistin]] * [[gule li ser kevçika dil ketin]] * [[di kevçika dil de lêxistin]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|fr}}: {{W|fr|valve cardiaque}}, {{W|fr|point vital}}<ref name="kurmanci42">{{kovara kurmancî|sernav=Peyvên di stranan de|nivîskar=Emîn Narozî|hejmar=42|rûpel=3}}</ref> * {{Z|en|}}: {{W|en|heart valve}}, {{W|en|a vital spot}}<ref name="kurmanci42" /> * {{Z|tr}}: {{W|tr|kalp kapakçığı}}, {{W|tr|can evi}}<ref name="kurmanci42" /> {{werger-bin}} === Çavkanî === {{çavkanî}} ipmo0taa5b6ha25ja86agnms1hd05m8 Şablon:kovara kurmancî 10 873281 6329805 6111508 2026-08-12T22:55:18Z Wikihez 7344 6329805 wikitext text/x-wiki <includeonly>{{kovar|kovar={{w|Kurmancî (kovar)|Kurmancî}}|url={{replace|{{switch-url|{{{hejmar|}}}}}}}|sernav={{{sernav|}}}|nivîskar={{{nivîskar|}}}|weşanxane={{w|Enstîtuya Kurdî ya Parîsê|Weşanên Enstîtuya Kurdî ya Parîsê}}|hejmar={{{hejmar|}}}|sal={{replace|{{switch-url|s{{{hejmar|}}}}}}}|rûpel={{{r|{{{rûpel|}}}}}}|ziman=ku}}</includeonly><noinclude>{{belgekirin}}[[Kategorî:Çavkanî]]</noinclude> l0pgooza0t8sher1o974toh3rirqphb Şablon:kovara kurmancî/switch-url 10 873282 6329807 6111509 2026-08-12T22:57:55Z Wikihez 7344 6329807 wikitext text/x-wiki {{#switch:{{{1}}} |72=https://www.institutkurde.org/publications/kurmanci/telechargement/ku72.pdf |71=https://www.institutkurde.org/publications/kurmanci/telechargement/ku71.pdf |70=https://www.institutkurde.org/publications/kurmanci/telechargement/ku70.pdf |69=https://www.institutkurde.org/publications/kurmanci/telechargement/ku69.pdf |68=https://www.institutkurde.org/publications/kurmanci/telechargement/ku68.pdf |67=https://www.institutkurde.org/publications/kurmanci/telechargement/ku67.pdf |66=https://www.institutkurde.org/publications/kurmanci/telechargement/ku66.pdf |65=https://www.institutkurde.org/publications/kurmanci/telechargement/ku65.pdf |64=https://www.institutkurde.org/publications/kurmanci/telechargement/ku64.pdf |63=https://www.institutkurde.org/publications/kurmanci/telechargement/ku63.pdf |62=https://www.institutkurde.org/publications/kurmanci/telechargement/ku62.pdf |61=https://www.institutkurde.org/publications/kurmanci/telechargement/ku61.pdf |60=https://www.institutkurde.org/publications/kurmanci/telechargement/ku60.pdf |59=https://www.institutkurde.org/publications/kurmanci/telechargement/ku59.pdf |58=https://www.institutkurde.org/publications/kurmanci/telechargement/ku58.pdf |57=https://www.institutkurde.org/publications/kurmanci/telechargement/ku57.pdf |56=https://www.institutkurde.org/publications/kurmanci/telechargement/ku56.pdf |55=https://www.institutkurde.org/publications/kurmanci/telechargement/ku55.pdf |54=https://www.institutkurde.org/publications/kurmanci/telechargement/ku54.pdf |53=https://www.institutkurde.org/publications/kurmanci/telechargement/ku53.pdf |52=https://www.institutkurde.org/publications/kurmanci/telechargement/ku52.pdf |51=https://www.institutkurde.org/publications/kurmanci/telechargement/ku51.pdf |50=https://www.institutkurde.org/publications/kurmanci/telechargement/ku50.pdf |49=https://www.institutkurde.org/publications/kurmanci/telechargement/ku49.pdf |48=https://www.institutkurde.org/publications/kurmanci/telechargement/ku48.pdf |47=https://www.institutkurde.org/publications/kurmanci/telechargement/ku47.pdf |46=https://www.institutkurde.org/publications/kurmanci/telechargement/ku46.pdf |45=https://www.institutkurde.org/publications/kurmanci/telechargement/ku45.pdf |44=https://www.institutkurde.org/publications/kurmanci/telechargement/ku44.pdf |43=https://www.institutkurde.org/publications/kurmanci/telechargement/ku43.pdf |42=https://www.institutkurde.org/publications/kurmanci/telechargement/ku42.pdf |41=https://www.institutkurde.org/publications/kurmanci/telechargement/ku41.pdf |40=https://www.institutkurde.org/publications/kurmanci/telechargement/ku40.pdf |39=https://www.institutkurde.org/publications/kurmanci/telechargement/ku39.pdf |38=https://www.institutkurde.org/publications/kurmanci/telechargement/ku38.pdf |37=https://www.institutkurde.org/publications/kurmanci/telechargement/ku37.pdf |36=https://www.institutkurde.org/publications/kurmanci/telechargement/ku36.pdf |35=https://www.institutkurde.org/publications/kurmanci/telechargement/ku35.pdf |34=https://www.institutkurde.org/publications/kurmanci/telechargement/ku34.pdf |33=https://www.institutkurde.org/publications/kurmanci/telechargement/ku33.pdf |32=https://www.institutkurde.org/publications/kurmanci/telechargement/ku32.pdf |31=https://www.institutkurde.org/publications/kurmanci/telechargement/ku31.pdf |30=https://www.institutkurde.org/publications/kurmanci/telechargement/ku30.pdf |29=https://www.institutkurde.org/publications/kurmanci/telechargement/ku29.pdf |28=https://www.institutkurde.org/publications/kurmanci/telechargement/ku28.pdf |27=https://www.institutkurde.org/publications/kurmanci/telechargement/ku27.pdf |26=https://www.institutkurde.org/publications/kurmanci/telechargement/ku26.pdf |25=https://www.institutkurde.org/publications/kurmanci/telechargement/ku25.pdf |24=https://www.institutkurde.org/publications/kurmanci/telechargement/ku24.pdf |23=https://www.institutkurde.org/publications/kurmanci/telechargement/ku23.pdf |22=https://www.institutkurde.org/publications/kurmanci/telechargement/ku22.pdf |21=https://www.institutkurde.org/publications/kurmanci/telechargement/ku21.pdf |20=https://www.institutkurde.org/publications/kurmanci/telechargement/ku20.pdf |19=https://www.institutkurde.org/publications/kurmanci/telechargement/ku19.pdf |18=https://www.institutkurde.org/publications/kurmanci/telechargement/ku18.pdf |17=https://www.institutkurde.org/publications/kurmanci/telechargement/ku17.pdf |16=https://www.institutkurde.org/publications/kurmanci/telechargement/ku16.pdf |14-15=https://www.institutkurde.org/publications/kurmanci/telechargement/ku1415.pdf |13=https://www.institutkurde.org/publications/kurmanci/telechargement/ku13.pdf |12=https://www.institutkurde.org/publications/kurmanci/telechargement/ku12.pdf |11=https://www.institutkurde.org/publications/kurmanci/telechargement/ku11.pdf |10=https://www.institutkurde.org/publications/kurmanci/telechargement/ku10.pdf |9=https://www.institutkurde.org/publications/kurmanci/telechargement/ku9.pdf |8=https://www.institutkurde.org/publications/kurmanci/telechargement/ku8.pdf |7=https://www.institutkurde.org/publications/kurmanci/telechargement/ku7.pdf |6=https://www.institutkurde.org/publications/kurmanci/telechargement/ku6.pdf |5=https://www.institutkurde.org/publications/kurmanci/telechargement/ku5.pdf |4=https://www.institutkurde.org/publications/kurmanci/telechargement/ku4.pdf |3=https://www.institutkurde.org/publications/kurmanci/telechargement/ku3.pdf |2=https://www.institutkurde.org/publications/kurmanci/telechargement/ku2.pdf |1=https://www.institutkurde.org/publications/kurmanci/telechargement/ku1.pdf |#default={{#switch:{{{1|}}} |s69=2023 |s68=2022 |s67=2022 |s66=2021 |s65=2019 |s64=2019 |s63=2018 |s62=2018 |s61=2017 |s60=2017 |s59=2016 |s58=2016 |s57=2015 |s56=2015 |s55=2014 |s54=2014 |s53=2013 |s52=2013 |s51=2012 |s50=2012 |s49=2011 |s48=2011 |s47=2010 |s46=2010 |s45=2009 |s44=2009 |s43=2008 |s42=2008 |s41=2007 |s40=2007 |s39=2006 |s38=2006 |s37=2005 |s36=2005 |s35=2004 |s34=2004 |s33=2003 |s32=2002 |s31=2002 |s30=2001 |s29=2001 |s28=2001 |s27=2000 |s26=1999 |s25=1999 |s24=1998 |s23=1998 |s22=1998 |s21=1997 |s20=1996 |s19=1996 |s18=1996 |s17=1995 |s16=1995 |s14-15=1994 |s13=1993 |s12=1993 |s11=1992 |s10=1992 |s9=1991 |s8=1991 |s7=1990 |s6=1990 |s5=1989 |s4=1989 |s3=1988 |s2=1988 |s1=1987 |#default=}}}}<noinclude>{{belgekirin}}[[Kategorî:Çavkanî|şablon]]</noinclude> 2d29vjoviw8wanoeb2n75bpjedhs6on 6329808 6329807 2026-08-12T22:58:04Z Wikihez 7344 Wikihezî/ê navê [[Şablon:switch-url]] weke [[Şablon:kovara kurmancî/switch-url]] guhart 6329807 wikitext text/x-wiki {{#switch:{{{1}}} |72=https://www.institutkurde.org/publications/kurmanci/telechargement/ku72.pdf |71=https://www.institutkurde.org/publications/kurmanci/telechargement/ku71.pdf |70=https://www.institutkurde.org/publications/kurmanci/telechargement/ku70.pdf |69=https://www.institutkurde.org/publications/kurmanci/telechargement/ku69.pdf |68=https://www.institutkurde.org/publications/kurmanci/telechargement/ku68.pdf |67=https://www.institutkurde.org/publications/kurmanci/telechargement/ku67.pdf |66=https://www.institutkurde.org/publications/kurmanci/telechargement/ku66.pdf |65=https://www.institutkurde.org/publications/kurmanci/telechargement/ku65.pdf |64=https://www.institutkurde.org/publications/kurmanci/telechargement/ku64.pdf |63=https://www.institutkurde.org/publications/kurmanci/telechargement/ku63.pdf |62=https://www.institutkurde.org/publications/kurmanci/telechargement/ku62.pdf |61=https://www.institutkurde.org/publications/kurmanci/telechargement/ku61.pdf |60=https://www.institutkurde.org/publications/kurmanci/telechargement/ku60.pdf |59=https://www.institutkurde.org/publications/kurmanci/telechargement/ku59.pdf |58=https://www.institutkurde.org/publications/kurmanci/telechargement/ku58.pdf |57=https://www.institutkurde.org/publications/kurmanci/telechargement/ku57.pdf |56=https://www.institutkurde.org/publications/kurmanci/telechargement/ku56.pdf |55=https://www.institutkurde.org/publications/kurmanci/telechargement/ku55.pdf |54=https://www.institutkurde.org/publications/kurmanci/telechargement/ku54.pdf |53=https://www.institutkurde.org/publications/kurmanci/telechargement/ku53.pdf |52=https://www.institutkurde.org/publications/kurmanci/telechargement/ku52.pdf |51=https://www.institutkurde.org/publications/kurmanci/telechargement/ku51.pdf |50=https://www.institutkurde.org/publications/kurmanci/telechargement/ku50.pdf |49=https://www.institutkurde.org/publications/kurmanci/telechargement/ku49.pdf |48=https://www.institutkurde.org/publications/kurmanci/telechargement/ku48.pdf |47=https://www.institutkurde.org/publications/kurmanci/telechargement/ku47.pdf |46=https://www.institutkurde.org/publications/kurmanci/telechargement/ku46.pdf |45=https://www.institutkurde.org/publications/kurmanci/telechargement/ku45.pdf |44=https://www.institutkurde.org/publications/kurmanci/telechargement/ku44.pdf |43=https://www.institutkurde.org/publications/kurmanci/telechargement/ku43.pdf |42=https://www.institutkurde.org/publications/kurmanci/telechargement/ku42.pdf |41=https://www.institutkurde.org/publications/kurmanci/telechargement/ku41.pdf |40=https://www.institutkurde.org/publications/kurmanci/telechargement/ku40.pdf |39=https://www.institutkurde.org/publications/kurmanci/telechargement/ku39.pdf |38=https://www.institutkurde.org/publications/kurmanci/telechargement/ku38.pdf |37=https://www.institutkurde.org/publications/kurmanci/telechargement/ku37.pdf |36=https://www.institutkurde.org/publications/kurmanci/telechargement/ku36.pdf |35=https://www.institutkurde.org/publications/kurmanci/telechargement/ku35.pdf |34=https://www.institutkurde.org/publications/kurmanci/telechargement/ku34.pdf |33=https://www.institutkurde.org/publications/kurmanci/telechargement/ku33.pdf |32=https://www.institutkurde.org/publications/kurmanci/telechargement/ku32.pdf |31=https://www.institutkurde.org/publications/kurmanci/telechargement/ku31.pdf |30=https://www.institutkurde.org/publications/kurmanci/telechargement/ku30.pdf |29=https://www.institutkurde.org/publications/kurmanci/telechargement/ku29.pdf |28=https://www.institutkurde.org/publications/kurmanci/telechargement/ku28.pdf |27=https://www.institutkurde.org/publications/kurmanci/telechargement/ku27.pdf |26=https://www.institutkurde.org/publications/kurmanci/telechargement/ku26.pdf |25=https://www.institutkurde.org/publications/kurmanci/telechargement/ku25.pdf |24=https://www.institutkurde.org/publications/kurmanci/telechargement/ku24.pdf |23=https://www.institutkurde.org/publications/kurmanci/telechargement/ku23.pdf |22=https://www.institutkurde.org/publications/kurmanci/telechargement/ku22.pdf |21=https://www.institutkurde.org/publications/kurmanci/telechargement/ku21.pdf |20=https://www.institutkurde.org/publications/kurmanci/telechargement/ku20.pdf |19=https://www.institutkurde.org/publications/kurmanci/telechargement/ku19.pdf |18=https://www.institutkurde.org/publications/kurmanci/telechargement/ku18.pdf |17=https://www.institutkurde.org/publications/kurmanci/telechargement/ku17.pdf |16=https://www.institutkurde.org/publications/kurmanci/telechargement/ku16.pdf |14-15=https://www.institutkurde.org/publications/kurmanci/telechargement/ku1415.pdf |13=https://www.institutkurde.org/publications/kurmanci/telechargement/ku13.pdf |12=https://www.institutkurde.org/publications/kurmanci/telechargement/ku12.pdf |11=https://www.institutkurde.org/publications/kurmanci/telechargement/ku11.pdf |10=https://www.institutkurde.org/publications/kurmanci/telechargement/ku10.pdf |9=https://www.institutkurde.org/publications/kurmanci/telechargement/ku9.pdf |8=https://www.institutkurde.org/publications/kurmanci/telechargement/ku8.pdf |7=https://www.institutkurde.org/publications/kurmanci/telechargement/ku7.pdf |6=https://www.institutkurde.org/publications/kurmanci/telechargement/ku6.pdf |5=https://www.institutkurde.org/publications/kurmanci/telechargement/ku5.pdf |4=https://www.institutkurde.org/publications/kurmanci/telechargement/ku4.pdf |3=https://www.institutkurde.org/publications/kurmanci/telechargement/ku3.pdf |2=https://www.institutkurde.org/publications/kurmanci/telechargement/ku2.pdf |1=https://www.institutkurde.org/publications/kurmanci/telechargement/ku1.pdf |#default={{#switch:{{{1|}}} |s69=2023 |s68=2022 |s67=2022 |s66=2021 |s65=2019 |s64=2019 |s63=2018 |s62=2018 |s61=2017 |s60=2017 |s59=2016 |s58=2016 |s57=2015 |s56=2015 |s55=2014 |s54=2014 |s53=2013 |s52=2013 |s51=2012 |s50=2012 |s49=2011 |s48=2011 |s47=2010 |s46=2010 |s45=2009 |s44=2009 |s43=2008 |s42=2008 |s41=2007 |s40=2007 |s39=2006 |s38=2006 |s37=2005 |s36=2005 |s35=2004 |s34=2004 |s33=2003 |s32=2002 |s31=2002 |s30=2001 |s29=2001 |s28=2001 |s27=2000 |s26=1999 |s25=1999 |s24=1998 |s23=1998 |s22=1998 |s21=1997 |s20=1996 |s19=1996 |s18=1996 |s17=1995 |s16=1995 |s14-15=1994 |s13=1993 |s12=1993 |s11=1992 |s10=1992 |s9=1991 |s8=1991 |s7=1990 |s6=1990 |s5=1989 |s4=1989 |s3=1988 |s2=1988 |s1=1987 |#default=}}}}<noinclude>{{belgekirin}}[[Kategorî:Çavkanî|şablon]]</noinclude> 2d29vjoviw8wanoeb2n75bpjedhs6on 6329812 6329808 2026-08-12T22:59:37Z Wikihez 7344 6329812 wikitext text/x-wiki {{#switch:{{{1}}} |72=https://www.institutkurde.org/publications/kurmanci/telechargement/ku72.pdf |71=https://www.institutkurde.org/publications/kurmanci/telechargement/ku71.pdf |70=https://www.institutkurde.org/publications/kurmanci/telechargement/ku70.pdf |69=https://www.institutkurde.org/publications/kurmanci/telechargement/ku69.pdf |68=https://www.institutkurde.org/publications/kurmanci/telechargement/ku68.pdf |67=https://www.institutkurde.org/publications/kurmanci/telechargement/ku67.pdf |66=https://www.institutkurde.org/publications/kurmanci/telechargement/ku66.pdf |65=https://www.institutkurde.org/publications/kurmanci/telechargement/ku65.pdf |64=https://www.institutkurde.org/publications/kurmanci/telechargement/ku64.pdf |63=https://www.institutkurde.org/publications/kurmanci/telechargement/ku63.pdf |62=https://www.institutkurde.org/publications/kurmanci/telechargement/ku62.pdf |61=https://www.institutkurde.org/publications/kurmanci/telechargement/ku61.pdf |60=https://www.institutkurde.org/publications/kurmanci/telechargement/ku60.pdf |59=https://www.institutkurde.org/publications/kurmanci/telechargement/ku59.pdf |58=https://www.institutkurde.org/publications/kurmanci/telechargement/ku58.pdf |57=https://www.institutkurde.org/publications/kurmanci/telechargement/ku57.pdf |56=https://www.institutkurde.org/publications/kurmanci/telechargement/ku56.pdf |55=https://www.institutkurde.org/publications/kurmanci/telechargement/ku55.pdf |54=https://www.institutkurde.org/publications/kurmanci/telechargement/ku54.pdf |53=https://www.institutkurde.org/publications/kurmanci/telechargement/ku53.pdf |52=https://www.institutkurde.org/publications/kurmanci/telechargement/ku52.pdf |51=https://www.institutkurde.org/publications/kurmanci/telechargement/ku51.pdf |50=https://www.institutkurde.org/publications/kurmanci/telechargement/ku50.pdf |49=https://www.institutkurde.org/publications/kurmanci/telechargement/ku49.pdf |48=https://www.institutkurde.org/publications/kurmanci/telechargement/ku48.pdf |47=https://www.institutkurde.org/publications/kurmanci/telechargement/ku47.pdf |46=https://www.institutkurde.org/publications/kurmanci/telechargement/ku46.pdf |45=https://www.institutkurde.org/publications/kurmanci/telechargement/ku45.pdf |44=https://www.institutkurde.org/publications/kurmanci/telechargement/ku44.pdf |43=https://www.institutkurde.org/publications/kurmanci/telechargement/ku43.pdf |42=https://www.institutkurde.org/publications/kurmanci/telechargement/ku42.pdf |41=https://www.institutkurde.org/publications/kurmanci/telechargement/ku41.pdf |40=https://www.institutkurde.org/publications/kurmanci/telechargement/ku40.pdf |39=https://www.institutkurde.org/publications/kurmanci/telechargement/ku39.pdf |38=https://www.institutkurde.org/publications/kurmanci/telechargement/ku38.pdf |37=https://www.institutkurde.org/publications/kurmanci/telechargement/ku37.pdf |36=https://www.institutkurde.org/publications/kurmanci/telechargement/ku36.pdf |35=https://www.institutkurde.org/publications/kurmanci/telechargement/ku35.pdf |34=https://www.institutkurde.org/publications/kurmanci/telechargement/ku34.pdf |33=https://www.institutkurde.org/publications/kurmanci/telechargement/ku33.pdf |32=https://www.institutkurde.org/publications/kurmanci/telechargement/ku32.pdf |31=https://www.institutkurde.org/publications/kurmanci/telechargement/ku31.pdf |30=https://www.institutkurde.org/publications/kurmanci/telechargement/ku30.pdf |29=https://www.institutkurde.org/publications/kurmanci/telechargement/ku29.pdf |28=https://www.institutkurde.org/publications/kurmanci/telechargement/ku28.pdf |27=https://www.institutkurde.org/publications/kurmanci/telechargement/ku27.pdf |26=https://www.institutkurde.org/publications/kurmanci/telechargement/ku26.pdf |25=https://www.institutkurde.org/publications/kurmanci/telechargement/ku25.pdf |24=https://www.institutkurde.org/publications/kurmanci/telechargement/ku24.pdf |23=https://www.institutkurde.org/publications/kurmanci/telechargement/ku23.pdf |22=https://www.institutkurde.org/publications/kurmanci/telechargement/ku22.pdf |21=https://www.institutkurde.org/publications/kurmanci/telechargement/ku21.pdf |20=https://www.institutkurde.org/publications/kurmanci/telechargement/ku20.pdf |19=https://www.institutkurde.org/publications/kurmanci/telechargement/ku19.pdf |18=https://www.institutkurde.org/publications/kurmanci/telechargement/ku18.pdf |17=https://www.institutkurde.org/publications/kurmanci/telechargement/ku17.pdf |16=https://www.institutkurde.org/publications/kurmanci/telechargement/ku16.pdf |14-15=https://www.institutkurde.org/publications/kurmanci/telechargement/ku1415.pdf |13=https://www.institutkurde.org/publications/kurmanci/telechargement/ku13.pdf |12=https://www.institutkurde.org/publications/kurmanci/telechargement/ku12.pdf |11=https://www.institutkurde.org/publications/kurmanci/telechargement/ku11.pdf |10=https://www.institutkurde.org/publications/kurmanci/telechargement/ku10.pdf |9=https://www.institutkurde.org/publications/kurmanci/telechargement/ku9.pdf |8=https://www.institutkurde.org/publications/kurmanci/telechargement/ku8.pdf |7=https://www.institutkurde.org/publications/kurmanci/telechargement/ku7.pdf |6=https://www.institutkurde.org/publications/kurmanci/telechargement/ku6.pdf |5=https://www.institutkurde.org/publications/kurmanci/telechargement/ku5.pdf |4=https://www.institutkurde.org/publications/kurmanci/telechargement/ku4.pdf |3=https://www.institutkurde.org/publications/kurmanci/telechargement/ku3.pdf |2=https://www.institutkurde.org/publications/kurmanci/telechargement/ku2.pdf |1=https://www.institutkurde.org/publications/kurmanci/telechargement/ku1.pdf |#default={{#switch:{{{1|}}} |s72=2025 |s71=2024 |s70=2023 |s69=2023 |s68=2022 |s67=2022 |s66=2021 |s65=2019 |s64=2019 |s63=2018 |s62=2018 |s61=2017 |s60=2017 |s59=2016 |s58=2016 |s57=2015 |s56=2015 |s55=2014 |s54=2014 |s53=2013 |s52=2013 |s51=2012 |s50=2012 |s49=2011 |s48=2011 |s47=2010 |s46=2010 |s45=2009 |s44=2009 |s43=2008 |s42=2008 |s41=2007 |s40=2007 |s39=2006 |s38=2006 |s37=2005 |s36=2005 |s35=2004 |s34=2004 |s33=2003 |s32=2002 |s31=2002 |s30=2001 |s29=2001 |s28=2001 |s27=2000 |s26=1999 |s25=1999 |s24=1998 |s23=1998 |s22=1998 |s21=1997 |s20=1996 |s19=1996 |s18=1996 |s17=1995 |s16=1995 |s14-15=1994 |s13=1993 |s12=1993 |s11=1992 |s10=1992 |s9=1991 |s8=1991 |s7=1990 |s6=1990 |s5=1989 |s4=1989 |s3=1988 |s2=1988 |s1=1987 |#default=}}}}<noinclude>{{belgekirin}}[[Kategorî:Çavkanî|şablon]]</noinclude> 6idn9brqpfeyn9100c9iomhr35d6dqo mastê payîzan bidin ezîzan 0 873390 6329835 6196513 2026-08-12T23:37:52Z Wikihez 7344 6329835 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Gotineke pêşiyan === {{gp|ku}} # Mastê payîzê gelek tîr û xweş e û dewê bihare jî ne xweş e. Dema mirov bixwaze qîmeta mîvanên xwe bigire, wê demê mastê payîzê dide mêvanan, le dema mirov ji mevanê xwe ne memnûn be jî, dixwaze şîrê biharên jî dewe biharê bide mevanen xwe.<ref>{{pirtûk|ku|nivîskar=Amed Tîgrîs|sernav=Gotînên Pêşiyan|weşanxane=Rewşen|sal=2001|rûpel=170|isbn=91-88-444-78-3}}</ref><br>Gotineke pêşiyan e.<ref>{{malper|ku|nivîskar=Têmûrê Xelîl|url=https://krd.riataza.com/2017/09/17/gotinen-pesiyan-ji-pirtuka-xelile-cacan-9/|sernav=Gotinên pêşîyan ji pirtûka Xelîlê Çaçan|malper=riataza.com|sal=2017}}</ref><ref>{{kovar|kovar=Folklora Kurdan|url=https://issuu.com/ugurirendeli/docs/folklora_kurdan_4|sernav=Gotinên pêşiyan ên li ser payîzê|nivîskar=Ronya Bewran|hejmar=4|sal=2015|rûpel=31|ku}}</ref> ==== Hevmane ==== * [[şîrê payîzan bidin ezîzan]] ==== Têkildar ==== * [[mastê biharan bidin neyaran, mastê payîza bidin ezîza]] ==== Werger ==== {{werger-ser}} {{werger-bin}} === Çavkanî === {{çavkanî}} f17wvbaol7d9gialrmhcpsvuws4j432 Şablon:kovara kurmancî/switch-url/belge 10 873531 6329810 4220913 2026-08-12T22:58:04Z Wikihez 7344 Wikihezî/ê navê [[Şablon:switch-url/belge]] weke [[Şablon:kovara kurmancî/switch-url/belge]] guhart 4220913 wikitext text/x-wiki == Bikaranîn == * Ji bo {{ş|kovara kurmancî}} hatiye çêkirin. Hemû lînkên vê kovarê tê de hene. gxlq4io2l4z47eyhjo1dnmsulqacfqc Şablon:Belgekirin/preload 10 873533 6329739 4493248 2026-08-12T21:09:42Z Wikihez 7344 6329739 wikitext text/x-wiki {{belgekirin/binrûpel}} == Bikaranîn == === Mînak === == TemplateData == <include<includeonly></includeonly>only> [[Kategorî:Şablon]] </include<includeonly></includeonly>only> jp7s55fnakh7let9siig0lps7wj97u2 Bikarhêner:Wikihez/common.js 2 873671 6329691 6328612 2026-08-12T19:00:55Z Wikihez 7344 6329691 javascript text/javascript /*---------Gadget-morebits.js------------- [[Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.js]] [[Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.css]]*/ mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.js&action=raw&ctype=text/javascript'); mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Joeytje50/JWB.js/load.js&action=raw&ctype=text/javascript'); ( function () { 'use strict'; if ( [ 'Recentchanges', 'Watchlist' ].indexOf( mw.config.get( 'wgCanonicalSpecialPageName' ) ) === -1 ) { return; } var style = document.createElement( 'style' ); style.textContent = '.mw-rollback-link { display: none !important; }'; document.head.appendChild( style ); }() ); //[[Bikarhêner:Wikihez/skrîpt/js/templateParamRenamer.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/templateParamRenamer.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/quicklinks.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/quicklinks.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/citeKurdifier.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/citeKurdifier.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Gadget-defaultVisibilityToggles.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-defaultVisibilityToggles.js&action=raw&ctype=text/javascript'); /*---------QQ.js------------- [[Bikarhêner:Wikihez/Gadget-QQ.js]] [[Bikarhêner:Wikihez/Gadget-QQ.css]]*/ mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-QQ.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-QQ.js&action=raw&ctype=text/javascript'); /*---------add-examples.js------------- [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.js]] [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.css]]*/ mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-wikt.add-examples.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-wikt.add-examples.js&action=raw&ctype=text/javascript'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/loader.js&action=raw&ctype=text/javascript') importScript( 'Bikarhêner:Wikihez/skrîpt/js/copyTitle.js' ); // Backlink: [[Bikarhêner:Wikihez/skrîpt/js/copyTitle.js]] // [[Bikarhêner:Wikihez/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/addAutoCat.js&action=raw&ctype=text/javascript'); importScript( 'Bikarhêner:Wikihez/newentrywiz.js' ); // Backlink: [[Bikarhêner:Wikihez/newentrywiz.js]] //[[Bikarhêner:Wikihez/CreateTranslation.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/CreateTranslation.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/wergerîne.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/wergerîne.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/getinflections.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/getinflections.js&action=raw&ctype=text/javascript'); //[[:w:Bikarhêner:Wikihez/skrîpt/js/OngletPurge.js]] mw.loader.load('//ku.wikipedia.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/OngletPurge.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/templateScript2.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/templateScript2.js&action=raw&ctype=text/javascript'); // [[Bikarhêner:Wikihez/şablon-lêke.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/şablon-lêke.js&action=raw&ctype=text/javascript'); mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:BrandonXLF/TodoList.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/test.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/test.js&action=raw&ctype=text/javascript'); //================================================================================================================================ /*---------start.js------------- [[Bikarhêner:Wikihez/Gadget-start.js]] [[Bikarhêner:Wikihez/Gadget-start.css]] mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-start.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-start.js&action=raw&ctype=text/javascript'); */ //importScript( 'Bikarhêner:Wikihez/skrîpt/js/Gadget-citoid-helper.js' ); // Backlink: [[Bikarhêner:Wikihez/skrîpt/js/Gadget-citoid-helper.js]] //importScript( 'Bikarhêner:Wikihez/Gadget-linkify.js' ); // Backlink: [[Bikarhêner:Wikihez/Gadget-linkify.js]] //[[Bikarhêner:Wikihez/skrîpt/js/Gadget-catfix.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/Gadget-catfix.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/editor.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/editor.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/UpdateLanguageNameAndCode.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/UpdateLanguageNameAndCode.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/TranslationAdder-Data.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/TranslationAdder-Data.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/LanguageUtils.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/LanguageUtils.js&action=raw&ctype=text/javascript'); /*---------aWa.js------------- [[Bikarhêner:Wikihez/Gadget-aWa.js]] [[Bikarhêner:Wikihez/Gadget-aWa.css]] mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-aWa.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-aWa.js&action=raw&ctype=text/javascript'); */ // This array of dependencies comes from [[MediaWiki:Gadgets-definition]]. // If the list of dependencies changes, copy the text after dependencies= // for TranslationAdder and run console.log(JSON.stringify("paste dependencies here".split(/, ?/))) // in your browser's JavaScript console. Put the resulting array as the first argument to mw.loader.using. //[[User:Wikihez/skrîpt/js/TranslationAdder.js]] //mw.loader.using(["ext.gadget.LegacyScriptsNewNode","mediawiki.cookie","mediawiki.util"], //function() { // importScript('User:Wikihez/skrîpt/js/TranslationAdder.js'); //}); /* // [[:w:en:MediaWiki:Gadget-edittop.js]] mw.loader.load('//en.wikipedia.org/w/index.php?title=MediaWiki:Gadget-edittop.js&action=raw&ctype=text/javascript'); // [[Bikarhêner:Wikihez/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/addAutoCat.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Balyozbot/Gadget-CommonWikt.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Balyozbot/Gadget-CommonWikt.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/hw-ceke.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/hw-ceke.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/sort-langheaders.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/sort-langheaders.js&action=raw&ctype=text/javascript'); //[[:en:User:Conrad.Irwin/Api.js]] mw.loader.load('//en.wiktionary.org/w/index.php?title=User:Conrad.Irwin/Api.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/etîket-çêke.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/etîket-çêke.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/tagger.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/tagger.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Gadget-CatMaker.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-CatMaker.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/VisibilityToggles.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/VisibilityToggles.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Gadget-WiktAccFormCreation.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-WiktAccFormCreation.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/XMLize.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/XMLize.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/RhymesAdder.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/RhymesAdder.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Editor.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Editor.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/FilterTranslations.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/FilterTranslations.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/custom.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/custom.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/reformat.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/reformat.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/translateWiki.js]] ji aliyê [[Bikarhêner:Guherto]], [[Taybet:PermanentLink/4854098#Translatewiki.net]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/translateWiki.js&action=raw&ctype=text/javascript'); // Various fixes for the trees generated by [[Module:family tree]]. $(function () { // Show the top toggle. $('.familytree-toptoggle').css('display', ''); // Initialize the text of the toggles. $('.familytree').get().forEach(function (tree) { var isCollapsed = tree.classList.contains('mw-collapsed'); var toggles = $(tree).find('.familytree-toggle'); if (toggles[0]) { var customToggleClass = Array.prototype.filter.call(toggles[0].classList, function (className) { return className.indexOf('mw-customtoggle-familytree') === 0; })[0]; if (customToggleClass) { var toggledElement = $('#' + customToggleClass.replace('mw-customtoggle', 'mw-customcollapsible')); if (toggledElement) { toggles.html(toggledElement.data(isCollapsed ? 'expandtext' : 'collapsetext')); } } } }); // Change the text in the custom toggles generated by [[Module:family tree]] // when they are clicked. $('.mw-collapsible').on('beforeExpand.mw-collapsible beforeCollapse.mw-collapsible', function (event) { if (this.id.indexOf('mw-customcollapsible-familytree') === 0) { var toggle = $('.' + this.id.replace('mw-customcollapsible', 'mw-customtoggle')); if (event.type === 'beforeExpand') { toggle.html(this.dataset.collapsetext); } else { // beforeCollapse toggle.html(this.dataset.expandtext); } event.stopPropagation(); } }); }); */ 1cvizvfl0yi6lzqc8hhja404xq09969 6329714 6329691 2026-08-12T20:26:00Z Wikihez 7344 6329714 javascript text/javascript /*---------Gadget-morebits.js------------- [[Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.js]] [[Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.css]]*/ mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.js&action=raw&ctype=text/javascript'); mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Joeytje50/JWB.js/load.js&action=raw&ctype=text/javascript'); ( function () { 'use strict'; if ( [ 'Recentchanges', 'Watchlist' ].indexOf( mw.config.get( 'wgCanonicalSpecialPageName' ) ) === -1 ) { return; } var style = document.createElement( 'style' ); style.textContent = '.mw-rollback-link { display: none !important; }'; document.head.appendChild( style ); }() ); //[[Bikarhêner:Wikihez/skrîpt/js/templateParamRenamer.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/templateParamRenamer.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/quicklinks.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/quicklinks.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/citeKurdifier.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/citeKurdifier.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Gadget-defaultVisibilityToggles.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-defaultVisibilityToggles.js&action=raw&ctype=text/javascript'); /*---------QQ.js------------- [[Bikarhêner:Wikihez/Gadget-QQ.js]] [[Bikarhêner:Wikihez/Gadget-QQ.css]] mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-QQ.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-QQ.js&action=raw&ctype=text/javascript'); */ /*---------add-examples.js------------- [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.js]] [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.css]] mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-wikt.add-examples.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-wikt.add-examples.js&action=raw&ctype=text/javascript'); */ mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/loader.js&action=raw&ctype=text/javascript') importScript( 'Bikarhêner:Wikihez/skrîpt/js/copyTitle.js' ); // Backlink: [[Bikarhêner:Wikihez/skrîpt/js/copyTitle.js]] // [[Bikarhêner:Wikihez/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/addAutoCat.js&action=raw&ctype=text/javascript'); //importScript( 'Bikarhêner:Wikihez/newentrywiz.js' ); // Backlink: [[Bikarhêner:Wikihez/newentrywiz.js]] //[[Bikarhêner:Wikihez/CreateTranslation.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/CreateTranslation.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/wergerîne.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/wergerîne.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/getinflections.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/getinflections.js&action=raw&ctype=text/javascript'); //[[:w:Bikarhêner:Wikihez/skrîpt/js/OngletPurge.js]] mw.loader.load('//ku.wikipedia.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/OngletPurge.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/templateScript2.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/templateScript2.js&action=raw&ctype=text/javascript'); // [[Bikarhêner:Wikihez/şablon-lêke.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/şablon-lêke.js&action=raw&ctype=text/javascript'); mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:BrandonXLF/TodoList.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/test.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/test.js&action=raw&ctype=text/javascript'); //================================================================================================================================ /*---------start.js------------- [[Bikarhêner:Wikihez/Gadget-start.js]] [[Bikarhêner:Wikihez/Gadget-start.css]] mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-start.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-start.js&action=raw&ctype=text/javascript'); */ //importScript( 'Bikarhêner:Wikihez/skrîpt/js/Gadget-citoid-helper.js' ); // Backlink: [[Bikarhêner:Wikihez/skrîpt/js/Gadget-citoid-helper.js]] //importScript( 'Bikarhêner:Wikihez/Gadget-linkify.js' ); // Backlink: [[Bikarhêner:Wikihez/Gadget-linkify.js]] //[[Bikarhêner:Wikihez/skrîpt/js/Gadget-catfix.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/Gadget-catfix.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/editor.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/editor.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/UpdateLanguageNameAndCode.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/UpdateLanguageNameAndCode.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/TranslationAdder-Data.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/TranslationAdder-Data.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/LanguageUtils.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/LanguageUtils.js&action=raw&ctype=text/javascript'); /*---------aWa.js------------- [[Bikarhêner:Wikihez/Gadget-aWa.js]] [[Bikarhêner:Wikihez/Gadget-aWa.css]] mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-aWa.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-aWa.js&action=raw&ctype=text/javascript'); */ // This array of dependencies comes from [[MediaWiki:Gadgets-definition]]. // If the list of dependencies changes, copy the text after dependencies= // for TranslationAdder and run console.log(JSON.stringify("paste dependencies here".split(/, ?/))) // in your browser's JavaScript console. Put the resulting array as the first argument to mw.loader.using. //[[User:Wikihez/skrîpt/js/TranslationAdder.js]] //mw.loader.using(["ext.gadget.LegacyScriptsNewNode","mediawiki.cookie","mediawiki.util"], //function() { // importScript('User:Wikihez/skrîpt/js/TranslationAdder.js'); //}); /* // [[:w:en:MediaWiki:Gadget-edittop.js]] mw.loader.load('//en.wikipedia.org/w/index.php?title=MediaWiki:Gadget-edittop.js&action=raw&ctype=text/javascript'); // [[Bikarhêner:Wikihez/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/addAutoCat.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Balyozbot/Gadget-CommonWikt.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Balyozbot/Gadget-CommonWikt.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/hw-ceke.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/hw-ceke.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/sort-langheaders.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/sort-langheaders.js&action=raw&ctype=text/javascript'); //[[:en:User:Conrad.Irwin/Api.js]] mw.loader.load('//en.wiktionary.org/w/index.php?title=User:Conrad.Irwin/Api.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/etîket-çêke.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/etîket-çêke.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/tagger.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/tagger.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Gadget-CatMaker.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-CatMaker.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/VisibilityToggles.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/VisibilityToggles.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Gadget-WiktAccFormCreation.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-WiktAccFormCreation.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/XMLize.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/XMLize.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/RhymesAdder.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/RhymesAdder.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Editor.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Editor.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/FilterTranslations.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/FilterTranslations.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/custom.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/custom.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/reformat.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/reformat.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/translateWiki.js]] ji aliyê [[Bikarhêner:Guherto]], [[Taybet:PermanentLink/4854098#Translatewiki.net]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/translateWiki.js&action=raw&ctype=text/javascript'); // Various fixes for the trees generated by [[Module:family tree]]. $(function () { // Show the top toggle. $('.familytree-toptoggle').css('display', ''); // Initialize the text of the toggles. $('.familytree').get().forEach(function (tree) { var isCollapsed = tree.classList.contains('mw-collapsed'); var toggles = $(tree).find('.familytree-toggle'); if (toggles[0]) { var customToggleClass = Array.prototype.filter.call(toggles[0].classList, function (className) { return className.indexOf('mw-customtoggle-familytree') === 0; })[0]; if (customToggleClass) { var toggledElement = $('#' + customToggleClass.replace('mw-customtoggle', 'mw-customcollapsible')); if (toggledElement) { toggles.html(toggledElement.data(isCollapsed ? 'expandtext' : 'collapsetext')); } } } }); // Change the text in the custom toggles generated by [[Module:family tree]] // when they are clicked. $('.mw-collapsible').on('beforeExpand.mw-collapsible beforeCollapse.mw-collapsible', function (event) { if (this.id.indexOf('mw-customcollapsible-familytree') === 0) { var toggle = $('.' + this.id.replace('mw-customcollapsible', 'mw-customtoggle')); if (event.type === 'beforeExpand') { toggle.html(this.dataset.collapsetext); } else { // beforeCollapse toggle.html(this.dataset.expandtext); } event.stopPropagation(); } }); }); */ dvtq5ctc64dp35wa3ipdjtrc4ir0ydw kûçik bi qusandinê nabe tajî 0 874344 6329623 6252599 2026-08-12T13:57:04Z Wikihez 7344 Werger: +tirkî : [[taşıma suyla değirmen dönmez]] (bi alîkarî) 6329623 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Gotineke pêşiyan === {{gp|ku}} # Mirov tiştekî [[bêfêde]] [[bi zorê]] nikare bike [[kêrhatî]]. ==== Formên alternatîv ==== * [[mirov kuçikê biqusîne nabe tajî]]<ref>{{pirtûk|nivîskar=Abdurrahman Aydoğdu|sernav=Gotinên Pêşiyan|weşanxane=Na Yayınları|rûpel=96|isbn=9786059017114}}</ref> * [[kûçikan biqusînî nabin tajî]]<ref>{{pirtûk|nivîskar=Mehmet Oncu|sernav=Ferhenga Devoka Herêma Semsûrê|weşanxane=Sîtav|sal=2020|rûpel=189|isbn=9786057920607|ziman=ku}}</ref> * [[kûçik çiqas biqusînî jî dîsa nabe tajî]]<ref>{{pirtûk|nivîskar=Amed Tîgrîs|sernav=Gotînên Pêşiyan|weşanxane=Rewşen|sal=2001|rûpel=156|isbn=91-88-444-78-3|ziman=ku}}</ref> ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W-|tr|taşıma suyla değirmen dönmez}} {{werger-bin}} === Çavkanî === * {{malper|nivîskar=Zinarê Xamo|url=http://zinarexamo.blogspot.com/2015/08/kucik-bi-qusandine-nabe-taji.html|sernav=Kûçik bi qusandinê nabe tajî!|malper=zinarexamo.blogspot.com|dîrok=2015|ziman=ku}} * {{malper|nivîskar=Selman|url=https://www.ilkehaber.com/haber/kilicdaroglu-kurtlere-guven-vermedik-29206.htm|sernav=kurmê darê|malper=ilkehaber.com|dîrok=2014|ziman=ku}} {{çavkanî}} fuxv11c7cq4luz8h6234o001cjcwels 6329624 6329623 2026-08-12T13:59:19Z Wikihez 7344 6329624 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Gotineke pêşiyan === {{gp|ku}} # Mirov tiştekî [[bêfêde]] [[bi zorê]] nikare bike [[kêrhatî]]. #* {{jêder-malper|ku|jêgirtin=Em çi bibêjin jî bêfeyde ye, wek pêşiyan gotiye, ”kûçik bi qusandinê nabe tajî” û we selam… |nivîskar=Zinarê Xamo|url=http://zinarexamo.blogspot.com/2015/08/kucik-bi-qusandine-nabe-taji.html|sernav=Kûçik bi qusandinê nabe tajî!|malper=zinarexamo.blogspot.com|sal=2015}} ==== Formên alternatîv ==== * [[mirov kuçikê biqusîne nabe tajî]]<ref>{{pirtûk|nivîskar=Abdurrahman Aydoğdu|sernav=Gotinên Pêşiyan|weşanxane=Na Yayınları|rûpel=96|isbn=9786059017114}}</ref> * [[kûçikan biqusînî nabin tajî]]<ref>{{pirtûk|nivîskar=Mehmet Oncu|sernav=Ferhenga Devoka Herêma Semsûrê|weşanxane=Sîtav|sal=2020|rûpel=189|isbn=9786057920607|ziman=ku}}</ref> * [[kûçik çiqas biqusînî jî dîsa nabe tajî]]<ref>{{pirtûk|nivîskar=Amed Tîgrîs|sernav=Gotînên Pêşiyan|weşanxane=Rewşen|sal=2001|rûpel=156|isbn=91-88-444-78-3|ziman=ku}}</ref> ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W-|tr|taşıma suyla değirmen dönmez}} {{werger-bin}} === Çavkanî === * {{malper|nivîskar=Selman|url=https://www.ilkehaber.com/haber/kilicdaroglu-kurtlere-guven-vermedik-29206.htm|sernav=kurmê darê|malper=ilkehaber.com|sal=2014|ku}} {{çavkanî}} gm98eh9vbu4375jf2e5j0bqqjna2ecf 6329625 6329624 2026-08-12T13:59:35Z Wikihez 7344 6329625 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Gotineke pêşiyan === {{gp|ku}} # Mirov tiştekî [[bêfêde]] [[bi zorê]] nikare bike [[kêrhatî]]. #* {{jêder-malper|ku|jêgirtin=Em çi bibêjin jî bêfeyde ye, wek pêşiyan gotiye, ”'''kûçik bi qusandinê nabe tajî'''” û we selam… |nivîskar=Zinarê Xamo|url=http://zinarexamo.blogspot.com/2015/08/kucik-bi-qusandine-nabe-taji.html|sernav=Kûçik bi qusandinê nabe tajî!|malper=zinarexamo.blogspot.com|sal=2015}} ==== Formên alternatîv ==== * [[mirov kuçikê biqusîne nabe tajî]]<ref>{{pirtûk|nivîskar=Abdurrahman Aydoğdu|sernav=Gotinên Pêşiyan|weşanxane=Na Yayınları|rûpel=96|isbn=9786059017114}}</ref> * [[kûçikan biqusînî nabin tajî]]<ref>{{pirtûk|nivîskar=Mehmet Oncu|sernav=Ferhenga Devoka Herêma Semsûrê|weşanxane=Sîtav|sal=2020|rûpel=189|isbn=9786057920607|ziman=ku}}</ref> * [[kûçik çiqas biqusînî jî dîsa nabe tajî]]<ref>{{pirtûk|nivîskar=Amed Tîgrîs|sernav=Gotînên Pêşiyan|weşanxane=Rewşen|sal=2001|rûpel=156|isbn=91-88-444-78-3|ziman=ku}}</ref> ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W-|tr|taşıma suyla değirmen dönmez}} {{werger-bin}} === Çavkanî === * {{malper|nivîskar=Selman|url=https://www.ilkehaber.com/haber/kilicdaroglu-kurtlere-guven-vermedik-29206.htm|sernav=kurmê darê|malper=ilkehaber.com|sal=2014|ku}} {{çavkanî}} lhzaqjvbkueuhfn20t59ux082auh4ra 6329626 6329625 2026-08-12T14:03:27Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329626 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Gotineke pêşiyan === {{gp|ku}} # Mirov tiştekî [[bêfêde]] [[bi zorê]] nikare bike [[kêrhatî]]. #* {{jêder-malper|ku|jêgirtin=Em çi bibêjin jî bêfeyde ye, wek pêşiyan gotiye, ”'''kûçik bi qusandinê nabe tajî'''” û we selam… |nivîskar=Zinarê Xamo|url=http://zinarexamo.blogspot.com/2015/08/kucik-bi-qusandine-nabe-taji.html|sernav=Kûçik bi qusandinê nabe tajî!|malper=zinarexamo.blogspot.com|sal=2015}} ==== Formên alternatîv ==== * [[mirov kuçikê biqusîne nabe tajî]]<ref>{{pirtûk|nivîskar=Abdurrahman Aydoğdu|sernav=Gotinên Pêşiyan|weşanxane=Na Yayınları|rûpel=96|isbn=9786059017114}}</ref> * [[kûçikan biqusînî nabin tajî]]<ref>{{pirtûk|nivîskar=Mehmet Oncu|sernav=Ferhenga Devoka Herêma Semsûrê|weşanxane=Sîtav|sal=2020|rûpel=189|isbn=9786057920607|ziman=ku}}</ref> * [[kûçik çiqas biqusînî jî dîsa nabe tajî]]<ref>{{pirtûk|nivîskar=Amed Tîgrîs|sernav=Gotînên Pêşiyan|weşanxane=Rewşen|sal=2001|rûpel=156|isbn=91-88-444-78-3|ziman=ku}}</ref> ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W-|tr|taşıma su ile değirmen dönmez}} {{werger-bin}} === Çavkanî === * {{malper|nivîskar=Selman|url=https://www.ilkehaber.com/haber/kilicdaroglu-kurtlere-guven-vermedik-29206.htm|sernav=kurmê darê|malper=ilkehaber.com|sal=2014|ku}} {{çavkanî}} fpgj09vc4js75rr0qsv4ou6855xeb24 Bikarhêner:Wikihez/common.css 2 874440 6329688 6328424 2026-08-12T18:35:45Z Wikihez 7344 6329688 css text/css /* [[Şablon:manelazim]]: dema ku amûra "Pênaseyê temam bike" bi awayekî serkeftî were barkirin, nivîsa cîgir a "manelazim" tê veşartin; ji bo bikarhênerên bêyî JavaScript, ev nivîs xuya dibe (ji ber vê yekê em .manelazim bi xwe naşehitînin). */ .fill-definition-resolved > .manelazim { display: none; } 8v47cjnw570spsn71cmkoba0n2c2h14 Şablon:Ç:Dosikî:2016 10 934930 6329745 4856877 2026-08-12T21:14:04Z Wikihez 7344 6329745 wikitext text/x-wiki {{#invoke:quote|call_template |template=cite-book |ku |last=Dosikî |first=Mihemed Emîn |entry={{{ser|{{{1|}}}}}} |title=ar:فەرهەنگا سپیرێز عەرەبی کوردی<t:Ferhenga Spîrêz Erebî-Kurdî> |year=2016 |location=Dihok |publisher=Spîrêz |textparam=jêgirtin |pageparam=r,rûpel |isbn= |allowparams=ser,1,r,rûpel }}<noinclude>{{belgekirin}}</noinclude> 0o0t85tjdzgf0jfmkif88j9f9pnq1i8 6329747 6329745 2026-08-12T21:15:44Z Wikihez 7344 Wikihezî/ê navê [[Şablon:Fer:ar-kur:spîrêz]] weke [[Şablon:Ç:Dosikî:2016]] guhart 6329745 wikitext text/x-wiki {{#invoke:quote|call_template |template=cite-book |ku |last=Dosikî |first=Mihemed Emîn |entry={{{ser|{{{1|}}}}}} |title=ar:فەرهەنگا سپیرێز عەرەبی کوردی<t:Ferhenga Spîrêz Erebî-Kurdî> |year=2016 |location=Dihok |publisher=Spîrêz |textparam=jêgirtin |pageparam=r,rûpel |isbn= |allowparams=ser,1,r,rûpel }}<noinclude>{{belgekirin}}</noinclude> 0o0t85tjdzgf0jfmkif88j9f9pnq1i8 Şablon:Ç:Dosikî:2013 10 934933 6329722 4856876 2026-08-12T20:54:27Z Wikihez 7344 6329722 wikitext text/x-wiki {{#invoke:quote|call_template |template=cite-book |ku |last=Dosikî |first=Mihemed Emîn |entry={{{ser|{{{1|}}}}}} |title=ar:قاموس سپیرێز كردي-عربي<t:Ferhenga Spîrêz Kurdî-Erebî> |year=2013 |location=Duhok |publisher=Spîrêz |textparam=jêgirtin |pageparam=r,rûpel |isbn= |allowparams=ser,1,r,rûpel }}<noinclude>{{refcat|ar|ku}}<templatedata> { "params": { "ser": { "aliases": [ "1" ], "label": "navê madeyê" }, "rûpel": { "aliases": [ "1" ] } }, "description": "Çavkanî ji ferhenga Mihemed Emîn Dosikî (2013), قاموس سپیرێز كردي-عربي [Ferhenga Spîrêz Kurdî-Erebî], Duhok: Spîrêz\n", "format": "inline" } </templatedata></noinclude> sf2x8w498iov6dha7wdyuvcvxp9s1wm 6329723 6329722 2026-08-12T20:54:55Z Wikihez 7344 Wikihezî/ê navê [[Şablon:Fer:kur-ar:spîrêz]] weke [[Şablon:Ç:Doskî:2013]] guhart 6329722 wikitext text/x-wiki {{#invoke:quote|call_template |template=cite-book |ku |last=Dosikî |first=Mihemed Emîn |entry={{{ser|{{{1|}}}}}} |title=ar:قاموس سپیرێز كردي-عربي<t:Ferhenga Spîrêz Kurdî-Erebî> |year=2013 |location=Duhok |publisher=Spîrêz |textparam=jêgirtin |pageparam=r,rûpel |isbn= |allowparams=ser,1,r,rûpel }}<noinclude>{{refcat|ar|ku}}<templatedata> { "params": { "ser": { "aliases": [ "1" ], "label": "navê madeyê" }, "rûpel": { "aliases": [ "1" ] } }, "description": "Çavkanî ji ferhenga Mihemed Emîn Dosikî (2013), قاموس سپیرێز كردي-عربي [Ferhenga Spîrêz Kurdî-Erebî], Duhok: Spîrêz\n", "format": "inline" } </templatedata></noinclude> sf2x8w498iov6dha7wdyuvcvxp9s1wm 6329732 6329723 2026-08-12T21:07:25Z Wikihez 7344 Wikihezî/ê navê [[Şablon:Ç:Doskî:2013]] weke [[Şablon:Ç:Dosikî:2013]] guhart 6329722 wikitext text/x-wiki {{#invoke:quote|call_template |template=cite-book |ku |last=Dosikî |first=Mihemed Emîn |entry={{{ser|{{{1|}}}}}} |title=ar:قاموس سپیرێز كردي-عربي<t:Ferhenga Spîrêz Kurdî-Erebî> |year=2013 |location=Duhok |publisher=Spîrêz |textparam=jêgirtin |pageparam=r,rûpel |isbn= |allowparams=ser,1,r,rûpel }}<noinclude>{{refcat|ar|ku}}<templatedata> { "params": { "ser": { "aliases": [ "1" ], "label": "navê madeyê" }, "rûpel": { "aliases": [ "1" ] } }, "description": "Çavkanî ji ferhenga Mihemed Emîn Dosikî (2013), قاموس سپیرێز كردي-عربي [Ferhenga Spîrêz Kurdî-Erebî], Duhok: Spîrêz\n", "format": "inline" } </templatedata></noinclude> sf2x8w498iov6dha7wdyuvcvxp9s1wm 6329738 6329732 2026-08-12T21:08:49Z Wikihez 7344 6329738 wikitext text/x-wiki {{#invoke:quote|call_template |template=cite-book |ku |last=Dosikî |first=Mihemed Emîn |entry={{{ser|{{{1|}}}}}} |title=ar:قاموس سپیرێز كردي-عربي<t:Ferhenga Spîrêz Kurdî-Erebî> |year=2013 |location=Duhok |publisher=Spîrêz |textparam=jêgirtin |pageparam=r,rûpel |isbn= |allowparams=ser,1,r,rûpel }}<noinclude>{{belgekirin}}</noinclude> 7gpxgjcwz4h5mplor9zzcoe98ylpuqb 6329744 6329738 2026-08-12T21:13:46Z Wikihez 7344 6329744 wikitext text/x-wiki {{#invoke:quote|call_template |template=cite-book |ku |last=Dosikî |first=Mihemed Emîn |entry={{{ser|{{{1|}}}}}} |title=ar:قاموس سپیرێز كردي-عربي<t:Ferhenga Spîrêz Kurdî-Erebî> |year=2013 |location=Dihok |publisher=Spîrêz |textparam=jêgirtin |pageparam=r,rûpel |isbn= |allowparams=ser,1,r,rûpel }}<noinclude>{{belgekirin}}</noinclude> jre94q1n6lvhjbxvh4r83gsn7jxrv6b reemerge 0 934943 6329792 6255501 2026-08-12T22:37:56Z Wikihez 7344 /* Lêker */ 6329792 wikitext text/x-wiki {{bnr herwiha|re-emerge|reëmerge}} == {{ziman|en}} == === Bilêvkirin === : {{ku-tîp|rîemorc}} * ''(DYA)'' {{IPA|en|/ɹi.i.ˈmɝdʒ/|/ɹi.i.ˈmɚdʒ/}} === Lêker === {{lêker|en}} # [[ji nû ve]] [[derketin meydanê]], [[cardin]] [[derketin holê]] #* {{jêder|en|Ji anîmeya bi navê ''Bungou Stray Dogs''|jêgirtin=We're investigating the rumor that the previous boss has '''re-emerged'''.|werger=Em li wê gotegotê dikolin ku dibêjin patronê berê ji nû ve derketiye holê.}} ==== Formên alternatîv ==== {{kol3|en |re-emerge |reëmerge }} ==== Jê ==== {{kol3|en |reemergence |reemergent }} ==== Etîmolojî ==== Ji {{pêş|en|re-|emerge}}. mq4hsynl7hahuy2kws30az6d8hjeafv mucîzewî 0 935406 6329874 6284839 2026-08-13T00:23:46Z Wikihez 7344 6329874 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Yê wekî [[mucîze]]yê xwedî [[taybetî|taybeti]]yên [[niwaze|niwaze]]. #* {{jêder-malper|ku|jêgirtin=Xelkên wê demê, wisa bawer kirine ku ew xwediyê hêzên '''mucîzewî''' ye û xwe avêtiye nava alavên çiyayê agirîn ''(volkan)'' yên ''Etnayê''.|nivîskar=Alî Gurdilî|sernav=Çar elementên Empedokles|url=https://krd.riataza.com/2018/11/19/car-elementen-empedokles/|malper=RiaTaza|dîrok=2018-11-19}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|miraculous}} * {{Z|tr}}: {{W|tr|mucizevi}} {{werger-bin}} k1wg6yefgpxbns7yel6c947stm3x61p 6329920 6329874 2026-08-13T02:12:17Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6329920 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Yê wekî [[mucîze]]yê xwedî [[taybetî|taybetiyên]] [[niwaze]]. #* {{jêder-malper|ku|jêgirtin=Xelkên wê demê, wisa bawer kirine ku ew xwediyê hêzên '''mucîzewî''' ye û xwe avêtiye nava alavên çiyayê agirîn ''(volkan)'' yên ''Etnayê''.|nivîskar=Alî Gurdilî|sernav=Çar elementên Empedokles|url=https://krd.riataza.com/2018/11/19/car-elementen-empedokles/|malper=RiaTaza|dîrok=2018-11-19}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|miraculous}} * {{Z|tr}}: {{W|tr|mucizevi}} {{werger-bin}} cdfw7qqvoih3p71diyg2pwheyuyrj98 qerxûş 0 935853 6329906 6286343 2026-08-13T00:58:33Z Wikihez 7344 6329906 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # {{f|ku|balinde}} Yek ji cureyê [[eylo]] ye. #* {{jêder-malper|ku|jêgirtin='''Qerxûş''': Teyrekî ji qertel biçûktir e, ji seyda korgî/kîroşk û hin teyran hez dike.|nivîskar=Zinarê Xamo|sernav=Ji devê dêya min çend tiştên pir hêja -1-|url=http://zinarexamo.blogspot.com/2018/05/ji-deve-deya-min-cend-tisten-pir-heja-1.html|malper=zinarexamo.blogspot.com|dîrok=2018}} #* {{jêder-pirtûk|ku|jêgirtin=Bi ereban re, bi tirkmenan re bi osmanîyan re dibin yek, ji wan re dengê xwe nakin, ji me re '''qerxûş''' in.|nivîskar=Eyüp Kıran| sernav=Dewrêşê Evdî Kulîlka Bilbizêk û Rim|cîh=Stenbol|weşanxane={{w|Nûbihar}}|sal=2018|çap=4|rûpel=28 |isbn=978-9944-360-95-1}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} oypp7qvsga12lwa8ebqu9bui7x2ur3v 6329907 6329906 2026-08-13T00:58:58Z Wikihez 7344 /* Navdêr */ 6329907 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # {{f|ku|balinde}} Yek ji cureyê [[eylo]] ye. #* {{jêder-malper|ku|jêgirtin='''Qerxûş''': Teyrekî ji qertel biçûktir e, ji seyda korgî/kîroşk û hin teyran hez dike.|nivîskar=Zinarê Xamo|sernav=Ji devê dêya min çend tiştên pir hêja -1-|url=http://zinarexamo.blogspot.com/2018/05/ji-deve-deya-min-cend-tisten-pir-heja-1.html|malper=zinarexamo.blogspot.com|sal=2018}} #* {{jêder-pirtûk|ku|jêgirtin=Bi ereban re, bi tirkmenan re bi osmanîyan re dibin yek, ji wan re dengê xwe nakin, ji me re '''qerxûş''' in.|nivîskar=Eyüp Kıran| sernav=Dewrêşê Evdî Kulîlka Bilbizêk û Rim|cîh=Stenbol|weşanxane={{w|Nûbihar}}|sal=2018|çap=4|rûpel=28 |isbn=978-9944-360-95-1}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} acheiery0l53cf4c46thhqg8jo8h4dv miqerer 0 936122 6329851 6329063 2026-08-12T23:57:12Z Wikihez 7344 6329851 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|miqerer}} {{rengdêr|ku}} # [[biryarbûyî]], yê ku hatiye qerargirtin #* {{J:Mem û Zîn|jêgirtin=Yek şubhê Bekir, bitac û binper<br/> Westayî li ber derî, '''muqerrer'''}} #* {{jêder-malper|ku|jêgirtin=Ji qaîdeyên '''muqerrer''' e ku: “Mena herfî, ji hukmê qestî re, nabe mehkûmû eleyhî û tetqîqat li ser mena herfî çênabin.|malper=Zehra.com|sernav=Mesnewiya Nûriye|url=https://zehra.com.tr/kitapoku.php?id=20&sayfa=279|urlya-arşîvê=https://web.archive.org/web/20210213145507/https://zehra.com.tr/kitapoku.php?id=20&sayfa=279|nivîskar=Seîdê Kurdî}} ==== Formên alternatîv ==== * [[muqerer]] * [[miqerrer]] ==== Etîmolojî ==== Ji {{deyn|ar}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 1z5qnaidsp071mtd5gxcd2hu7n9l7rs manîkur 0 956231 6329833 6329356 2026-08-12T23:35:26Z Wikihez 7344 6329833 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} [[Wêne:Nail salon -Fujiyoshida 01.jpg|thumb|300px|Destekî ku lê manîkur tê kirin]] # [[miamele]]yên [[kozmetîk]] yê ji bo [[neynûk]]an [[tilî|tiliyan]] #* {{jêder-malper|ku|jêgirtin=Li gora fitweya melayan bikar anîna makyaj û manîkuran heram e. Ji ber vê yekê ev '''manîkura''' îslamî hatiye derxistin.|url=http://avestakurd.net/blog/2013/02/02/mankura-slam-hate-ckirin/|sernav=Manîkura Îslamî hate çêkirin|dîrok=2013-02-02|malper=Avestakurd.net|urlya-arşîvê=https://web.archive.org/web/20210221223406/http://avestakurd.net/blog/2013/02/02/mankura-slam-hate-ckirin/}} #* {{jêder-malper|ku|jêgirtin=Wê çêlekên Semsûrê ji îro û pêde heftê rojekê herin ser berber xwe bedew bikin, piştre wê herin '''manîkura''' nenûkên xwe bikin, wan biqusînin û şahîk bikin, û piştre jî herin têkevin hawizê avê û xwe helal bikin.|sernav=Di çavê wan de çêlek ji Kurdan qîmettir in|url=http://www.lotikxane.com/arsiv/arsiv%2071.html|malper=Lotikxane|dîrok=2007-09-02|urlya-arşîvê=https://web.archive.org/web/20210221224021/http://www.lotikxane.com/arsiv/arsiv%2071.html}} #* {{jêder-malper|ku|jêgirtin=Dev ji peyvên '''manîkurê''' berdin, em bra ne, em wek goşt û neynokê ne…|dîrok=2012-12-14|sernav=“Kurd êdî ji gotina bratiyê îkrah dikin“|url=http://avestakurd.net/blog/2012/12/14/kurd-d-ji-gotina-bratiy-krah-dikin/|malper=Avestakurd.net|urlya-arşîvê=https://web.archive.org/web/20210221224747/http://avestakurd.net/blog/2012/12/14/kurd-d-ji-gotina-bratiy-krah-dikin/}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[manîkûr]] ==== Jê ==== * [[manîkurvan]] * [[manîkurvanî]] * [[manîkurîst]] * [[manîkurîstî]] * [[manîkur kirin]] ''(wek lêker)'' ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|manicure}} * {{Z|tr}}: {{W|tr|manikür}} {{werger-bin}} tskin8tzeouymvvc7t99ytftaerzwzc suçüstü mahkemesi 0 956369 6329915 6073205 2026-08-13T01:21:11Z Wikihez 7344 /* Navdêr */ 6329915 wikitext text/x-wiki == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # {{f|tr|hiqûq}} [[mehkeme|Mehkeme]]ya ku gava faîl [[li ser sûc girtin|li ser sûcê tê girtin]], [[di ser de girtin|di ser sûcê de girtin]] [[danişîn]]a wî lê tê dîtin. <ref>{{malper|url=https://sozluk.gov.tr/?kelime=su%C3%A7%C3%BCst%C3%BC%2Bmahkemesi|sernav=Güncel Türkçe Sözlük|ziman=tr|malper=Saziya Zimanê Tirkî|urlya-arşîvê=https://web.archive.org/web/20210225195202/https://sozluk.gov.tr/?kelime=su%C3%A7%C3%BCst%C3%BC%2Bmahkemesi}}</ref> ==== Hevmane ==== * {{g|tr|meşhut cürümler mahkemesi}} ==== Etîmolojî ==== Ji {{pêk|tr|suçüstü|[[mahkeme|mahkemesi]]}}. === Çavkanî === {{çavkanî}} a50y11qsdqo81g2ermvopc5tuo82elm 6329922 6329915 2026-08-13T03:12:07Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir, --Valahiyên nehewce.) 6329922 wikitext text/x-wiki == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # {{f|tr|hiqûq}} [[mehkeme|Mehkemeya]] ku gava faîl [[li ser sûc girtin|li ser sûcê tê girtin]], [[di ser de girtin|di ser sûcê de girtin]] [[danişîn]]a wî lê tê dîtin. <ref>{{malper|url=https://sozluk.gov.tr/?kelime=su%C3%A7%C3%BCst%C3%BC%2Bmahkemesi|sernav=Güncel Türkçe Sözlük|ziman=tr|malper=Saziya Zimanê Tirkî|urlya-arşîvê=https://web.archive.org/web/20210225195202/https://sozluk.gov.tr/?kelime=su%C3%A7%C3%BCst%C3%BC%2Bmahkemesi}}</ref> ==== Hevmane ==== * {{g|tr|meşhut cürümler mahkemesi}} ==== Etîmolojî ==== Ji {{pêk|tr|suçüstü|[[mahkeme]]si}}. === Çavkanî === {{çavkanî}} 1yn0j6j3shwy9ft2mmtuinlpvyroda2 qîl- 0 959939 6329878 6329112 2026-08-13T00:27:11Z Balyozbot 7867 /* Pêşgir */ sererastkirin 6329878 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Pêşgir === {{pêşgir|ku}} # Pêşbendikek ji bo [[superlatîv]]kirina [[reng]]an tê bikaranîn. #: ''[[qîlsor]], [[qîlreş]] / [[qîlîsor]], [[qîlîreş]]'' #* {{jêder-kovar|ku|jêgirtin=Gava berbang dikene, bi keziya '''qîlreş''' dilîze û diqumîne canê westî, ta ku navnîşaneke şadî di sîngê hêviyên nûjen de bikute, hestên sotî bersiva bercandanê qut qut dide...|kovar=Newroz|sernav=Tajana xemsariyê|url=http://www.yek-dem.com/wp-content/uploads/2017/09/Newroz-133.pdf|nivîskar=Îlham Osman|rûpel=6|hejmar=133|sal=2017}} #* {{jêder-malper|ku|jêgirtin=Li Lolanê, heft stêrkên perwînî tên xwarê; li ser çeman, ji serî de hetanî lingan kevokên '''qîlreş''', sih hêstirkên bêguneh bi avan re berdidin ji çavên xwe.|nivîskar=Abdullah Karabax|url=https://www.antoloji.com/gelawej-res-hilten-li-kendeqole-siiri/|sernav=Gelawêj Reş Hiltên Li Kendeqolê|malper=Antoloji.com|dîrok=2008-08-21|urlya-arşîvê=https://web.archive.org/web/20210314105046/https://www.antoloji.com/gelawej-res-hilten-li-kendeqole-siiri/}} ==== Formên alternatîv ==== * [[qîlî-]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 19aqu7mhmlz8mppb5a27kfe87uqkz3q perîskop 0 964517 6329877 6314399 2026-08-13T00:26:44Z Balyozbot 7867 /* Çavkanî */ sererastkirin 6329877 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === [[Wêne:Periscope rifle Gallipoli 1915.jpg|thumb|Bikaranîna '''perîskopê''' di dema Şerê Cîhanî yê Yekem de.]] {{navdêr|ku|z=m}} # {{f|ku|optîk}} [[amûr|Amûreke]] [[optîk]] e ku pê re [[pêkan]] e mirov tiştinan di [[bilindahî]] û [[rewş]]ên [[cuda]] de [[dîtin|bibîne]]. #* {{jêder-pirtûk|ku|jêgirtin=Êdî der û dor bi lez tarî dibû. Tenê serê çiyayê Gabîlanê ji şewqa roja ku ji newalê bi dûr ketibû dibiriqand. Marekî mîna '''perîskopê''' serê xwe derxistibû û pêl dibû. Ji herikandina avê qamîş dihejiyan. Ji dûr ve, ji ser rê zilamek bi dengê bilind.|sernav=Mişk û mirov|nivîskar=John Steinbeck|wergêr=Firat Cewerî|weşanxane=Nûdem|sal=1993|rûpel=12}} #* {{jêder-pirtûk|ku|jêgirtin=Marekî avî hêdî bi nava avê de diçû. Serê wî mîna '''perîskopeke''' biçûk vir de û wê de li ba dibû, ew ji ava bêdeng derbas bû û li cihê ava nizim, xwe avête nava pencên çûkekî masîxwlr.|sernav=Mişk û mirov|nivîskar=John Steinbeck|wergêr=Firat Cewerî|weşanxane=Nûdem|sal=1993|rûpel=118}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ji {{deyn|en|ku|periscope}}. ==== Werger ==== {{werger-ser}} * {{Z|da}} : {{W-|da|periskop|nt}} * {{Z|eo}} : {{W-|eo|periskopo}} * {{Z|fr}} : {{W+|fr|périscope|n}} * {{Z|en}} : {{W+|en|periscope}} * {{Z|it}} : {{W+|it|periscopio|n}} * {{Z|ca}} : {{W-|ca|periscopi|n}} * {{Z|tr}} : {{W+|tr|periskop}} * {{Z|el}} : {{W+|el|περισκόπιο|tr=periskopio}} {{werger-bin}} === Çavkanî === * {{Zana Farqînî|r=1370}} * {{ferhenga izolî|r=314}} * {{kovar|ku|kovar=Nûpelda|url=https://www.kurdipedia.org/files/relatedfiles/2016/97457/0009.PDF?ver=131225474442003267|sernav=Bêjeya Perê|nivîskar=Ahmet Demir|hejmar=9|sal=2012|rûpel=8}} eukqjw4yhelm1ca1yyvdv0cf2jv4i0g MediaWiki:Gadget-AjaxEdit.js 8 968692 6329711 4939649 2026-08-12T20:20:53Z Bikarhêner 3719 6329711 javascript text/javascript // AjaxEdit // <nowiki> "use strict"; // Çavkanî: [[en:MediaWiki:Gadget-AjaxEdit.js]] // Description : With a new button "Æbiguherîne" one can edit specific sections without reloading the whole page, with an edit summary field and minor edit option. // Ji bo aktîvkirina vê amûrê here [[Special:Preferences#mw-prefsection-gadgets|beşa Amûr ya Tercîhên mîn]] û li qutiya li gel "Amûrek e ku ji bo guhartina beşekê bi butona "Æbiguherîne" bêyî barkirina hemû rûpelê tê bikaranîn." bitikîne // Supports TabbedLanguages gadget // Dependencies: mediawiki.util, mediawiki.Uri, mediawiki.user, mediawiki.api /* jshint maxerr:1048576, strict:true, undef:true, latedef:true, sub:true, esversion:5, esnext:false */ /* global mw, $ */ (function ajaxEditIife() { window.AjaxEdit = {}; window.AjaxEdit.scriptLink = ""; if (mw.config.get("wgSiteName") !== "Wîkîferheng") window.AjaxEdit.scriptLink += "wikt:"; if (mw.config.get("wgContentLanguage") !== "ku") window.AjaxEdit.scriptLink += "ku:"; window.AjaxEdit.scriptLink += "MediaWiki:Gadget-AjaxEdit.js"; var $document = $(document); window.AjaxEdit.FireEvents = function () { // fire page load events like the [quotations ▼] thing // see https://github.com/wikimedia/mediawiki/blob/master/resources/src/mediawiki.action/mediawiki.action.edit.preview.js mw.hook("wikipage.content").fire($document); mw.hook("wikipage.categories").fire($document); }; var isVector2022 = mw.config.get("skin") === "vector-2022"; window.AjaxEdit.Click = function (ajaxEditAnchor) { if (ajaxEditAnchor.hasEditBox) { mw.notify("Ev qutiya guhertinê ya AjaxEdit jixwe vekirî ye."); return; } else if (document.getElementById("ajaxedit-wrapper")) { mw.notify("Li ser vê rûpelê jixwe qutiyeke guhertina AjaxEdit vekirî ye."); return; } else { ajaxEditAnchor.hasEditBox = true; } var elements = {}; var _query = new URL($(ajaxEditAnchor) .parent() .find("a[href*='action=edit']") .attr("href"), location.href).searchParams, title = _query.get("title"), section = _query.get("section"); section = section.replace("T-", ""); //translcusions... var hdr = $(ajaxEditAnchor).parent().parent(); var sectionName = hdr.children(":header").first().text(); if (window.tabbedLanguages && !hdr.is(":header")) { sectionName = window.tabbedLanguages[window.currentLanguageTab]; } var data = { action: 'raw', title: title, section: section }; $.get(mw.util.wikiScript('index'), data).then(function (wikitext) { var rowHeight = Math.min(15, 1 + wikitext.split("\n").length); elements.textarea = $("<textarea/>") .attr({ rows: rowHeight }) .addClass("mw-editfont-monospace") .text(wikitext); elements.textareaSummary = $("<input/>") .attr({ type: "text", maxlength: 500, spellcheck: true, name: "wpSummary", }) .keydown(event, function () { if (event.keyCode == 13) { // on enter elements.saveButton.click(); } }); function checkboxAndLabel(id, text) { var checkbox = $("<input/>") .attr({ "id": id, "type": "checkbox", }); var label = $("<label/>") .attr("for", id) .text(text); return [checkbox, label]; } var minorEdit = checkboxAndLabel("ajaxedit-minor-edit-checkbox", "Guhertina piçûk"); elements.minorEditCheckbox = minorEdit[0], elements.minorEditLabel = minorEdit[1]; elements.saveButton = $("<button/>") .text("Qeyd bike") .click(function () { elements.textarea.attr('disabled', true); elements.textareaSummary.attr('disabled', true); window.AjaxEdit.Save(section, sectionName, elements.textarea.val(), title, elements.textareaSummary.val(), elements.minorEditCheckbox.prop("checked")) .then(function (apiSaveResponse) { if (apiSaveResponse.error) return; //if abusefilter was triggered new mw.Api().get({ page: mw.config.get("wgPageName"), action: "parse", prop: "text|categorieshtml" }) .then(function (newHtml) { $("#ajaxedit-wrapper").remove(); $("#mw-content-text").html(newHtml.parse.text["*"]); $("#catlinks").replaceWith(newHtml.parse.categorieshtml["*"]); window.AjaxEdit.FireEvents(); mw.loader.moduleRegistry["site"].state = "registered"; //mw.loader.moduleRegistry["site"].version="generate-unique-guid-here"; mw.loader.moduleRegistry["site"].script = undefined; mw.loader.using("site", function () { }); window.AjaxEdit.Submain(); }); }); }) .css("margin-left", "3px"); elements.cancelButton = $('<button/>') .text("Betal bike") .click(function () { $("#ajaxedit-wrapper").remove(); ajaxEditAnchor.hasEditBox = false; }); elements.previewDiv = $("<div/>") .css({ "border-style": "solid", "border-width": "1px 1px 1px 4px", "border-radius": "0.33em", "border-color": "#a3d3ff", }) .hide(); function timestamp() { return new Date().toISOString(); } var previousText; var previousTextTimestamp = timestamp(); function loadPreview() { var newText = elements.textarea.val(); var textTimestamp = timestamp(); if (!previousText || previousText != newText) { new mw.Api() .parse( newText, { title: mw.config.get("wgPageName"), pst: "true", preview: "true", sectionpreview: "true", disableeditsection: "true" } ) .done(function (html) { if (textTimestamp > previousTextTimestamp) { elements.previewDiv.html(html); window.AjaxEdit.FireEvents(); previousTextTimestamp = textTimestamp; } }); } previousText = newText; } var livePreview = checkboxAndLabel("ajaxedit-live-preview-checkbox", "Pêşdîtina zindî"); elements.livePreviewCheckbox = livePreview[0], elements.livePreviewLabel = livePreview[1]; elements.livePreviewCheckbox.on("change", function () { if ($(this).prop("checked")) { elements.previewDiv.show("slow"); loadPreview(); this.previewIntervalId = setInterval(loadPreview, 500); } else { clearInterval(this.previewIntervalId); elements.previewDiv.hide("fast"); elements.previewDiv.empty(); } }); var wrapper = $("<div/>") .attr("id", "ajaxedit-wrapper") .css({ width: "auto", "margin": 0, "overflow": "hidden" }) .append(elements.textarea) .append(elements.textareaSummary) .append(elements.saveButton) .append(elements.livePreviewCheckbox) .append(elements.livePreviewLabel) .append(elements.minorEditCheckbox) .append(elements.minorEditLabel) .append(elements.cancelButton) .append(elements.previewDiv); //tabbed languages support if ($(ajaxEditAnchor).is("#tabstable .editlangsection a")) { $(".languageContainer:not(:hidden)") .first() .prepend(wrapper); } else { hdr.after(wrapper); } }); }; /* * Define edit summary template with window.AjaxEditSummary. For instance: window.AjaxEditSummary = "Æ $sectionlink $summary"; */ window.AjaxEdit.Save = function (sectionID, sectionName, sectionText, title, summary, minorEdit) { var finalSummary; if (typeof window.AjaxEditSummary === "string") { var usedSummary = false; finalSummary = window.AjaxEditSummary.replace( /\$([a-zA-Z_][a-zA-Z0-9_]*)/g, function (fullMatch, name) { switch (name) { case "summary": { usedSummary = true; return summary; } case "scriptlink": return window.AjaxEdit.scriptLink; case "sectionname": return sectionText; case "sectionlink": return "/* " + sectionName + " */"; default: { mw.notify( "Şablona te ya kurteya guhertinê (window.AjaxEditSummary) guhêrbareke nenas dihewîne. Navê guhêrbarê: " + name + ". Ji van hilbijêre: summary, scriptlink, sectionname, sectionlink." ); return ""; } } }); if (!usedSummary) { mw.notify( "Şablona te ya kurteya guhertinê (window.AjaxEditSummary) kurteya te ya guhertinê bi kar naîne, ji ber vê yekê kurteya te dê li dawiya şablonê were zêdekirin: " + window.AjaxEditSummary); finalSummary += " " + summary; } } else { finalSummary = "/* " + sectionName + " */ " + summary + " (bi [[" + window.AjaxEdit.scriptLink + "|AjaxEdit]]ê re)"; } var data = { format: 'json', action: 'edit', title: title, section: sectionID, summary: finalSummary, text: sectionText, token: mw.user.tokens.get('csrfToken'), minor: minorEdit, }; return new mw.Api().post(data).then(function (response) { if (response && response.edit && response.edit.result == 'Success') { mw.notify("serketî"); } else if (response && response.error) { mw.notify('Xeletî: API koda xeletiyê ya "' + response.error.code + '" şand: ' + response.error.info); } return response; }).fail(function (xhr) { mw.notify('Xeletî: Daxwaz pêk neanî.'); $('#ajaxedit-wrapper *').attr('disabled', false); }); }; window.AjaxEdit.Submain = function () { $(".mw-body-content .mw-editsection > .mw-editsection-bracket:contains(']')").each(function () { var btn = $('<a/>').text("Æbiguherîne").on("click", function () { window.AjaxEdit.Click(this) }); $(this).before(!isVector2022 ? ", " : "").before(btn); }); }; window.AjaxEdit.Main = function () { $(".mw-editsection > .mw-editsection-bracket:contains(']')").each(function () { var btn = $('<a/>').text("Æbiguherîne").on("click", function () { window.AjaxEdit.Click(this) }); $(this).before(!isVector2022 ? ", " : "").before(btn); }); }; if (mw.config.get('wgAction') == "view") $(window.AjaxEdit.Main); })(); // </nowiki> 0ar8xiasqdnc6tlf1oytsoar81ertmg Bikarhêner:Wikihez/test.js 2 969083 6329687 6290820 2026-08-12T18:35:35Z Wikihez 7344 Rûpel hat valakirin 6329687 javascript text/javascript phoiac9h4m842xq45sp7s6u21eteeq1 6329690 6329687 2026-08-12T18:59:08Z Wikihez 7344 6329690 javascript text/javascript // Ji bo şablonên [[Şablon:jêder]] hatiye nivîsandin. // Parametreyên ku di navbera "<span class="j-pewist">...</span>" an "{{j-pêwîst|...}}" de ne venaşêre. // Her jêderek li kategoriya "Jêderê" ya di window.VisibilityToggles de (ji [[MediaWiki:Gadget-VisibilityToggles.js]]) // tê tomarkirin, da ku bişkoka "Jêderê veşêre / Jêderê nîşan bide" ya di kêlekê de karibe hemû // jêderan bi hev re veke an bigire; her lînka "+"/"↩" jî heman guherînê ji bo yekê ya xwe pêk tîne. $(function() { function nivisaKurtTevliBike(sund, nivisKurt) { var zede = $('<a>+</a>') .addClass('click') .attr('href', '#') .attr('title', 'zêdetir') .css('font-weight', 'bold'); var kurt = $(' <a>↩</a>') .addClass('click-kurt') .attr('href', '#') .attr('title', 'veşêre') .css('font-weight', 'bold'); var jederKurt = $('<span>' + nivisKurt + '</span>') .append(zede).append(')') .addClass('jeder-kurt') .css('font-size', '0.85em') .insertAfter(sund); sund.append(' ').append(kurt); // defaultStatus = true: statûya destpêkê ya kategoriyê "veşartî" ye // (formata kurt tê nîşandan), wek ku berê bi CSS bû. var toggle = window.VisibilityToggles.register("Jêderê", function show() { sund.css('display', 'inline'); jederKurt.css('display', 'none'); }, function hide() { sund.css('display', 'none'); jederKurt.css('display', 'inline'); }, true); zede.add(kurt).on('click', function(e) { e.preventDefault(); toggle(); }); } function vesere() { $('.jeder').each(function() { var elmTab = $(this).find('.j-pewist').clone(); if (elmTab.length) { var elm = ''; for (var i = elmTab.length - 1; i >= 0; i--) { elm = elmTab.eq(i).html() + ', ' + elm; } var nivisKurt = ' — (' + elm; nivisaKurtTevliBike($(this), nivisKurt); } // else: no j-pewist fields to shorten — leave the full citation // as it already renders (visible), nothing to do. }); } vesere(); }); 6fju8kpc1jfof7qdekmgabonooisffy 6329692 6329690 2026-08-12T19:07:25Z Wikihez 7344 6329692 javascript text/javascript // Ji bo şablonên [[Şablon:jêder]] hatiye nivîsandin. // Parametreyên ku di navbera "<span class="j-pewist">...</span>" an "{{j-pêwîst|...}}" de ne venaşêre. // Each jeder is registered under the "Jêderê" category in window.VisibilityToggles // (from [[MediaWiki:Gadget-VisibilityToggles.js]]), so the "Jêderê veşêre / Jêderê nîşan bide" // sidebar link can show or hide every jeder at once; each "+"/"↩" link toggles just its own entry. $(function() { function nivisaKurtTevliBike(sund, nivisKurt) { var zede = $('<a>+</a>') .addClass('click') .attr('href', '#') .attr('title', 'zêdetir') .css('font-weight', 'bold'); var kurt = $(' <a>↩</a>') .addClass('click-kurt') .attr('href', '#') .attr('title', 'veşêre') .css('font-weight', 'bold'); var jederKurt = $('<span>' + nivisKurt + '</span>') .append(zede).append(')') .addClass('jeder-kurt') .css('font-size', '0.85em') .insertAfter(sund); sund.append(' ').append(kurt); // defaultStatus = true: the category's initial status is "hidden" (short // form shown), matching what plain CSS did before. var toggle = window.VisibilityToggles.register("Jêderê", function show() { sund.css('display', 'inline'); jederKurt.css('display', 'none'); }, function hide() { sund.css('display', 'none'); jederKurt.css('display', 'inline'); }, true); zede.add(kurt).on('click', function(e) { e.preventDefault(); toggle(); }); } function vesere() { $('.jeder').each(function() { var elmTab = $(this).find('.j-pewist').clone(); if (elmTab.length) { var elm = ''; for (var i = elmTab.length - 1; i >= 0; i--) { elm = elmTab.eq(i).html() + ', ' + elm; } var nivisKurt = ' — (' + elm; nivisaKurtTevliBike($(this), nivisKurt); } // else: no j-pewist fields to shorten — leave the full citation // as it already renders (visible), nothing to do. }); } vesere(); }); 4i8ry53q5ye47mcx3adli8jyht0m47b 6329693 6329692 2026-08-12T19:12:23Z Wikihez 7344 6329693 javascript text/javascript // Ji bo şablonên [[Şablon:jêder]] hatiye nivîsandin. // Parametreyên ku di navbera "<span class="j-pewist">...</span>" an "{{j-pêwîst|...}}" de ne venaşêre. // Each jeder is registered under the "Jêderê" category in window.VisibilityToggles // (from [[MediaWiki:Gadget-VisibilityToggles.js]]), so the "Jêderê veşêre / Jêderê nîşan bide" // sidebar link can show or hide every jeder at once; each "+"/"↩" link toggles just its own entry. $(function() { function nivisaKurtTevliBike(sund, nivisKurt) { var zede = $('<a>+</a>') .addClass('click') .attr('href', '#') .attr('title', 'zêdetir') .css('font-weight', 'bold'); var kurt = $(' <a>↩</a>') .addClass('click-kurt') .attr('href', '#') .attr('title', 'veşêre') .css('font-weight', 'bold'); var jederKurt = $('<span>' + nivisKurt + '</span>') .append(zede).append(')') .addClass('jeder-kurt') .css('font-size', '0.85em') .insertAfter(sund); sund.append(' ').append(kurt); // defaultStatus = false: the category's initial status is "visible" (full // citation shown), so the sidebar link starts as "Jêderê veşêre". var toggle = window.VisibilityToggles.register("Jêderê", function show() { sund.css('display', 'inline'); jederKurt.css('display', 'none'); }, function hide() { sund.css('display', 'none'); jederKurt.css('display', 'inline'); }, false); zede.add(kurt).on('click', function(e) { e.preventDefault(); toggle(); }); } function vesere() { $('.jeder').each(function() { var elmTab = $(this).find('.j-pewist').clone(); if (elmTab.length) { var elm = ''; for (var i = elmTab.length - 1; i >= 0; i--) { elm = elmTab.eq(i).html() + ', ' + elm; } var nivisKurt = ' — (' + elm; nivisaKurtTevliBike($(this), nivisKurt); } // else: no j-pewist fields to shorten — leave the full citation // as it already renders (visible), nothing to do. }); } vesere(); }); aa6lfvd1tx59sbzf70fv1lmpn2ndxu3 6329694 6329693 2026-08-12T19:13:14Z Wikihez 7344 Rûpel hat valakirin 6329694 javascript text/javascript phoiac9h4m842xq45sp7s6u21eteeq1 6329708 6329694 2026-08-12T20:17:20Z Wikihez 7344 6329708 javascript text/javascript // AjaxEdit // <nowiki> "use strict"; // Çavkanî: [[en:MediaWiki:Gadget-AjaxEdit.js]] // Description : With a new button "Æbiguherîne" one can edit specific sections without reloading the whole page, with an edit summary field and minor edit option. // Ji bo çalakkirina vê amûrê here [[Special:Preferences#mw-prefsection-gadgets|beşa Amûr ya Tercîhên mîn]] û li qutiya li gel "Amûrek e ku ji bo guhartina beşekê bi butona "Æbiguherîne" bêyî barkirina hemû rûpelê tê bikaranîn." bitikîne // Supports TabbedLanguages gadget // Dependencies: mediawiki.util, mediawiki.Uri, mediawiki.user, mediawiki.api /* jshint maxerr:1048576, strict:true, undef:true, latedef:true, sub:true, esversion:5, esnext:false */ /* global mw, $ */ (function ajaxEditIife() { window.AjaxEdit = {}; window.AjaxEdit.scriptLink = ""; if (mw.config.get("wgSiteName") !== "Wîkîferheng") window.AjaxEdit.scriptLink += "wikt:"; if (mw.config.get("wgContentLanguage") !== "ku") window.AjaxEdit.scriptLink += "ku:"; window.AjaxEdit.scriptLink += "MediaWiki:Gadget-AjaxEdit.js"; var $document = $(document); window.AjaxEdit.FireEvents = function () { // fire page load events like the [quotations ▼] thing // see https://github.com/wikimedia/mediawiki/blob/master/resources/src/mediawiki.action/mediawiki.action.edit.preview.js mw.hook("wikipage.content").fire($document); mw.hook("wikipage.categories").fire($document); }; var isVector2022 = mw.config.get("skin") === "vector-2022"; window.AjaxEdit.Click = function (ajaxEditAnchor) { if (ajaxEditAnchor.hasEditBox) { mw.notify("Ev qutiya guhertinê ya AjaxEdit jixwe vekirî ye."); return; } else if (document.getElementById("ajaxedit-wrapper")) { mw.notify("Li ser vê rûpelê jixwe qutiyeke guhertina AjaxEdit vekirî ye."); return; } else { ajaxEditAnchor.hasEditBox = true; } var elements = {}; var _query = new URL($(ajaxEditAnchor) .parent() .find("a[href*='action=edit']") .attr("href"), location.href).searchParams, title = _query.get("title"), section = _query.get("section"); section = section.replace("T-", ""); //translcusions... var hdr = $(ajaxEditAnchor).parent().parent(); var sectionName = hdr.children(":header").first().text(); if (window.tabbedLanguages && !hdr.is(":header")) { sectionName = window.tabbedLanguages[window.currentLanguageTab]; } var data = { action: 'raw', title: title, section: section }; $.get(mw.util.wikiScript('index'), data).then(function (wikitext) { var rowHeight = Math.min(15, 1 + wikitext.split("\n").length); elements.textarea = $("<textarea/>") .attr({ rows: rowHeight }) .addClass("mw-editfont-monospace") .text(wikitext); elements.textareaSummary = $("<input/>") .attr({ type: "text", maxlength: 500, spellcheck: true, name: "wpSummary", }) .keydown(event, function () { if (event.keyCode == 13) { // on enter elements.saveButton.click(); } }); function checkboxAndLabel(id, text) { var checkbox = $("<input/>") .attr({ "id": id, "type": "checkbox", }); var label = $("<label/>") .attr("for", id) .text(text); return [checkbox, label]; } var minorEdit = checkboxAndLabel("ajaxedit-minor-edit-checkbox", "Guhertina piçûk"); elements.minorEditCheckbox = minorEdit[0], elements.minorEditLabel = minorEdit[1]; elements.saveButton = $("<button/>") .text("Tomar bike") .click(function () { elements.textarea.attr('disabled', true); elements.textareaSummary.attr('disabled', true); window.AjaxEdit.Save(section, sectionName, elements.textarea.val(), title, elements.textareaSummary.val(), elements.minorEditCheckbox.prop("checked")) .then(function (apiSaveResponse) { if (apiSaveResponse.error) return; //if abusefilter was triggered new mw.Api().get({ page: mw.config.get("wgPageName"), action: "parse", prop: "text|categorieshtml" }) .then(function (newHtml) { $("#ajaxedit-wrapper").remove(); $("#mw-content-text").html(newHtml.parse.text["*"]); $("#catlinks").replaceWith(newHtml.parse.categorieshtml["*"]); window.AjaxEdit.FireEvents(); mw.loader.moduleRegistry["site"].state = "registered"; //mw.loader.moduleRegistry["site"].version="generate-unique-guid-here"; mw.loader.moduleRegistry["site"].script = undefined; mw.loader.using("site", function () { }); window.AjaxEdit.Submain(); }); }); }) .css("margin-left", "3px"); elements.cancelButton = $('<button/>') .text("Betal bike") .click(function () { $("#ajaxedit-wrapper").remove(); ajaxEditAnchor.hasEditBox = false; }); elements.previewDiv = $("<div/>") .css({ "border-style": "solid", "border-width": "1px 1px 1px 4px", "border-radius": "0.33em", "border-color": "#a3d3ff", }) .hide(); function timestamp() { return new Date().toISOString(); } var previousText; var previousTextTimestamp = timestamp(); function loadPreview() { var newText = elements.textarea.val(); var textTimestamp = timestamp(); if (!previousText || previousText != newText) { new mw.Api() .parse( newText, { title: mw.config.get("wgPageName"), pst: "true", preview: "true", sectionpreview: "true", disableeditsection: "true" } ) .done(function (html) { if (textTimestamp > previousTextTimestamp) { elements.previewDiv.html(html); window.AjaxEdit.FireEvents(); previousTextTimestamp = textTimestamp; } }); } previousText = newText; } var livePreview = checkboxAndLabel("ajaxedit-live-preview-checkbox", "Pêşdîtina zindî"); elements.livePreviewCheckbox = livePreview[0], elements.livePreviewLabel = livePreview[1]; elements.livePreviewCheckbox.on("change", function () { if ($(this).prop("checked")) { elements.previewDiv.show("slow"); loadPreview(); this.previewIntervalId = setInterval(loadPreview, 500); } else { clearInterval(this.previewIntervalId); elements.previewDiv.hide("fast"); elements.previewDiv.empty(); } }); var wrapper = $("<div/>") .attr("id", "ajaxedit-wrapper") .css({ width: "auto", "margin": 0, "overflow": "hidden" }) .append(elements.textarea) .append(elements.textareaSummary) .append(elements.saveButton) .append(elements.livePreviewCheckbox) .append(elements.livePreviewLabel) .append(elements.minorEditCheckbox) .append(elements.minorEditLabel) .append(elements.cancelButton) .append(elements.previewDiv); //tabbed languages support if ($(ajaxEditAnchor).is("#tabstable .editlangsection a")) { $(".languageContainer:not(:hidden)") .first() .prepend(wrapper); } else { hdr.after(wrapper); } }); }; /* * Define edit summary template with window.AjaxEditSummary. For instance: window.AjaxEditSummary = "Æ $sectionlink $summary"; */ window.AjaxEdit.Save = function (sectionID, sectionName, sectionText, title, summary, minorEdit) { var finalSummary; if (typeof window.AjaxEditSummary === "string") { var usedSummary = false; finalSummary = window.AjaxEditSummary.replace( /\$([a-zA-Z_][a-zA-Z0-9_]*)/g, function (fullMatch, name) { switch (name) { case "summary": { usedSummary = true; return summary; } case "scriptlink": return window.AjaxEdit.scriptLink; case "sectionname": return sectionText; case "sectionlink": return "/* " + sectionName + " */"; default: { mw.notify( "Şablona te ya kurteya guhertinê (window.AjaxEditSummary) guhêrbareke nenas dihewîne. Navê guhêrbarê: " + name + ". Ji van hilbijêre: summary, scriptlink, sectionname, sectionlink." ); return ""; } } }); if (!usedSummary) { mw.notify( "Şablona te ya kurteya guhertinê (window.AjaxEditSummary) kurteya te ya guhertinê bi kar naîne, ji ber vê yekê kurteya te dê li dawiya şablonê were zêdekirin: " + window.AjaxEditSummary); finalSummary += " " + summary; } } else { finalSummary = "/* " + sectionName + " */ " + summary + " (bi [[" + window.AjaxEdit.scriptLink + "|AjaxEdit]]ê re)"; } var data = { format: 'json', action: 'edit', title: title, section: sectionID, summary: finalSummary, text: sectionText, token: mw.user.tokens.get('csrfToken'), minor: minorEdit, }; return new mw.Api().post(data).then(function (response) { if (response && response.edit && response.edit.result == 'Success') { mw.notify("serketî"); } else if (response && response.error) { mw.notify('Xeletî: API koda xeletiyê ya "' + response.error.code + '" şand: ' + response.error.info); } return response; }).fail(function (xhr) { mw.notify('Xeletî: Daxwaz pêk neanî.'); $('#ajaxedit-wrapper *').attr('disabled', false); }); }; window.AjaxEdit.Submain = function () { $(".mw-body-content .mw-editsection > .mw-editsection-bracket:contains(']')").each(function () { var btn = $('<a/>').text("Æbiguherîne").on("click", function () { window.AjaxEdit.Click(this) }); $(this).before(!isVector2022 ? ", " : "").before(btn); }); }; window.AjaxEdit.Main = function () { $(".mw-editsection > .mw-editsection-bracket:contains(']')").each(function () { var btn = $('<a/>').text("Æbiguherîne").on("click", function () { window.AjaxEdit.Click(this) }); $(this).before(!isVector2022 ? ", " : "").before(btn); }); }; if (mw.config.get('wgAction') == "view") $(window.AjaxEdit.Main); })(); // </nowiki> e8we173yxohtiko5nl82qbsgyy0cc29 6329709 6329708 2026-08-12T20:20:26Z Wikihez 7344 6329709 javascript text/javascript // AjaxEdit // <nowiki> "use strict"; // Çavkanî: [[en:MediaWiki:Gadget-AjaxEdit.js]] // Description : With a new button "Æbiguherîne" one can edit specific sections without reloading the whole page, with an edit summary field and minor edit option. // Ji bo aktîvkirina vê amûrê here [[Special:Preferences#mw-prefsection-gadgets|beşa Amûr ya Tercîhên mîn]] û li qutiya li gel "Amûrek e ku ji bo guhartina beşekê bi butona "Æbiguherîne" bêyî barkirina hemû rûpelê tê bikaranîn." bitikîne // Supports TabbedLanguages gadget // Dependencies: mediawiki.util, mediawiki.Uri, mediawiki.user, mediawiki.api /* jshint maxerr:1048576, strict:true, undef:true, latedef:true, sub:true, esversion:5, esnext:false */ /* global mw, $ */ (function ajaxEditIife() { window.AjaxEdit = {}; window.AjaxEdit.scriptLink = ""; if (mw.config.get("wgSiteName") !== "Wîkîferheng") window.AjaxEdit.scriptLink += "wikt:"; if (mw.config.get("wgContentLanguage") !== "ku") window.AjaxEdit.scriptLink += "ku:"; window.AjaxEdit.scriptLink += "MediaWiki:Gadget-AjaxEdit.js"; var $document = $(document); window.AjaxEdit.FireEvents = function () { // fire page load events like the [quotations ▼] thing // see https://github.com/wikimedia/mediawiki/blob/master/resources/src/mediawiki.action/mediawiki.action.edit.preview.js mw.hook("wikipage.content").fire($document); mw.hook("wikipage.categories").fire($document); }; var isVector2022 = mw.config.get("skin") === "vector-2022"; window.AjaxEdit.Click = function (ajaxEditAnchor) { if (ajaxEditAnchor.hasEditBox) { mw.notify("Ev qutiya guhertinê ya AjaxEdit jixwe vekirî ye."); return; } else if (document.getElementById("ajaxedit-wrapper")) { mw.notify("Li ser vê rûpelê jixwe qutiyeke guhertina AjaxEdit vekirî ye."); return; } else { ajaxEditAnchor.hasEditBox = true; } var elements = {}; var _query = new URL($(ajaxEditAnchor) .parent() .find("a[href*='action=edit']") .attr("href"), location.href).searchParams, title = _query.get("title"), section = _query.get("section"); section = section.replace("T-", ""); //translcusions... var hdr = $(ajaxEditAnchor).parent().parent(); var sectionName = hdr.children(":header").first().text(); if (window.tabbedLanguages && !hdr.is(":header")) { sectionName = window.tabbedLanguages[window.currentLanguageTab]; } var data = { action: 'raw', title: title, section: section }; $.get(mw.util.wikiScript('index'), data).then(function (wikitext) { var rowHeight = Math.min(15, 1 + wikitext.split("\n").length); elements.textarea = $("<textarea/>") .attr({ rows: rowHeight }) .addClass("mw-editfont-monospace") .text(wikitext); elements.textareaSummary = $("<input/>") .attr({ type: "text", maxlength: 500, spellcheck: true, name: "wpSummary", }) .keydown(event, function () { if (event.keyCode == 13) { // on enter elements.saveButton.click(); } }); function checkboxAndLabel(id, text) { var checkbox = $("<input/>") .attr({ "id": id, "type": "checkbox", }); var label = $("<label/>") .attr("for", id) .text(text); return [checkbox, label]; } var minorEdit = checkboxAndLabel("ajaxedit-minor-edit-checkbox", "Guhertina piçûk"); elements.minorEditCheckbox = minorEdit[0], elements.minorEditLabel = minorEdit[1]; elements.saveButton = $("<button/>") .text("Tomar bike") .click(function () { elements.textarea.attr('disabled', true); elements.textareaSummary.attr('disabled', true); window.AjaxEdit.Save(section, sectionName, elements.textarea.val(), title, elements.textareaSummary.val(), elements.minorEditCheckbox.prop("checked")) .then(function (apiSaveResponse) { if (apiSaveResponse.error) return; //if abusefilter was triggered new mw.Api().get({ page: mw.config.get("wgPageName"), action: "parse", prop: "text|categorieshtml" }) .then(function (newHtml) { $("#ajaxedit-wrapper").remove(); $("#mw-content-text").html(newHtml.parse.text["*"]); $("#catlinks").replaceWith(newHtml.parse.categorieshtml["*"]); window.AjaxEdit.FireEvents(); mw.loader.moduleRegistry["site"].state = "registered"; //mw.loader.moduleRegistry["site"].version="generate-unique-guid-here"; mw.loader.moduleRegistry["site"].script = undefined; mw.loader.using("site", function () { }); window.AjaxEdit.Submain(); }); }); }) .css("margin-left", "3px"); elements.cancelButton = $('<button/>') .text("Betal bike") .click(function () { $("#ajaxedit-wrapper").remove(); ajaxEditAnchor.hasEditBox = false; }); elements.previewDiv = $("<div/>") .css({ "border-style": "solid", "border-width": "1px 1px 1px 4px", "border-radius": "0.33em", "border-color": "#a3d3ff", }) .hide(); function timestamp() { return new Date().toISOString(); } var previousText; var previousTextTimestamp = timestamp(); function loadPreview() { var newText = elements.textarea.val(); var textTimestamp = timestamp(); if (!previousText || previousText != newText) { new mw.Api() .parse( newText, { title: mw.config.get("wgPageName"), pst: "true", preview: "true", sectionpreview: "true", disableeditsection: "true" } ) .done(function (html) { if (textTimestamp > previousTextTimestamp) { elements.previewDiv.html(html); window.AjaxEdit.FireEvents(); previousTextTimestamp = textTimestamp; } }); } previousText = newText; } var livePreview = checkboxAndLabel("ajaxedit-live-preview-checkbox", "Pêşdîtina zindî"); elements.livePreviewCheckbox = livePreview[0], elements.livePreviewLabel = livePreview[1]; elements.livePreviewCheckbox.on("change", function () { if ($(this).prop("checked")) { elements.previewDiv.show("slow"); loadPreview(); this.previewIntervalId = setInterval(loadPreview, 500); } else { clearInterval(this.previewIntervalId); elements.previewDiv.hide("fast"); elements.previewDiv.empty(); } }); var wrapper = $("<div/>") .attr("id", "ajaxedit-wrapper") .css({ width: "auto", "margin": 0, "overflow": "hidden" }) .append(elements.textarea) .append(elements.textareaSummary) .append(elements.saveButton) .append(elements.livePreviewCheckbox) .append(elements.livePreviewLabel) .append(elements.minorEditCheckbox) .append(elements.minorEditLabel) .append(elements.cancelButton) .append(elements.previewDiv); //tabbed languages support if ($(ajaxEditAnchor).is("#tabstable .editlangsection a")) { $(".languageContainer:not(:hidden)") .first() .prepend(wrapper); } else { hdr.after(wrapper); } }); }; /* * Define edit summary template with window.AjaxEditSummary. For instance: window.AjaxEditSummary = "Æ $sectionlink $summary"; */ window.AjaxEdit.Save = function (sectionID, sectionName, sectionText, title, summary, minorEdit) { var finalSummary; if (typeof window.AjaxEditSummary === "string") { var usedSummary = false; finalSummary = window.AjaxEditSummary.replace( /\$([a-zA-Z_][a-zA-Z0-9_]*)/g, function (fullMatch, name) { switch (name) { case "summary": { usedSummary = true; return summary; } case "scriptlink": return window.AjaxEdit.scriptLink; case "sectionname": return sectionText; case "sectionlink": return "/* " + sectionName + " */"; default: { mw.notify( "Şablona te ya kurteya guhertinê (window.AjaxEditSummary) guhêrbareke nenas dihewîne. Navê guhêrbarê: " + name + ". Ji van hilbijêre: summary, scriptlink, sectionname, sectionlink." ); return ""; } } }); if (!usedSummary) { mw.notify( "Şablona te ya kurteya guhertinê (window.AjaxEditSummary) kurteya te ya guhertinê bi kar naîne, ji ber vê yekê kurteya te dê li dawiya şablonê were zêdekirin: " + window.AjaxEditSummary); finalSummary += " " + summary; } } else { finalSummary = "/* " + sectionName + " */ " + summary + " (bi [[" + window.AjaxEdit.scriptLink + "|AjaxEdit]]ê re)"; } var data = { format: 'json', action: 'edit', title: title, section: sectionID, summary: finalSummary, text: sectionText, token: mw.user.tokens.get('csrfToken'), minor: minorEdit, }; return new mw.Api().post(data).then(function (response) { if (response && response.edit && response.edit.result == 'Success') { mw.notify("serketî"); } else if (response && response.error) { mw.notify('Xeletî: API koda xeletiyê ya "' + response.error.code + '" şand: ' + response.error.info); } return response; }).fail(function (xhr) { mw.notify('Xeletî: Daxwaz pêk neanî.'); $('#ajaxedit-wrapper *').attr('disabled', false); }); }; window.AjaxEdit.Submain = function () { $(".mw-body-content .mw-editsection > .mw-editsection-bracket:contains(']')").each(function () { var btn = $('<a/>').text("Æbiguherîne").on("click", function () { window.AjaxEdit.Click(this) }); $(this).before(!isVector2022 ? ", " : "").before(btn); }); }; window.AjaxEdit.Main = function () { $(".mw-editsection > .mw-editsection-bracket:contains(']')").each(function () { var btn = $('<a/>').text("Æbiguherîne").on("click", function () { window.AjaxEdit.Click(this) }); $(this).before(!isVector2022 ? ", " : "").before(btn); }); }; if (mw.config.get('wgAction') == "view") $(window.AjaxEdit.Main); })(); // </nowiki> tn6qcpdnd49qmvlcl7rn06tkgds3f2j 6329710 6329709 2026-08-12T20:20:41Z Wikihez 7344 6329710 javascript text/javascript // AjaxEdit // <nowiki> "use strict"; // Çavkanî: [[en:MediaWiki:Gadget-AjaxEdit.js]] // Description : With a new button "Æbiguherîne" one can edit specific sections without reloading the whole page, with an edit summary field and minor edit option. // Ji bo aktîvkirina vê amûrê here [[Special:Preferences#mw-prefsection-gadgets|beşa Amûr ya Tercîhên mîn]] û li qutiya li gel "Amûrek e ku ji bo guhartina beşekê bi butona "Æbiguherîne" bêyî barkirina hemû rûpelê tê bikaranîn." bitikîne // Supports TabbedLanguages gadget // Dependencies: mediawiki.util, mediawiki.Uri, mediawiki.user, mediawiki.api /* jshint maxerr:1048576, strict:true, undef:true, latedef:true, sub:true, esversion:5, esnext:false */ /* global mw, $ */ (function ajaxEditIife() { window.AjaxEdit = {}; window.AjaxEdit.scriptLink = ""; if (mw.config.get("wgSiteName") !== "Wîkîferheng") window.AjaxEdit.scriptLink += "wikt:"; if (mw.config.get("wgContentLanguage") !== "ku") window.AjaxEdit.scriptLink += "ku:"; window.AjaxEdit.scriptLink += "MediaWiki:Gadget-AjaxEdit.js"; var $document = $(document); window.AjaxEdit.FireEvents = function () { // fire page load events like the [quotations ▼] thing // see https://github.com/wikimedia/mediawiki/blob/master/resources/src/mediawiki.action/mediawiki.action.edit.preview.js mw.hook("wikipage.content").fire($document); mw.hook("wikipage.categories").fire($document); }; var isVector2022 = mw.config.get("skin") === "vector-2022"; window.AjaxEdit.Click = function (ajaxEditAnchor) { if (ajaxEditAnchor.hasEditBox) { mw.notify("Ev qutiya guhertinê ya AjaxEdit jixwe vekirî ye."); return; } else if (document.getElementById("ajaxedit-wrapper")) { mw.notify("Li ser vê rûpelê jixwe qutiyeke guhertina AjaxEdit vekirî ye."); return; } else { ajaxEditAnchor.hasEditBox = true; } var elements = {}; var _query = new URL($(ajaxEditAnchor) .parent() .find("a[href*='action=edit']") .attr("href"), location.href).searchParams, title = _query.get("title"), section = _query.get("section"); section = section.replace("T-", ""); //translcusions... var hdr = $(ajaxEditAnchor).parent().parent(); var sectionName = hdr.children(":header").first().text(); if (window.tabbedLanguages && !hdr.is(":header")) { sectionName = window.tabbedLanguages[window.currentLanguageTab]; } var data = { action: 'raw', title: title, section: section }; $.get(mw.util.wikiScript('index'), data).then(function (wikitext) { var rowHeight = Math.min(15, 1 + wikitext.split("\n").length); elements.textarea = $("<textarea/>") .attr({ rows: rowHeight }) .addClass("mw-editfont-monospace") .text(wikitext); elements.textareaSummary = $("<input/>") .attr({ type: "text", maxlength: 500, spellcheck: true, name: "wpSummary", }) .keydown(event, function () { if (event.keyCode == 13) { // on enter elements.saveButton.click(); } }); function checkboxAndLabel(id, text) { var checkbox = $("<input/>") .attr({ "id": id, "type": "checkbox", }); var label = $("<label/>") .attr("for", id) .text(text); return [checkbox, label]; } var minorEdit = checkboxAndLabel("ajaxedit-minor-edit-checkbox", "Guhertina piçûk"); elements.minorEditCheckbox = minorEdit[0], elements.minorEditLabel = minorEdit[1]; elements.saveButton = $("<button/>") .text("Qeyd bike") .click(function () { elements.textarea.attr('disabled', true); elements.textareaSummary.attr('disabled', true); window.AjaxEdit.Save(section, sectionName, elements.textarea.val(), title, elements.textareaSummary.val(), elements.minorEditCheckbox.prop("checked")) .then(function (apiSaveResponse) { if (apiSaveResponse.error) return; //if abusefilter was triggered new mw.Api().get({ page: mw.config.get("wgPageName"), action: "parse", prop: "text|categorieshtml" }) .then(function (newHtml) { $("#ajaxedit-wrapper").remove(); $("#mw-content-text").html(newHtml.parse.text["*"]); $("#catlinks").replaceWith(newHtml.parse.categorieshtml["*"]); window.AjaxEdit.FireEvents(); mw.loader.moduleRegistry["site"].state = "registered"; //mw.loader.moduleRegistry["site"].version="generate-unique-guid-here"; mw.loader.moduleRegistry["site"].script = undefined; mw.loader.using("site", function () { }); window.AjaxEdit.Submain(); }); }); }) .css("margin-left", "3px"); elements.cancelButton = $('<button/>') .text("Betal bike") .click(function () { $("#ajaxedit-wrapper").remove(); ajaxEditAnchor.hasEditBox = false; }); elements.previewDiv = $("<div/>") .css({ "border-style": "solid", "border-width": "1px 1px 1px 4px", "border-radius": "0.33em", "border-color": "#a3d3ff", }) .hide(); function timestamp() { return new Date().toISOString(); } var previousText; var previousTextTimestamp = timestamp(); function loadPreview() { var newText = elements.textarea.val(); var textTimestamp = timestamp(); if (!previousText || previousText != newText) { new mw.Api() .parse( newText, { title: mw.config.get("wgPageName"), pst: "true", preview: "true", sectionpreview: "true", disableeditsection: "true" } ) .done(function (html) { if (textTimestamp > previousTextTimestamp) { elements.previewDiv.html(html); window.AjaxEdit.FireEvents(); previousTextTimestamp = textTimestamp; } }); } previousText = newText; } var livePreview = checkboxAndLabel("ajaxedit-live-preview-checkbox", "Pêşdîtina zindî"); elements.livePreviewCheckbox = livePreview[0], elements.livePreviewLabel = livePreview[1]; elements.livePreviewCheckbox.on("change", function () { if ($(this).prop("checked")) { elements.previewDiv.show("slow"); loadPreview(); this.previewIntervalId = setInterval(loadPreview, 500); } else { clearInterval(this.previewIntervalId); elements.previewDiv.hide("fast"); elements.previewDiv.empty(); } }); var wrapper = $("<div/>") .attr("id", "ajaxedit-wrapper") .css({ width: "auto", "margin": 0, "overflow": "hidden" }) .append(elements.textarea) .append(elements.textareaSummary) .append(elements.saveButton) .append(elements.livePreviewCheckbox) .append(elements.livePreviewLabel) .append(elements.minorEditCheckbox) .append(elements.minorEditLabel) .append(elements.cancelButton) .append(elements.previewDiv); //tabbed languages support if ($(ajaxEditAnchor).is("#tabstable .editlangsection a")) { $(".languageContainer:not(:hidden)") .first() .prepend(wrapper); } else { hdr.after(wrapper); } }); }; /* * Define edit summary template with window.AjaxEditSummary. For instance: window.AjaxEditSummary = "Æ $sectionlink $summary"; */ window.AjaxEdit.Save = function (sectionID, sectionName, sectionText, title, summary, minorEdit) { var finalSummary; if (typeof window.AjaxEditSummary === "string") { var usedSummary = false; finalSummary = window.AjaxEditSummary.replace( /\$([a-zA-Z_][a-zA-Z0-9_]*)/g, function (fullMatch, name) { switch (name) { case "summary": { usedSummary = true; return summary; } case "scriptlink": return window.AjaxEdit.scriptLink; case "sectionname": return sectionText; case "sectionlink": return "/* " + sectionName + " */"; default: { mw.notify( "Şablona te ya kurteya guhertinê (window.AjaxEditSummary) guhêrbareke nenas dihewîne. Navê guhêrbarê: " + name + ". Ji van hilbijêre: summary, scriptlink, sectionname, sectionlink." ); return ""; } } }); if (!usedSummary) { mw.notify( "Şablona te ya kurteya guhertinê (window.AjaxEditSummary) kurteya te ya guhertinê bi kar naîne, ji ber vê yekê kurteya te dê li dawiya şablonê were zêdekirin: " + window.AjaxEditSummary); finalSummary += " " + summary; } } else { finalSummary = "/* " + sectionName + " */ " + summary + " (bi [[" + window.AjaxEdit.scriptLink + "|AjaxEdit]]ê re)"; } var data = { format: 'json', action: 'edit', title: title, section: sectionID, summary: finalSummary, text: sectionText, token: mw.user.tokens.get('csrfToken'), minor: minorEdit, }; return new mw.Api().post(data).then(function (response) { if (response && response.edit && response.edit.result == 'Success') { mw.notify("serketî"); } else if (response && response.error) { mw.notify('Xeletî: API koda xeletiyê ya "' + response.error.code + '" şand: ' + response.error.info); } return response; }).fail(function (xhr) { mw.notify('Xeletî: Daxwaz pêk neanî.'); $('#ajaxedit-wrapper *').attr('disabled', false); }); }; window.AjaxEdit.Submain = function () { $(".mw-body-content .mw-editsection > .mw-editsection-bracket:contains(']')").each(function () { var btn = $('<a/>').text("Æbiguherîne").on("click", function () { window.AjaxEdit.Click(this) }); $(this).before(!isVector2022 ? ", " : "").before(btn); }); }; window.AjaxEdit.Main = function () { $(".mw-editsection > .mw-editsection-bracket:contains(']')").each(function () { var btn = $('<a/>').text("Æbiguherîne").on("click", function () { window.AjaxEdit.Click(this) }); $(this).before(!isVector2022 ? ", " : "").before(btn); }); }; if (mw.config.get('wgAction') == "view") $(window.AjaxEdit.Main); })(); // </nowiki> 0ar8xiasqdnc6tlf1oytsoar81ertmg 6329713 6329710 2026-08-12T20:23:46Z Wikihez 7344 Rûpel hat valakirin 6329713 javascript text/javascript phoiac9h4m842xq45sp7s6u21eteeq1 MediaWiki:Gadget-defaultVisibilityToggles.js 8 970315 6329700 6119167 2026-08-12T19:34:26Z Bikarhêner 3719 6329700 javascript text/javascript /* jshint undef: true, esversion: 5 */ /* globals $, jQuery, mw, window, getComputedStyle */ (function defaultVisibilityTogglesIIFE() { "use strict"; if (window.noDefaultVisibilityToggles) return; /* == NavBars == */ var NavigationBarHide; var NavigationBarShow; var pageLang = mw.config.get("wgPageContentLanguage"); if (pageLang === "ku-arab") { NavigationBarHide = "▲ ڤەشێرە"; NavigationBarShow = "▼ نیشان بده"; }else{ NavigationBarHide = "veşêre ▲"; NavigationBarShow = "nîşan bide ▼"; } function capitalize(s) { if (typeof s !== 'string') return ''; return s.charAt(0).toUpperCase() + s.slice(1); } // Check if an element has been activated with a toggle. // For convenience, this has the side effect of marking the element as having // a toggle, if it is not already marked. // Allows the functions to avoid toggleifying elements more than once, which // can lead to multiple "show" buttons, for instance. // The argument must be an Element, not a jQuery object. function checkAndSetToggleified(element) { if (element.isToggleified) { return true; } element.isToggleified = true; } function getToggleCategory(element, defaultCategory) { if ($(element).find("div").first().is(".translations")) return "Wergeran"; if ($(element).is("table.inflection-table") || $(element).find("table.inflection-table").length) return "Tewandinê"; var heading = element; while ((heading = heading.previousElementSibling)) { // tagName is always uppercase: // https://developer.mozilla.org/en-US/docs/Web/API/Element/tagName var num = heading.tagName.match(/H(\d)/); if (num) num = Number(num[1]); else continue; if (4 <= num && num <= 6) { if (heading.getElementsByTagName("span")[1]) heading = heading.getElementsByTagName("span")[0]; var text = jQuery(heading).text() .toLowerCase() // jQuery's .text() is inconsistent about whitespace: .replace(/^\s+|\s+$/g, "").replace(/\s+/g, " ") // remove numbers added by the "Auto-number headings" pref: .replace(/^[1-9][0-9.]+ ?/, ""); // Toggle category must be convertible to a valid CSS identifier so // that it can be used in an id selector in jQuery in // ToggleCategory.prototype.newSidebarToggle // in [[MediaWiki:Gadget-VisibilityToggles.js]]. // Spaces must later be converted to hyphens or underscores. // Reference: https://drafts.csswg.org/selectors-4/#id-selectors if (/^[a-zA-Zêî0-9\s_-]+$/.test(text)) return capitalize(text) + "ê"; else break; } else if (num) break; } return defaultCategory; } function createNavToggle(navFrame) { if (checkAndSetToggleified(navFrame)) { return; } var navHead, navContent; for (var i = 0, children = navFrame.childNodes; i < children.length; ++i) { var child = children[i]; if (child.nodeName === "DIV") { var classList = child.classList; if (classList.contains("NavHead")) navHead = child; if (classList.contains("NavContent")) navContent = child; } } if (!(navHead && navContent)) return; // Step 1, don't react when a subitem is clicked. $(navHead).find("a").on("click", function (e) { e.stopPropagation(); e.stopImmediatePropagation(); }); // Step 2, toggle visibility when bar is clicked. // NOTE This function was chosen due to some funny behaviour in Safari. var $navToggle = $("<a>").attr("role", "button").attr("tabindex", "0"); $("<span>").addClass("NavToggle").attr("data-nosnippet", "") .append($navToggle) .prependTo(navHead); navHead.style.cursor = "pointer"; var toggleCategory = $(navFrame).data("toggle-category") || getToggleCategory(navFrame, "Qutiyên din"); navHead.onclick = window.VisibilityToggles.register(toggleCategory, function show() { $navToggle.html(NavigationBarHide); if (navContent) navContent.style.display = "block"; }, function hide() { $navToggle.html(NavigationBarShow); if (navContent) navContent.style.display = "none"; }); } function createNavToggleForInflectionTable(it) { if (checkAndSetToggleified(it)) { return; } // The table caption is the clickable element var itCaption = $(it).find("caption").get(0); // Step 1, don't react when a subitem is clicked. $(itCaption).find("a").on("click", function (e) { e.stopPropagation(); e.stopImmediatePropagation(); }); // Step 2, toggle visibility when bar is clicked. // NOTE This function was chosen due to some funny behaviour in Safari. var $navToggle = $("<a>").attr("role", "button").attr("tabindex", "0"); $("<span>").addClass("NavToggle").attr("data-nosnippet", "") .append($navToggle) .prependTo(itCaption); itCaption.style.cursor = "pointer"; var toggleCategory = $(it).data("toggle-category") || getToggleCategory(it, "Qutiyên din"); itCaption.onclick = window.VisibilityToggles.register(toggleCategory, function show() { $navToggle.html(NavigationBarHide); if (it) { it.classList.remove("inflection-table-collapsed"); } }, function hide() { $navToggle.html(NavigationBarShow); if (it) { it.classList.add("inflection-table-collapsed"); } }); // Check to see if we are on a browser that is known to support // visibility: collapse, which permits inflection table headings to wrap. // WebKit needs to be special-cased, as technically it does support // visibility: collapse, but it just implements it as a synonym for // visibility: hidden, which is useless. (as of November 2024) // Yes, I know User-Agent sniffing is so 2004... but WebKit is the new IE if ( CSS && CSS.supports && CSS.supports("visibility:collapse") && // exclude WebKit/Safari, excepting Blink engines which have a frozen WebKit version number (navigator.userAgent.indexOf("AppleWebKit/") === -1 || navigator.userAgent.indexOf("AppleWebKit/537.36") > -1) ) { it.classList.remove("no-vc"); } else { // Strange behaviour occurs when you set the table caption to nowrap // The [show/hide] toggle crashes into the caption text // This spacer element prevents that $("<span>").addClass("no-vc-spacer").appendTo(itCaption); } } /* ==Hidden Quotes== */ function setupHiddenQuotes(li) { if (checkAndSetToggleified(li)) { return; } var HQToggle, liComp, dl; var HQShow; var HQHide; if (pageLang === "ku-arab") { HQShow = '▼ ژێگرتن'; HQHide = '▲ ژێگرتن'; } else { HQShow = 'jêgirtin ▼'; HQHide = 'jêgirtin ▲'; } function show() { HQToggle.html(HQHide); $(li).children("ul").show(); } function hide() { HQToggle.html(HQShow); $(li).children("ul").hide(); } for (var k = 0; k < li.childNodes.length; k++) { // Look at each component of the definition. liComp = li.childNodes[k]; if (liComp.nodeName.toLowerCase() === "dl" && !dl) { dl = liComp; } // If we find a ul or dl, we have quotes or example sentences, and thus need a button. if (/^(ul|UL)$/.test(liComp.nodeName)) { HQToggle = $("<a>").attr("role", "button").attr("tabindex", "0"); $(dl || liComp).before($("<span>").addClass("HQToggle").attr("data-nosnippet", "").append(HQToggle).css("margin-left", "5px")); HQToggle.on("click", window.VisibilityToggles.register("Jêgirtinan", show, hide)); break; } } } /* == View Switching == */ function viewSwitching(rootElement) { if (checkAndSetToggleified(rootElement)) { return; } var $rootElement = $(rootElement); var showButtonText; var hideButtonText; if (pageLang === "ku-arab") { showButtonText = $rootElement.data("vs-showtext") || "▼ زێده‌تر"; hideButtonText = $rootElement.data("vs-hidetext") || "▲ کێمتر"; }else{ showButtonText = $rootElement.data("vs-showtext") || "zêdetir ▼"; hideButtonText = $rootElement.data("vs-hidetext") || "kêmtir ▲"; } var toSkip = $rootElement.find(".vsSwitcher").find("*"); var elemsToHide = $rootElement.find(".vsHide").not(toSkip); var elemsToShow = $rootElement.find(".vsShow").not(toSkip); // Find the element to place the toggle button in. var toggleElement = $rootElement.find(".vsToggleElement").not(toSkip).first(); // The toggleElement becomes clickable in its entirety, but // we need to prevent this if a contained link is clicked instead. toggleElement.find("a").on("click", function (e) { e.stopPropagation(); e.stopImmediatePropagation(); }); // Add the toggle button. var toggleButton = $("<a>").attr("role", "button").attr("tabindex", "0"); $("<span>").addClass("NavToggle").attr("data-nosnippet", "").append(toggleButton).prependTo(toggleElement); // Determine the visibility toggle category (for the links in the bar on the left). var toggleCategory = $rootElement.data("toggle-category"); if (!toggleCategory) { var classNames = $rootElement.attr("class").split(/\s+/); for (var i = 0; i < classNames.length; ++i) { var className = classNames[i].split("-"); if (className[0] == "vsToggleCategory") { toggleCategory = className[1]; } } } if (!toggleCategory) toggleCategory = "others"; // Register the visibility toggle. toggleElement.css("cursor", "pointer"); toggleElement.on("click", window.VisibilityToggles.register(toggleCategory, function show() { toggleButton.html(hideButtonText); elemsToShow.hide(); elemsToHide.show(); }, function hide() { toggleButton.html(showButtonText); elemsToShow.show(); elemsToHide.hide(); })); } /* ==List switching== */ function enableListSwitchGeneric(rootElement) { if (checkAndSetToggleified(rootElement)) { return; } var $rootElement = $(rootElement); // Create a toggle button. var $toggleElement = $("<div>").addClass("list-switcher-element"); var $navToggle = $("<span>").addClass("NavToggle").attr("data-nosnippet", ""); var $toggleButton = $("<a>").attr("role", "button").attr("tabindex", "0"); // Add the toggle button to the DOM tree. $navToggle.append($toggleButton).prependTo($toggleElement); $toggleElement.insertBefore($rootElement); $toggleElement.show(); // Determine the visibility toggle category (for the links in the bar on the // left). It will either be the value of the "data-toggle-category" // attribute or will be based on the text of the closest preceding // fourth-to-sixth-level header. var toggleCategory = $rootElement.data("toggle-category") || getToggleCategory($rootElement[0], "Lîsteyên din"); // Determine the text for the $toggleButton. var showButtonText = "zêdetir ▼"; var hideButtonText = "kêmtir ▲"; var numLiElements = $rootElement.find("li").length; if (numLiElements) { showButtonText = "Her " + numLiElements + "an nîşan bide ▼"; hideButtonText = "kêmtir bibîne ▲"; } // Register the visibility toggle. $toggleElement.on("click", window.VisibilityToggles.register(toggleCategory, function show() { $toggleButton.html(hideButtonText); if (rootElement) { rootElement.classList.remove("list-switcher-collapsed"); } }, function hide() { $toggleButton.html(showButtonText); if (rootElement) { rootElement.classList.add("list-switcher-collapsed"); } })); // Register a resize observer to see if we need to keep the // show/hide toggle visible var termList = rootElement.querySelector(':scope > .term-list'); if (termList && window.ResizeObserver) { var resizeObserver = new ResizeObserver(function(entries) { if (entries[0] && entries[0].contentBoxSize[0]) { // Work out what the max-height would be, in pixels // As a hack, this value is stored in the CSS `bottom` // property, as `max-height` is only in place when // the list is collapsed, but we need to do this check // even when the list is not collapsed var maxHeightPx = parseFloat(getComputedStyle(rootElement).bottom); // If box height is less than its max height + 20 px, suppress // collapsibility. The 20 px buffer prevents the situation where // clicking "show more" expands the box by just a few pixels if (entries[0].contentBoxSize[0].blockSize <= maxHeightPx + 20) { $toggleElement.hide(); if (rootElement.classList.contains("list-switcher-collapsed")) { rootElement.classList.remove("list-switcher-collapsed"); rootElement.classList.add("list-switcher-collapsibility-suppressed"); } } else { $toggleElement.show(); if (rootElement.classList.contains("list-switcher-collapsibility-suppressed")) { rootElement.classList.remove("list-switcher-collapsibility-suppressed"); rootElement.classList.add("list-switcher-collapsed"); } } } }); resizeObserver.observe(termList); } } window.createNavToggle = createNavToggle; window.setupHiddenQuotes = setupHiddenQuotes; window.viewSwitching = viewSwitching; window.getToggleCategory = getToggleCategory; /* == Apply four functions defined above == */ mw.hook("wikipage.content").add(function($content) { // NavToggles $(".NavFrame", $content).each(function(){ createNavToggle(this); }); $(".inflection-table-collapsible", $content).each(function(){ createNavToggleForInflectionTable(this); }); // order nyms -> usexes -> quotes, to match the conventional order in entries // usage examples and collocations var namespaceNumber = mw.config.get("wgNamespaceNumber"); // quotes if (namespaceNumber === 0 || namespaceNumber === 100 || namespaceNumber === 108) { // First, find all the ordered lists, i.e. all the series of definitions. $("ol > li", $content).each(function(){ setupHiddenQuotes(this); }); } //view switching $(".vsSwitcher", $content).each(function(){ viewSwitching(this); }); // list switching $(".list-switcher", $content).each(function () { enableListSwitchGeneric(this); }); }); jQuery(mw).on("LivePreviewDone", function (ev, sels) { var ols = jQuery(sels.join(",")).find("ol"); for (var i = 0; i < ols.length; i++) { for (var j = 0; j < ols[i].childNodes.length; j++) { var li = ols[i].childNodes[j]; if (li.nodeName.toUpperCase() == "LI") { setupHiddenQuotes(li); } } } }); })(); mxm391h3x2jozj8ppthk0kc8kmcmi19 6329702 6329700 2026-08-12T19:36:54Z Bikarhêner 3719 6329702 javascript text/javascript /* jshint undef: true, esversion: 5 */ /* globals $, jQuery, mw, window, getComputedStyle */ (function defaultVisibilityTogglesIIFE() { "use strict"; if (window.noDefaultVisibilityToggles) return; /* == NavBars == */ var NavigationBarHide; var NavigationBarShow; var pageLang = mw.config.get("wgPageContentLanguage"); if (pageLang === "ku-arab") { NavigationBarHide = "▲ ڤەشێرە"; NavigationBarShow = "▼ نیشان بده"; }else{ NavigationBarHide = "veşêre ▲"; NavigationBarShow = "nîşan bide ▼"; } function capitalize(s) { if (typeof s !== 'string') return ''; return s.charAt(0).toUpperCase() + s.slice(1); } // Check if an element has been activated with a toggle. // For convenience, this has the side effect of marking the element as having // a toggle, if it is not already marked. // Allows the functions to avoid toggleifying elements more than once, which // can lead to multiple "show" buttons, for instance. // The argument must be an Element, not a jQuery object. function checkAndSetToggleified(element) { if (element.isToggleified) { return true; } element.isToggleified = true; } function getToggleCategory(element, defaultCategory) { if ($(element).find("div.translations").length) return "Wergeran"; if ($(element).is("table.inflection-table") || $(element).find("table.inflection-table").length) return "Tewandinê"; var heading = element; while ((heading = heading.previousElementSibling)) { // tagName is always uppercase: // https://developer.mozilla.org/en-US/docs/Web/API/Element/tagName var num = heading.tagName.match(/H(\d)/); if (num) num = Number(num[1]); else continue; if (4 <= num && num <= 6) { if (heading.getElementsByTagName("span")[1]) heading = heading.getElementsByTagName("span")[0]; var text = jQuery(heading).text() .toLowerCase() // jQuery's .text() is inconsistent about whitespace: .replace(/^\s+|\s+$/g, "").replace(/\s+/g, " ") // remove numbers added by the "Auto-number headings" pref: .replace(/^[1-9][0-9.]+ ?/, ""); // Toggle category must be convertible to a valid CSS identifier so // that it can be used in an id selector in jQuery in // ToggleCategory.prototype.newSidebarToggle // in [[MediaWiki:Gadget-VisibilityToggles.js]]. // Spaces must later be converted to hyphens or underscores. // Reference: https://drafts.csswg.org/selectors-4/#id-selectors if (/^[a-zA-Zêî0-9\s_-]+$/.test(text)) return capitalize(text) + "ê"; else break; } else if (num) break; } return defaultCategory; } function createNavToggle(navFrame) { if (checkAndSetToggleified(navFrame)) { return; } var navHead, navContent; for (var i = 0, children = navFrame.childNodes; i < children.length; ++i) { var child = children[i]; if (child.nodeName === "DIV") { var classList = child.classList; if (classList.contains("NavHead")) navHead = child; if (classList.contains("NavContent")) navContent = child; } } if (!(navHead && navContent)) return; // Step 1, don't react when a subitem is clicked. $(navHead).find("a").on("click", function (e) { e.stopPropagation(); e.stopImmediatePropagation(); }); // Step 2, toggle visibility when bar is clicked. // NOTE This function was chosen due to some funny behaviour in Safari. var $navToggle = $("<a>").attr("role", "button").attr("tabindex", "0"); $("<span>").addClass("NavToggle").attr("data-nosnippet", "") .append($navToggle) .prependTo(navHead); navHead.style.cursor = "pointer"; var toggleCategory = $(navFrame).data("toggle-category") || getToggleCategory(navFrame, "Qutiyên din"); navHead.onclick = window.VisibilityToggles.register(toggleCategory, function show() { $navToggle.html(NavigationBarHide); if (navContent) navContent.style.display = "block"; }, function hide() { $navToggle.html(NavigationBarShow); if (navContent) navContent.style.display = "none"; }); } function createNavToggleForInflectionTable(it) { if (checkAndSetToggleified(it)) { return; } // The table caption is the clickable element var itCaption = $(it).find("caption").get(0); // Step 1, don't react when a subitem is clicked. $(itCaption).find("a").on("click", function (e) { e.stopPropagation(); e.stopImmediatePropagation(); }); // Step 2, toggle visibility when bar is clicked. // NOTE This function was chosen due to some funny behaviour in Safari. var $navToggle = $("<a>").attr("role", "button").attr("tabindex", "0"); $("<span>").addClass("NavToggle").attr("data-nosnippet", "") .append($navToggle) .prependTo(itCaption); itCaption.style.cursor = "pointer"; var toggleCategory = $(it).data("toggle-category") || getToggleCategory(it, "Qutiyên din"); itCaption.onclick = window.VisibilityToggles.register(toggleCategory, function show() { $navToggle.html(NavigationBarHide); if (it) { it.classList.remove("inflection-table-collapsed"); } }, function hide() { $navToggle.html(NavigationBarShow); if (it) { it.classList.add("inflection-table-collapsed"); } }); // Check to see if we are on a browser that is known to support // visibility: collapse, which permits inflection table headings to wrap. // WebKit needs to be special-cased, as technically it does support // visibility: collapse, but it just implements it as a synonym for // visibility: hidden, which is useless. (as of November 2024) // Yes, I know User-Agent sniffing is so 2004... but WebKit is the new IE if ( CSS && CSS.supports && CSS.supports("visibility:collapse") && // exclude WebKit/Safari, excepting Blink engines which have a frozen WebKit version number (navigator.userAgent.indexOf("AppleWebKit/") === -1 || navigator.userAgent.indexOf("AppleWebKit/537.36") > -1) ) { it.classList.remove("no-vc"); } else { // Strange behaviour occurs when you set the table caption to nowrap // The [show/hide] toggle crashes into the caption text // This spacer element prevents that $("<span>").addClass("no-vc-spacer").appendTo(itCaption); } } /* ==Hidden Quotes== */ function setupHiddenQuotes(li) { if (checkAndSetToggleified(li)) { return; } var HQToggle, liComp, dl; var HQShow; var HQHide; if (pageLang === "ku-arab") { HQShow = '▼ ژێگرتن'; HQHide = '▲ ژێگرتن'; } else { HQShow = 'jêgirtin ▼'; HQHide = 'jêgirtin ▲'; } function show() { HQToggle.html(HQHide); $(li).children("ul").show(); } function hide() { HQToggle.html(HQShow); $(li).children("ul").hide(); } for (var k = 0; k < li.childNodes.length; k++) { // Look at each component of the definition. liComp = li.childNodes[k]; if (liComp.nodeName.toLowerCase() === "dl" && !dl) { dl = liComp; } // If we find a ul or dl, we have quotes or example sentences, and thus need a button. if (/^(ul|UL)$/.test(liComp.nodeName)) { HQToggle = $("<a>").attr("role", "button").attr("tabindex", "0"); $(dl || liComp).before($("<span>").addClass("HQToggle").attr("data-nosnippet", "").append(HQToggle).css("margin-left", "5px")); HQToggle.on("click", window.VisibilityToggles.register("Jêgirtinan", show, hide)); break; } } } /* == View Switching == */ function viewSwitching(rootElement) { if (checkAndSetToggleified(rootElement)) { return; } var $rootElement = $(rootElement); var showButtonText; var hideButtonText; if (pageLang === "ku-arab") { showButtonText = $rootElement.data("vs-showtext") || "▼ زێده‌تر"; hideButtonText = $rootElement.data("vs-hidetext") || "▲ کێمتر"; }else{ showButtonText = $rootElement.data("vs-showtext") || "zêdetir ▼"; hideButtonText = $rootElement.data("vs-hidetext") || "kêmtir ▲"; } var toSkip = $rootElement.find(".vsSwitcher").find("*"); var elemsToHide = $rootElement.find(".vsHide").not(toSkip); var elemsToShow = $rootElement.find(".vsShow").not(toSkip); // Find the element to place the toggle button in. var toggleElement = $rootElement.find(".vsToggleElement").not(toSkip).first(); // The toggleElement becomes clickable in its entirety, but // we need to prevent this if a contained link is clicked instead. toggleElement.find("a").on("click", function (e) { e.stopPropagation(); e.stopImmediatePropagation(); }); // Add the toggle button. var toggleButton = $("<a>").attr("role", "button").attr("tabindex", "0"); $("<span>").addClass("NavToggle").attr("data-nosnippet", "").append(toggleButton).prependTo(toggleElement); // Determine the visibility toggle category (for the links in the bar on the left). var toggleCategory = $rootElement.data("toggle-category"); if (!toggleCategory) { var classNames = $rootElement.attr("class").split(/\s+/); for (var i = 0; i < classNames.length; ++i) { var className = classNames[i].split("-"); if (className[0] == "vsToggleCategory") { toggleCategory = className[1]; } } } if (!toggleCategory) toggleCategory = "others"; // Register the visibility toggle. toggleElement.css("cursor", "pointer"); toggleElement.on("click", window.VisibilityToggles.register(toggleCategory, function show() { toggleButton.html(hideButtonText); elemsToShow.hide(); elemsToHide.show(); }, function hide() { toggleButton.html(showButtonText); elemsToShow.show(); elemsToHide.hide(); })); } /* ==List switching== */ function enableListSwitchGeneric(rootElement) { if (checkAndSetToggleified(rootElement)) { return; } var $rootElement = $(rootElement); // Create a toggle button. var $toggleElement = $("<div>").addClass("list-switcher-element"); var $navToggle = $("<span>").addClass("NavToggle").attr("data-nosnippet", ""); var $toggleButton = $("<a>").attr("role", "button").attr("tabindex", "0"); // Add the toggle button to the DOM tree. $navToggle.append($toggleButton).prependTo($toggleElement); $toggleElement.insertBefore($rootElement); $toggleElement.show(); // Determine the visibility toggle category (for the links in the bar on the // left). It will either be the value of the "data-toggle-category" // attribute or will be based on the text of the closest preceding // fourth-to-sixth-level header. var toggleCategory = $rootElement.data("toggle-category") || getToggleCategory($rootElement[0], "Lîsteyên din"); // Determine the text for the $toggleButton. var showButtonText = "zêdetir ▼"; var hideButtonText = "kêmtir ▲"; var numLiElements = $rootElement.find("li").length; if (numLiElements) { showButtonText = "Her " + numLiElements + "an nîşan bide ▼"; hideButtonText = "kêmtir bibîne ▲"; } // Register the visibility toggle. $toggleElement.on("click", window.VisibilityToggles.register(toggleCategory, function show() { $toggleButton.html(hideButtonText); if (rootElement) { rootElement.classList.remove("list-switcher-collapsed"); } }, function hide() { $toggleButton.html(showButtonText); if (rootElement) { rootElement.classList.add("list-switcher-collapsed"); } })); // Register a resize observer to see if we need to keep the // show/hide toggle visible var termList = rootElement.querySelector(':scope > .term-list'); if (termList && window.ResizeObserver) { var resizeObserver = new ResizeObserver(function(entries) { if (entries[0] && entries[0].contentBoxSize[0]) { // Work out what the max-height would be, in pixels // As a hack, this value is stored in the CSS `bottom` // property, as `max-height` is only in place when // the list is collapsed, but we need to do this check // even when the list is not collapsed var maxHeightPx = parseFloat(getComputedStyle(rootElement).bottom); // If box height is less than its max height + 20 px, suppress // collapsibility. The 20 px buffer prevents the situation where // clicking "show more" expands the box by just a few pixels if (entries[0].contentBoxSize[0].blockSize <= maxHeightPx + 20) { $toggleElement.hide(); if (rootElement.classList.contains("list-switcher-collapsed")) { rootElement.classList.remove("list-switcher-collapsed"); rootElement.classList.add("list-switcher-collapsibility-suppressed"); } } else { $toggleElement.show(); if (rootElement.classList.contains("list-switcher-collapsibility-suppressed")) { rootElement.classList.remove("list-switcher-collapsibility-suppressed"); rootElement.classList.add("list-switcher-collapsed"); } } } }); resizeObserver.observe(termList); } } window.createNavToggle = createNavToggle; window.setupHiddenQuotes = setupHiddenQuotes; window.viewSwitching = viewSwitching; window.getToggleCategory = getToggleCategory; /* == Apply four functions defined above == */ mw.hook("wikipage.content").add(function($content) { // NavToggles $(".NavFrame", $content).each(function(){ createNavToggle(this); }); $(".inflection-table-collapsible", $content).each(function(){ createNavToggleForInflectionTable(this); }); // order nyms -> usexes -> quotes, to match the conventional order in entries // usage examples and collocations var namespaceNumber = mw.config.get("wgNamespaceNumber"); // quotes if (namespaceNumber === 0 || namespaceNumber === 100 || namespaceNumber === 108) { // First, find all the ordered lists, i.e. all the series of definitions. $("ol > li", $content).each(function(){ setupHiddenQuotes(this); }); } //view switching $(".vsSwitcher", $content).each(function(){ viewSwitching(this); }); // list switching $(".list-switcher", $content).each(function () { enableListSwitchGeneric(this); }); }); jQuery(mw).on("LivePreviewDone", function (ev, sels) { var ols = jQuery(sels.join(",")).find("ol"); for (var i = 0; i < ols.length; i++) { for (var j = 0; j < ols[i].childNodes.length; j++) { var li = ols[i].childNodes[j]; if (li.nodeName.toUpperCase() == "LI") { setupHiddenQuotes(li); } } } }); })(); doxyo941obbxikmkkxm91qeizoj73be Modul:usex 828 971965 6329620 6329431 2026-08-12T13:43:08Z Wikihez 7344 6329620 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local links_module = "Module:links" local scripts_module = "Module:scripts" local script_utilities_module = "Module:script utilities" local string_utilities_module = "Module:string utilities" local usex_data_module = "Module:usex/data" local m_str_utils = require(string_utilities_module) local rsubn = m_str_utils.gsub local rsplit = m_str_utils.split local rfind = m_str_utils.find local uupper = m_str_utils.upper local ulen = m_str_utils.len local u = m_str_utils.char local ucfirst = m_str_utils.ucfirst local translit_data = mw.loadData("Module:transliteration/data") local needs_translit = translit_data[1] local BRACKET_SUB = u(0xFFF0) local original_text = "<small>''ya orîjînal:''</small> " -- 100 more or less corresponds to the setting of 30 for the example text alone as formerly used in -- {{hi-x}} and {{ur-x}}, taking into account transliteration, gloss and formatting characters. -- FIXME: We should have different widths for desktop vs. mobile and generate the appropriate CSS so -- both are handled correctly. local MAX_INLINE_WIDTH = 100 -- In characters. HACK! FIXME! Do this a better way. -- List of scripts whose characters are double-width/full-width. local double_width_scripts = {"Hani", "Hrkt", "Hang"} -- microformat2 classes, see https://phabricator.wikimedia.org/T138709 local css_classes = { container_ux = 'h-usage-example', container_quotation = 'h-quotation', example = 'e-example', quotation = 'e-quotation', quotation_with_citation = 'e-quotation cited-passage', translation = 'e-translation', -- The following are added by [[Module:script utilities]], using [[Module:script utilities/data]] -- transliteration = 'e-transliteration', -- transcription = 'e-transcription', normalization = 'e-normalization', literally = 'e-literally', qualifier = 'e-qualifier', source = 'jeder', footer = 'e-footer' } -- helper functions local function track(page) require(debug_track_module)("usex/" .. page) return true end -- version of rsubn() that discards all but the first return value local function rsub(term, foo, bar) local retval = rsubn(term, foo, bar) return retval end local function wrap(tag, class, text, lang, style) if lang then lang = ' lang="' .. lang .. '"' else lang = "" end if style then style = ' style="' .. style .. '"' else style = "" end if text and class then return table.concat{'<', tag, ' class="', class, '"', lang, style, '>', text, '</', tag, '>'} else return nil end end local function span(class, text) return wrap('span', class, text) end local function div(class, text) return wrap('div', class, text) end -- Remove any HTML from the formatted text and resolve links, since the extra characters don't contribute to the -- displayed length. local function convert_to_raw_text(text) text = rsub(text, "<.->", "") if text:find("%[%[") then text = require(links_module).remove_links(text) end return text end local function get_character_width(text) local charsets = {} for _, script in ipairs(double_width_scripts) do table.insert(charsets, require(scripts_module).getByCode(script):getCharacters()) end local single_width_chars = ulen(rsub(text, "[" .. table.concat(charsets) .. "]", "")) local total_chars = ulen(text) local double_width_chars = total_chars - single_width_chars return single_width_chars + 2 * double_width_chars end --[==[ Apply the substitutions in `subst` (from the {{para|subst}} parameter or similar) to the example or quotation in `usex` after removing links, returning the resulting text. `track`, if supplied, is a function of one argument that is used to insert tracking categories: one for any call to this function, another if a single / is used in the `subst` argument. ]==] function export.apply_subst(usex, subst, track) local subbed_usex = require(links_module).remove_links(usex) local function do_track(page) if track then track(page) end return true end if subst then -- [[Special:WhatLinksHere/Wiktionary:Tracking/usex/subst]] do_track("subst") subst = rsplit(subst, ",") for _, subpair in ipairs(subst) do -- [[Special:WhatLinksHere/Wiktionary:Tracking/usex/subst-single-slash]] local subsplit = rsplit(subpair, rfind(subpair, "//") and "//" or do_track("subst-single-slash") and "/") subbed_usex = rsub(subbed_usex, subsplit[1], subsplit[2]) end end return subbed_usex end --[=[ Process parameters for usex text (either the primary text or the original text) and associated annotations. On input, the following fields are recognized in `data` (all are optional except as marked): * `lang`: Language object of text; may be an etymology language (REQUIRED). * `termlang`: The language object of the term being illustrated, which may be different from the language of the main quotation text and should always be based off of the main text, not the original text. Used for categories. May be an etymology language (REQUIRED). * `usex`: Text of usex/quotation. * `sc`: Script object of text. * `tr`: Manual transliteration. * `ts`: Transcription. * `norm`: Normalized version of text. * `normsc`: Script object of normalized version of text, or "auto". * `subst`: String of substitutions for transliteration purposes. * `quote`: If non-nil, this is a quotation (using {{tl|quote}} or {{tl|quote-*}}) instead of a usage example (using {{tl|usex}}). If it has the specific value "quote-meta", this is a quotation with citation (invoked from {{tl|quote-*}}). This controls the CSS class used to display the quotation, as well as the face used to tag the usex (which in turn results in the usex being upright text if a quotation, and italic text if a usage example). * `title`: Title object of the current page (REQUIRED). * `q`: List of left qualifiers. * `qq`: List of right qualifiers. * `ref`: String to display directly after any right qualifier, with no space. (FIXME: Should be converted into an actual ref.) * `nocat`: Overall `data.nocat` value. * `categories`: List to insert categories into (REQUIRED). * `example_type`: Either "quotation" (if `quote` specified) or "usage example" (otherwise) (REQUIRED). On output, return an object with four fields: * `usex`: Formatted usex, including qualifiers attached to both sides and `ref` attached to the right. Always specified. * `tr`: Formatted transliteration; may be nil. * `ts`: Formatted transcription; may be nil. * `norm`: Formatted normalized version of usex; may be nil. ]=] local function process_usex_text(data) local lang = data.lang local termlang = data.termlang local usex = data.usex local sc = data.sc local sc_explicit = sc local tr = data.tr local ts = data.ts local norm = data.norm local normsc = data.normsc local subst = data.subst local quote = data.quote local leftq = data.q local rightq = data.qq local ref = data.ref local nocat = data.nocat local categories = data.categories local example_type = data.example_type local title = data.title if normsc == "auto" then normsc = nil elseif not normsc then normsc = sc end if not sc then sc = lang:findBestScript(usex) end if not normsc and norm then normsc = lang:findBestScript(norm) end local langcode = lang:getFullCode() -- tr=- means omit transliteration altogether if tr == "-" then tr = nil else -- Try to auto-transliterate. if not tr then -- First, try transliterating the normalization, if supplied. if norm and normsc and not normsc:getCode():find("Lat") then -- Latn, Latf, Latg, pjt-Latn local subbed_norm = export.apply_subst(norm, subst, track) tr = (lang:transliterate(subbed_norm, normsc)) end -- If no normalization, or the normalization is in a Latin script, or the transliteration of the -- normalization failed, fall back to transliterating the usex. if not tr then local subbed_usex = export.apply_subst(usex, subst, track) tr = (lang:transliterate(subbed_usex, sc)) end -- If the language doesn't have capitalization and is specified in [[Module:usex/data]], then capitalize any sentences. -- Exclamation marks and question marks need to be unescaped then re-escaped. if tr and mw.loadData(usex_data_module).capitalize_sentences[langcode] then tr = tr:gsub("&#x21;", "!") :gsub("&#x3F;", "?") tr = rsub(tr, "%f[^%z%p%s](.)(.-[%.%?!‽])", function(m1, m2) return uupper(m1) .. m2 end) tr = tr:gsub("!", "&#x21;") :gsub("%?", "&#x3F;") end end -- If there is still no transliteration, then add a cleanup category. if not tr and needs_translit[langcode] and not sc:getCode():find("Lat") and sc:getCode() ~= "None" then table.insert(categories, ("Daxwazên translîterasyona %syan bi %s"):format(example_type, lang:getCanonicalName())) end end if tr then tr = require(script_utilities_module).tag_translit(tr, langcode, "usex") end if ts then ts = require(script_utilities_module).tag_transcription(ts, langcode, "usex") ts = "/" .. ts .. "/" end local function do_language_and_script_tagging(usex, lang, sc, css_class) usex = require(links_module).embedded_language_links{term = usex, lang = lang, sc = sc} local face if quote then face = nil else face = "term" end usex = require(script_utilities_module).tag_text(usex, lang, sc, face, css_class) return usex end if usex then usex = do_language_and_script_tagging(usex, lang, sc, quote == "quote-meta" and css_classes.quotation_with_citation or quote and css_classes.quotation or css_classes.example) if not nocat then -- Only add [[Citations:foo]] to [[:Category:LANG terms with quotations]] if [[foo]] exists. local ok_to_add_cat if title.nsText ~= "Citations" then ok_to_add_cat = true else -- Here we don't want to use the subpage text because we check [[Citations:foo]] against [[foo]] and -- if there's a slash in what follows 'Citations:', we want to check against the full page with the -- slash. local mainspace_title = mw.title.new(title.text) if mainspace_title and mainspace_title.exists then ok_to_add_cat = true end end if ok_to_add_cat then -- Categories beginning with the language name should use full languages as that's what the poscat -- system requires, but 'Requests for' categories can use etymology-only languages. table.insert(categories, ("%s bi %s"):format(ucfirst(example_type), termlang:getFullName())) end end else if tr then table.insert(categories, ("Daxwazên skrîpta nimûneyan bi %s"):format(lang:getCanonicalName())) end -- TODO: Trigger some kind of error here usex = "<small>(ji kerema xwe metna orîjînal a vê nimûneyê binivîsin)</small>" end if norm then -- Use brackets in HTML entity format just to make sure we don't interfere with links; add brackets before -- script tagging so that if the script tagging increases the font size, the brackets get increased too. norm = "&#91;" .. norm .. "&#93;" norm = do_language_and_script_tagging(norm, lang, normsc, css_classes.normalization) end local result = {} if leftq and #leftq > 0 then table.insert(result, span(css_classes.qualifier, require("Module:qualifier").format_qualifier(leftq)) .. " ") end table.insert(result, usex) if rightq and #rightq > 0 then table.insert(result, " " .. span(css_classes.qualifier, require("Module:qualifier").format_qualifier(rightq))) end if ref and ref ~= "" then track("ref") table.insert(result, ref) end return { usex = table.concat(result), tr = tr, ts = ts, norm = norm } end local function format_audio(audio) if audio then return " [[File:" .. audio .. "|25px]]" else return "" end end --[==[ Format a usex or quotation. Implementation of {{tl|ux}}, {{tl|quote}} and {{tl|quote-*}} templates (e.g. {{tl|quote-book}}, {{tl|quote-journal}}, {{tl|quote-web}}, etc.). FIXME: Should also be used by {{tl|Q}} and [[Module:Quotations]]. Takes a single object `data`, containining the following fields: * `usex`: The text of the usex or quotation to format. Semi-mandatory (a maintenance line is displayed if missing). * `lang`: The language object of the text. Mandatory. May be an etymology language. * `termlang`: The language object of the term, which may be different from the language of the text. Defaults to `lang`. Used for categories. May be an etymology language. * `sc`: The script object of the text. Autodetected if not given. * `quote`: If specified, this is a quotation rather than a usex (uses a different CSS class that affects formatting). * `inline`: If specified, format the usex or quotation inline (on one line). * `translation`: Translation of the usex or quotation, if in a foreign language. * `lit`: Literal translation (if the translation in `translation` is idiomatic and differs significantly from the literal translation). * `normalization`: Normalized version of the usex or quotation (esp. for older languages where nonstandard spellings were common). * `normsc`: Script object of the normalized text. If unspecified, use the script object given in `sc` if any, otherwise do script detection on the normalized text. If "auto", do script detection on the normalized text even if a script was specified in `sc`. * `transliteration`: Transliteration of the usex. If unspecified, transliterate the normalization if specified and not in a Latin script and transliterable, otherwise fall back to transliterating the usex text. * `transcription`: Transcription of the usex, for languages where the transliteration differs significantly from the pronunciation. * `subst`: String indicating substitutions to perform on the usex/quotation and normalization prior to transliterating them. Multiple substs are comma-separated and individual substs are of the form FROM//TO where FROM is a Lua pattern and TO is a Lua replacement spec. (FROM/TO is also recognized if no // is present in the substitution.) * `q`: If specified, a list of left qualifiers to display before the usex/quotation text. * `qq`: If specified, a list of right qualifiers to display after the usex/quotation text. * `qualifiers`: If specified, a list of right qualifiers to display after the usex/quotation text, for compatibility purposes. * `ref`: Reference text to display directly after the right qualifiers. (FIXME: Instead, this should be actual references.) * `audio`: Name of the audio file containing the usex in spoken form. * `orig`: Original text, if the primary text of the usex or quotation is a translation. * `origlang`: The language object of the original text. Mandatory if original text given. May be an etymology language. * `origsc`: The script object of the original text. Autodetected if not given. * `orignorm`: Normalized version of the original text (esp. for older languages where nonstandard spellings were common). * `orignormsc`: Script object of the normalized original text. If unspecified, use the script object given in `origsc` if any, otherwise do script detection on the normalized original text. If "auto", do script detection on the normalized text even if a script was specified in `origsc`. * `origtr`: Transliteration of the original text. If unspecified, transliterate the normalized original text if specified and not in a Latin script and transliterable, otherwise fall back to transliterating the original text. * `origts`: Transcription of the original text, for languages where the transliteration differs significantly from the pronunciation. * `origsubst`: String indicating substitutions to perform on the original text and normalization thereof prior to transliterating them. Multiple substs are comma-separated and individual substs are of the form FROM//TO where FROM is a Lua pattern and TO is a Lua replacement spec. (FROM/TO is also recognized if no // is present in the substitution.) * `origq`: If specified, a list of left qualifiers to display before the original text. * `origqq`: If specified, a list of right qualifiers to display after the original text. * `origref`: Reference text to display directly after the right qualifiers of the original text. (FIXME: Instead, this should be actual references.) * `source`: Source of the quotation, displayed in parens after the quotation text. * `footer`: Footer displaying miscellaneous information, shown after the quotation. (Typically this should be in a small font.) * `nocat`: Suppress categorization. * `noreq`: Suppress request for translation when no translation provided. * `sortkey`: Sort key for categories. * `brackets`: If specified, show a bracket at the end (used with brackets= in {{tl|quote-*}} templates, which show the bracket at the beginning, to indicate a mention rather than a use). * `class`: Additional CSS class surrounding the entire formatted text. ]==] function export.format_usex(data) local lang = data.lang local termlang = data.termlang or lang local translation = data.translation local quote = data.quote local lit = data.lit local audio = data.audio local source = data.source local brackets = data.brackets local footer = data.footer local sortkey = data.sortkey local noreq = data.noreq local title if data.pagename then -- for testing, doc pages, etc. title = mw.title.new(data.pagename) if not title then error(("Bad value for `data.pagename`: '%s'"):format(data.pagename)) end else title = mw.title.getCurrentTitle() end --[[ if title.nsText == "Reconstruction" or lang:hasType("reconstructed") then error("Reconstructed languages and reconstructed terms cannot have usage examples, as we have no record of their use.") end ]] if lit then lit = "(herfiyen, “" .. span(css_classes.literally, lit) .. "”)" end if source then source = wrap("span", "jeder", " — (" .. source .. ")", nil, "font-size: 0.85em") end if footer then footer = span(css_classes.footer, footer) end local example_type = quote and "jêgirtin" or "nimûne" -- used in error messages and categories local categories = {} local usex_obj = process_usex_text { lang = lang, termlang = termlang, usex = data.usex, sc = data.sc, tr = data.transliteration, ts = data.transcription, norm = data.normalization, normsc = data.normsc, subst = data.subst, quote = data.quote, title = title, q = data.q, qq = data.qq, ref = data.ref, nocat = data.nocat, categories = categories, example_type = example_type, } local orig_obj = data.orig and process_usex_text { lang = data.origlang, -- Any categories derived from the original text should use the language of the main text or the term inside it, -- not the language of the original text. termlang = termlang, usex = data.orig, sc = data.origsc, tr = data.origtr, ts = data.origts, norm = data.orignorm, normsc = data.orignormsc, subst = data.origsubst, quote = data.quote, title = title, q = data.origq, qq = data.origqq, ref = data.origref, nocat = data.nocat, categories = categories, example_type = example_type, } or nil if translation == "-" then translation = nil table.insert(categories, ("%s %ss with omitted translation"):format(lang:getFullName(), example_type)) elseif translation then translation = span(css_classes.translation, translation) elseif not noreq then local langcode = lang:getFullCode() local origlangcode = data.origlang and data.origlang:getFullCode() if langcode ~= "ku" and langcode ~= "navz" and langcode ~= "und" and origlangcode ~= "ku" then -- add trreq category if translation is unspecified and language is not english, translingual or -- undetermined table.insert(categories, ("Daxwazên tercimekirina %syan bi %s"):format(example_type, lang:getCanonicalName())) if quote then translation = "<small>(ji kerema xwe tercimeya kurmancî ya vê jêgirtinê binivîsin)</small>" else translation = "<small>(ji kerema xwe tercimeya kurmancî ya vê nimûneyê binivîsin)</small>" end end end local function generate_inline_usex() local result = {} local function ins(text) table.insert(result, text) end ins(usex_obj.usex) if source then ins(" " .. source) end ins(format_audio(audio)) local function insert_annotations(obj) if obj.norm then ins(" " .. obj.norm) end if obj.tr or obj.ts then ins(" ―") if obj.tr then ins(" " .. obj.tr) end if obj.ts then ins(" " .. obj.ts) end end end insert_annotations(usex_obj) if orig_obj then ins(" (") ins("[" .. original_text .. orig_obj.usex .. "]") insert_annotations(orig_obj) ins(")") end if translation then ins(" ― " .. translation) end if lit then ins(" " .. lit) end if footer then ins(" " .. footer) end if data.brackets then ins("]") end return table.concat(result) end local function generate_multiline_usex() local result = {} local function ins(text) table.insert(result, text) end ins(usex_obj.usex) ins(source) ins(format_audio(audio)) local any_usex_annotations = usex_obj.tr or usex_obj.ts or usex_obj.norm or translation or lit local any_orig_annotations = orig_obj and (orig_obj.tr or orig_obj.ts or orig_obj.norm) if any_usex_annotations or orig_obj or footer then ins("<dl>") local function insert_dd(text) if text then ins("<dd>") ins(text) if data.brackets then ins(BRACKET_SUB) end ins("</dd>") end end insert_dd(usex_obj.norm) insert_dd(usex_obj.tr) insert_dd(usex_obj.ts) if orig_obj then insert_dd("[" .. original_text .. orig_obj.usex .. "]") if any_orig_annotations then ins("<dd><dl>") insert_dd(orig_obj.norm) insert_dd(orig_obj.tr) insert_dd(orig_obj.ts) ins("</dl></dd>") end end insert_dd(translation) insert_dd(lit) if footer then if any_usex_annotations then ins("<dd><dl>") end insert_dd(footer) if any_usex_annotations then ins("</dl></dd>") end end ins("</dl>") elseif data.brackets then ins(BRACKET_SUB) end result = table.concat(result) if data.brackets then result = result:gsub("^(.*)" .. BRACKET_SUB, "%1]"):gsub(BRACKET_SUB, "") end return result end local is_inline if data.inline == "auto" then result = generate_inline_usex() if get_character_width(convert_to_raw_text(result)) > MAX_INLINE_WIDTH then result = generate_multiline_usex() is_inline = false else is_inline = true end elseif data.inline then result = generate_inline_usex() is_inline = true else result = generate_multiline_usex() is_inline = false end local class = quote and css_classes.container_quotation or css_classes.container_ux if data.class then class = class .. " " .. data.class end result = (is_inline and span or div)(class, result) return result .. require("Module:utilities").format_categories(categories, lang, sortkey) end return export 8ie3jowncg16wbzmdo1ioa3rr2uuryl 6329731 6329620 2026-08-12T21:07:11Z Wikihez 7344 6329731 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local links_module = "Module:links" local scripts_module = "Module:scripts" local script_utilities_module = "Module:script utilities" local string_utilities_module = "Module:string utilities" local usex_data_module = "Module:usex/data" local m_str_utils = require(string_utilities_module) local rsubn = m_str_utils.gsub local rsplit = m_str_utils.split local rfind = m_str_utils.find local uupper = m_str_utils.upper local ulen = m_str_utils.len local u = m_str_utils.char local ucfirst = m_str_utils.ucfirst local translit_data = mw.loadData("Module:transliteration/data") local needs_translit = translit_data[1] local BRACKET_SUB = u(0xFFF0) local original_text = "<small>''ya orîjînal:''</small> " -- 100 more or less corresponds to the setting of 30 for the example text alone as formerly used in -- {{hi-x}} and {{ur-x}}, taking into account transliteration, gloss and formatting characters. -- FIXME: We should have different widths for desktop vs. mobile and generate the appropriate CSS so -- both are handled correctly. local MAX_INLINE_WIDTH = 100 -- In characters. HACK! FIXME! Do this a better way. -- List of scripts whose characters are double-width/full-width. local double_width_scripts = {"Hani", "Hrkt", "Hang"} -- microformat2 classes, see https://phabricator.wikimedia.org/T138709 local css_classes = { container_ux = 'h-usage-example', container_quotation = 'h-quotation', example = 'e-example', quotation = 'e-quotation', quotation_with_citation = 'e-quotation cited-passage', translation = 'e-translation', -- The following are added by [[Module:script utilities]], using [[Module:script utilities/data]] -- transliteration = 'e-transliteration', -- transcription = 'e-transcription', normalization = 'e-normalization', literally = 'e-literally', qualifier = 'e-qualifier', source = 'jeder', footer = 'e-footer' } -- helper functions local function track(page) require(debug_track_module)("usex/" .. page) return true end -- version of rsubn() that discards all but the first return value local function rsub(term, foo, bar) local retval = rsubn(term, foo, bar) return retval end local function wrap(tag, class, text, lang, style) if lang then lang = ' lang="' .. lang .. '"' else lang = "" end if style then style = ' style="' .. style .. '"' else style = "" end if text and class then return table.concat{'<', tag, ' class="', class, '"', lang, style, '>', text, '</', tag, '>'} else return nil end end local function span(class, text) return wrap('span', class, text) end local function div(class, text) return wrap('div', class, text) end -- Remove any HTML from the formatted text and resolve links, since the extra characters don't contribute to the -- displayed length. local function convert_to_raw_text(text) text = rsub(text, "<.->", "") if text:find("%[%[") then text = require(links_module).remove_links(text) end return text end local function get_character_width(text) local charsets = {} for _, script in ipairs(double_width_scripts) do table.insert(charsets, require(scripts_module).getByCode(script):getCharacters()) end local single_width_chars = ulen(rsub(text, "[" .. table.concat(charsets) .. "]", "")) local total_chars = ulen(text) local double_width_chars = total_chars - single_width_chars return single_width_chars + 2 * double_width_chars end --[==[ Apply the substitutions in `subst` (from the {{para|subst}} parameter or similar) to the example or quotation in `usex` after removing links, returning the resulting text. `track`, if supplied, is a function of one argument that is used to insert tracking categories: one for any call to this function, another if a single / is used in the `subst` argument. ]==] function export.apply_subst(usex, subst, track) local subbed_usex = require(links_module).remove_links(usex) local function do_track(page) if track then track(page) end return true end if subst then -- [[Special:WhatLinksHere/Wiktionary:Tracking/usex/subst]] do_track("subst") subst = rsplit(subst, ",") for _, subpair in ipairs(subst) do -- [[Special:WhatLinksHere/Wiktionary:Tracking/usex/subst-single-slash]] local subsplit = rsplit(subpair, rfind(subpair, "//") and "//" or do_track("subst-single-slash") and "/") subbed_usex = rsub(subbed_usex, subsplit[1], subsplit[2]) end end return subbed_usex end --[=[ Process parameters for usex text (either the primary text or the original text) and associated annotations. On input, the following fields are recognized in `data` (all are optional except as marked): * `lang`: Language object of text; may be an etymology language (REQUIRED). * `termlang`: The language object of the term being illustrated, which may be different from the language of the main quotation text and should always be based off of the main text, not the original text. Used for categories. May be an etymology language (REQUIRED). * `usex`: Text of usex/quotation. * `sc`: Script object of text. * `tr`: Manual transliteration. * `ts`: Transcription. * `norm`: Normalized version of text. * `normsc`: Script object of normalized version of text, or "auto". * `subst`: String of substitutions for transliteration purposes. * `quote`: If non-nil, this is a quotation (using {{tl|quote}} or {{tl|quote-*}}) instead of a usage example (using {{tl|usex}}). If it has the specific value "quote-meta", this is a quotation with citation (invoked from {{tl|quote-*}}). This controls the CSS class used to display the quotation, as well as the face used to tag the usex (which in turn results in the usex being upright text if a quotation, and italic text if a usage example). * `title`: Title object of the current page (REQUIRED). * `q`: List of left qualifiers. * `qq`: List of right qualifiers. * `ref`: String to display directly after any right qualifier, with no space. (FIXME: Should be converted into an actual ref.) * `nocat`: Overall `data.nocat` value. * `categories`: List to insert categories into (REQUIRED). * `example_type`: Either "quotation" (if `quote` specified) or "usage example" (otherwise) (REQUIRED). On output, return an object with four fields: * `usex`: Formatted usex, including qualifiers attached to both sides and `ref` attached to the right. Always specified. * `tr`: Formatted transliteration; may be nil. * `ts`: Formatted transcription; may be nil. * `norm`: Formatted normalized version of usex; may be nil. ]=] -- "jêgirtin" (consonant-final) takes the oblique plural suffix "-an" ("jêgirtinan"); "nimûne" (vowel-final) needs -- the glide "-yan" ("nimûneyan"). Used when building "Daxwazên ... X-an/-yan bi ZIMAN" category names. local function oblique_plural(example_type) return example_type == "jêgirtin" and "jêgirtinan" or "nimûneyan" end local function process_usex_text(data) local lang = data.lang local termlang = data.termlang local usex = data.usex local sc = data.sc local sc_explicit = sc local tr = data.tr local ts = data.ts local norm = data.norm local normsc = data.normsc local subst = data.subst local quote = data.quote local leftq = data.q local rightq = data.qq local ref = data.ref local nocat = data.nocat local categories = data.categories local example_type = data.example_type local title = data.title if normsc == "auto" then normsc = nil elseif not normsc then normsc = sc end if not sc then sc = lang:findBestScript(usex) end if not normsc and norm then normsc = lang:findBestScript(norm) end local langcode = lang:getFullCode() -- tr=- means omit transliteration altogether if tr == "-" then tr = nil else -- Try to auto-transliterate. if not tr then -- First, try transliterating the normalization, if supplied. if norm and normsc and not normsc:getCode():find("Lat") then -- Latn, Latf, Latg, pjt-Latn local subbed_norm = export.apply_subst(norm, subst, track) tr = (lang:transliterate(subbed_norm, normsc)) end -- If no normalization, or the normalization is in a Latin script, or the transliteration of the -- normalization failed, fall back to transliterating the usex. if not tr then local subbed_usex = export.apply_subst(usex, subst, track) tr = (lang:transliterate(subbed_usex, sc)) end -- If the language doesn't have capitalization and is specified in [[Module:usex/data]], then capitalize any sentences. -- Exclamation marks and question marks need to be unescaped then re-escaped. if tr and mw.loadData(usex_data_module).capitalize_sentences[langcode] then tr = tr:gsub("&#x21;", "!") :gsub("&#x3F;", "?") tr = rsub(tr, "%f[^%z%p%s](.)(.-[%.%?!‽])", function(m1, m2) return uupper(m1) .. m2 end) tr = tr:gsub("!", "&#x21;") :gsub("%?", "&#x3F;") end end -- If there is still no transliteration, then add a cleanup category. if not tr and needs_translit[langcode] and not sc:getCode():find("Lat") and sc:getCode() ~= "None" then table.insert(categories, ("Daxwazên translîterasyona %s bi %s"):format(oblique_plural(example_type), lang:getCanonicalName())) end end if tr then tr = require(script_utilities_module).tag_translit(tr, langcode, "usex") end if ts then ts = require(script_utilities_module).tag_transcription(ts, langcode, "usex") ts = "/" .. ts .. "/" end local function do_language_and_script_tagging(usex, lang, sc, css_class) usex = require(links_module).embedded_language_links{term = usex, lang = lang, sc = sc} local face if quote then face = nil else face = "term" end usex = require(script_utilities_module).tag_text(usex, lang, sc, face, css_class) return usex end if usex then usex = do_language_and_script_tagging(usex, lang, sc, quote == "quote-meta" and css_classes.quotation_with_citation or quote and css_classes.quotation or css_classes.example) if not nocat then -- Only add [[Citations:foo]] to [[:Category:LANG terms with quotations]] if [[foo]] exists. local ok_to_add_cat if title.nsText ~= "Citations" then ok_to_add_cat = true else -- Here we don't want to use the subpage text because we check [[Citations:foo]] against [[foo]] and -- if there's a slash in what follows 'Citations:', we want to check against the full page with the -- slash. local mainspace_title = mw.title.new(title.text) if mainspace_title and mainspace_title.exists then ok_to_add_cat = true end end if ok_to_add_cat then -- Categories beginning with the language name should use full languages as that's what the poscat -- system requires, but 'Requests for' categories can use etymology-only languages. table.insert(categories, ("%s bi %s"):format(ucfirst(example_type), termlang:getFullName())) end end else if tr then table.insert(categories, ("Daxwazên skrîpta nimûneyan bi %s"):format(lang:getCanonicalName())) end -- TODO: Trigger some kind of error here usex = "<small>(ji kerema xwe metna orîjînal a vê nimûneyê binivîsin)</small>" end if norm then -- Use brackets in HTML entity format just to make sure we don't interfere with links; add brackets before -- script tagging so that if the script tagging increases the font size, the brackets get increased too. norm = "&#91;" .. norm .. "&#93;" norm = do_language_and_script_tagging(norm, lang, normsc, css_classes.normalization) end local result = {} if leftq and #leftq > 0 then table.insert(result, span(css_classes.qualifier, require("Module:qualifier").format_qualifier(leftq)) .. " ") end table.insert(result, usex) if rightq and #rightq > 0 then table.insert(result, " " .. span(css_classes.qualifier, require("Module:qualifier").format_qualifier(rightq))) end if ref and ref ~= "" then track("ref") table.insert(result, ref) end return { usex = table.concat(result), tr = tr, ts = ts, norm = norm } end local function format_audio(audio) if audio then return " [[File:" .. audio .. "|25px]]" else return "" end end --[==[ Format a usex or quotation. Implementation of {{tl|ux}}, {{tl|quote}} and {{tl|quote-*}} templates (e.g. {{tl|quote-book}}, {{tl|quote-journal}}, {{tl|quote-web}}, etc.). FIXME: Should also be used by {{tl|Q}} and [[Module:Quotations]]. Takes a single object `data`, containining the following fields: * `usex`: The text of the usex or quotation to format. Semi-mandatory (a maintenance line is displayed if missing). * `lang`: The language object of the text. Mandatory. May be an etymology language. * `termlang`: The language object of the term, which may be different from the language of the text. Defaults to `lang`. Used for categories. May be an etymology language. * `sc`: The script object of the text. Autodetected if not given. * `quote`: If specified, this is a quotation rather than a usex (uses a different CSS class that affects formatting). * `inline`: If specified, format the usex or quotation inline (on one line). * `translation`: Translation of the usex or quotation, if in a foreign language. * `lit`: Literal translation (if the translation in `translation` is idiomatic and differs significantly from the literal translation). * `normalization`: Normalized version of the usex or quotation (esp. for older languages where nonstandard spellings were common). * `normsc`: Script object of the normalized text. If unspecified, use the script object given in `sc` if any, otherwise do script detection on the normalized text. If "auto", do script detection on the normalized text even if a script was specified in `sc`. * `transliteration`: Transliteration of the usex. If unspecified, transliterate the normalization if specified and not in a Latin script and transliterable, otherwise fall back to transliterating the usex text. * `transcription`: Transcription of the usex, for languages where the transliteration differs significantly from the pronunciation. * `subst`: String indicating substitutions to perform on the usex/quotation and normalization prior to transliterating them. Multiple substs are comma-separated and individual substs are of the form FROM//TO where FROM is a Lua pattern and TO is a Lua replacement spec. (FROM/TO is also recognized if no // is present in the substitution.) * `q`: If specified, a list of left qualifiers to display before the usex/quotation text. * `qq`: If specified, a list of right qualifiers to display after the usex/quotation text. * `qualifiers`: If specified, a list of right qualifiers to display after the usex/quotation text, for compatibility purposes. * `ref`: Reference text to display directly after the right qualifiers. (FIXME: Instead, this should be actual references.) * `audio`: Name of the audio file containing the usex in spoken form. * `orig`: Original text, if the primary text of the usex or quotation is a translation. * `origlang`: The language object of the original text. Mandatory if original text given. May be an etymology language. * `origsc`: The script object of the original text. Autodetected if not given. * `orignorm`: Normalized version of the original text (esp. for older languages where nonstandard spellings were common). * `orignormsc`: Script object of the normalized original text. If unspecified, use the script object given in `origsc` if any, otherwise do script detection on the normalized original text. If "auto", do script detection on the normalized text even if a script was specified in `origsc`. * `origtr`: Transliteration of the original text. If unspecified, transliterate the normalized original text if specified and not in a Latin script and transliterable, otherwise fall back to transliterating the original text. * `origts`: Transcription of the original text, for languages where the transliteration differs significantly from the pronunciation. * `origsubst`: String indicating substitutions to perform on the original text and normalization thereof prior to transliterating them. Multiple substs are comma-separated and individual substs are of the form FROM//TO where FROM is a Lua pattern and TO is a Lua replacement spec. (FROM/TO is also recognized if no // is present in the substitution.) * `origq`: If specified, a list of left qualifiers to display before the original text. * `origqq`: If specified, a list of right qualifiers to display after the original text. * `origref`: Reference text to display directly after the right qualifiers of the original text. (FIXME: Instead, this should be actual references.) * `source`: Source of the quotation, displayed in parens after the quotation text. * `footer`: Footer displaying miscellaneous information, shown after the quotation. (Typically this should be in a small font.) * `nocat`: Suppress categorization. * `noreq`: Suppress request for translation when no translation provided. * `sortkey`: Sort key for categories. * `brackets`: If specified, show a bracket at the end (used with brackets= in {{tl|quote-*}} templates, which show the bracket at the beginning, to indicate a mention rather than a use). * `class`: Additional CSS class surrounding the entire formatted text. ]==] function export.format_usex(data) local lang = data.lang local termlang = data.termlang or lang local translation = data.translation local quote = data.quote local lit = data.lit local audio = data.audio local source = data.source local brackets = data.brackets local footer = data.footer local sortkey = data.sortkey local noreq = data.noreq local title if data.pagename then -- for testing, doc pages, etc. title = mw.title.new(data.pagename) if not title then error(("Bad value for `data.pagename`: '%s'"):format(data.pagename)) end else title = mw.title.getCurrentTitle() end --[[ if title.nsText == "Reconstruction" or lang:hasType("reconstructed") then error("Reconstructed languages and reconstructed terms cannot have usage examples, as we have no record of their use.") end ]] if lit then lit = "(herfiyen, “" .. span(css_classes.literally, lit) .. "”)" end if source then source = wrap("span", "jeder", " — (" .. source .. ")", nil, "font-size: 0.85em") end if footer then footer = span(css_classes.footer, footer) end local example_type = quote and "jêgirtin" or "nimûne" -- used in error messages and categories local categories = {} local usex_obj = process_usex_text { lang = lang, termlang = termlang, usex = data.usex, sc = data.sc, tr = data.transliteration, ts = data.transcription, norm = data.normalization, normsc = data.normsc, subst = data.subst, quote = data.quote, title = title, q = data.q, qq = data.qq, ref = data.ref, nocat = data.nocat, categories = categories, example_type = example_type, } local orig_obj = data.orig and process_usex_text { lang = data.origlang, -- Any categories derived from the original text should use the language of the main text or the term inside it, -- not the language of the original text. termlang = termlang, usex = data.orig, sc = data.origsc, tr = data.origtr, ts = data.origts, norm = data.orignorm, normsc = data.orignormsc, subst = data.origsubst, quote = data.quote, title = title, q = data.origq, qq = data.origqq, ref = data.origref, nocat = data.nocat, categories = categories, example_type = example_type, } or nil if translation == "-" then translation = nil table.insert(categories, ("%s %ss with omitted translation"):format(lang:getFullName(), example_type)) elseif translation then translation = span(css_classes.translation, translation) elseif not noreq then local langcode = lang:getFullCode() local origlangcode = data.origlang and data.origlang:getFullCode() if langcode ~= "ku" and langcode ~= "navz" and langcode ~= "und" and origlangcode ~= "ku" then -- add trreq category if translation is unspecified and language is not english, translingual or -- undetermined table.insert(categories, ("Daxwazên tercimekirina %s bi %s"):format(oblique_plural(example_type), lang:getCanonicalName())) if quote then translation = "<small>(ji kerema xwe tercimeya kurmancî ya vê jêgirtinê binivîsin)</small>" else translation = "<small>(ji kerema xwe tercimeya kurmancî ya vê nimûneyê binivîsin)</small>" end end end local function generate_inline_usex() local result = {} local function ins(text) table.insert(result, text) end ins(usex_obj.usex) if source then ins(" " .. source) end ins(format_audio(audio)) local function insert_annotations(obj) if obj.norm then ins(" " .. obj.norm) end if obj.tr or obj.ts then ins(" ―") if obj.tr then ins(" " .. obj.tr) end if obj.ts then ins(" " .. obj.ts) end end end insert_annotations(usex_obj) if orig_obj then ins(" (") ins("[" .. original_text .. orig_obj.usex .. "]") insert_annotations(orig_obj) ins(")") end if translation then ins(" ― " .. translation) end if lit then ins(" " .. lit) end if footer then ins(" " .. footer) end if data.brackets then ins("]") end return table.concat(result) end local function generate_multiline_usex() local result = {} local function ins(text) table.insert(result, text) end ins(usex_obj.usex) ins(source) ins(format_audio(audio)) local any_usex_annotations = usex_obj.tr or usex_obj.ts or usex_obj.norm or translation or lit local any_orig_annotations = orig_obj and (orig_obj.tr or orig_obj.ts or orig_obj.norm) if any_usex_annotations or orig_obj or footer then ins("<dl>") local function insert_dd(text) if text then ins("<dd>") ins(text) if data.brackets then ins(BRACKET_SUB) end ins("</dd>") end end insert_dd(usex_obj.norm) insert_dd(usex_obj.tr) insert_dd(usex_obj.ts) if orig_obj then insert_dd("[" .. original_text .. orig_obj.usex .. "]") if any_orig_annotations then ins("<dd><dl>") insert_dd(orig_obj.norm) insert_dd(orig_obj.tr) insert_dd(orig_obj.ts) ins("</dl></dd>") end end insert_dd(translation) insert_dd(lit) if footer then if any_usex_annotations then ins("<dd><dl>") end insert_dd(footer) if any_usex_annotations then ins("</dl></dd>") end end ins("</dl>") elseif data.brackets then ins(BRACKET_SUB) end result = table.concat(result) if data.brackets then result = result:gsub("^(.*)" .. BRACKET_SUB, "%1]"):gsub(BRACKET_SUB, "") end return result end local is_inline if data.inline == "auto" then result = generate_inline_usex() if get_character_width(convert_to_raw_text(result)) > MAX_INLINE_WIDTH then result = generate_multiline_usex() is_inline = false else is_inline = true end elseif data.inline then result = generate_inline_usex() is_inline = true else result = generate_multiline_usex() is_inline = false end local class = quote and css_classes.container_quotation or css_classes.container_ux if data.class then class = class .. " " .. data.class end result = (is_inline and span or div)(class, result) return result .. require("Module:utilities").format_categories(categories, lang, sortkey) end return export lnctnigi0h0z9kyct8cuqt5i15kpiww 6329757 6329731 2026-08-12T21:23:12Z Wikihez 7344 6329757 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local links_module = "Module:links" local scripts_module = "Module:scripts" local script_utilities_module = "Module:script utilities" local string_utilities_module = "Module:string utilities" local usex_data_module = "Module:usex/data" local m_str_utils = require(string_utilities_module) local rsubn = m_str_utils.gsub local rsplit = m_str_utils.split local rfind = m_str_utils.find local uupper = m_str_utils.upper local ulen = m_str_utils.len local u = m_str_utils.char local ucfirst = m_str_utils.ucfirst local translit_data = mw.loadData("Module:transliteration/data") local needs_translit = translit_data[1] local BRACKET_SUB = u(0xFFF0) local original_text = "<small>''ya orîjînal:''</small> " -- 100 more or less corresponds to the setting of 30 for the example text alone as formerly used in -- {{hi-x}} and {{ur-x}}, taking into account transliteration, gloss and formatting characters. -- FIXME: We should have different widths for desktop vs. mobile and generate the appropriate CSS so -- both are handled correctly. local MAX_INLINE_WIDTH = 100 -- In characters. HACK! FIXME! Do this a better way. -- List of scripts whose characters are double-width/full-width. local double_width_scripts = {"Hani", "Hrkt", "Hang"} -- microformat2 classes, see https://phabricator.wikimedia.org/T138709 local css_classes = { container_ux = 'h-usage-example', container_quotation = 'h-quotation', example = 'e-example', quotation = 'e-quotation', quotation_with_citation = 'e-quotation cited-passage', translation = 'e-translation', -- The following are added by [[Module:script utilities]], using [[Module:script utilities/data]] -- transliteration = 'e-transliteration', -- transcription = 'e-transcription', normalization = 'e-normalization', literally = 'e-literally', qualifier = 'e-qualifier', source = 'jeder', footer = 'e-footer' } -- helper functions local function track(page) require(debug_track_module)("usex/" .. page) return true end -- version of rsubn() that discards all but the first return value local function rsub(term, foo, bar) local retval = rsubn(term, foo, bar) return retval end local function wrap(tag, class, text, lang, style) if lang then lang = ' lang="' .. lang .. '"' else lang = "" end if style then style = ' style="' .. style .. '"' else style = "" end if text and class then return table.concat{'<', tag, ' class="', class, '"', lang, style, '>', text, '</', tag, '>'} else return nil end end local function span(class, text) return wrap('span', class, text) end local function div(class, text) return wrap('div', class, text) end -- Remove any HTML from the formatted text and resolve links, since the extra characters don't contribute to the -- displayed length. local function convert_to_raw_text(text) text = rsub(text, "<.->", "") if text:find("%[%[") then text = require(links_module).remove_links(text) end return text end local function get_character_width(text) local charsets = {} for _, script in ipairs(double_width_scripts) do table.insert(charsets, require(scripts_module).getByCode(script):getCharacters()) end local single_width_chars = ulen(rsub(text, "[" .. table.concat(charsets) .. "]", "")) local total_chars = ulen(text) local double_width_chars = total_chars - single_width_chars return single_width_chars + 2 * double_width_chars end --[==[ Apply the substitutions in `subst` (from the {{para|subst}} parameter or similar) to the example or quotation in `usex` after removing links, returning the resulting text. `track`, if supplied, is a function of one argument that is used to insert tracking categories: one for any call to this function, another if a single / is used in the `subst` argument. ]==] function export.apply_subst(usex, subst, track) local subbed_usex = require(links_module).remove_links(usex) local function do_track(page) if track then track(page) end return true end if subst then -- [[Special:WhatLinksHere/Wiktionary:Tracking/usex/subst]] do_track("subst") subst = rsplit(subst, ",") for _, subpair in ipairs(subst) do -- [[Special:WhatLinksHere/Wiktionary:Tracking/usex/subst-single-slash]] local subsplit = rsplit(subpair, rfind(subpair, "//") and "//" or do_track("subst-single-slash") and "/") subbed_usex = rsub(subbed_usex, subsplit[1], subsplit[2]) end end return subbed_usex end --[=[ Process parameters for usex text (either the primary text or the original text) and associated annotations. On input, the following fields are recognized in `data` (all are optional except as marked): * `lang`: Language object of text; may be an etymology language (REQUIRED). * `termlang`: The language object of the term being illustrated, which may be different from the language of the main quotation text and should always be based off of the main text, not the original text. Used for categories. May be an etymology language (REQUIRED). * `usex`: Text of usex/quotation. * `sc`: Script object of text. * `tr`: Manual transliteration. * `ts`: Transcription. * `norm`: Normalized version of text. * `normsc`: Script object of normalized version of text, or "auto". * `subst`: String of substitutions for transliteration purposes. * `quote`: If non-nil, this is a quotation (using {{tl|quote}} or {{tl|quote-*}}) instead of a usage example (using {{tl|usex}}). If it has the specific value "quote-meta", this is a quotation with citation (invoked from {{tl|quote-*}}). This controls the CSS class used to display the quotation, as well as the face used to tag the usex (which in turn results in the usex being upright text if a quotation, and italic text if a usage example). * `title`: Title object of the current page (REQUIRED). * `q`: List of left qualifiers. * `qq`: List of right qualifiers. * `ref`: String to display directly after any right qualifier, with no space. (FIXME: Should be converted into an actual ref.) * `nocat`: Overall `data.nocat` value. * `categories`: List to insert categories into (REQUIRED). * `example_type`: Either "quotation" (if `quote` specified) or "usage example" (otherwise) (REQUIRED). On output, return an object with four fields: * `usex`: Formatted usex, including qualifiers attached to both sides and `ref` attached to the right. Always specified. * `tr`: Formatted transliteration; may be nil. * `ts`: Formatted transcription; may be nil. * `norm`: Formatted normalized version of usex; may be nil. ]=] -- "jêgirtin" (consonant-final) takes the oblique plural suffix "-an" ("jêgirtinan"); "nimûne" (vowel-final) needs -- the glide "-yan" ("nimûneyan"). Used when building "Daxwazên ... X-an/-yan bi ZIMAN" category names. local function oblique_plural(example_type) return example_type == "jêgirtin" and "jêgirtinan" or "nimûneyan" end local function process_usex_text(data) local lang = data.lang local termlang = data.termlang local usex = data.usex local sc = data.sc local sc_explicit = sc local tr = data.tr local ts = data.ts local norm = data.norm local normsc = data.normsc local subst = data.subst local quote = data.quote local leftq = data.q local rightq = data.qq local ref = data.ref local nocat = data.nocat local categories = data.categories local example_type = data.example_type local title = data.title if normsc == "auto" then normsc = nil elseif not normsc then normsc = sc end if not sc then sc = lang:findBestScript(usex) end if not normsc and norm then normsc = lang:findBestScript(norm) end local langcode = lang:getFullCode() -- tr=- means omit transliteration altogether if tr == "-" then tr = nil else -- Try to auto-transliterate. if not tr then -- First, try transliterating the normalization, if supplied. if norm and normsc and not normsc:getCode():find("Lat") then -- Latn, Latf, Latg, pjt-Latn local subbed_norm = export.apply_subst(norm, subst, track) tr = (lang:transliterate(subbed_norm, normsc)) end -- If no normalization, or the normalization is in a Latin script, or the transliteration of the -- normalization failed, fall back to transliterating the usex. if not tr then local subbed_usex = export.apply_subst(usex, subst, track) tr = (lang:transliterate(subbed_usex, sc)) end -- If the language doesn't have capitalization and is specified in [[Module:usex/data]], then capitalize any sentences. -- Exclamation marks and question marks need to be unescaped then re-escaped. if tr and mw.loadData(usex_data_module).capitalize_sentences[langcode] then tr = tr:gsub("&#x21;", "!") :gsub("&#x3F;", "?") tr = rsub(tr, "%f[^%z%p%s](.)(.-[%.%?!‽])", function(m1, m2) return uupper(m1) .. m2 end) tr = tr:gsub("!", "&#x21;") :gsub("%?", "&#x3F;") end end -- If there is still no transliteration, then add a cleanup category. if not tr and needs_translit[langcode] and not sc:getCode():find("Lat") and sc:getCode() ~= "None" then table.insert(categories, ("Daxwazên translîterasyona %s bi %s"):format(oblique_plural(example_type), lang:getCanonicalName())) end end if tr then tr = require(script_utilities_module).tag_translit(tr, langcode, "usex") end if ts then ts = require(script_utilities_module).tag_transcription(ts, langcode, "usex") ts = "/" .. ts .. "/" end local function do_language_and_script_tagging(usex, lang, sc, css_class) usex = require(links_module).embedded_language_links{term = usex, lang = lang, sc = sc} local face if quote then face = nil else face = "term" end usex = require(script_utilities_module).tag_text(usex, lang, sc, face, css_class) return usex end if usex then usex = do_language_and_script_tagging(usex, lang, sc, quote == "quote-meta" and css_classes.quotation_with_citation or quote and css_classes.quotation or css_classes.example) if not nocat then -- Only add [[Citations:foo]] to [[:Category:LANG terms with quotations]] if [[foo]] exists. local ok_to_add_cat if title.nsText ~= "Citations" then ok_to_add_cat = true else -- Here we don't want to use the subpage text because we check [[Citations:foo]] against [[foo]] and -- if there's a slash in what follows 'Citations:', we want to check against the full page with the -- slash. local mainspace_title = mw.title.new(title.text) if mainspace_title and mainspace_title.exists then ok_to_add_cat = true end end if ok_to_add_cat then -- Categories beginning with the language name should use full languages as that's what the poscat -- system requires, but 'Requests for' categories can use etymology-only languages. table.insert(categories, ("%s bi %s"):format(ucfirst(example_type), termlang:getFullName())) end end else if tr then table.insert(categories, ("Daxwazên skrîpta nimûneyan bi %s"):format(lang:getCanonicalName())) end -- TODO: Trigger some kind of error here usex = "<small>(ji kerema xwe metna orîjînal a vê nimûneyê binivîsin)</small>" end if norm then -- Use brackets in HTML entity format just to make sure we don't interfere with links; add brackets before -- script tagging so that if the script tagging increases the font size, the brackets get increased too. norm = "&#91;" .. norm .. "&#93;" norm = do_language_and_script_tagging(norm, lang, normsc, css_classes.normalization) end local result = {} if leftq and #leftq > 0 then table.insert(result, span(css_classes.qualifier, require("Module:qualifier").format_qualifier(leftq)) .. " ") end table.insert(result, usex) if rightq and #rightq > 0 then table.insert(result, " " .. span(css_classes.qualifier, require("Module:qualifier").format_qualifier(rightq))) end if ref and ref ~= "" then track("ref") table.insert(result, ref) end return { usex = table.concat(result), tr = tr, ts = ts, norm = norm } end local function format_audio(audio) if audio then return " [[File:" .. audio .. "|25px]]" else return "" end end --[==[ Format a usex or quotation. Implementation of {{tl|ux}}, {{tl|quote}} and {{tl|quote-*}} templates (e.g. {{tl|quote-book}}, {{tl|quote-journal}}, {{tl|quote-web}}, etc.). FIXME: Should also be used by {{tl|Q}} and [[Module:Quotations]]. Takes a single object `data`, containining the following fields: * `usex`: The text of the usex or quotation to format. Semi-mandatory (a maintenance line is displayed if missing). * `lang`: The language object of the text. Mandatory. May be an etymology language. * `termlang`: The language object of the term, which may be different from the language of the text. Defaults to `lang`. Used for categories. May be an etymology language. * `sc`: The script object of the text. Autodetected if not given. * `quote`: If specified, this is a quotation rather than a usex (uses a different CSS class that affects formatting). * `inline`: If specified, format the usex or quotation inline (on one line). * `translation`: Translation of the usex or quotation, if in a foreign language. * `lit`: Literal translation (if the translation in `translation` is idiomatic and differs significantly from the literal translation). * `normalization`: Normalized version of the usex or quotation (esp. for older languages where nonstandard spellings were common). * `normsc`: Script object of the normalized text. If unspecified, use the script object given in `sc` if any, otherwise do script detection on the normalized text. If "auto", do script detection on the normalized text even if a script was specified in `sc`. * `transliteration`: Transliteration of the usex. If unspecified, transliterate the normalization if specified and not in a Latin script and transliterable, otherwise fall back to transliterating the usex text. * `transcription`: Transcription of the usex, for languages where the transliteration differs significantly from the pronunciation. * `subst`: String indicating substitutions to perform on the usex/quotation and normalization prior to transliterating them. Multiple substs are comma-separated and individual substs are of the form FROM//TO where FROM is a Lua pattern and TO is a Lua replacement spec. (FROM/TO is also recognized if no // is present in the substitution.) * `q`: If specified, a list of left qualifiers to display before the usex/quotation text. * `qq`: If specified, a list of right qualifiers to display after the usex/quotation text. * `qualifiers`: If specified, a list of right qualifiers to display after the usex/quotation text, for compatibility purposes. * `ref`: Reference text to display directly after the right qualifiers. (FIXME: Instead, this should be actual references.) * `audio`: Name of the audio file containing the usex in spoken form. * `orig`: Original text, if the primary text of the usex or quotation is a translation. * `origlang`: The language object of the original text. Mandatory if original text given. May be an etymology language. * `origsc`: The script object of the original text. Autodetected if not given. * `orignorm`: Normalized version of the original text (esp. for older languages where nonstandard spellings were common). * `orignormsc`: Script object of the normalized original text. If unspecified, use the script object given in `origsc` if any, otherwise do script detection on the normalized original text. If "auto", do script detection on the normalized text even if a script was specified in `origsc`. * `origtr`: Transliteration of the original text. If unspecified, transliterate the normalized original text if specified and not in a Latin script and transliterable, otherwise fall back to transliterating the original text. * `origts`: Transcription of the original text, for languages where the transliteration differs significantly from the pronunciation. * `origsubst`: String indicating substitutions to perform on the original text and normalization thereof prior to transliterating them. Multiple substs are comma-separated and individual substs are of the form FROM//TO where FROM is a Lua pattern and TO is a Lua replacement spec. (FROM/TO is also recognized if no // is present in the substitution.) * `origq`: If specified, a list of left qualifiers to display before the original text. * `origqq`: If specified, a list of right qualifiers to display after the original text. * `origref`: Reference text to display directly after the right qualifiers of the original text. (FIXME: Instead, this should be actual references.) * `source`: Source of the quotation, displayed in parens after the quotation text. * `footer`: Footer displaying miscellaneous information, shown after the quotation. (Typically this should be in a small font.) * `nocat`: Suppress categorization. * `noreq`: Suppress request for translation when no translation provided. * `sortkey`: Sort key for categories. * `brackets`: If specified, show a bracket at the end (used with brackets= in {{tl|quote-*}} templates, which show the bracket at the beginning, to indicate a mention rather than a use). * `class`: Additional CSS class surrounding the entire formatted text. ]==] function export.format_usex(data) local lang = data.lang local termlang = data.termlang or lang local translation = data.translation local quote = data.quote local lit = data.lit local audio = data.audio local source = data.source local brackets = data.brackets local footer = data.footer local sortkey = data.sortkey local noreq = data.noreq local title if data.pagename then -- for testing, doc pages, etc. title = mw.title.new(data.pagename) if not title then error(("Bad value for `data.pagename`: '%s'"):format(data.pagename)) end else title = mw.title.getCurrentTitle() end --[[ if title.nsText == "Reconstruction" or lang:hasType("reconstructed") then error("Reconstructed languages and reconstructed terms cannot have usage examples, as we have no record of their use.") end ]] if lit then lit = "(herfiyen, “" .. span(css_classes.literally, lit) .. "”)" end if source then source = wrap("span", "jeder", " — (" .. source .. ")", nil, "font-size: 0.85em") end if footer then footer = span(css_classes.footer, footer) end local example_type = quote and "jêgirtin" or "nimûne" -- used in error messages and categories local categories = {} local usex_obj = process_usex_text { lang = lang, termlang = termlang, usex = data.usex, sc = data.sc, tr = data.transliteration, ts = data.transcription, norm = data.normalization, normsc = data.normsc, subst = data.subst, quote = data.quote, title = title, q = data.q, qq = data.qq, ref = data.ref, nocat = data.nocat, categories = categories, example_type = example_type, } local orig_obj = data.orig and process_usex_text { lang = data.origlang, -- Any categories derived from the original text should use the language of the main text or the term inside it, -- not the language of the original text. termlang = termlang, usex = data.orig, sc = data.origsc, tr = data.origtr, ts = data.origts, norm = data.orignorm, normsc = data.orignormsc, subst = data.origsubst, quote = data.quote, title = title, q = data.origq, qq = data.origqq, ref = data.origref, nocat = data.nocat, categories = categories, example_type = example_type, } or nil if translation == "-" then translation = nil local plural_example_type = example_type == "jêgirtin" and "Jêgirtinên" or "Nimûneyên" table.insert(categories, ("%s tercimeyê vedişêrin yên %s"):format(plural_example_type, lang:getFullName())) elseif translation then translation = span(css_classes.translation, translation) elseif not noreq then local langcode = lang:getFullCode() local origlangcode = data.origlang and data.origlang:getFullCode() if langcode ~= "ku" and langcode ~= "navz" and langcode ~= "und" and origlangcode ~= "ku" then -- add trreq category if translation is unspecified and language is not english, translingual or -- undetermined table.insert(categories, ("Daxwazên tercimekirina %s bi %s"):format(oblique_plural(example_type), lang:getCanonicalName())) if quote then translation = "<small>(ji kerema xwe tercimeya kurmancî ya vê jêgirtinê binivîsin)</small>" else translation = "<small>(ji kerema xwe tercimeya kurmancî ya vê nimûneyê binivîsin)</small>" end end end local function generate_inline_usex() local result = {} local function ins(text) table.insert(result, text) end ins(usex_obj.usex) if source then ins(" " .. source) end ins(format_audio(audio)) local function insert_annotations(obj) if obj.norm then ins(" " .. obj.norm) end if obj.tr or obj.ts then ins(" ―") if obj.tr then ins(" " .. obj.tr) end if obj.ts then ins(" " .. obj.ts) end end end insert_annotations(usex_obj) if orig_obj then ins(" (") ins("[" .. original_text .. orig_obj.usex .. "]") insert_annotations(orig_obj) ins(")") end if translation then ins(" ― " .. translation) end if lit then ins(" " .. lit) end if footer then ins(" " .. footer) end if data.brackets then ins("]") end return table.concat(result) end local function generate_multiline_usex() local result = {} local function ins(text) table.insert(result, text) end ins(usex_obj.usex) ins(source) ins(format_audio(audio)) local any_usex_annotations = usex_obj.tr or usex_obj.ts or usex_obj.norm or translation or lit local any_orig_annotations = orig_obj and (orig_obj.tr or orig_obj.ts or orig_obj.norm) if any_usex_annotations or orig_obj or footer then ins("<dl>") local function insert_dd(text) if text then ins("<dd>") ins(text) if data.brackets then ins(BRACKET_SUB) end ins("</dd>") end end insert_dd(usex_obj.norm) insert_dd(usex_obj.tr) insert_dd(usex_obj.ts) if orig_obj then insert_dd("[" .. original_text .. orig_obj.usex .. "]") if any_orig_annotations then ins("<dd><dl>") insert_dd(orig_obj.norm) insert_dd(orig_obj.tr) insert_dd(orig_obj.ts) ins("</dl></dd>") end end insert_dd(translation) insert_dd(lit) if footer then if any_usex_annotations then ins("<dd><dl>") end insert_dd(footer) if any_usex_annotations then ins("</dl></dd>") end end ins("</dl>") elseif data.brackets then ins(BRACKET_SUB) end result = table.concat(result) if data.brackets then result = result:gsub("^(.*)" .. BRACKET_SUB, "%1]"):gsub(BRACKET_SUB, "") end return result end local is_inline if data.inline == "auto" then result = generate_inline_usex() if get_character_width(convert_to_raw_text(result)) > MAX_INLINE_WIDTH then result = generate_multiline_usex() is_inline = false else is_inline = true end elseif data.inline then result = generate_inline_usex() is_inline = true else result = generate_multiline_usex() is_inline = false end local class = quote and css_classes.container_quotation or css_classes.container_ux if data.class then class = class .. " " .. data.class end result = (is_inline and span or div)(class, result) return result .. require("Module:utilities").format_categories(categories, lang, sortkey) end return export ocm71im5yzpkzqm8ct13b2wwk33sea8 jinkujî 0 975908 6329796 6309349 2026-08-12T22:41:23Z Wikihez 7344 6329796 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{mijar|ku|mirin}} [[kuştin|Kuştina]] [[jin]]an. #* {{jêder-malper|ku|jêgirtin=Ez bawer im di dirindeyî û '''jinkujiya''' zilamekî de destê jinekê li pişt e.|url=https://www.rudaw.net/kurmanci/lifestyle/03112017-amp|sernav=Barîkan dixwaze hizra jin û mêrên Kurd biguherîne|malper=rudaw.net|dîrok=03.11.2017}} #* {{jêder-malper|ku|jêgirtin=Dil dixwest ku di vê nivîsê de em qala têkoşîn, berxwedan, jêhatîbûn û destkeftiyên jinan ên bi derfêtên kêm, lê bi xebatên serkeftî dimeşînin bikin. Lê mixabin meseleya '''jinkujiyê''' nayê taloqkirin û temaşekirin.|url=https://xwebun1.org/jinkuji-xiyaneta-zilam-a-li-sire-dayike-ye/|sernav=Jinkujî xiyaneta zilam a li şîrê dayikê ye|dîrok=01.09.2022}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Nêzîk ==== * [[dayikkujî]] * [[keçkujî]] * [[xwişkkujî]] ==== Têkildar ==== * [[mêrkujî]] * [[mirovkujî]] * [[bavkujî]], [[babkujî]] * [[gelkujî]] * [[komkujî]] ==== Etîmolojî ==== Ji {{paş|ku|jin|-kujî}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Femizid|n|nt}}, {{W+|de|Frauenmord|n}} * {{Z|da}}: {{W-|da|femicide}} * {{Z|fi}}: {{W-|fi|naismurha}} * {{Z|fr}}: {{W+|fr|féminicide|n}}, {{W-|fr|fémicide|n}}, {{W+|fr|gynocide|n}} * {{Z|gl}}: {{W-|gl|feminicidio|n}}, {{W-|gl|femicidio|n}} * {{Z|ka}}: {{W-|ka|ფემიციდი}} * {{Z|nl}}: {{W-|nl|vrouwenmoord|m}}, {{W-|nl|feminicide|m}}, {{W-|nl|gynocide|m}}, {{W-|nl|femicide|m}} * {{Z|en}}: {{W+|en|femicide}}, {{W+|en|womanslaughter}}, {{W+|en|gynocide}}, {{W+|en|gynecide}}, {{W+|en|gynecocide}} * {{Z|it}}: {{W+|it|femminicidio|n}}, {{W-|it|femmicidio|n}}, * {{Z|ja}}: {{W-|ja|フェミサイド|tr=femisaido}}, {{W-|ja|フェミニサイド|tr=feminisaido}} * {{Z|ca}}: {{W+|ca|feminicidi|n}}, {{W-|ca|femicidi|n}} * {{Z|ko}}: {{W-|ko|여성살해}}, {{W-|ko|녀성살해}} * {{Z|pl}}: {{W-|pl|kobietobójstwo|nt}} * {{Z|pt}}: {{W+|pt|feminicídio|n}}, {{W-|pt|femicídio|n}} * {{Z|ru}}: {{W-|ru|фемици́д|n}}, {{W-|ru|феминици́д|n}} * {{Z|es}}: {{W+|es|femicidio|n}}, {{W-|es|feminicidio|n}} * {{Z|sv}}: {{W+|sv|kvinnomord|nt}} * {{Z|el}}: {{W+|el|γυναικοκτονία|m}} {{werger-bin}} :{{werger çavkanî|en|femicide|beş=Ev qismê Wergerê|oldid=75495689}} tniyz9x9lk5fml3dmk2ihltsz5y8ytz rolyef 0 978803 6329617 5762695 2026-08-12T13:31:32Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329617 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # Cureyek [[peyker]] an [[kar]]ên [[huner]]î yên din ên ku tê de şekl an fîgurên ji paşxanek rast û pan bi pêş de derdikevin. #* {{jêder-kovar|ku|jêgirtin=Jina ku wêneya wê li ser '''rolyefê''' hatibû resimandin, ji aliye Hanold ve bi navê Gradiva tê pejirandin.|kovar=Mülemma|sernav=Wêje û Psîkanalîz|url=https://www.academia.edu/32642097/M%C3%BClemma_Dergisi_3._Say%C4%B1.pdf|nivîskar=Vejdi Demir|hejmar=3|saş=12/2016|rûpel=33}} ==== Etîmolojî ==== Bi rêya {{deyn|tr|ku|rölyef}}, ji {{ji|fr|ku|relief}}. ==== Etîmolojî ==== {{werger-ser}} * {{Z|ar}}: {{W-|ar|نَقْش نَافِر|n}} * {{Z|en}}: {{W+|en|relief}} * {{Z|ja}}: {{W+|ja|うきぼり|tr=浮き彫り, ukibori}}, {{W-|ja|リリーフ|tr=rirīfu}}, {{W-|ja|レリーフ|tr=rerīfu}} * {{Z|ko}}: {{W+|ko|부조}} * {{Z|es}}: {{W+|es|relieve|n}} * {{Z|tr}}: {{W+|tr|rölyef}}, {{W+|tr|kabartma}} * {{Z|vi}}: {{W-|vi|рhù điêu}} {{werger-bin}} 37vvztv3ko9b3bjjg47omiujm9un6zm 6329618 6329617 2026-08-12T13:31:39Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329618 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # Cureyek [[peyker]] an [[kar]]ên [[huner]]î yên din ên ku tê de şekl an fîgurên ji paşxanek rast û pan bi pêş de derdikevin. #* {{jêder-kovar|ku|jêgirtin=Jina ku wêneya wê li ser '''rolyefê''' hatibû resimandin, ji aliye Hanold ve bi navê Gradiva tê pejirandin.|kovar=Mülemma|sernav=Wêje û Psîkanalîz|url=https://www.academia.edu/32642097/M%C3%BClemma_Dergisi_3._Say%C4%B1.pdf|nivîskar=Vejdi Demir|hejmar=3|sal=12/2016|rûpel=33}} ==== Etîmolojî ==== Bi rêya {{deyn|tr|ku|rölyef}}, ji {{ji|fr|ku|relief}}. ==== Etîmolojî ==== {{werger-ser}} * {{Z|ar}}: {{W-|ar|نَقْش نَافِر|n}} * {{Z|en}}: {{W+|en|relief}} * {{Z|ja}}: {{W+|ja|うきぼり|tr=浮き彫り, ukibori}}, {{W-|ja|リリーフ|tr=rirīfu}}, {{W-|ja|レリーフ|tr=rerīfu}} * {{Z|ko}}: {{W+|ko|부조}} * {{Z|es}}: {{W+|es|relieve|n}} * {{Z|tr}}: {{W+|tr|rölyef}}, {{W+|tr|kabartma}} * {{Z|vi}}: {{W-|vi|рhù điêu}} {{werger-bin}} o39xb4zv5sv28rp0t1ghuxq7vnp4neb miñ 0 995365 6329849 5221758 2026-08-12T23:52:52Z Wikihez 7344 6329849 wikitext text/x-wiki {{bnr-h|mîn|mìn|min}} == {{ziman|crh}} == === Hejmar === {{hejmar|crh}} # [[hezar]], 1000 33zpkjz7po6dhj27c77hxm6tyj4n59t mìn 0 1035765 6329848 5505623 2026-08-12T23:52:38Z Wikihez 7344 6329848 wikitext text/x-wiki {{bnr-h|mîn|min|miñ}} == {{ziman|gd}} == === Navdêr === {{navdêr|gd|z=n}} # {{f|gd|erdnîgarî}} {{g|ku|zevî}} === Çavkanî === {{rûpela wergerê|gd|zevî}} == {{ziman|vi}} == === Navdêr === {{navdêr|vi}} # {{mijar|vi|çek}} {{g|ku|mîn}}, {{g|ku|mayin}} === Çavkanî === {{rûpela wergerê|vi|mîn}} 4o5xqztmzj3b96pjvdidaj5q04gn1hd فلسفة الجمال 0 1200562 6329705 5530562 2026-08-12T20:03:04Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6329705 wikitext text/x-wiki == {{ziman|ar}} == === Navdêr === {{navdêr|ar|فَلْسَفَةُ الْجَمَال|z=m}} # {{mijar|ar|zanist}} {{g|ku|estetîk}} #* {{nimûne?|ar}} === Çavkanî === {{rûpela wergerê|ar|estetîk}} 982rfbcqp11x2oma1wgt54ew773t8sy MediaWiki:Gadget-aWa.js 8 1240219 6329706 6265692 2026-08-12T20:08:50Z Bikarhêner 3719 6329706 javascript text/javascript "use strict"; /*** [aWa]: [[en:MediaWiki:Gadget-aWa.js|A Wonderfool Archiver]] ***/ // {{documentation}} <nowiki> /*jshint shadow:true, scripturl:true, undef:true, latedef:true, unused:true */ /*global mw, jQuery */ (function () { if (mw.config.get('wgAction') !== 'view') return; var monthNames = [ "kanûna paşîn", "sibat", "adar", "nîsan", "gulan", "hezîran", "tîrmeh", "tebax", "îlon", "çiriya pêşîn", "çiriya paşîn", "kanûna pêşîn" ]; var revMonthNames = {}; for (var j = 0; j < monthNames.length; ++j) revMonthNames[monthNames[j]] = j; function el(tag, child, attr, events) { var node = document.createElement(tag); if (child) { if (typeof child !== 'object') child = [child]; for (var i = 0; i < child.length; ++i) { var ch = child[i]; if ((ch === void(null)) || (ch === null)) continue; else if (typeof ch !== 'object') ch = document.createTextNode(String(ch)); node.appendChild(ch); } } if (attr) for (var key in attr) { node.setAttribute(key, String(attr[key])); } if (events) for (var key in events) { node.addEventListener(key, events[key], false); } return node; } var forumId, remindersList = []; var wgPageName = mw.config.get('wgPageName'); if ((wgPageName === "Wîkîferheng:Daxwazên peyitandinê") ||/^Wîkîferheng:Daxwazên_peyitandinê/.test(wgPageName)) { forumId = 'dp'; remindersList.push(["Ji bîr neke ji bo madeyên peyitandî şablona ", el('code', "{{bêçavkanî}}"), " û/yan ", el('code', "{{p-mane}}"), " ji rûpelê rake."]); } else if ((wgPageName === "Wîkîferheng:Daxwazên_jêbirinê") || /^Wîkîferheng:Daxwazên_jêbirinê/.test(wgPageName)) { forumId = 'dj'; remindersList.push(["Ji bîr neke ji bo madeyên ku neyên jêbirin şablona ", el('code', "{{jêbirin}}"), " ji rûpelê rake."]); } else if ((wgPageName === "Wîkîferheng:Daxwazên_standardkirinê") || /^Wiktionary:Requests_for_moves,_mergers_and_splits\/Unresolved_requests\//.test(wgPageName)) { forumId = 'ds'; remindersList.push(["Ji bîr neke ji bo madeyên ku hatine standardkirin şablona ", el('code', "{{standardkirin}}"), " û/yan ", el('code', "{{ds}}"), " ji rûpelê rake."]); } else if ((wgPageName === "Wîkîferheng:Daxwazên_zelalkirinê") || /^Wiktionary:Requests_for_cleanup\/archive\/\d+\/Unresolved_requests$/.test(wgPageName)) { forumId = 'dz'; remindersList.push(["Ji bîr neke ji bo madeyên ku hatine sererastkirin şablona ", el('code', "{{wdz}}"), " ji rûpelê rake."]); } else if (wgPageName === "Wîkîferheng:Xebat") { forumId = 'xebat'; remindersList.push(["Nîqaşên vê rûpelê tim li [[Wîkîferheng:Xebat/arşîv 1|Wîkîferheng:Xebat/arşîv NO]] têne arşîvkirin."]); } else if (wgPageName === "Wîkîferheng:ceribandin/aWa") { forumId = 'SANDBOX'; remindersList.push(["NO DANGER: Nothing in this room will kill you."]); } else return; if (forumId !== 'feedback') remindersList.push(["Nîqaşên xilasbûyî herî kêm 7 rojan bê arşîv bihêlin."]); function link(child, href, attr, ev) { attr = attr || {}; ev = ev || {}; if (typeof href === 'string') attr.href = href; else { attr.href = 'javascript:void(null);'; ev.click = href; } return el('a', child, attr, ev); } var rxPath = new RegExp('^' + mw.config.get('wgArticlePath').replace('$1', '(.*)') + '$'); // XXX: ugly hack function getPageFromUrl(url) { var m, target; try { target = new URL(url, location.href); } catch (e) { return null; } if (target.host !== location.host) return null; if (target.pathname === mw.config.get('wgScript')) return new mw.Title(target.searchParams.get('title')); else if ((m = rxPath.exec(target.pathname))) return new mw.Title(decodeURIComponent(m[1])); return null; } // NOTE: findSectionNumber() previously relied on the .mw-editsection link's // action=edit&section=N query param. MobileFrontend/Minerva strips the // .mw-editsection span from headings entirely, so this always returned null // on mobile and silently dropped the "arşîv bike" link (and, worse, calling // .nextSibling on a missing .mw-editsection later on would throw and abort // the rest of the init loop). Section numbers are now resolved once up // front via action=parse&prop=sections (see sectionMapPromise below) and // matched to headings by document order instead. var api = new mw.Api(); // XXX: seriously, action=parse should return this. var starttimestamp, basetimestamp; api.get({ action: 'query', pageids: mw.config.get('wgArticleId'), prop: 'revisions', curtimestamp: 1, rvstartid: mw.config.get('wgRevisionId'), rvprop: 'timestamp', rvlimit: 1 }).done(function (result) { starttimestamp = result.curtimestamp; basetimestamp = result.query.pages[mw.config.get('wgArticleId')].revisions[0].timestamp; }); // Resolve top-level (level === '2') section indices via the API instead of // scraping .mw-editsection, so this also works on mobile skins that strip // that markup out of the rendered heading. var sectionMapPromise = api.get({ action: 'parse', page: wgPageName, prop: 'sections', formatversion: 2 }).then(function (result) { return result.parse.sections.filter(function (s) { return s.level === '2'; }); }, function (code, result) { console.error('aWa: failed to fetch section map', code, result); return []; }); var toArchive = {}; var uiQueue, uiStatus; function setStatus(child, node) { node = node || uiStatus; if (!node.preceder) node.parentNode.insertBefore(node.preceder = document.createTextNode(''), node); while (node.firstChild) node.removeChild(node.firstChild); if (!child) { if (node.preceder !== true) node.preceder.data = ""; return; } else { if (node.preceder !== true) node.preceder.data = ": "; } if (typeof child === 'string') { node.appendChild(document.createTextNode(child)); return; } for (var i = 0; i < child.length; ++i) { var ch = child[i]; if ((ch === void(null)) || (ch === null)) continue; else if (typeof ch !== 'object') ch = document.createTextNode(String(ch)); node.appendChild(ch); } } var uiProceed, uiWrapper; var uiArchiver = el('div', [ el('form', [ uiWrapper = el('fieldset', [ // ↓↓↓↓↓↓ how fitting. el('legend', [ "A ", link(["Wonderfool"], mw.util.getUrl("wonderfool")), " Archiver ", el('small', ["[", link('veşêre', function () { this.style.fontWeight = uiWrapper.classList.toggle('collapsed') ? 'bold' : ''; }), "]"]) ]), uiQueue = el('ul', null, { 'class': 'queue' }), el('ul', remindersList.map(function (nodes) { return el('li', nodes); }), { 'class': 'reminders' }), uiProceed = el('input', null, { type: 'submit', value: "Dewam bike" }), ' ', el('input', null, { type: 'button', value: "Bigre" }, { click: function () { uiArchiver.style.display = 'none'; } }), uiStatus = el('p', null, { 'class': 'main-statusbar' }) ]) ], { action: 'javascript:void(0);' }, { submit: function () { if (!uiQueue.hasChildNodes()) { // XXX: should probably check the toArchive object instead setStatus("The archiving queue is empty."); return; } if (forumId !== 'SANDBOX') { uiProceed.disabled = true; uiArchiver.classList.add('archiving-in-progress'); } var complete = false; window.addEventListener('beforeunload', function (ev) { if (!complete) { return (ev.returnValue = "Discussions are still being archived."); } }, false); setStatus("Naveroka rûpelê tê girtin…"); api.get({ action: 'parse', oldid: mw.config.get('wgRevisionId'), prop: 'parsetree', }).then(function (result) { setStatus("Slicing up discussions…"); var prettyPageName = (new mw.Title(wgPageName)).getPrefixedText(); function serialiseMarkup(node) { if (node.nodeType === node.TEXT_NODE) return node.data; var children = []; for (var child = node.firstChild; child; child = child.nextSibling) children.push(serialiseMarkup(child)); if (node.tagName === 'part') return '|' + children.join(''); else if (node.tagName === 'tplarg') return '{{{' + children.join('') + '}}}'; else if (node.tagName === 'template') return '{{' + children.join('') + '}}'; else if (node.tagName === 'ext') return '<' + children.join(''); else if (node.tagName === 'attr') return children.join('') + (node.parentNode.lastChild === node ? '/>' : ''); else if (node.tagName === 'inner') return '>' + children.join(''); else return children.join(''); } var parseTree = jQuery.parseXML(result.parse.parsetree['*']); var headerMap = {}; var headers = parseTree.getElementsByTagName('h'); for (var i = 0; i < headers.length; ++i) { headerMap[headers[i].getAttribute('i')] = headers[i]; } var majorQueue = [], minorQueue = [], obliterated = []; var keys = Object.keys(toArchive); for (var j = 0; j < keys.length; ++j) { var item = toArchive[keys[j]]; var sectHead = headerMap[item.sect]; var sectContents = []; for ( var node = sectHead, next = sectHead.nextSibling; node && (!node.getAttribute || !node.getAttribute('level') || (+node.getAttribute('level') > +sectHead.getAttribute('level')) || (node === sectHead)); (next = node.nextSibling, node.parentNode.removeChild(node), node = next) ) { sectContents.push(serialiseMarkup(node)); } var secttext = sectContents.join(''); var discussionTitle; switch (forumId) { case 'dj' : discussionTitle = "Nîqaşa [[" + prettyPageName + "|jêbirinê]]" ; break; case 'rfdo' : discussionTitle = "Nîqaşa [[" + prettyPageName + "|ceribandinê]]" ; break; case 'dp' : discussionTitle = "Nîqaşa [[" + prettyPageName + "|peyitandinê]]" ; break; case 'dz' : discussionTitle = "Nîqaşa [[" + prettyPageName + "|zelalkirinê]]" ; break; case 'ds' : discussionTitle = "Nîqaşa [[" + prettyPageName + "|standardkirinê]]" ; break; case 'xebat' : discussionTitle = item.secttitle ; break; default : discussionTitle = "Archived from [[" + prettyPageName + "]]" ; break; } var rxStamp = /(\d\d?):(\d\d),\s*(\d+)\s*([A-ZÎÛÇŞ][a-zîûçş]+)\s*(\d\d\d\d+)\s*\(UTC\)/g; var m, timestamps = []; while ((m = rxStamp.exec(secttext))) timestamps.push(Date.UTC(parseInt(m[5], 10), revMonthNames[m[4]], parseInt(m[3], 10), parseInt(m[1], 10), parseInt(m[2], 10))); timestamps.sort(); if ((timestamps.length > 0) && (forumId !== 'xebat')) { var first = new Date(timestamps[0]), last = new Date(timestamps[timestamps.length - 1]); if (first.getUTCFullYear() === last.getUTCFullYear()) { if (first.getUTCMonth() === last.getUTCMonth()) discussionTitle += ": " + monthNames[first.getUTCMonth()] + " " + first.getUTCFullYear(); else discussionTitle += ": " + monthNames[first.getUTCMonth()] + "–" + monthNames[last.getUTCMonth()] + " " + first.getUTCFullYear(); } else { discussionTitle += ": " + monthNames[first.getUTCMonth()] + " " + first.getUTCFullYear() + '–' + monthNames[last.getUTCMonth()] + " " + last.getUTCFullYear(); } } if (!item.talk) { obliterated.push(item.secttitle); continue; // requested not to archive. } if (forumId === 'xebat') { // The section title above is now the exact original // heading text (e.g. "Tercimeyên zel"), and // MediaWiki will add "== Tercimeyên zel ==" itself // via sectiontitle when posting with section=new. // So just drop the original heading line instead of // wrapping it in a {{fake==}} placeholder — keeping // it would duplicate the heading. secttext = secttext.replace(/^(=+)(.*?)\1\n?/, ''); } else { secttext = secttext.replace(/^(=+)(.*?)\1(?=\n|$)/, '{{fake$1|1=$2}}'); } majorQueue.push({ targetPage: item.talk, uiStatus: item.uiStatus, sectTitle: discussionTitle, summary: '[[MediaWiki:Gadget-aWa.js/belgekirin|aWa]]: Arşîvkirina nîqaşê ji rûpela [[' + prettyPageName + ']]', content: '{{arşîv-ser|' + forumId + '|' + item.result + '|link=Taybet:PermanentLink/' + mw.config.get('wgRevisionId') + '#' + item.sectid + '}}\n' + secttext.trimRight() + '\n{{arşîv-bin}}' }); var backlinks = item.backlinks; for (var k = 0; k < backlinks.length; ++k) { if (!backlinks[k]) continue; var saneDiscussionTitle = discussionTitle.replace(/\[\[(?:.*?\|)?(.*?)\]\]/g, '$1'); // XXX var linkTarget = item.talk.getPrefixedText() + "#" + saneDiscussionTitle; minorQueue.push({ targetPage: backlinks[k].page, uiStatus: backlinks[k].uiStatus, sectTitle: discussionTitle, summary: "[[MediaWiki:Gadget-aWa.js/belgekirin|aWa]]: Li [[" + linkTarget + "]] lînka nîqaşê ji [[" + prettyPageName + "]] tê zêdekirin", content: ": ''Binêre [[" + linkTarget + "]].''~~~~" }); } } var headers = Array.prototype.slice.call(parseTree.getElementsByTagName('h')); for (var i = 0; i < headers.length; ++i) { if (headers[i].getAttribute('level') !== '1') continue; if (!/^=\s*(Kanûna paşîn|Sibat|Adar|Nîsan|Gulan|Hezîran|Tîrmeh|Tebax|Îlon|Çiriya pêşîn|Çiriya paşîn|Kanûna pêşîn)\s+\d\d\d\d+\s*=$/.test(headers[i].textContent)) continue; out: for (var node = headers[i].nextSibling;; node = node.nextSibling) { switch (node ? node.nodeType : null) { case parseTree.ELEMENT_NODE: if ((node.tagName !== 'h') || (node.getAttribute('level') !== '1')) break out; /* fall through */ case null: while ((headers[i].nextSibling) !== node) headers[i].parentNode.removeChild(headers[i].nextSibling); headers[i].parentNode.removeChild(headers[i]); break out; case parseTree.TEXT_NODE: if (!/^\s*$/.test(node.data)) break out; break; default: break out; } } } var wikitext = serialiseMarkup(parseTree.documentElement); setStatus("Nîqaş ji rûpelê tên jêbirin…"); var summary; var no = "madeyê"; if (majorQueue.length > 1) no = "madeyan"; if (majorQueue.length) summary = '[[MediaWiki:Gadget-aWa.js/belgekirin|aWa]]: Arşîvkirina ' + majorQueue.length + ' ' + no +' li ' + majorQueue.map(function (item) { return '[[' + item.targetPage.getPrefixedText() + ']]'; }).join(", ") + (obliterated.length ? " û jêbirina " + obliterated.length + ": \"" + obliterated.join("\", \"") + "\"": ""); else summary = "[[MediaWiki:Gadget-aWa.js/belgekirin|aWa]]: Jêbirina " + obliterated.length + " made(yan): \"" + obliterated.join("\", \"") + "\""; if (forumId === 'SANDBOX') { setStatus(); alert("Kurte: " + summary + "\nWîkînivîsa dawî:\n\n" + wikitext); majorQueue.forEach(function (item) { alert("[[" + item.targetPage.getPrefixedText() + "]]: " + item.sectTitle + "\n\n" + item.content); }); minorQueue.forEach(function (item) { alert("[[" + item.targetPage.getPrefixedText() + "]]: " + item.sectTitle + "\n\n" + item.content); }); return; } api.post({ action: 'edit', pageid: mw.config.get('wgArticleId'), token: mw.user.tokens.get('csrfToken'), summary: summary, notminor: 1, text: wikitext, basetimestamp: basetimestamp, starttimestamp: starttimestamp }).then(function (result) { function processQueue(queue) { return jQuery.when.apply(jQuery, queue.map(function (item) { setStatus("Tê qeydkirin…", item.uiStatus); return jQuery.Deferred(function (d) { api.post({ action: 'edit', token: mw.user.tokens.get('csrfToken'), notminor: 1, section: 'new', sectiontitle: item.sectTitle, title: item.targetPage.getPrefixedDb(), text: item.content, summary: item.summary, redirect: 1 // XXX }).then(function (result) { if (result.edit.result !== 'Success') { setStatus("Xeletî binêre konsolê", item.uiStatus); d.reject(); console.error(result); return; } // XXX: preferably check if a page is a redirect BEFORE archiving. if (result.redirects) { var target = result.redirects.pop().to; setStatus(["Redirected to ", link(target, mw.util.getUrl(target))], item.uiStatus); d.resolve(); return; } setStatus("OK", item.uiStatus); d.resolve(); }, function (code, result) { setStatus(["Error: [", el('code', [code]), "]"], item.uiStatus); console.error('Request error', result); d.reject(); }); }).promise(); })); } if (result.edit.result !== 'Success') { setStatus("Xeletiyeke nediyar. Ji bo detayan li konsolê binêrin."); console.error(result); complete = true; return; } setStatus("Nîqaşên arşîvkirî li rûpelên gotûbêjan tên barkirin…"); processQueue(majorQueue).then(function () { setStatus("Lînkên vegerînê tên lêzêdekirin…"); processQueue(minorQueue).then(function () { setStatus("Temam. Tê dîsa barkirin…"); complete = true; location.reload(); }, function () { complete = true; setStatus("Archiving was successful, but there was an error while adding backlinks. You can visit the talk pages to add backlinks manually."); }); }, function () { complete = true; setStatus([ "Oops… there was an error while archiving discussions. Go to your ", link("contributions list", mw.util.getUrl('Special:Contributions/' + mw.config.get('wgUserName'))), " to clean things up and try again." ]); }); }, function (code, result) { complete = true; if (code === 'editconflict') { setStatus([ 'Edit conflict detected. Please ', link('refresh the page', function () { location.reload(); }), ' and try again.' ]); return; } if (code === 'http') { setStatus(['Request error: ' + result.textStatus]); console.error('API request error: ', result); return; } if (code === 'ok-but-empty') { setStatus(['Returned empty response from server.']); return; } setStatus([ 'Error while saving the main discussion page: ', result.error.info, ' [code ', el('code', result.error.code), ']' ]); console.error(arguments); }); }, function (code, result) { if (code === 'http') { setStatus('Request error: ' + result.textStatus); console.error('API request error: ', result); return; } if (code === 'ok-but-empty') { setStatus('Received empty response from server.'); return; } setStatus(['Error: ', result.error.info, ' [code ', el('code', [result.error.code]), ']']); return; }); } }) ], { 'class': 'kephir-awa-dialog', 'style': 'display: none;' }); document.body.appendChild(uiArchiver); uiStatus.preceder = true; // Resolves the target page for Xebat archiving: Wîkîferheng:Xebat/arşîv N, // starting at N=1. If that page exists and is over 70,000 bytes, tries // N+1, and so on, until it finds a page that's either missing (not yet // created) or still under the size limit. function findXebatArchiveTarget(n) { var pageTitle = 'Wîkîferheng:Xebat/arşîv ' + n; return api.get({ action: 'query', titles: pageTitle, prop: 'info' }).then(function (result) { var pages = result.query.pages; var pageId = Object.keys(pages)[0]; var page = pages[pageId]; // Page doesn't exist yet: safe to use. if (page.missing !== undefined) return new mw.Title(pageTitle); // Page exists but is too big: move on to the next number. if (page.length > 70000) return findXebatArchiveTarget(n + 1); return new mw.Title(pageTitle); }, function (code, result) { console.error('aWa: failed to check size of', pageTitle, code, result); // On error, fall back to using this page rather than blocking archiving. return new mw.Title(pageTitle); }); } var headers = document.querySelectorAll(".mw-heading > h2"); var dupTracker = {}; function makeLinkFor(headerNode, links, age, section) { var targetChecked = false, targetCheckRequest; if ((section === null) || (section === undefined)) return; // On desktop, insert right after the <h2> title but BEFORE any // DiscussionTools metadata bar (the "Şiroveya dawî" / comment-count / // author-count line, div.ext-discussiontools-init-section-bar) if one // is present, and before the plain .mw-editsection edit link — this is // static markup that nothing else touches, so it's safe. // // IMPORTANT: the class 'ext-discussiontools-init-section' on the // .mw-heading wrapper does NOT reliably indicate the mobile (Minerva) // skin — DiscussionTools adds this same class on desktop (Vector etc.) // whenever DT is enabled, which is the normal case on wikis that have // it turned on. Checking that class was previously used as a mobile // signal and caused the archive link to be inserted as a sibling AFTER // the whole .mw-heading div even on desktop, landing it after // "Şiroveya dawî" instead of before it. // // On real Minerva/mobile pages, .mw-heading's contents — the overflow // menu, subscribe button, and metadata bar — are OOUI widgets // built/rebuilt by DT's own JS shortly after page load, and that // rebuild wipes out anything inserted inside .mw-heading beforehand // (tried re-inserting via MutationObserver on every DT mutation too — // still didn't survive). So on Minerva we insert as a sibling right // after the whole .mw-heading div instead — outside DT's reach — which // lands the link after the metadata bar rather than before it. We // detect Minerva via mw.config's skin name, not via a DT-added class. var mwHeadingDiv = headerNode.parentNode; var isMobileSkin = mw.config.get('skin') === 'minerva'; var metadataBar = mwHeadingDiv.querySelector('.ext-discussiontools-init-section-bar'); var insertParent, insertBefore; if (isMobileSkin) { insertParent = mwHeadingDiv.parentNode; insertBefore = mwHeadingDiv.nextSibling; } else if (metadataBar) { // Desktop with DiscussionTools enabled: insert inside .mw-heading, // right before the metadata bar (which holds "Şiroveya dawî" etc.) insertParent = mwHeadingDiv; insertBefore = metadataBar; } else { // Desktop, no DT metadata bar at all (DT disabled/older markup): // fall back to right after the header node itself. insertParent = mwHeadingDiv; insertBefore = headerNode.nextSibling; } var archiveSpan = el('span', [ '[', link('arşîv bike', function (ev) { // Defensively stop this from bubbling into any ancestor click // handling (DiscussionTools on Minerva/mobile attaches its own // click handling across .mw-heading) and from following the // javascript:void(null) href as a "real" navigation. if (ev) { ev.preventDefault(); ev.stopPropagation(); } var that = this, config = { secttitle: headerNode.textContent, sect: section, sectid: headerNode.id, temp: 'archived', backlinks: [] }; setStatus(); uiArchiver.style.display = ''; if (this.item) return; toArchive[section] = config; var uiArchiveTarget, uiArchiveTargetLink, uiArchiveNowhereLink; var uiResult, results = {}; var uiBacklinks, uiAddBacklink, uiLinksFromSel; function setTarget(page, noCheck) { if (!page) { uiArchiveTarget.style.display = 'none'; uiArchiveNowhereLink.classList.add('active-mode'); uiBacklinks.classList.add('irrelevant'); uiAddBacklink.classList.add('irrelevant'); uiLinksFromSel.classList.add('irrelevant'); if (uiResult) uiResult.classList.add('irrelevant'); if (!config.talk) return; delete dupTracker[config.talk.getPrefixedDb()]; config.talk = null; return; } config.talk = page; dupTracker[page.getPrefixedDb()] = true; uiArchiveTarget.style.display = ''; uiArchiveTargetLink.textContent = page.getPrefixedText(); uiArchiveTargetLink.href = mw.util.getUrl(page.getPrefixedDb()); uiArchiveNowhereLink.classList.remove('active-mode'); uiBacklinks.classList.remove('irrelevant'); uiAddBacklink.classList.remove('irrelevant'); uiLinksFromSel.classList.remove('irrelevant'); if (uiResult) uiResult.classList.remove('irrelevant'); if (!noCheck) { targetCheckRequest = api.get({ action: 'query', titles: page.getPrefixedDb(), redirects: 1 }).then(function (result) { if (result.query.redirects) { setStatus([ "Archive destination [[", link(page.getPrefixedText(), mw.util.getUrl(page.getPrefixedDb(), { 'redirect': 'no' })), "]] is a redirect; corrected." ]); setTarget(new mw.Title(result.query.redirects.pop().to), true); } targetChecked = true; targetCheckRequest = null; }); } else targetChecked = true; } function addBacklink(page, noCheck) { if (!page) return; var uiItem, blConfig = {}; var i = config.backlinks.length; config.backlinks.push(blConfig); var uiLink; function changePage(newPage, noCheck) { blConfig.page = newPage; blConfig.checked = noCheck; uiLink.textContent = newPage.getPrefixedText(); dupTracker[newPage.getPrefixedDb()] = true; if (!noCheck) { blConfig.checkRequest = api.get({ action: 'query', titles: newPage.getPrefixedDb(), redirects: 1 }).then(function (result) { if (result.query.redirects) { setStatus([ "Backlink destination [[", link(newPage.getPrefixedText(), mw.util.getUrl(newPage.getPrefixedDb(), { 'redirect': 'no' })), "]] is a redirect; corrected." ]); changePage(new mw.Title(result.query.redirects.pop().to), true); page = blConfig.page; } blConfig.checked = true; blConfig.checkRequest = null; }); } } uiBacklinks.appendChild(uiItem = el('li', [ uiLink = link(page.getPrefixedText(), mw.util.getUrl(page.getPrefixedDb()), { 'title': "Lînkeke vê nîqaşê dê li vê rûpelê were danîn" }), el('span', [ " (", link('betal bike', function () { uiItem.parentNode.removeChild(uiItem); delete config.backlinks[i]; delete dupTracker[page.getPrefixedDb()]; }, { 'title': "Li wê rûpelê lînkeke nîqaşê daneyîne" }), " \u2022 ", link("bike ya sereke", function () { if (!config.talk) { uiItem.parentNode.removeChild(uiItem); delete config.backlinks[i]; if (blConfig.checkRequest) blConfig.checkRequest.abort(); setTarget(page, blConfig.checked); return; } if (blConfig.checkRequest) blConfig.checkRequest.abort(); if (targetCheckRequest) targetCheckRequest.abort(); changePage(config.talk, targetChecked); setTarget(page, blConfig.checked); page = blConfig.page; }, { 'title': "Vê rûpelê bike hedefa arşîvê ya sereke" }), ")" ], { 'class': 'hide-when-archiving' }), blConfig.uiStatus = el('span') ])); changePage(page, noCheck); return i; } function setResult(result) { for (var key in results) results[key].classList.remove('active-mode'); if (results[result]) results[result].classList.add('active-mode'); config.result = result; } uiQueue.appendChild(this.item = el('li', [ '"', link(headerNode.textContent, '#' + headerNode.id, { 'title': "Ji bo dîtina nîqaşê bitikîne" }), '"', uiArchiveTarget = el('span', [ "→ [[", uiArchiveTargetLink = link('?', 'javascript:void(window.warranty);', { 'title': "Nîqaş dê li vê rûpelê were arşîvkirin" }), "]]" ]), config.uiStatus = el('span'), el('br'), el('small', [ link("hedefê biguhêre", function () { var newTarget = prompt('Cihê nû ya arşîvê?', config.talk ? config.talk.getPrefixedText() : ""); if (!newTarget) return; try { newTarget = new mw.Title(newTarget); } catch (e) { setStatus("Navê rûpelê ne derbasdar e"); return; } if (newTarget.getNamespaceId() < 0) { setStatus("Li valahiyeke taybet nikare were arşîvkirin"); return; } newTarget.namespace |= 1; setTarget(newTarget); setStatus(); }, { 'title': "Cihê arşîvkirina gotûbêjê biguhêre" }), " \u2022 ", uiArchiveNowhereLink = link("jê bibe", function () { setTarget(null); }, { 'title': "Vê gotûbêjê arşîv neke û jê bibe" }), " \u2022 ", uiAddBacklink = link("Li rûpela din lînk zêde bike", function () { var newTarget = prompt("Li kû derê?", ''); if (!newTarget) return; try { newTarget = new mw.Title(newTarget); } catch (e) { setStatus("Navê rûpelê ne derbasdar e"); return; } if (newTarget.getNamespaceId() < 0) { setStatus("Li valahiyeke taybet nikare were arşîvkirin"); return; } newTarget.namespace |= 1; addBacklink(newTarget); setStatus(); }, { 'title': "Rûpelekê lê zêde bike ku tê de lînka vegerîna vê gotûbêjê were danîn" }), " \u2022 ", uiLinksFromSel = link("ji hilbijartinê", function () { var sel = window.getSelection(), taken = {}; var intersectsNode = function (node) { var tmp = document.createRange(); tmp.selectNode(node); return (this.compareBoundaryPoints(this.START_TO_START, tmp) >= 0) && (this.compareBoundaryPoints(this.END_TO_END, tmp) <= 0); }; for (var i = 0; i < sel.rangeCount; ++i) { var range = sel.getRangeAt(i); var links = range.commonAncestorContainer.getElementsByTagName('a'); if (!range.intersectsNode) range.intersectsNode = intersectsNode; for (var j = 0; j < links.length; ++j) { if (!range.intersectsNode(links[j])) continue; var title = getPageFromUrl(links[j].href); if (!title || (title.getNamespaceId() < 0)) continue; if (title) { title.namespace |= 1; if (taken[title.getPrefixedDb()]) continue; addBacklink(title); taken[title.getPrefixedDb()] = true; } } range.detach(); } }, { 'title': "Lînkên vegerînê li rûpelên ku di hilbijartina niha de zêde bike" }), " \u2022 ", link("betal bike", function () { that.item.parentNode.removeChild(that.item); delete toArchive[section]; delete that.item; }, { 'title': "Dev ji arşîvkirinê berde" }), ((forumId === 'dj') || (forumId === 'rfdo') || (forumId === 'dp') || (forumId === 'SANDBOX')) ? uiResult = el('span', [ " \u2022 netîce: ", results.passed = link("bi ser ket", function () { setResult('passed'); }, { 'title': "Ev nîqaş bi ser ket (hatiye peyitandin an nayê jêbirin)" }), " \u2022 ", results.failed = link("têk çû", function () { setResult('failed'); }, { 'title': "Ev nîqaş têk çû (nehatiye peyitandin an tê jêbirin" }), " \u2022 ", results.archived = link("tiştekî din", function () { setResult('archived'); }, { 'title': "Netîce tine ye yan tiştekî din" } ) ]) : null ], { 'class': 'hide-when-archiving' }), uiBacklinks = el('ul', [], { 'class': 'kephir-awa-backlinks' }) ])); var result = 'archived'; // Expected HTML elements: // <div class="mw-heading ..."><h2><span ... class="mw-headline" ...> var mwHeading = headerNode.parentNode; if (!mwHeading.classList.contains("mw-heading")) { console.error("Expected to find element with class mw-heading as parent of %o", headerNode); } if (results.passed) { var resultText; for (var node = mwHeading.nextSibling; node; node = node.nextSibling) { if (!node.getElementsByClassName) continue; if (node.classList.contains("mw-heading") || node.getElementsByClassName("mw-heading").length > 0) break; var bs = node.getElementsByTagName('b'); for (var j = 0; j < bs.length; ++j) { var b = bs[j]; resultText = b.textContent || b.innerText; if (/no\s+consensus/i.test(b.parentNode.textContent)) result = 'archived'; else { if (/\b(failed|Nehat peyitandin|jê bibe|not\s+restored)\b/i.test(resultText)) { result = 'failed'; } else if (/\b(passed|bim\u00EEne|Hat peyitandin|restored|undeleted)\b/i.test(resultText)) { result = 'passed'; } } } } } setResult(result); // Xebat always archives to a numbered page (Wîkîferheng:Xebat/arşîv N), // never to a page linked from the section heading itself — but if // the heading does link to a page, that page's talk page still // gets added as a backlink (see links[0] handling below). // Starting at N=1, check the byte size of each archive page in // turn; if it's over 70 KB, move on to N+1 (creating a new // archive page once we reach one that doesn't exist yet or is // still under the limit). if (forumId === 'xebat') { findXebatArchiveTarget(1).then(function (title) { setTarget(title); }); // The primary archive target is always the numbered Xebat // archive, but if the section title itself is a link (e.g. // to the article under discussion), still add that page's // talk page as a backlink. if (links[0]) { var titleLink = getPageFromUrl(links[0].href); if (titleLink && (titleLink.getNamespaceId() >= 0)) { titleLink.namespace |= 1; addBacklink(titleLink); } } } else if (links[0]) { var title = getPageFromUrl(links[0].href); if (title.getNamespaceId() >= 0) { title.namespace |= 1; setTarget(title); } else setTarget(null); } else { setTarget(null); } if (forumId !== 'xebat') { for (var i = 1; i < links.length; ++i) { var title = getPageFromUrl(links[i].href); title.namespace |= 1; addBacklink(title); } } }), age ? el('small', [' (mesaja dawî: ' + age + ')']) : void(0), ']' ], { "class": "mw-editsection" }); insertParent.insertBefore(archiveSpan, insertBefore); } var levels = {}; for (var i = 0; i < headers.length; ++i) { var level = parseInt(headers[i].parentNode.tagName.substr(1), 10); for (var k = 1; k <= 6; ++k) { if (k < level) { if (levels[k]) levels[k].subHeaders.push(headers[i]); } else delete levels[k]; } levels[level] = headers[i]; headers[i].subHeaders = []; } function collectUntilH2(node) { var nodes = []; while (node && (node.tagName !== 'H2')) { if (node.getElementsByTagName && node.getElementsByTagName('h2').length) { return nodes.concat(collectUntilH2(node.firstChild)); } nodes.push(node); node = node.nextSibling; } return nodes; } sectionMapPromise.then(function (sectionMap) { for (var i = 0; i < headers.length; ++i) { /*jshint loopfunc:true */ var links = Array.prototype.filter.call( headers[i].querySelectorAll('a:not(.ext-discussiontools-init-section-subscribe a)'), function (item) { var title = getPageFromUrl(item.href); return title && (title.getNamespaceId() >= 0); } ); if (!links.length) links.unshift(null); for (var j = 0; j < headers[i].subHeaders.length; ++j) { links = links.concat(Array.prototype.filter.call(headers[i].subHeaders[j].querySelectorAll('a:not(.ext-discussiontools-init-section-subscribe a)'), function (item) { var title = getPageFromUrl(item.href); return title && (title.getNamespaceId() >= 0); })); } // Fixed: previously .parentNode.parentNode climbed one level too // high past the .mw-heading wrapper, so collectUntilH2 walked an // unrelated sibling subtree and found no timestamps, leaving `age` // null forever. .parentNode (the .mw-heading div) is the correct // starting point. var nodes = collectUntilH2(headers[i].parentNode.nextSibling); var timestamps = Array.prototype.concat.call(nodes.map(function (node) { return node.textContent || ''; }).join('').match(/(\d\d?):(\d\d),\s*(\d+)\s*(.*?)\s*(\d\d\d\d+)\s*\(UTC\)/g) || [], nodes.map(function(node) { // Comments in Local Time if (!node.getElementsByClassName) return; var nodes = Array.prototype.slice.call(node.getElementsByClassName('localcomments')); if (/(^|\s)localcomments(\s|$)/.test(node.className)) nodes.push(node); return nodes.map(function (node) { return node.title; }); }).reduce(function (accum, item) { return item ? accum.concat(item) : accum; }, [])).map(function (ts) { var m = /(\d\d?):(\d\d),\s*(\d+)\s*(.*?)\s*(\d\d\d\d+)\s*\(UTC\)/.exec(ts); return Date.UTC(parseInt(m[5], 10), revMonthNames[m[4]], parseInt(m[3], 10), parseInt(m[1], 10), parseInt(m[2], 10)); }).sort(); var age = null; if (timestamps.length) { age = Math.floor((Date.now() - timestamps[timestamps.length - 1]) / 86400000) + ' roj'; } var sectionEntry = sectionMap[i]; makeLinkFor(headers[i], links, age, sectionEntry ? sectionEntry.index : null); } }); })(); // </nowiki> q18opvqyx6p0nn8xqdbb3n0u8a2v9ot MediaWiki:Gadget-wikt.add-examples.js 8 1272598 6329681 6127245 2026-08-12T18:18:07Z Bikarhêner 3719 6329681 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "1.7"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "width" controls field layout below (see _setSourceType): "narrow" for short fields (year, pages, ...), "wide" for fields that always take their own row, unset for medium fields (two-ish per row). var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "sala weşandinê", "label": "Sala weşandinê", "width": "narrow" }, { "key": "çap", "label": "Çap", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "isbn", "label": "ISBN", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild", "width": "narrow" }, { "key": "hejmar", "label": "Hejmar", "width": "narrow" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL", "width": "wide" }, { "key": "arşîv", "label": "Arşîva URLê", "width": "wide" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "tarîx", "label": "Tarîx", "width": "narrow" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nm"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex/Modul:quote containers used directly by Şablon:nimûne and jêder-* templates now that the old marker is gone. $("ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation").each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. var language = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0].lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); // Constructor for the edit form; lastExample/button/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter, and it's also the query field the Citoid button below fetches from. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; this._citoidButton = new OO.ui.ButtonWidget({ label: "Ji Citoid tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); var citoidButtonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-citoid-buttons"], items: [this._citoidButton, this._citoidClearButton], }); // Fieldset that holds the fields for whichever jêder-* template is selected. this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid button + jêder-* fields, framed as one "template" step — unlike the URL field above, this box only makes sense once a jêder-* template is active (there's nothing here for Citoid to fill in free-text mode, since it has no bibliographic fields to populate), so it's hidden for free text (see _setSourceType). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), citoidButtonsLayout, this._jederFieldsFieldset, ], }); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); var content = [textInputLayout, sourceTypeLayout, this._sourceInputLayout, this._sourceURLInputLayout, this._citoidBox]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help wording in and out of it when switching to/from free text. this._fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ this._fieldsLayout, buttonsLayout, ], }); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid button box, and the manual jêder-* fields toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var widthClass = field.width === "narrow" ? "add-example-field-narrow" : field.width === "wide" ? "add-example-field-wide" : "add-example-field-medium"; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: [widthClass], })); }); this._jederFieldsFieldset.addItems(items); } this._jederFieldsFieldset.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid button box: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. this._citoidBox.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text (no Citoid box visible there to explain), Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; var index = this._fieldsLayout.items.indexOf(this._sourceURLInputLayout); this._fieldsLayout.removeItems([this._sourceURLInputLayout]); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); this._fieldsLayout.addItems([this._sourceURLInputLayout], index); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nm"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nm") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Check if the line includes the section number (if present) if (!matchedSectionNum || line.includes(" " + matchedSectionNum)) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nm") { // "nm" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> ts289rhrti7tv8u8yy5cco9wbm8jg13 6329704 6329681 2026-08-12T20:00:22Z Bikarhêner 3719 6329704 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "1.7"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "width" controls field layout below (see _setSourceType): "narrow" for short fields (year, pages, ...), "wide" for fields that always take their own row, unset for medium fields (two-ish per row). var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "sala weşandinê", "label": "Sala weşandinê", "width": "narrow" }, { "key": "çap", "label": "Çap", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "isbn", "label": "ISBN", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild", "width": "narrow" }, { "key": "hejmar", "label": "Hejmar", "width": "narrow" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL", "width": "wide" }, { "key": "arşîv", "label": "Arşîva URLê", "width": "wide" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "tarîx", "label": "Tarîx", "width": "narrow" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nm"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex/Modul:quote containers used directly by Şablon:nimûne and jêder-* templates now that the old marker is gone. $("ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation").each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. var language = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0].lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); // Constructor for the edit form; lastExample/button/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter, and it's also the query field the Citoid button below fetches from. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; this._citoidButton = new OO.ui.ButtonWidget({ label: "Ji Citoid tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); var citoidButtonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-citoid-buttons"], items: [this._citoidButton, this._citoidClearButton], }); // Fieldset that holds the fields for whichever jêder-* template is selected. this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid button + jêder-* fields, framed as one "template" step — unlike the URL field above, this box only makes sense once a jêder-* template is active (there's nothing here for Citoid to fill in free-text mode, since it has no bibliographic fields to populate), so it's hidden for free text (see _setSourceType). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), citoidButtonsLayout, this._jederFieldsFieldset, ], }); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); var content = [textInputLayout, sourceTypeLayout, this._sourceInputLayout, this._sourceURLInputLayout, this._citoidBox]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help wording in and out of it when switching to/from free text. this._fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ this._fieldsLayout, buttonsLayout, ], }); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid button box, and the manual jêder-* fields toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var widthClass = field.width === "narrow" ? "add-example-field-narrow" : field.width === "wide" ? "add-example-field-wide" : "add-example-field-medium"; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: [widthClass], })); }); this._jederFieldsFieldset.addItems(items); } this._jederFieldsFieldset.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid button box: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. this._citoidBox.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text (no Citoid box visible there to explain), Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var index = this._fieldsLayout.items.indexOf(this._sourceURLInputLayout); this._fieldsLayout.removeItems([this._sourceURLInputLayout]); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); this._fieldsLayout.addItems([this._sourceURLInputLayout], index); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nm"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nm") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Check if the line includes the section number (if present) if (!matchedSectionNum || line.includes(" " + matchedSectionNum)) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nm") { // "nm" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> 046duky5yuvmjaw9cq0dd6wo9xushl6 MediaWiki:Gadget-wikt.add-examples.css 8 1272599 6329680 5838659 2026-08-12T18:18:05Z Bikarhêner 3719 6329680 css text/css /* [[Şablon:bênimûne]]: nivîsa "Nimûneyekê bide" tê jê birin, ne hewce ye */ .mw-parser-output li:has(> .benimune) { display: none; } /* [[fr:MediaWiki:Gadget-wikt.add-examples.css ]] */ .add-example-form .oo-ui-inputWidget-input { font-family: monospace !important; font-size: 1.2em; } .add-example-form .add-example-fieldset { margin-bottom: 1em; } /* Overall form panel: a white/near-white card lifted off the page with a soft shadow rather than a flat grey fill + hard border, so it reads as one modern panel instead of an old-style boxed form. */ .add-example-form { max-width: 640px; width: 100%; box-sizing: border-box; margin-top: 0.5em; padding: 1.25em; border: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); border-radius: 8px; background-color: var(--background-color-base, #fff); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); } html.skin-theme-clientpref-night .add-example-form { background-color: var(--background-color-base, #101418); border-color: rgba(255, 255, 255, 0.08); /* Shadows barely read on dark backgrounds, so this leans more on the border for separation, plus a darker/tighter shadow just to lift it off the page. */ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5); } /* Citoid box + jêder-* fields: previously its own fully-bordered card, which stacked "box inside a box" with the form panel above; now a lightweight section (top divider + faint tint) instead of a second card. */ .add-example-citoid-box.oo-ui-panelLayout-framed { border: none; border-top: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); border-radius: 0; background-color: var(--background-color-interactive-subtle, rgba(0, 0, 0, 0.04)); /* Negative margin matches .add-example-form's own padding (1.25em) so the tint bleeds to the card's edges instead of floating inset with a visible gap. */ padding: 1em 1.25em 0.25em; margin: 0.75em -1.25em 0; } html.skin-theme-clientpref-night .add-example-citoid-box.oo-ui-panelLayout-framed { border-top-color: rgba(255, 255, 255, 0.08); background-color: rgba(255, 255, 255, 0.05); } .add-example-citoid-box-title { font-weight: bold; margin-bottom: 0.5em; } .add-example-citoid-buttons { margin: 0.25em 0 0.75em; gap: 0.5em; flex-wrap: wrap; /* keep the fetch/clear buttons from overflowing on narrow screens */ } /* jêder-* template fields (Book/Journal/Website): related fields sit side by side via inline-block + a width tier per field, instead of one full-width field per line. */ .add-example-jeder-fields .oo-ui-fieldLayout { display: inline-block; vertical-align: top; box-sizing: border-box; max-width: 100%; /* never wider than the container, even on narrow (mobile) screens */ margin: 4px 12px 4px 0; } .add-example-jeder-fields .add-example-field-narrow { width: 110px; } .add-example-jeder-fields .add-example-field-medium { width: 260px; } .add-example-jeder-fields .add-example-field-wide { display: block; width: 100%; } .add-example-jeder-fields .oo-ui-fieldLayout-header, .add-example-jeder-fields .oo-ui-fieldLayout-header label { font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget { max-width: 100%; width: 100%; font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget input, .add-example-jeder-fields .oo-ui-textInputWidget textarea { font-size: 0.95em; padding: 4px 8px; min-height: 2.2em; line-height: 1.4; resize: vertical; } /* Make the free-text source and URL fields a bit larger for readability. */ .add-example-form .add-example-jeder-fields ~ * textarea, .add-example-form textarea:not(.add-example-jeder-fields textarea) { font-size: 1.05em; } /* Main action row (Biweşîne/Betal bike/Paqij bike): light gap between buttons plus a top border to separate from the fields above; scoped to this class rather than .oo-ui-horizontalLayout generally, since that also matches the small Citoid button row, which doesn't need this treatment. */ .add-example-main-buttons { margin-top: 0.75em; padding-top: 0.75em; border-top: 1px solid var(--border-color-subtle, #c8ccd1); gap: 0.5em; flex-wrap: wrap; /* keep buttons from overflowing on narrow screens */ } /* Loading spinner: plain CSS, not a Commons image, so it needs no network request and matches dark/light mode. */ .add-example-spinner { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: middle; border: 2px solid var(--border-color-subtle, #c8ccd1); border-top-color: var(--color-progressive, #36c); border-radius: 50%; animation: add-example-spin 0.8s linear infinite; } @keyframes add-example-spin { to { transform: rotate(360deg); } } /* Small screens: the framed panels (form, Citoid box) get their own padding on top of the page's, which can push fixed-width fields past the viewport; keep everything full-width and let inline-block fields wrap freely instead. */ @media (max-width: 480px) { .add-example-form { padding: 0.75em; } .add-example-jeder-fields .oo-ui-fieldLayout { margin-right: 8px; } } /* Ported from start.js/styles.css: warns when the example/translation/transcription boxes contain a literal linebreak, which submit() converts to <br> (see nlToBr in the JS) rather than letting it silently corrupt the single-line "#*" wikitext. */ .add-example-form textarea.add-example-has-linebreak { border-color: var(--wikt-palette-yellow6, #ac6600) !important; } /* Backdrop layer behind the textarea, mirroring its text with a marker at each break point; font/padding/box-sizing/line-height are copied from the textarea via computed style (see syncLinebreakBackdropMetrics in the JS), not shared CSS classes, since most of the textarea's own sizing rules target "textarea", which this <div> wouldn't match. Created lazily, only once a textarea actually has a break. */ .add-example-linebreak-backdrop { position: absolute; inset: 0; z-index: 0; margin: 0; overflow: hidden; white-space: pre-wrap; word-wrap: break-word; color: transparent; background: transparent !important; border-color: transparent !important; box-shadow: none !important; resize: none !important; pointer-events: none; display: none; } /* Raises the textarea itself above its backdrop and makes its own background see-through, so the backdrop's break marker shows through behind the typed text. */ .add-example-form textarea.add-example-has-linebreak-source { position: relative; z-index: 1; background-color: transparent !important; } /* The ↵ marker itself, placed right after each line that's followed by an actual typed/pasted linebreak. */ .add-example-linebreak-mark { background-color: var(--wikt-palette-yellow6, #ac6600); color: var(--wikt-palette-white, #fff); border-radius: 2px; } ovflq0xfwtds11roawee9ioys3xays1 birastin 0 1319790 6329671 6278681 2026-08-12T17:34:27Z Zerwanda 12183 6329671 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Lêker === {{lêker|ku|c=gh}} # amade kirin, rast kirin #* {{jêder-kitêb|ku|jêgirtin=Xwedawendê me erd çêkir, ezman guhastin. <br> Mecalê erdê '''birastin'''. <br> Nebata qeza rastin.|sal=2013|nivîskar=Kemal Tolan|url=http://books.google.com.tr/books?id=m1jjDwAAQBAJ&pg=PA19&dq=%22birastinan%22+OR+%22birastin%22+OR+%22birastinine%22+OR+%22birastineke%22+OR+%22birastinino%22+OR+%22birastinin%22+OR+%22birastina%22+OR+%22birastin%C3%AA%22+OR+%22birastinek%22+OR+%22birastininan%22+OR+%22birastin%C3%AAn%22+OR+%22birastinek%C3%AA%22+OR+%22birastinek%C3%AE%22+OR+%22birastino%22+OR+%22birastin%C3%AE%22&hl=&cd=4&source=gbs_api|sernav=Gengeşe û Sedemên Peyva ku Êzdî Bilêvnakin: Weşanên Na|weşanxane=Na Yayınları|ISBN=9786056392627|rûpel=19}} ==== Bikaranîn ==== [[teşe|Teşeya]] [[tewandî]] nehatiye [[tomarkirin]], [[ne]] [[girêdayî]] [[lêker]]ên kurdî ên din ên ku bi /ast/ [[bi dawî bûn|bi dawî dibin]], [[reh]]a [[dema niha]] [[divê]] bibe ''-birês-'' an ''-birêz-''. ==== Têkildar ==== * {{g|ku|rast}} ==== Etîmolojî ==== Hevreh bi {{hv|fa|ویراستن}}. swujuclxgumr1m7qnp829sp0xgln8dd 6329672 6329671 2026-08-12T17:35:40Z Zerwanda 12183 /* Etîmolojî */ 6329672 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Lêker === {{lêker|ku|c=gh}} # amade kirin, rast kirin #* {{jêder-kitêb|ku|jêgirtin=Xwedawendê me erd çêkir, ezman guhastin. <br> Mecalê erdê '''birastin'''. <br> Nebata qeza rastin.|sal=2013|nivîskar=Kemal Tolan|url=http://books.google.com.tr/books?id=m1jjDwAAQBAJ&pg=PA19&dq=%22birastinan%22+OR+%22birastin%22+OR+%22birastinine%22+OR+%22birastineke%22+OR+%22birastinino%22+OR+%22birastinin%22+OR+%22birastina%22+OR+%22birastin%C3%AA%22+OR+%22birastinek%22+OR+%22birastininan%22+OR+%22birastin%C3%AAn%22+OR+%22birastinek%C3%AA%22+OR+%22birastinek%C3%AE%22+OR+%22birastino%22+OR+%22birastin%C3%AE%22&hl=&cd=4&source=gbs_api|sernav=Gengeşe û Sedemên Peyva ku Êzdî Bilêvnakin: Weşanên Na|weşanxane=Na Yayınları|ISBN=9786056392627|rûpel=19}} ==== Bikaranîn ==== [[teşe|Teşeya]] [[tewandî]] nehatiye [[tomarkirin]], [[ne]] [[girêdayî]] [[lêker]]ên kurdî ên din ên ku bi /ast/ [[bi dawî bûn|bi dawî dibin]], [[reh]]a [[dema niha]] [[divê]] bibe ''-birês-'' an ''-birêz-''. ==== Têkildar ==== * {{g|ku|rast}} ==== Etîmolojî ==== Hevreh bi {{hv|fa|ویراستن}}, {{hv|pal|ts=widray-, wirast-}}. Bide ber {{q|ku|arastin}}. 4w3ywz490ct65zc7psj3njb3l6dggsr 6329673 6329672 2026-08-12T17:41:06Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6329673 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Lêker === {{lêker|ku|c=gh}} # amade kirin, rast kirin #* {{jêder-kitêb|ku|jêgirtin=Xwedawendê me erd çêkir, ezman guhastin. <br> Mecalê erdê '''birastin'''. <br> Nebata qeza rastin.|sal=2013|nivîskar=Kemal Tolan|url=http://books.google.com.tr/books?id=m1jjDwAAQBAJ&pg=PA19&dq=%22birastinan%22+OR+%22birastin%22+OR+%22birastinine%22+OR+%22birastineke%22+OR+%22birastinino%22+OR+%22birastinin%22+OR+%22birastina%22+OR+%22birastin%C3%AA%22+OR+%22birastinek%22+OR+%22birastininan%22+OR+%22birastin%C3%AAn%22+OR+%22birastinek%C3%AA%22+OR+%22birastinek%C3%AE%22+OR+%22birastino%22+OR+%22birastin%C3%AE%22&hl=&cd=4&source=gbs_api|sernav=Gengeşe û Sedemên Peyva ku Êzdî Bilêvnakin: Weşanên Na|weşanxane=Na Yayınları|ISBN=9786056392627|rûpel=19}} ==== Notên bikaranînê ==== [[teşe|Teşeya]] [[tewandî]] nehatiye [[tomarkirin]], [[ne]] [[girêdayî]] [[lêker]]ên kurdî ên din ên ku bi /ast/ [[bi dawî bûn|bi dawî dibin]], [[reh]]a [[dema niha]] [[divê]] bibe ''-birês-'' an ''-birêz-''. ==== Têkildar ==== * {{g|ku|rast}} ==== Etîmolojî ==== Hevreh bi {{hv|fa|ویراستن}}, {{hv|pal|ts=widray-, wirast-}}. Bide ber {{q|ku|arastin}}. 4bv4058phxu1zqz6kzcnr312xb8mr0a MediaWiki:Gadget-Site.css 8 1324818 6329682 6119168 2026-08-12T18:19:06Z Bikarhêner 3719 çû [[MediaWiki:Gadget-wikt.add-examples.css]] 6329682 css text/css /* ---------- Ji @[[en:MediaWiki:Gadget-Site.css]] <nowiki> CSS Style * Indent with tab characters * One line space between each declaration * One selector per line * Opening brace on the same line as the last selector * Don't omit optional semicolons * Closing brace on its own line * Closing brace indented to match the preceding style declarations * Alternatively, very short style rules may be all on one line ---------- */ /* csslint adjoining-classes:false */ /* See also [[MediaWiki:Minerva.css]], [[MediaWiki:Vector.css]] */ /* ku-Arab: Format ji bo tabloyên ku di aliyê rastê de ne */ .tablo-flip { float: right; margin-left: 0.5em; margin-right: 0; clear: right; } .tablo-flip .row-flip { text-align: left; } /* @noflip */ :lang(ku-arab) .tablo-flip { float: left; margin-left: 0; margin-right: 0.5em; clear: left; } /* @noflip */ :lang(ku-arab) .tablo-flip .row-flip { text-align: right; } /* Ji bo {{werger-ser}} */ /* @noflip */ :lang(ku-arab) .translations { text-align: right; } /* @noflip */ :lang(ku-arab) div.NavFrame > ul, :lang(ku-arab) div.NavFrame > ol { text-align: right; } /* @noflip */ :lang(ku-arab) div.NavFrame div.NavHead, :lang(ku-arab) details.NavFrame summary.NavHead { text-align: right; } /* @noflip */ :lang(ku-arab) span.NavToggle { float: left; } /* @noflip */ :lang(ku-arab) .list-switcher-element .NavToggle { float: none; } /* "Flipping" ji bo tagên HTMLê (div, span, ...) yên din. Li şûna "float:right", "text-align:left" vana werin bikaranîn (ji bo "flipping"). Ji ber ku dema ku di nav kodî de style="float:right" tê nivîsandin flipping naşuxile: hertim 'float:right' e. */ .float-right-flip { float: right; } .float-left-flip { float: left; } .align-right-flip { text-align: right; } .align-left-flip { text-align: left; } .clear-right-flip { clear: right; } .clear-left-flip { clear: left; } /* @noflip */ :lang(ku-arab) .float-right-flip { float: left; } /* @noflip */ :lang(ku-arab) .float-left-flip { float: right; } /* @noflip */ :lang(ku-arab) .align-right-flip { text-align: left; } /* @noflip */ :lang(ku-arab) .align-left-flip { text-align: right; } /* @noflip */ :lang(ku-arab) .clear-right-flip { clear: left; } /* @noflip */ :lang(ku-arab) .clear-left-flip { clear: right; } /* Ji bo {{wîkîpediya}} */ .sister-box { float: right; border: solid #aaa 1px; font-size: 90%; background: #f9f9f9; width: 250px; padding: 4px; text-align: left; } .sister-wiki-logo { float: left; } .sister-wiki-links { margin-left: 15px; } .sister-wiki-content { margin-left: 60px; } /* @noflip */ :lang(ku-arab) .sister-box { clear:left; float: left; border: solid #aaa 1px; font-size: 90%; background: #f9f9f9; width: 250px; padding: 4px; text-align: right; } /* @noflip */ :lang(ku-arab) .sister-wiki-logo { float: right; } /* @noflip */ :lang(ku-arab) .sister-wiki-links { margin-left: 15px; } /* @noflip */ :lang(ku-arab) .sister-wiki-content { margin-left:5px; margin-right:60px } :lang(ku-arab) .sister-wiki-content { } /* Editsection */ .mw-editsection { font-size: x-small; } /* Jêgirtin */ .jegirtin-text { font-style: italic; } :lang(ku-arab) .jegirtin-text { font-style: normal; } /* Beşa zimanî */ .ns-0 #mw-content-text .mw-heading2, .ns-108 #mw-content-text .mw-heading2 { clear: both; background: #eaecf0; padding-left: 0.2em; font-size: 180%; font-weight: 500; margin-top: 1em; margin-bottom: 0.5em; } /* Rengê "teal" bo beşên cureyên peyvan*/ .ns-0 #mw-content-text .mw-heading3, .ns-108 #mw-content-text .mw-heading3 { color:teal; border-bottom: dotted 1px #aaa; } .ns-0 #mw-content-text .mw-heading4, .ns-108 #mw-content-text .mw-heading4 { border-bottom: dotted 1px #ddd; } /* Valahiya di navber mînakan */ .ns-0 ol li, .ns-0 ol li li{ margin-bottom: .4em; } /* Sernavê Destpêkê veşêre */ .page-Destpêk h1.firstHeading, .page-Destpêk #lastmod, .page-Destpêk #siteSub, .page-Destpêk #contentSub, .page-Destpêk #catlinks { display: none; } sup, sub { /* prevent odd line-height for raised and lowered characters */ line-height: 1em; } /* and keep links at normal font size/weight, else they inherit the header attributes */ .editsection { font-size: 100%; font-weight: normal; } pre code, code code { border: none; padding: 0; } pre var, code var { color: #777; } /* This fixes a bug where certain Tibetan terms are cut off at the bottom... */ #firstHeading { overflow: visible; } .ns-0 .timed-text { display: none; } .client-js .audiometa { display: none; } .client-nojs .audiofile { display: none; } .nowrap { white-space: nowrap; } /* wikitable is part of core. prettytable is deprecated but still used in some places, until fully replaced: */ table.prettytable { margin: 1em 1em 1em 0; background: var(--wikt-palette-paleblue, #f8f9fa); border: 1px var(--border-color-base, #aaaaaa) solid; border-collapse: collapse; } table.prettytable th, table.prettytable td { border: 1px var(--border-color-base, #aaaaaa) solid; padding: 0.2em; } table.prettytable th { background: var(--wikt-palette-lightergrey, #eeeeee); text-align: center; } table.prettytable caption { margin-left: inherit; margin-right: inherit; } /* default setting for {{qualifier}} and {{sense}}. (Related classes that can be overridden: .qualifier-comma, .qualifier-content, .ib-brac, .qualifier-brac, .sense-qualifier-colon.) */ .ib-comma { font-style: normal; } .ib-content { font-style: italic; } .ib-content i, .ib-content em { font-style: normal; } .context-qualifier-colon { display: none; } /* default style for indented "see also" */ .disambig-see-also { text-indent: 2em; } .mention-tr { font-style: italic; } /* add left-to-right mark */ .mention-gloss-paren::before, .mention-tr-paren::before { content: "‎"; } /* non-italic and non-bold gloss */ .mention-gloss, .mention-gloss-double-quote, .mention-gloss-paren, .mention-tr-gloss-separator-comma, .mention-tr-paren, .mention-tr-gloss-separator-comma { font-style: normal; font-weight: inherit; } /* default style for "form of" definitions */ .use-with-mention, .form-of-definition { font-style: italic; } .use-with-mention i, .form-of-definition-link { font-style: normal; } .use-with-mention .mention, .form-of-definition-link .mention { font-style: normal; font-weight: bold; } /* display normalization in {{ux}}/{{usex}}, {{quote}}, {{quote-*}} in italics */ .e-normalization { font-style: italic; } /* Inflection tables ----------------------------- */ /* To colour links in inflection tables (currently done with {{notred}}) black without using #ifexist and allowing for user override */ .inflection-table a.new { color: inherit; } /* fill a parent NavContent collapsing box */ .NavContent table.inflection, .NavContent table.inflection-table { margin-top: 0; width: 100%; display: table; border: 0; } /* basic inflection table styles */ table.inflection { border-collapse: collapse; border: 1px solid; background: #ffffff; /* TODO consider palettizing */ } table.inflection caption { caption-side: bottom; padding: 0.33em 1em; text-align: left; font-size: smaller; } /* subtle grey for alternate row backgrounds */ table.inflection tr:nth-child(odd) { background: #fcfcfc; /* TODO consider palettizing */ } /* and for row headers */ table.inflection tr:nth-child(odd):not(.rowgroup) th { background: #f6f6f6; /* TODO consider palettizing */ } /* dark mode background colors for table.inflection */ @media screen { html.skin-theme-clientpref-night table.inflection { background-color: #242424; } html.skin-theme-clientpref-night table.inflection tr:nth-child(odd) { background-color: #2E2E2E; } html.skin-theme-clientpref-night table.inflection tr:nth-child(odd):not(.rowgroup) th { background-color: #303030; } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os table.inflection { background-color: #242424; } html.skin-theme-clientpref-os table.inflection tr:nth-child(odd) { background-color: #2E2E2E; } html.skin-theme-clientpref-os table.inflection tr:nth-child(odd):not(.rowgroup) th { background-color: #303030; } } table.inflection td, table.inflection th { padding: 0.33em 1em; vertical-align: baseline; } /* but vertically center multi-row cells */ table.inflection td[rowspan] { vertical-align: middle; } table.inflection td { text-align: center; } /* regular row headers, in the left column */ table.inflection th { background: var(--wikt-palette-paleblue, #f8f9fa); text-align: left; } /* rowgroup header rows */ table.inflection tr.rowgroup th { background: var(--wikt-palette-lightergrey, #eeeeee); text-align: center; } /* first-of-several rowgroup header cells is aligned left */ table.inflection tr.rowgroup th:first-child { text-align: left; } table.inflection tr.rowgroup th:first-child:only-child { text-align: center; } /* rows with dividers above */ table.inflection tr.divider th { border-top: 3px solid #999999; } /* transliterations */ table.inflection .translit { color: #888; } /* header links aren’t coloured until hover/active */ table.inflection th a:link, table.inflection th a:visited { color: inherit; text-decoration: inherit; } table.inflection th a:hover { color: #0645ad; text-decoration: underline; } table.inflection th a:active { color: #faa700; text-decoration: underline; } /* ---- end of Inflection tables */ /* Hide interproject links used by [[MediaWiki:Gadget-AggregateInterprojectLinks.js]] */ .interProject { display: none; clear: both; border-top: 2px dotted #AAAAAA; margin-top: 2em; } /* Translation styling */ .checktrans, .rfc-trans, .trreq, .ttbc { background: var(--wikt-palette-palegreen, #f0fff0); } /* t+ t t- templates: */ .tneg, .tpos, .tunk { vertical-align: 20%; font-size: 80%; } .tneg a { color: #cc2200 !important; } /* monobook redlink colour, standard #ba0000 */ .tneg a:visited { color: #a55858 !important; } /* standard visited redlink colour */ .tpos a { color: var(--wikt-palette-deepblue); } /* standard bluelink colour */ .tpos a:visited { color: var(--wikt-palette-blue); } /* standard bluelink colour */ .tunk a { color: #3366BB !important; } /* standard external interwiki colour */ .tunk a:active { color: #3366BB !important; } /* redundant */ /* for parentheses, we use .tlc and .tlcp, the latter has no definition here (display:inline) */ .tlc { display: none; } /* Main page fixes */ #interwiki-completelist { font-weight: bold; } /* Try to make search results more obviously links */ .mw-special-Search #bodyContent li a { font-weight: bold; } .mw-special-Search .searchmatch { font-weight: normal; color: var(--wikt-palette-black, #000000); background-color: var(--wikt-palette-brightyellow, #FFEE77); } /* [[WT:FEED]] */ #p-feedback a { cursor: pointer; } /* Old revisions */ #mw-revision-info { border: 2px solid #8888FF; /* TODO consider palettizing */ border-left: 0px; border-right: 0px; font-size: 110%; margin: 5px; margin-left: 0px; } /* dark mode border color for #mw-revision-info */ @media screen { html.skin-theme-clientpref-night #mw-revision-info { border-color: #4444BB; } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os #mw-revision-info { border-color: #4444BB; } } #mw-editingold { margin-left: 15px; margin: 5px; padding: 5px; border: 2px solid #CC0000; border-width: 2px 0px; } /* maintenance line */ .maintenance-line { color: #777777; /* TODO consider palettizing */ } /* dark mode text color for maintenance line */ @media screen { html.skin-theme-clientpref-night .maintenance-line { color: #adb7bf; } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .maintenance-line { color: #adb7bf; } } /* Night mode logo appearance, see [[Wiktionary:Grease pit/2025/January#Top left Wiktionary logo in dark mode]] */ @media screen { html.skin-theme-clientpref-night img.mw-logo-icon { color-scheme: light; filter: invert(1) brightness(55%) contrast(250%) hue-rotate(180deg); } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os img.mw-logo-icon { color-scheme: light; filter: invert(1) brightness(55%) contrast(250%) hue-rotate(180deg); } } /* Make Recent changes look nice again */ span.newpage, span.minor, span.searchmatch, span.bot, span.unpatrolled { font-family: sans-serif !important; } /* Styling for the different kinds of collapsible boxes and lists */ /* NavFrames */ div.NavFrame, details.NavFrame { border: 1px solid var(--wikt-palette-grey, #9e9e9e); text-align: center; border-collapse: collapse; font-size: 95%; overflow: auto; width: auto; } div.NavFrame > ul, div.NavFrame > ol { text-align: left; } div.NavFrame div.NavHead, details.NavFrame summary.NavHead { margin: 2px; min-height: 1.6em; font-weight: bold; font-size: 100%; text-align: left; padding: 1px 5px 1px 10px; background-color: var(--wikt-palette-dullcyan, #eaecf0); } div.NavFrame p { font-size: 100%; } div.NavFrame div.NavContent, details.NavFrame div.NavContent { font-size: 100%; border-top: 1px solid var(--wikt-palette-grey, #9e9e9e); } div.NavFrame div.NavContent p, details.NavFrame div.NavContent p { font-size: 100%; } /* Used by box-top/box-bottom */ .NavContent.boxcontent { padding: 0.25em 0.5em; } .NavContent.boxcontent > p:last-child { margin-bottom: 0.5em; /* from 1em to avoid some extra asymmetric space */ } /* Override default added margins which mess up the background */ .NavContent.derivedterms > p, .NavContent.columns-bg > p { margin: 0; } .NavContent.derivedterms > p, .NavContent.derivedterms > ul, .NavContent.columns-bg > p, .NavContent.columns-bg > ul { padding: 0.5em; } span.NavToggle { cursor: pointer; float: right; font-weight: normal; font-style: normal; font-size: smaller; margin-top: 1px; } /* add slight gap between NavToggle and rest of the heading */ .NavToggle { margin-left: 0.5em; } /* Collapsible term lists */ .list-switcher { /* This is a hack so we can use getComputedStyle to find the maximum permissible height value of a list-switcher. It must be kept in sync with .list-switcher-collapsed `max-height` */ bottom: calc(3.2 * 1.6em); /* for browsers that don't support `lh` units */ bottom: 3.2lh; } .list-switcher-wrapper, :not(.list-switcher-wrapper) > .list-switcher { contain: layout; /* stop floating elements from messing with layout */ margin-top: 0.3em; /* replaces margin lost on <ul> in following ruleset */ } .list-switcher-wrapper + .list-switcher-wrapper { margin-top: 0.6em; } .list-switcher > div > ul, .list-switcher-wrapper > div > ul { margin-top: 0; /* needed to avoid jumps when collapsing/uncollapsing */ } .list-switcher ul ul { margin-top: 0.1em; /* make margin above nested lists equal to margin at bottom of <li>s */ } .list-switcher-collapsed { /* If changing this value, change .list-switcher `bottom` above */ max-height: calc(3.2 * 1.6em); /* for browsers that don't support `lh` units */ max-height: 3.2lh; overflow-y: hidden; } .list-switcher-header { background: var(--wikt-palette-grey-indigo-2); font-weight: bold; font-size: 95%; padding: 0.2em 0.4em 0.1em 0.6em; border-top-left-radius: 0.3lh; border-top-right-radius: 0.3lh; } .list-switcher-header + .list-switcher .term-list, .list-switcher-header + .term-list { padding-top: 0.1em; } .list-switcher-edit { margin-left: 1.5em; font-size: 87.75%; /* exactly match font size of [show more] button (in Chromium-based browsers at least) */ font-weight: normal; } .list-switcher-edit::before { content: "["; } .list-switcher-edit::after { content: "]"; } .list-switcher-large-text { /* Keep in sync with next ruleset */ bottom: calc(4 * 1.6em); /* for browsers that don't support `lh` units */ bottom: 4lh; } .list-switcher-large-text.list-switcher-collapsed { /* Keep in sync with previous ruleset */ max-height: calc(4 * 1.6em); /* for browsers that don't support `lh` units */ max-height: 4lh; } .list-switcher-element { text-align: center; cursor: pointer; background: var(--wikt-palette-grey-indigo-2); } .list-switcher-element .NavToggle { float: none; } /* this is a legacy rule that only applies to {{rootsee}} and {{script appendix}} - these need a fairly wide width */ .columns-bg:not(.term-list) > div > div > .CategoryTreeChildren, .columns-bg:not(.term-list) > div > .CategoryTreeChildren { -moz-column-width: 25em; column-width: 25em; } /* Hidden Quotes and *nyms toggle */ .HQToggle, .nyms-toggle, .usex-toggle { font-size: smaller; position: relative; bottom: 1px; left: 5px; } /* Hidden quotes */ .client-js .ns-0 ol>li>ul { display: none; } /* wrap toggle links with [ and ] */ .HQToggle:before, .NavToggle:before, .nyms-toggle:before, .usex-toggle:before { content: '['; } .HQToggle:after, .NavToggle:after, .nyms-toggle:after, .usex-toggle:after { content: ']'; } .HQToggle a, .NavToggle a, .nyms-toggle a, .usex-toggle a { -webkit-user-select: none; -moz-user-select: none; user-select: none; } .client-js .NavFrame .NavContent { display: none; } .client-js .not .NavContent { /* ??? */ display: block; } /* View switcher */ .vsShow { display: none; } /* End styling for collapsible lists */ /* Quote clarifications, e.g. {{quote-gloss}}, {{quote-qualifier}} */ .quote-note { color: #999; } /* stuff visible when previewing an edit only */ .previewonly { display: none; } #wikiPreview .previewonly { display: inline; } /* Highlight the relevant sense when the user follows a link to a {{senseid}}. The class="senseid" should ideally be on the enclosing <li> tag. We attempt to make the highlight work when the class="senseid" is on a <span> inside the <li>, but the :has selector was not supported by all browsers as of late 2023. This feature was nonetheless requested by Benwing at [[Wiktionary:Grease_pit/2023/November#Why_does_Template%3Asenseid_use_HTML_li_tag%3F]]. THe version with :has is provided as a separate declaration to ensure maximum compatibility. */ .senseid:target { background: var(--wikt-palette-lightblue, #DEF); } li:has(> span.senseid:target) { background: var(--wikt-palette-lightblue, #DEF); } .etymid:target { background: var(--wikt-palette-lightblue, #DEF); } p:has(> span.etymid:target) { background: var(--wikt-palette-lightblue, #DEF); } /* fix extra gap if there is something between etymid and rest of etymology */ p:has(> span.etymid:only-child) { display: inline; } /* and highlight the next paragraph too if that happened, since otherwise the highlight may be lost entirely on the invisible etymid */ p:has(> span.etymid:target:only-child) + p { background: var(--wikt-palette-lightblue, #DEF); } /* Skin CSS highlights table rows targeted by the current browser location (tr:target). This rule highlight table rows containing target cells so that there can be multiple IDs in a table row in [[Wiktionary:List of languages]] and [[Wiktionary:List of languages/special#Etymology-only languages]]. */ tr:has(> :target), tr:has(> td > code:target) { background: var(--wikt-palette-lightblue, #DEF); } /* show the "serial and" in the disambiguation see also */ .serial-and { display: inline; } /* hide the serial commas */ .serial-comma { display: none; } /* Gender and number templates */ .gender, .number, .noun-class { font-style: italic; } abbr { border-bottom-width: 0; } /* hide "did you mean" on Noarticletext self-links */ .did-you-mean strong { display: none; } /* make script/module errors smaller */ .scribunto-error { font-size: 75%; } /* allow inline hieroglyphs */ .mw-hiero-outer { display: inline-table !important; /* override skin styling on mobile */ vertical-align: middle; font-size: 10px; } /* allow mirrored custom hieroglyph (and other) images */ .mw-mirrored img { transform: scaleX(-1); } /* softer highlighting of 'updated since last visit' */ span.updatedmarker { background-color: var(--wikt-palette-mint, #c0e4c0); } /* {{TOC limit}} */ /* Allow limiting of which header levels are shown in a TOC; <div class="toclimit-3">, for instance, will limit to showing ==headings== and ===headings=== but no further (as long as there are no =headings= on the page, which there shouldn't be according to the MoS). */ .toclimit-2 .toclevel-1 ul, .toclimit-3 .toclevel-2 ul, .toclimit-4 .toclevel-3 ul, .toclimit-5 .toclevel-4 ul, .toclimit-6 .toclevel-5 ul, .toclimit-7 .toclevel-6 ul { display: none; } /* * Script and language-related styles are in [[MediaWiki:Gadget-LanguagesAndScripts.css]] */ /* A kludge that lets the members of [[:Category:Redirected combining characters]] be displayed. */ body.page-Category_Combining_characters div#mw-pages li, body.page-Category_Redirected_combining_characters div#mw-pages li, body.page-Category_IPA_combining_characters div#mw-pages li { letter-spacing: 0.3em; } /* Definition dates, in {{defdate}} */ .defdate { font-size: smaller; } /* unit tests filter */ table.unit-tests.unit-tests-hide-passing tr.unit-test-pass { display: none; } table.unit-tests th.unit-tests-img-corner { background: var(--wikt-palette-lightblue, #d9ebff); min-width: 1em; } table.unit-tests.unit-tests-hide-passing th.unit-tests-img-corner { background: red; } /* multi-column lists */ li, .group-in-column { -moz-column-break-inside: avoid; break-inside: avoid; } /* {{shortcut}} */ .shortcut-box, .category-edit-box { border: 1px solid var(--border-color-base, #aaaaaa); color: var(--color-base, black); background: var(--wikt-palette-paleblue, #f9f9f9); margin: 0 0 .5em 1em; text-align: center; padding: 5px; float: right; clear: both; font-weight: bold; font-size: smaller; } /* Display tabs with 4 spaces, see [[phab:T59824]] and [[phab:T59825]] */ textarea#wpTextbox1+div:last-child, /* workaround for [[mw:User:Remember the dot/Syntax highlighter]] */ textarea, pre, code, .mw-highlight { -moz-tab-size: 4; -o-tab-size: 4; tab-size: 4; } /* stop double-bolding of self-links like in [[acquit]], [[fishbone]] */ /* old code: b .selflink, strong .selflink { font-weight: inherit; } */ b, strong { font-weight: bold; } tr:target { background: var(--wikt-palette-lightblue, #DEF); } #firstHeading var, .headword var { color: #888; } /* Display a {{tlb}} / {{term-label}} template on its own line if it comes right after a headword template. It is too easy to miss after headwords (especially long ones). */ p .headword-line ~ .usage-label-term::before { content: "\a"; /* newline */ white-space: pre; } /* Temporary kludge to be used because categoryTree is generating a newline. This CSS line should be removed after the developers fix it. */ .CategoryTreeTag+p br:first-child { display: none; } /* Used by column templates (see [[Module:columns]]). */ .ul-column-count>ul, .ul-column-count>ol, .ul-column-count>dl { -moz-column-gap: 20px; column-gap: 20px; } .ul-column-count[data-column-count="2"]>ul, .ul-column-count[data-column-count="2"]>ol, .ul-column-count[data-column-count="2"]>dl { -moz-column-count: 2; column-count: 2; } .ul-column-count[data-column-count="3"]>ul, .ul-column-count[data-column-count="3"]>ol, .ul-column-count[data-column-count="3"]>dl { -moz-column-count: 3; column-count: 3; } .ul-column-count[data-column-count="4"]>ul, .ul-column-count[data-column-count="4"]>ol, .ul-column-count[data-column-count="4"]>dl { -moz-column-count: 4; column-count: 4; } .ul-column-count[data-column-count="5"]>ul, .ul-column-count[data-column-count="5"]>ol, .ul-column-count[data-column-count="5"]>dl { -moz-column-count: 5; column-count: 5; } .ul-column-count[data-column-count="6"]>ul, .ul-column-count[data-column-count="6"]>ol, .ul-column-count[data-column-count="6"]>dl { -moz-column-count: 6; column-count: 6; } .columns-bg { /* Default background color for multi-column lists. */ background: var(--wikt-palette-lavender, #f8f8ff); /* prevent text crashing into edge of box */ padding-right: 0.3em; } /* Default style for hypothetical inflections -- currently italic. */ .hypothetical { font-style: italic; } /* Style for entries using deprecated templates */ .deprecated { color: olivedrab; } .deprecated a { color: darkgreen; } /* Style for entries using deprecated labels */ .deprecated-label { color: olivedrab; text-decoration: line-through; } .deprecated-label a { color: darkgreen; text-decoration: line-through; } /* Style for notes added using the bad= param in {{audio}} */ .bad-audio-note { color: #FF2200; font-weight: bold; } /* WikiHiero kludge */ /* disable for now, apparently not necessary and breaks wrapping .wikt-hierokludge { display: inline-block; } */ /* Support lists that automatically split into limited-width columns (for translations tables and the like): */ .multicolumn-list>ul { -moz-column-width: 25em; column-width: 25em; -moz-column-gap: 20px; column-gap: 20px; } .multicolumn-list-wide>ul { -moz-column-width: 55em; column-width: 55em; -moz-column-gap: 20px; column-gap: 20px; } .multicolumn-list-narrow>ul { -moz-column-width: 22em; column-width: 22em; -moz-column-gap: 20px; column-gap: 20px; } /* [[phab:T156351]]: Support for Parsoid's Cite implementation */ a[ rel="mw:referencedBy"]::before { content: " ^"; } /* [[phab:T316670]]: fix header issues */ .mw-heading * { word-break: normal; } /* From [[Module:shortcut box/styles.css]] */ a .redlink { color: var(--color-destructive, #d73333); } a:visited .redlink { color: var(--color-destructive--visited, #a55858); } a:visited:hover .redlink { color: var(--color-destructive--visited, #a55858); } a:hover .redlink { color: var(--color-destructive--hover, #ff4242); text-decoration: underline; } a:active .redlink { color: var(--color-destructive--active, #b32424); text-decoration: underline; } a:focus .redlink { outline-color: var(--outline-color-progressive--focus, #36c); } /* approximate replacement for .toccolours, which is not defined in the Vector 2022 skin */ .standard-box { background-color: var(--wikt-palette-paleblue, #f8f9fa); border: 1px solid var(--wikt-palette-grey, #9e9e9e); /* was #aabbdd but no real equivalent in our palette */ padding: 5px; } .mw-parser-output a[role="button"] { color: var(--wikt-palette-black); font-weight: normal; } /* override default behaviour for button links */ .mw-parser-output a[role="button"]:focus:not(:hover) { text-decoration: none; } /* Make the list of references smaller */ ol.references { font-size: 90%; /* Default font-size */ margin-bottom: 0.5em; } /*** Dark mode ***/ /* Beşa zimanî */ html.skin-theme-clientpref-night .ns-0 #mw-content-text .mw-heading2, html.skin-theme-clientpref-night .ns-108 #mw-content-text .mw-heading2 { background-color: #27292d; } /* Rengê "teal" bo beşên cureyên peyvan*/ html.skin-theme-clientpref-night .ns-0 #mw-content-text .mw-heading3, html.skin-theme-clientpref-night .ns-108 #mw-content-text .mw-heading3 { color: #B0D493; } html.skin-theme-clientpref-night div#editpage-specialchars a { background-color: transparent; } html.skin-theme-clientpref-night div.NavFrame div.NavHead, html.skin-theme-clientpref-night details.NavFrame summary.NavHead { background-color: #27292d; } html.skin-theme-clientpref-night div.NavFrame, details.NavFrame { background-color: #202122; } /* Dark mode end */ /* </nowiki> */ 8k4uvg80l1btbijkr5jxbuburx7v2rw Şablon:tabloya-tewandinê-ser 10 1324916 6329697 6291983 2026-08-12T19:20:38Z Wikihez 7344 6329697 wikitext text/x-wiki <includeonly><!-- special wrapper to prevent substitution of this template -->{{ safesubst:<noinclude/>#ifeq:{{ safesubst:<noinclude/>NAMESPACE}}|{{NAMESPACE}}| <div class="inflection-table-wrapper inflection-table-narrow inflection-table-{{{palette|grey}}} {{#ifeq:{{{title}}}|-|inflection-table-no-title}} {{#if:{{{tall|}}}|inflection-table-collapsible inflection-table-collapsed no-vc}} {{{class|}}}" style="width: fit-content{{#if:{{{min-width|}}}|; min-width: {{{min-width}}}}}" data-toggle-category="{{{category|Tewandinê}}}"><templatestyles src="Template:tewandin-ser/style.css" /> {{{!}} class="inflection-table {{#if:{{{lang|}}}|inflection-table-{{{lang}}}}}" <!-- {{!}} is used in place of | due to the special safesubst: wrapper --> {{#ifeq:{{{title}}}|-|| {{!}}+ class="inflection-table-title" {{!}} {{{title|Inflection of ''{{PAGENAME}}''}}} {{!}}- }} |{{color||Do not substitute this template}}}} </includeonly><noinclude>{{documentation}}</noinclude> aedx3clso3rrizrlbp3ybh8c64j2vct Modul:ziman/error 828 1325677 6329831 6328186 2026-08-12T23:33:56Z Wikihez 7344 6329831 Scribunto text/plain --[=[ Throw an error for an invalid language code or script code. `code` (required) is the bad code and can be nil or a non-string. `param` (required) is the name of the parameter in which the code was contained. It can be a string, a number (for a numeric param, in which case the param will show up in the error message as an ordinal such as "first" or "second"), or `true` if no parameter can be clearly identified. It can also be a function of one argument (an error message) or two arguments (an error message and a number of stack frames to ignore, same as in the error() function itself), in which case the function will be called with the same error message as if `true` were passed in. (This is useful e.g. when parsing inline modifiers, where the parameter name may not be available or may not be so clearly identifiable, but an error function is often available.) `code_desc` (optional) is text describing what the code is; by default, "language code". `template_text` (optional) is a string specifying the template that generated the error, or a function to generate this string. If given, it will be displayed in the error message. ]=] local dump = mw.dumpObject local function internal_err(param, types, param_type) error(("Xetaya hundirîn: divê parametreya %s %s be, lê %s hat wergirtin"):format(dump(param), types, param_type)) end return function(code, param, code_desc, template_tag) local is_callable = require("Module:fun").is_callable if param == nil then param = true end if not code_desc then code_desc = "koda zimanî" end if template_tag then if is_callable(template_tag) then template_tag = template_tag() else local template_tag_type = type(template_tag) if template_tag_type ~= "string" then internal_err("template_tag", "fonksiyonek, tabloyeke gazîkirî an nil", " " .. template_tag_type) end end template_tag = (" (şablona orîjînal: %s)"):format(template_tag) else template_tag = "" end local param_is_callable = is_callable(param) local function err(msg) msg = msg .. template_tag if not(param_is_callable) then error(require("Module:string utilities").ucfirst(msg) .. ".", 3) end param(msg, 3) end if not (param == true or param_is_callable) then local param_type = type(param) if not (param_type == "string" or param_type == "number") then internal_err("param", "hejmarek, stringek, fonksiyonek, tabloyeke gazîkirî, true an nil", param == false and "false" or " " .. param_type) end param = ("parametreya %s "):format(dump(param)) end if code == nil or code == "" then if param == true or param_is_callable then err(code_desc .. " tine ye") else err(param .. "(" .. code_desc .. ") tine ye") end else local code_type = type(code) if code_type ~= "string" then internal_err("code", "stringek an nil", "a " .. code_type) end end err(("Divê %s %s ya derbasdar be; nirxa %s ne derbasdar e (li [[Wîkîferheng:Lîsteya zimanan]] binêre)"):format( (param == true and "" or param), code_desc, dump(code) )) end t2bglqnyxbm60ucb9fqva5mpdieoqdp Şablon:J:Încîl:1872:Sayim 10 1325850 6329782 6329591 2026-08-12T22:04:33Z Wikihez 7344 6329782 wikitext text/x-wiki <includeonly>{{#invoke:quote|call_template |template=jêder-kitêb |ku |editor=İlyas Sayım |title=Yekemîn Încîla Kurdî bi Alfabeya Ermenî Transkrîpsiyon û Lêkolîn |edition=1 |location=Bîngol |year=2024 |url=https://kitêb.nevgur.net/book/wf6n5 |original=Ինճիլ<t:Încîl> |by=[[w:en:Isaac Grout Bliss|Isaac Grout Bliss]] |origyear=1872 |pageparam=page,r,rûpel |textparam=jg,jêgirtin |allowparams=r,rûpel,jg,jêgirtin }}</includeonly><noinclude>{{belgekirin}}{{quotecat|ku}}</noinclude> jqklimm0ocebh2blxfo1pxb35ta1rfq 6329783 6329782 2026-08-12T22:11:25Z Wikihez 7344 6329783 wikitext text/x-wiki <includeonly>{{#invoke:quote|quote_t |ku |terciman=[[w:en:Isaac Grout Bliss|Isaac Grout Bliss]] |sernav=Ինճիլ<t:Încîl> |cih=Stenbol |sal=1872 |2nivîskar=İlyas Sayım |sernav2=Yekemîn Încîla Kurdî bi Alfabeya Ermenî Transkrîpsiyon û Lêkolîn |çap2=1 |cih2=Bîngol |sal2=2024 |url2=https://kitêb.nevgur.net/book/wf6n5 |versiyona-nû=hate transkrîbekirin ji hêla |rûpel2={{{r|{{{rûpel|}}}}}} }}</includeonly><noinclude>{{belgekirin}}{{quotecat|ku}}</noinclude> rhb92c5pviqeuji52hqmazvhe5r5pjx 6329785 6329783 2026-08-12T22:14:01Z Wikihez 7344 6329785 wikitext text/x-wiki <includeonly>{{#invoke:quote|quote_t |ku |terciman=[[w:en:Isaac Grout Bliss|Isaac Grout Bliss]] |sernav=Ինճիլ<t:Încîl> |cih=Stenbol |sal=1872 |2nivîskar=İlyas Sayım |sernav2=Yekemîn Încîla Kurdî bi Alfabeya Ermenî Transkrîpsiyon û Lêkolîn |çap2=1 |cih2=Bîngol |sal2=2024 |url2=https://kitêb.nevgur.net/book/wf6n5 |versiyona-nû=transkrîpsiyona |rûpel2={{{r|{{{rûpel|}}}}}} |rûpel={{{r-orîj|{{{rûpel-orîj|}}}}}} |r= }}</includeonly><noinclude>{{belgekirin}}{{quotecat|ku}}</noinclude> cysmfinjhwprkl3womd92725hgdno3d 6329786 6329785 2026-08-12T22:16:57Z Wikihez 7344 6329786 wikitext text/x-wiki {{#invoke:quote|quote_t |ku |terciman=[[w:en:Isaac Grout Bliss|Isaac Grout Bliss]] |sernav=Ինճիլ<t:Încîl> |url=https://kitêb.nevgur.net/book/eb7my |cih=Stenbol |sal=1872 |2nivîskar=İlyas Sayım |sernav2=Yekemîn Încîla Kurdî bi Alfabeya Ermenî Transkrîpsiyon û Lêkolîn |çap2=1 |cih2=Bîngol |sal2=2024 |url2=https://kitêb.nevgur.net/book/wf6n5 |versiyona-nû=transkrîpsiyona |rûpel2={{{r|{{{rûpel|}}}}}} |rûpel={{{r-orîj|{{{rûpel-orîj|}}}}}} |r= }}<noinclude>{{belgekirin}}{{quotecat|ku}}</noinclude> nav81pm3p8j6a9gw8amu2sypayynx5x 6329788 6329786 2026-08-12T22:18:47Z Wikihez 7344 6329788 wikitext text/x-wiki {{#invoke:quote|quote_t |ku |terciman=[[w:en:Isaac Grout Bliss|Isaac Grout Bliss]] |sernav=Ինճիլ<t:Încîl> |url=https://kitêb.nevgur.net/book/eb7my |cih=Stenbol |sal=1872 |2nivîskar=İlyas Sayım |sernav2=Yekemîn Încîla Kurdî bi Alfabeya Ermenî Transkrîpsiyon û Lêkolîn |çap2=1 |cih2=Bîngol |sal2=2024 |url2=https://kitêb.nevgur.net/book/wf6n5 |versiyona-nû=transkrîpsiyona |rûpel2={{{r|{{{rûpel|}}}}}} |rûpel={{{r-orîj|{{{rûpel-orîj|}}}}}} |r= }}<noinclude>{{belgekirin}}{{demo|sep=|<nowiki>{{J:Încîl:1872:Sayim|jêgirtin=Îsa cewab da ji wan ṟa, û go: Ey! şaşxunan, ne '''kitêb''' dizanin û ne quwwetê Xodê|r=105}}</nowiki>}}{{quotecat|ku}}</noinclude> j6akkjq2yfhf9yc643qilz7etmnvagl 6329789 6329788 2026-08-12T22:19:08Z Wikihez 7344 6329789 wikitext text/x-wiki {{#invoke:quote|quote_t |ku |terciman=[[w:en:Isaac Grout Bliss|Isaac Grout Bliss]] |sernav=Ինճիլ<t:Încîl> |url=https://kitêb.nevgur.net/book/eb7my |cih=Stenbol |sal=1872 |2nivîskar=İlyas Sayım |sernav2=Yekemîn Încîla Kurdî bi Alfabeya Ermenî Transkrîpsiyon û Lêkolîn |çap2=1 |cih2=Bîngol |sal2=2024 |url2=https://kitêb.nevgur.net/book/wf6n5 |versiyona-nû=transkrîpsiyona |rûpel2={{{r|{{{rûpel|}}}}}} |rûpel={{{r-orîj|{{{rûpel-orîj|}}}}}} |r= }}<noinclude>{{belgekirin}}{{demo|sep=|<nowiki>{{J:Încîl:1872:Sayim|r=105|jêgirtin=Îsa cewab da ji wan ṟa, û go: Ey! şaşxunan, ne '''kitêb''' dizanin û ne quwwetê Xodê}}</nowiki>}}{{quotecat|ku}}</noinclude> hydrkqt52ws1i41prwri3j8jzryb2kf 6329790 6329789 2026-08-12T22:24:38Z Wikihez 7344 6329790 wikitext text/x-wiki {{#invoke:quote|quote_t |ku |terciman=[[w:en:Isaac Grout Bliss|Isaac Grout Bliss]] |sernav=Ինճիլ<t:Încîl> |url=https://kitêb.nevgur.net/book/eb7my |cih=Stenbol |sal=1872 |2nivîskar=İlyas Sayım |sernav2=Yekemîn Încîla Kurdî bi Alfabeya Ermenî Transkrîpsiyon û Lêkolîn |çap2=1 |cih2=Bîngol |sal2=2024 |url2=https://kitêb.nevgur.net/book/wf6n5 |versiyona-nû=transkrîpsiyona |rûpel2={{{r|{{{rûpel|}}}}}} |rûpel={{{r-orîj|{{{rûpel-orîj|}}}}}} |r= }}<noinclude>{{belgekirin}}{{demo|sep=|<nowiki>{{J:Încîl:1872:Sayim|r=105|jêgirtin=Îsa cewab da ji wan ṟa, û go: Ey! şaşxunan, ne '''kitêb''' dizanin û ne quwwetê Xodê}}</nowiki>}} {{demo|sep=bi {{param|wekçavkanî|1}}|<nowiki><ref>{{J:Încîl:1872:Sayim|jêgirtin=Îsa cewab da ji wan ṟa, û go: Ey! şaşxunan, ne '''kitêb''' dizanin û ne quwwetê Xodê|r=105|wekçavkanî=1}}</ref></nowiki>}} {{quotecat|ku}}</noinclude> pdmsex13wprvl5c1qcwoeibyfida9de 6329791 6329790 2026-08-12T22:25:58Z Wikihez 7344 6329791 wikitext text/x-wiki {{#invoke:quote|quote_t |ku |terciman=[[w:en:Isaac Grout Bliss|Isaac Grout Bliss]] |sernav=Ինճիլ<t:Încîl> |url=https://kitêb.nevgur.net/book/eb7my |cih=Stenbol |sal=1872 |2nivîskar=İlyas Sayım |sernav2=Yekemîn Încîla Kurdî bi Alfabeya Ermenî Transkrîpsiyon û Lêkolîn |çap2=1 |cih2=Bîngol |sal2=2024 |url2=https://kitêb.nevgur.net/book/wf6n5 |versiyona-nû=transkrîpsiyona |rûpel2={{{r|{{{rûpel|}}}}}} |rûpel={{{r-orîj|{{{rûpel-orîj|}}}}}} |r= }}<noinclude>{{belgekirin}} {{demo|sep=|<nowiki>{{J:Încîl:1872:Sayim|r=105|jêgirtin=Îsa cewab da ji wan ṟa, û go: Ey! şaşxunan, ne '''kitêb''' dizanin û ne quwwetê Xodê}}</nowiki>}} * bi parametreya {{param|wekçavkanî|1}}: {{demo|sep=wisa xuya dibe|<nowiki><ref>{{J:Încîl:1872:Sayim|jêgirtin=Îsa cewab da ji wan ṟa, û go: Ey! şaşxunan, ne '''kitêb''' dizanin û ne quwwetê Xodê|r=105|wekçavkanî=1}}</ref></nowiki>}} {{quotecat|ku}}</noinclude> 7d79zkloed6hbk8p3xr6ecmxp8x69gg Modul:fa-IPA 828 1325993 6329698 6118320 2026-08-12T19:22:37Z Wikihez 7344 6329698 Scribunto text/plain --[=[ FIXME: 1. (ir) q and ğ should both be ɣ intervocally (āqā should give ɒːɣɒː) 2. (prs) disable auto lowering of long vowels before /h/ & /ʔ/, (causes too many issues). 3. (tg, prs) change /q/ to /ɢ/ before a voiced consonant 4. (cls) prevent the appearance of β after a final consonant (e.g -atb should not give β) -- see [[Template talk:fa-IPA#ð in Classical Persian]] 5. (cls) fix geminated β and ð should be a normal b and d 6. FIXED // (ir) [[محوطه]] gives [mo.ɦav.væ.t̪ʰé] instead of [mo.ɦæv.væ.t̪ʰé] 7. FIXED (all except cls) final geminates such as [[خط]] should transcribe as [xat(ː)] 8. (ir) add support for Shirazi dialect 9. (kbl, haz) [[متأسف]] should be /mutāssif/ 10. (ir) [[مقید]] should be /mo.ʁæj.jǽd̪/ (without a second parameter) 11. support disabling a dialect with '-'. e.g. [[نشریه]] should not generate classical ]=] local export = {} local m_str_utils = require("Module:string utilities") local U = m_str_utils.char local lang = require("Module:languages").getByCode("fa") local m_IPA = require("Module:IPA") local m_table = require("Module:table") local m_qual = require("Module:qualifier") local all_consonants = "bptTjčhxdDðrzžsšʔʾğGfqkglmnŋhɦwvy'" --needed for syllables local stop_cons = "bptTjčdDðqkg" local non_stopc = "hxrzžsšʔğGflmhɦwvy'" local rsplit = m_str_utils.split local rsubn = m_str_utils.gsub local toNFC = mw.ustring.toNFC local ulen = m_str_utils.len local usub = m_str_utils.sub local pitchaccent = U(0x301) local devoice = U(0x325) local dtack = U(0x31E) local gstop = U(0x027) local dental = U(0x32A) -- version of rsubn() that discards all but the first return value local function rsub(term, foo, bar) local retval = rsubn(term, foo, bar) return retval end export.all_styles = {"cls", "prs", "kbl", "haz", "fa", "teh", "tg"} export.all_style_groups = { all = export.all_styles, cls = {"cls"}, dari = {"prs", "kbl", "haz"}, ir = {"fa", "teh"}, tg = {"tg"} } export.all_style_descs = { cls = "Farisiya klasîk", prs = "Darî", kabul = "Kabulî", haz = "Hazaragî", fa = "Farisiya Îranê", teh = "Tehranî", tg = "Tacikî" } local function flatmap(items, fun) local new = {} for _, item in ipairs(items) do local results = fun(item) for _, result in ipairs(results) do table.insert(new, result) end end return new end local common_consonants = { ["j"] = "d͡ʒ", ["'"] = "ʔ", ["ḍ"] = "z", ["D"] = "d", --these are here for Hazaragi ["T"] = "t", --they are retroflexes in haz ["ğ"] = "ɣ", ["ġ"] = "ɣ", ["ḥ"] = "h", ["r"] = "ɾ", ["ṣ"] = "s", ["š"] = "ʃ", ["ṯ"] = "s", ["ṭ"] = "t", ["y"] = "j", ["ž"] = "ʒ", ["ẓ"] = "z", ["č"] = "t͡ʃ", ["g"] = "ɡ", ["`"] = "ˈ" } local iranian_persian_short_vowels = {["a"] = "æ", ["i"] = "e", ["u"] = "o"} local iranian_persian_long_vowels = { ["ā"] = "ɒː", ["ī"] = "iː", ["ū"] = "uː", ["ō"] = "uː", ["ē"] = "iː" } local iranian_persian_consonants = {["ḏ"] = "z", ["q"] = "ɢ", ["ğ"] = "ɢ", ["ġ"] = "ɢ", ["k"] = "c", ["g"] = "ɟ"} local dari_persian_short_vowels = {["a"] = "ä", ["i"] = "ɪ", ["u"] = "ʊ"} local dari_persian_long_vowels = { ["ā"] = "ɑː", ["ī"] = "iː", ["ū"] = "uː", ["ō"] = "oː", ["ē"] = "eː" } local dari_persian_consonants = {["ḏ"] = "z", ["v"] = "w"} local tajik_short_vowels = {["a"] = "ä", ["i"] = "i", ["u"] = "u"} local tajik_long_vowels = { ["ā"] = "ɔ", ["ī"] = "i", ["ū"] = "u", ["ō"] = "ɵ", ["ē"] = "e" } local tajik_vowels = "aieuɵɔ" local tajik_consonants = {["ḏ"] = "z", ["ɣ"] = "ʁ", ["x"] = "χ"} local classical_persian_short_vowels = {["a"] = "a", ["i"] = "i", ["u"] = "u"} local classical_persian_long_vowels = { ["ā"] = "aː", ["ī"] = "iː", ["ū"] = "uː", ["ō"] = "oː", ["ē"] = "eː" } local classical_persian_consonants = {["ḏ"] = "ð", ["v"] = "w"} local vowels_minus_a = "iuāīūüēōːʷ" local vowels = "aiuāīūüēōːʷ" --ʷ and ː are counted as vowels to prevent them from being put in the next syllable local consonant = "[^" .. vowels .. ". -]" local vowel = "[" .. vowels .. "]" local syllabify_pattern = "(" .. vowel .. ")(" .. consonant .. ")(" .. consonant .. "?)(" .. vowel .. ")" local function syllabify(text) text = rsubn(text, "ˈ", "`") text = rsubn(text, "%-(" .. consonant .. ")%-(" .. consonant .. ")", "%1.%2") text = rsubn(text, "([" .. all_consonants .. vowels .. "])`", "%1.`") -- Add syllable breaks. for _ = 1, 2 do text = rsubn( text, syllabify_pattern, function(a, b, c, d) if c == "" and b ~= "" then c, b = b, "" end return a .. b .. "." .. c .. d end ) end -- syllable boundry consonants text = rsubn( text, "([" .. non_stopc .. "])([" .. stop_cons .. "])([" .. non_stopc .. "]+ʷ?)([" .. all_consonants .. vowels .. "])", "%1%2.%3%4" ) text = rsubn(text, "([" .. all_consonants .. "])([" .. all_consonants .. "])([" .. all_consonants .. "])", "%1%2.%3") -- ALL syllables are CV- so vowels NEED an intial consonant (ʔ) text = rsubn(text, "([" .. all_consonants .. "])([.])i#", "%1%2i#") --exclude izafa/ezafe text = rsubn(text, "([.])([" .. vowels .. "])", "%1ʔ%2") text = rsubn(text, "#([" .. vowels .. "])", "#ʔ%1") return text end local function remove_glottal_c(text) --only for regional dialects -- remove glottal consonants with appropriate glide text = rsubn(text, "([aā](%.?))([hɦ'])([uū])", "%1w%4") text = rsubn(text, "([iī])(%.?)([hɦ'])([auāēōū])", "i%2y%4") text = rsubn(text, "([auāēōū](%.?))([hɦ'])([iīē])", "%1y%4") text = rsubn(text, "([ē](%.?))([hɦ'])([auāēōū])", "%1y%4") text = rsubn(text, "([uū])(%.?)([hɦ'])([aāiīēō])", "u%2w%4") text = rsubn(text, "([ō](%.?))([hɦ'])([aāiīēō])", "%1w%4") --completely delete GC if both vowels are the either the same or similar text = rsubn(text, "([" .. all_consonants .. "])([uū])`([h'])([uū])", "`%1ū") text = rsubn(text, "([" .. all_consonants .. "])([iī])`([h'])([iī])", "`%1ī") text = rsubn(text, "([" .. all_consonants .. "])([aā])`([h'])([aā])", "`%1ā") --Else, turn GC into majhul long vowels text = rsubn(text, "([aā])((%.?)[h'])", "ā") text = rsubn(text, "([iī])((%.?)['])", "ē") text = rsubn(text, "([uū])((%.?)['])", "ō") text = rsubn(text, "(['h])", "") -- lastly, remove all remaning GC return text end local function con_assimilation(text) --DONT USE THIS ON CLASSICAL -- assimilation/placement of certain consonants text = rsubn(text, "l((%.?)[ʈɖ])", "ɭ%1") --retroflexes are only in hazaragi text = rsubn(text, "([nl])((%.?)[td])", "%1" .. dental .. "%2") text = rsubn(text, "n((%.?)[ʈɖ])", "ɳ%1") text = rsubn(text, "([td])", "%1" .. dental .. "") text = rsubn(text, "n((%.?)[kg])", "ŋ%1") text = rsubn(text, "n((%.?)[cɟy])", "ɲ%1") text = rsubn(text, "n((%.?)[bp])", "m%1") text = rsubn(text, "n((%.?)[qɢ])", "ɴ%1") text = rsubn(text, "([nm])((%.?)[fv])", "ɱ%2") text = rsubn(text, "([āʌɑɒäæeēīioɔōuūʊɪ](%" .. dtack .. "?)(%" .. pitchaccent .. "?)(%ː?)(%.?))([h])", "%1ɦ") text = rsubn(text, "r([tdszšlž])", "ɹ%1") -- formally, f only assimiates in the same syllable text = rsubn(text, "f([bjdžğġ])", "v%1") text = rsubn(text, "ɾ(%.?)ɾ", "#r%1r") text = rsubn(text, "ä(" .. pitchaccent .. ")", "æ%1") text = rsubn(text, "([ɦ])#", "ʱ#") text = rsubn(text, "([h])#", "ʰ#") text = rsubn(text, "([%a]" .. dental .. "?" .. devoice .. "?)%1(" .. devoice .. "?)#", "%1%2(ː)#") return text end function export.fa_IPA(text) text = rsubn(text, "a[-]([" .. all_consonants .. "])[-]", "a%1") text = rsubn(text, "a%-", "e-") text = rsubn(text, "ˈ", "`") text = rsubn(text, "^%-", "‿") text = rsubn(text, " | ", "# | #") text = "##" .. rsubn(text, " ", "# #") .. "##" text = rsubn(text, "%-i#", "i#") text = rsubn(text, "[-]([" .. vowels .. all_consonants .. "])[-]", "%1") text = rsubn(text, "[-]", ".") text = rsubn(text, "v", "w") -- Replace xwa with xu text = rsubn(text, "([#%-])xwa", "%1xu") -- Replace xwā with xā text = rsubn(text, "([#%-])xwā", "%1xā") -- Replace xwē with xē text = rsubn(text, "([#%-])xwē", "%1xē") text = rsubn(text, "w(" .. vowel .. ")", "v%1") text = rsubn(text, "w(" .. consonant .. ")", "w%1") text = rsubn(text, "([" .. vowels_minus_a .. "])w", "%1v") text = rsubn(text, "(" .. consonant .. ")w#", "%1v#") text = rsubn(text, "([iī]y(%`?))(%.?)y", "i%2y") text = rsubn(text, "v%(w", "v(v") -- Replace diphthong text = rsubn( text, "a([wy])()", function(semivowel, position) local consonant = usub(text, position, position) if consonant == "" or consonant:find(consonant) then if semivowel == "w" then return "uw" else return "ey" end end end ) --automatically denote syllables text = syllabify(text) -- then do pitch accent mark text = rsubn(text, "`([" .. all_consonants .. "])([" .. vowels .. "])", "%1%2" .. pitchaccent .. "") text = rsubn(text, "`([" .. vowels .. "])", "%1" .. pitchaccent .. "") text = rsubn(text, "([iī])(" .. pitchaccent .. "?)(%.?)y", "E%2%3y") text = rsubn(text, "([ptkč](%" .. dental .. "?))([" .. vowels .. "])", "%1ʰ%3") text = rsubn(text, "([" .. vowels .. "](%.?))q", "%1ʁ") -- Replace final a with e (can be overwritten by entering æ) text = rsubn(text, "([a])(%" .. pitchaccent .. "?)#", "e%2#") -- Replace short vowels text = rsubn(text, ".", iranian_persian_short_vowels) -- Replace long vowels text = rsubn(text, ".", iranian_persian_long_vowels) text = rsubn(text, "E(" .. pitchaccent .. "?)(%.?)y", "i%1%2y") -- Replace jj with dj text = rsubn(text, "jj", "dj") -- Replace čč with tč text = rsubn(text, "čč", "tč") -- Replace owv- with avv- text = rsubn(text, "owv", "ævv") text = rsubn(text, "ow.v", "æv.v") -- Allephones text = rsubn(text, "([gbdjl](%" .. dental .. "?))#", "%1" .. devoice .. "#") -- Replace consonants text = rsubn(text, ".", iranian_persian_consonants) text = rsubn(text, "cʰ([ɒuo])", "kʰ%1") text = rsubn(text, "ɟ(%" .. devoice .. "?)([ɒuo])", "g%1%2") text = con_assimilation(text) text = rsubn(text, "#(g)", "%1" .. devoice .. "") text = rsubn(text, ".", common_consonants) text = rsubn(text, "ɾ", "ɹ") --fix the pitch accent on long vowels text = rsubn(text, "([ɒiu])ː" .. pitchaccent .. "", "%1" .. pitchaccent .. "ː") text = rsubn(text, "([ɢʁ])(%.?)t", "x%2t") text = rsubn(text, "([ʁɢ])#", "ɢ" .. devoice .. "#") text = rsubn(text, "#([ʁɢ])", "#q") text = rsubn(text, "ʁɢ", "ɢɢ") text = rsubn(text, "#g", "#k") text = rsubn(text, "c", "kʲ") text = rsubn(text, "ɟ", "ɡʲ") text = rsubn(text, "ʲʰ", "ʰʲ") text = rsubn(text, "#", "") text = toNFC(text) return text end function export.prs_IPA(text) --based on formal speech URBAN kabul text = rsubn(text, "ˈ", "`") text = rsubn(text, "^%-", "‿") text = rsubn(text, " | ", "# | #") text = "##" .. rsubn(text, " ", "# #") .. "##" text = rsubn(text, "%-i#", "i#") text = rsubn(text, "[-]([" .. vowels .. all_consonants .."])[-]", "%1") text = rsubn(text, "[-]", ".") text = rsubn(text, "v", "w") -- Replace xwa with xu text = rsubn(text, "xwa", "xu") -- Replace xwā with xā text = rsubn(text, "xwā", "xā") -- Replace xwē with xē text = rsubn(text, "xwē", "xē") text = rsubn(text, "xwē", "xē") text = rsubn(text, "([iī](%`?))(%.?)y", "i%2y") -- Iranian and Classical dictionaries list -iyy, -- But Tajik and Dari ones dont text = rsubn(text, "([iī]y(%`?))(%.?)y", "i%2y") --automatically denote syllables text = syllabify(text) --pitch accent mark text = rsubn(text, "`([" .. all_consonants .. "])([ʷ]?)([" .. vowels .. "])", "%1%2%3" .. pitchaccent .. "") text = rsubn(text, "`([" .. vowels .. "])", "%1" .. pitchaccent .. "") text = rsubn(text, "([ptkč])([" .. vowels .. "])", "%1ʰ%2") -- Replace ih, īh, i\', ī\' by ēh, ē\' text = rsubn(text, "i((%.?)[ɦh'])", "e" .. dtack .. "%1") text = rsubn(text, "ī((%.?)[ɦh'])", "ē%1") -- Replace uh, ūh, u\', ū\' by ɵh, ɵ\' text = rsubn(text, "u((%.?)[hɦ'])", "o" .. dtack .. "%1") text = rsubn(text, "ū((%.?)[hɦ'])", "ō%1") -- Replace short vowels text = rsubn(text, ".", dari_persian_short_vowels) -- Replace long vowels text = rsubn(text, ".", dari_persian_long_vowels) -- Replace jj with dj text = rsubn(text, "jj", "dj") -- Replace čč with tč text = rsubn(text, "čč", "tč") --fix the pitch accent on long vowels text = rsubn(text, "([ʌɑeiou])ː" .. pitchaccent .. "", "%1" .. pitchaccent .. "ː") -- Allephones text = con_assimilation(text) -- Replace consonants text = rsubn(text, ".", common_consonants) text = rsubn(text, "f([bjdžğġ])", "v%1") text = rsubn(text, ".", dari_persian_consonants) text = rsubn(text, "ɾ(%.?)ɾ", "r%1r") text = rsubn(text, "ɪ(" .. pitchaccent .. "?)(%.?)j", "i%1%2j") text = rsubn(text, "#ɾ", "#r") text = rsubn(text, "#", "") text = toNFC(text) return text end function export.prs_kbl_IPA(text) --Colloquial dialect of Kabul text = rsubn(text, "ˈ", "`") text = rsubn(text, "^%-", "‿") text = rsubn(text, " | ", "# | #") text = "##" .. rsubn(text, " ", "# #") .. "##" text = rsubn(text, "%-i#", "i#") text = rsubn(text, "[-]([" .. vowels .. all_consonants .."])[-]", "%1") text = rsubn(text, "[-]", ".") -- Verb stem changes text = rsubn(text, "#kar(`?)dan#", "#ka%1dan#") text = rsubn(text, "v", "w") -- Replace xwa with xu text = rsubn(text, "xwa", "xu") -- Replace xwā with xā text = rsubn(text, "xwā", "xā") -- Replace xwē with xē text = rsubn(text, "xwē", "xē") text = rsubn(text, "xwē", "xē") text = rsubn(text, "([iī](%`?))(%.?)y", "i%2y") -- Iranian and Classical dictionaries list -iyy, -- But Tajik and Dari ones dont text = rsubn(text, "([iī]y(%`?))(%.?)y", "i%2y") --pitch accent mark text = rsubn(text, "`([" .. all_consonants .. "])([" .. vowels .. "])", "%1%2" .. pitchaccent .. "") text = rsubn(text, "`([" .. vowels .. "])", "%1" .. pitchaccent .. "") -- remove glottal consonants for some dialects text = remove_glottal_c(text) --automatically denote syllables text = syllabify(text) -- dipthong <ōy> /oːj/ is lost in closed syllables text = rsubn(text, "ōy", "ūy") -- universal aspiration text = rsubn(text, "([ptkč])([" .. vowels .. "])", "%1ʰ%2") -- Replace short vowels text = rsubn(text, ".", dari_persian_short_vowels) -- Replace long vowels text = rsubn(text, ".", dari_persian_long_vowels) -- Replace jj with dj text = rsubn(text, "jj", "dj") text = rsubn(text, "āw", "aw") -- lost colloquially -- Replace čč with tč text = rsubn(text, "čč", "tč") -- Allephones text = con_assimilation(text) -- Replace consonants text = rsubn(text, ".", dari_persian_consonants) text = rsubn(text, "f((%.?)[bjdžğġ])", "v%1") text = rsubn(text, ".", common_consonants) --fix the pitch accent on long vowels text = rsubn(text, "([ʌɑeiou])ː" .. pitchaccent .. "", "%1" .. pitchaccent .. "ː") text = rsubn(text, "ɾ(%.?)ɾ", "#r%1r") text = rsubn(text, "ɪ(" .. pitchaccent .. "?)(%.?)j", "i%1%2j") text = rsubn(text, "#ɾ", "#r") text = rsubn(text, "#", "") text = toNFC(text) return text end function export.prs_haz_IPA(text) --Hazaragi text = rsubn(text, "ˈ", "`") text = rsubn(text, "^%-", "‿") text = rsubn(text, " | ", "# | #") text = "##" .. rsubn(text, " ", "# #") .. "##" text = rsubn(text, "([iī](%`?))(%.?)y", "i%2y") -- Iranian and Classical dictionaries list -iyy, -- But Tajik and Dari ones dont text = rsubn(text, "([iī]y(%`?))(%.?)y", "i%2y") text = rsubn(text, "%-i#", "i#") text = rsubn(text, "[-]([" .. vowels .. all_consonants .."])[-]", "%1") text = rsubn(text, "[-]", ".") -- Verb stem changes text = rsubn(text, "#kar(`?)dan#", "#ka%1dā#") --these conversions need to happen BEFORE EVERYTHING ELSE --pitch accent mark text = rsubn(text, "`([" .. all_consonants .. "])([" .. vowels .. "])", "%1%2" .. pitchaccent .. "") text = rsubn(text, "`([" .. vowels .. "])", "%1" .. pitchaccent .. "") --Vowel Harmony text = rsubn(text, "ē(" .. pitchaccent .. "?)([" .. all_consonants .. "])([ūiī])", "%3%1%2%3") text = rsubn(text, "ē(" .. pitchaccent .. "?)([" .. all_consonants .. "])([" .. all_consonants .. "])([ī])", "%4%1%2%3%4") text = rsubn(text, "i(" .. pitchaccent .. "?)([" .. all_consonants .. "])([ouū])", "%3%1%2%3") text = rsubn(text, "ī(" .. pitchaccent .. "?)([" .. all_consonants .. "])([ēōuūiī])", "%3%1%2%3") text = rsubn(text, "ō(" .. pitchaccent .. "?)([" .. all_consonants .. "])([uū])", "%3%1%2%3") text = rsubn(text, "ō(" .. pitchaccent .. "?)([" .. all_consonants .. "])([i])", "u%1%2%3") text = rsubn(text, "ō(" .. pitchaccent .. "?)([" .. all_consonants .. "])([ī])", "ū%1%2%3") -- Replace xwa with xu text = rsubn(text, "xwa", "xu") -- Replace xwā with xā text = rsubn(text, "xwā", "xā") -- Replace xwē with xē text = rsubn(text, "xwē", "xē") text = rsubn(text, "xwē", "xē") text = rsubn(text, "v", "w") -- remove glottal consonants for some dialects text = remove_glottal_c(text) --automatically denote syllables text = syllabify(text) -- universal aspiration text = rsubn(text, "([ptkč])([" .. vowels .. "])", "%1ʰ%2") --delete certain consonant clusters and dipthongs text = rsubn(text, "āy", "ay") text = rsubn(text, "āw", "aw") --retroflex consonants text = rsubn(text, "D", "ɖ") text = rsubn(text, "T", "ʈ") -- Replace short vowels -- no consistent vowel length for i or u text = rsubn(text, "ī", "i") text = rsubn(text, "ū", "u") text = rsubn(text, ".", classical_persian_short_vowels) --approximate vowels text = rsubn(text, "ā", "ɔː") text = rsubn(text, "ō", "ʊː") text = rsubn(text, "a", "ä") -- Replace long vowels text = rsubn(text, ".", dari_persian_long_vowels) --fix the pitch accent on long vowels text = rsubn(text, "([ɔeiʊu])ː" .. pitchaccent .. "", "%1" .. pitchaccent .. "ː") -- Replace jj with dj text = rsubn(text, "jj", "dj") -- Replace čč with tč text = rsubn(text, "čč", "tč") --allophones text = con_assimilation(text) text = rsubn(text, "([gbdjl](%" .. dental .. "?))#", "%1" .. devoice .. "#") --Terminal voicing in not phonetic text = rsubn(text, "([gbdj])#", "%1" .. devoice .. "#") -- Replace consonants text = rsubn(text, ".", dari_persian_consonants) text = rsubn(text, "f((%.?)[bjdžğġ])", "v%1") text = rsubn(text, ".", common_consonants) text = rsubn(text, "ɾ(%.?)ɾ", "#r%1r") text = rsubn(text, "#ɾ", "#r") text = rsubn(text, "#", "") text = toNFC(text) return text end function export.tg_IPA(text) text = rsubn(text, "ˈ", "`") text = rsubn(text, "^%-", "‿") text = rsubn(text, " | ", "# | #") text = "##" .. rsubn(text, " ", "# #") .. "##" text = rsubn(text, "%-i#", "i#") -- Iranian and Classical dictionaries list -iyy, -- But Tajik and Dari ones dont text = rsubn(text, "([iī]y(%`?))(%.?)y", "i%2y") text = rsubn(text, "[-]([" .. vowels .. all_consonants .."])[-]", "%1") text = rsubn(text, "[-]", ".") text = rsubn(text, "v", "w") -- Replace xwa with xu text = rsubn(text, "xwa", "xu") -- Replace xwā with xā text = rsubn(text, "xwā", "xā") -- Replace xwē with xē text = rsubn(text, "xwē", "xē") text = rsubn(text, "xwē", "xē") --automatically denote syllables text = syllabify(text) --pitch accent mark text = rsubn(text, "`([" .. all_consonants .. "])([" .. vowels .. "])", "%1%2" .. pitchaccent .. "") text = rsubn(text, "`([" .. vowels .. "])", "%1" .. pitchaccent .. "") -- Replace jj with dj text = rsubn(text, "jj", "dj") -- Replace čč with tč text = rsubn(text, "čč", "tč") text = rsubn(text, "w([" .. vowels .. "])", "v%1") -- universal aspiration text = rsubn(text, "([ptkč])([" .. vowels .. "])", "%1ʰ%2") -- Replace ih, īh, i\', ī\' by ēh, ē\' text = rsubn(text, "([iī])(%" .. pitchaccent .. "?)([h'ʔɦ])([^" .. tajik_vowels .. "])", "e%2%3%4") -- Replace uh, ūh, u\', ū\' by ɵh, ɵ\' text = rsubn(text, "([uū])(%" .. pitchaccent .. "?)([hʔ'ɦ])([^" .. tajik_vowels .. "])", "ɵ%2%3%4") --aspiration text = rsubn(text, "([ptkč](%" .. dental .. "?))([" .. vowels .. "])", "%1ʰ%3") -- Replace short vowels text = rsubn(text, ".", tajik_short_vowels) -- Replace long vowels text = rsubn(text, ".", tajik_long_vowels) --allophones text = con_assimilation(text) -- Replace consonants text = rsubn(text, ".", common_consonants) text = rsubn(text, ".", tajik_consonants) text = rsubn(text, "([aä])(" .. pitchaccent .. ")", "æ%2") text = rsubn(text, "#", "") text = toNFC(text) return text end function export.fa_cls_IPA(text) text = rsubn(text, "ˈ", "`") text = rsubn(text, "^%-", "‿") text = rsubn(text, " | ", "# | #") text = "##" .. rsubn(text, " ", "# #") .. "##" text = rsubn(text, "([iī](%`?))(%.?)y", "i%2y") text = rsubn(text, "%-i#", "i#") text = rsubn(text, "[-]([" .. vowels .. all_consonants .."])[-]", "%1") text = rsubn(text, "[-]", ".") text = rsubn(text, "v", "w") -- Replace xwa with xʷa text = rsubn(text, "xwa", "xʷa") -- Replace xwā with xʷā text = rsubn(text, "xwā", "xʷā") -- Replace xwē with xʷē text = rsubn(text, "xwē", "xʷē") --automatically denote syllables text = syllabify(text) -- Replace short vowels text = rsubn(text, ".", classical_persian_short_vowels) -- Replace d with ḏ after vowels text = rsubn(text, "([" .. vowels .. "]+.?)(%`?)([d])", "%1%2ḏ") text = rsubn(text, "([" .. vowels .. "]+.?)(%`?)([b])", "%1%2β") -- Replace long vowels text = rsubn(text, ".", classical_persian_long_vowels) -- Replace jj with dj text = rsubn(text, "jj", "dj") -- Replace čč with tč text = rsubn(text, "čč", "tč") -- Replace consonants text = rsubn(text, ".", common_consonants) text = rsubn(text, ".", classical_persian_consonants) text = rsubn(text, "#", "") text = toNFC(text) return text end -- ROMANIZATIONS function export.romanize_fa_cls(text, script, options) if type(text) == "table" then options = {} text, script = text.args[1], text.args[2] end text = rsubn(text, "`", "") text = rsubn(text, "ˈ", "") text = rsubn(text, "[,]", ", ") text = rsubn(text, " | ", "# | #") text = "##" .. rsubn(text, " ", "# #") .. "##" text = rsubn(text, "([iī])(%.?)y", "iy") --kill incorrect characters text = rsubn(text, "([" .. dental .. pitchaccent .. devoice .. dtack .. "ʰ])", "") text = rsubn(text, "([ɴŋ])", "n") --remove v text = rsubn(text, "v", "w") --ensure vowels are paired to a consonant text = rsubn(text, "([.])([" .. vowels .. "])", "%1'%2") text = rsubn(text, "([.])", "") text = rsubn(text, "([" .. vowels .. "])([dḍ])", "%1ḏ") text = rsubn(text, "([" .. vowels .. "](%-?))b", "%1ḇ") text = rsubn(text, "ḏ", "ḏ") text = rsubn(text, "ḏd", "dd") text = rsubn(text, "ḇb", "bb") text = rsubn(text, "ḍ", "z") text = rsubn(text, "ṭ", "t") text = rsubn(text, "ṯ", "s") text = rsubn(text, "ṣ", "s") text = rsubn(text, "ḥ", "h") -- remove Hazaragi retroflexes text = rsubn(text, "D", "d") text = rsubn(text, "T", "t") text = rsubn(text, "ɖ", "d") text = rsubn(text, "ʈ", "t") text = rsubn(text, "#'", "#") text = rsubn(text, "#", "") return text end function export.romanize_prs(text, script, options) if type(text) == "table" then options = {} text, script = text.args[1], text.args[2] end text = rsubn(text, "`", "") text = rsubn(text, "ˈ", "") text = rsubn(text, "[,]", ", ") text = rsubn(text, " | ", "# | #") text = "##" .. rsubn(text, " ", "# #") .. "##" text = rsubn(text, "([iī](%.?))y", "i%2y") text = rsubn(text, "([iī]y(%.?))y", "i%2y") text = rsubn(text, "i(['h])", "e%1") text = rsubn(text, "u(['h])", "o%1") --kill incorrect characters text = rsubn(text, "([" .. dental .. pitchaccent .. devoice .. dtack .. "ʰ])", "") text = rsubn(text, "([ɴŋ])", "n") text = rsubn(text, "v", "w") -- Replace xw clusters text = rsubn(text, "xw([āē])", "x%1") text = rsubn(text, "xwa", "xu") -- for rare exceptions text = rsubn(text, "ʷ", "w") --ensure vowels are paired to a consonant text = rsubn(text, "([.])([" .. vowels .. "])", "%1'%2") text = rsubn(text, "([.])", "") text = rsubn(text, "ḍ", "z") text = rsubn(text, "ḏ", "z") text = rsubn(text, "ṯ", "s") text = rsubn(text, "ṭ", "t") text = rsubn(text, "ṣ", "s") text = rsubn(text, "ḥ", "h") -- THIS SHOULD ONLY BE DONE FOR HAZARAGI RETROFLEX ENTRIES -- THEY SHOULD NEVER APPEAR IN A MAIN ENTRY text = rsubn(text, "D", "ḍ") text = rsubn(text, "T", "ṭ") text = rsubn(text, "ɖ", "ḍ") text = rsubn(text, "ʈ", "ṭ") text = rsubn(text, "#'", "#") -- remove unnecessary marks text = rsubn(text, "#", "") return text end function export.romanize_ira(text, script, options) if type(text) == "table" then options = {} text, script = text.args[1], text.args[2] end text = rsubn(text, "`", "") text = rsubn(text, "ˈ", "") text = rsubn(text, "[,]", ", ") text = rsubn(text, " | ", "# | #") text = "##" .. rsubn(text, " ", "# #") .. "##" text = rsubn(text, "([iī]y(%.?))y", "i%2y") --kill incorrect characters text = rsubn(text, "([" .. dental .. pitchaccent .. devoice .. dtack .. "ʰ])", "") text = rsubn(text, "([ɴŋ])", "n") text = rsubn(text, "v", "w") -- Replace xw clusters text = rsubn(text, "([#%-])xw([āē])", "%1x%2") text = rsubn(text, "([#%-])xwa", "%1xu") text = rsubn(text, "ʷ", "") text = rsubn(text, "w(" .. vowel .. ")", "v%1") text = rsubn(text, "w(" .. consonant .. ")", "w%1") text = rsubn(text, "([" .. vowels_minus_a .. "])w", "%1v") text = rsubn(text, "v%(w", "v(v") text = rsubn(text, "(" .. consonant .. ")w#", "%1v#") text = rsubn(text, "wv", "vv") text = rsubn(text, "wæ", "væ") --ensure vowels are paired to a consonant text = rsubn(text, "([.])([" .. vowels .. "])", "%1'%2") text = rsubn(text, "([.])", "") text = rsubn(text, "iy", "īy") text = rsubn(text, "ay", "ey") text = rsubn(text, "aw", "ow") text = rsubn(text, "ḍ", "z") text = rsubn(text, "ḏ", "z") text = rsubn(text, "ṭ", "t") text = rsubn(text, "q", "ġ") text = rsubn(text, "ṯ", "s") text = rsubn(text, "ṣ", "s") text = rsubn(text, "ḥ", "h") text = rsubn(text, "ā", "â") text = rsubn(text, "u", "o") text = rsubn(text, "i", "e") -- remove Hazaragi retroflexes text = rsubn(text, "D", "d") text = rsubn(text, "T", "t") text = rsubn(text, "ɖ", "d") text = rsubn(text, "ʈ", "t") -- Tajik does not have vowel length text = rsubn(text, "([ēī])", "i") text = rsubn(text, "([ūō])", "u") -- terminal w is only possible in a dipthong text = rsubn(text, "([o]0)w#", "v#") text = rsubn(text, "a#", "e#") text = rsubn(text, "#ve#", "#va#") text = rsubn(text, "a%-", "e-") text = rsubn(text, "æ", "a") text = rsubn(text, "#'", "#") text = rsubn(text, "#", "") return text end function export.romanize_tg(text, script, options) if type(text) == "table" then options = {} text, script = text.args[1], text.args[2] end text = rsubn(text, "[,]", ", ") text = rsubn(text, " | ", "# | #") text = "##" .. rsubn(text, " ", "# #") .. "##" text = rsubn(text, "i(['h])", "ē%1") text = rsubn(text, "u(['h])", "ō%1") text = rsubn(text, "([iī]y(%.?))y", "i%2y") text = rsubn(text, "ˈ", "`") text = rsubn(text, "([iī]y`y)", "i`y") --kill incorrect characters text = rsubn(text, "([" .. dental .. pitchaccent .. devoice .. dtack .. "ʰ])", "") text = rsubn(text, "([ɴŋ])", "n") -- Tajik needs some Capital letters for headword spellings -- But Capital letters in the headword can only be initial text = rsubn(text, "w", "v") text = rsubn(text, "W", "V") -- Replace xw clusters text = rsubn(text, "xv([āē])", "x%1") text = rsubn(text, "xva", "xu") text = rsubn(text, "Xv([āē])", "X%1") text = rsubn(text, "Xva", "Xu") text = rsubn(text, "ʷ", "") --ensure vowels are paired to a consonant text = rsubn(text, "([.])([" .. vowels .. "])", "%1'%2") text = rsubn(text, "([.])", "") text = rsubn(text, "ḍ", "z") text = rsubn(text, "ḏ", "z") text = rsubn(text, "ṯ", "s") text = rsubn(text, "ṭ", "t") text = rsubn(text, "ṣ", "s") text = rsubn(text, "ḥ", "h") text = rsubn(text, "ē", "e") text = rsubn(text, "ō", "ü") text = rsubn(text, "ā", "o") text = rsubn(text, "Ē", "E") text = rsubn(text, "Ō", "Ü") text = rsubn(text, "Ā", "O") -- remove Hazaragi retroflexes text = rsubn(text, "ɖ", "d") text = rsubn(text, "ʈ", "t") -- Tajik does not have vowel length text = rsubn(text, "([iī])", "i") text = rsubn(text, "([ūu])", "u") text = rsubn(text, "([IĪ])", "I") text = rsubn(text, "([UŪ])", "U") text = rsubn(text, "`", "") text = rsubn(text, "#([ʾ])", "") text = rsubn(text, "#", "") return text end local function one_term_ipa(text, style) if style == "cls" then text = export.fa_cls_IPA(text) elseif style == "prs" then text = export.prs_IPA(text) elseif style == "kbl" then text = export.prs_kbl_IPA(text) or export.prs_IPA(text) --should ignore conversion if specified elseif style == "haz" then text = export.prs_haz_IPA(text) elseif style == "fa" then text = export.fa_IPA(text) elseif style == "teh" then text = export.fa_IPA(text) elseif style == "tg" then text = export.tg_IPA(text) end return text end -- style == one of the following: -- "cls": Classical Persian -- "prs": Dari Persian -- "kbl": Kabuli -- "haz": Hazaragi -- "fa": Iranian Persian -- "teh": Tehrani -- "tg": Tajik function export.IPA(text, style) local variants = {text} local function apply_sub(from, to1, to2) return function(item) if rfind(item, from) then if to2 then return {rsub(item, from, to1), rsub(item, from, to2)} else return {rsub(item, from, to1)} end else return {item} end end end local function call_one_term_ipa(variant) local result = { { phonemic = one_term_ipa(variant, style, false, err) } } local function apply_sub(item, from, to1, qual1, to2, qual2) if rfind(item.phonemic, from) or rfind(item.phonetic, from) then return { { phonemic = rsub(item.phonemic, from, to1), qualifiers = qual1 }, { phonemic = rsub(item.phonemic, from, to2), qualifiers = qual2 } } else return {item} end end return result end return flatmap(variants, call_one_term_ipa) end function export.express_styles(inputs, args_style) local pronuns_by_style = {} local expressed_styles = {} local function dostyle(style) pronuns_by_style[style] = {} for _, val in ipairs(inputs[style]) do local pronuns = export.IPA(val, style) for _, pronun in ipairs(pronuns) do table.insert(pronuns_by_style[style], pronun) end end end local function all_available(styles) local available_styles = {} for _, style in ipairs(styles) do if pronuns_by_style[style] then table.insert(available_styles, style) end end return available_styles end local function express_style(hidden_tag, tag, styles, indent) indent = indent or 1 if hidden_tag == true then hidden_tag = tag end if type(styles) == "string" then styles = {styles} end styles = all_available(styles) if #styles == 0 then return end local style = styles[1] -- If style specified, make sure it matches the requested style. local style_matches if not args_style then style_matches = true else local or_styles = rsplit(args_style, "%s*,%s*") for _, or_style in ipairs(or_styles) do local and_styles = rsplit(or_style, "%s*%+%s*") local and_matches = true for _, and_style in ipairs(and_styles) do local negate if and_style:find("^%-") then and_style = and_style:gsub("^%-", "") negate = true end local this_style_matches = false for _, part in ipairs(styles) do if part == and_style then this_style_matches = true break end end if negate then this_style_matches = not this_style_matches end if not this_style_matches then and_matches = false end end if and_matches then style_matches = true break end end end if not style_matches then return end local new_style = { tag = tag, represented_styles = styles, pronuns = pronuns_by_style[style], indent = indent } for _, hidden_tag_style in ipairs(expressed_styles) do if hidden_tag_style.tag == hidden_tag then table.insert(hidden_tag_style.styles, new_style) return end end table.insert( expressed_styles, { tag = hidden_tag, styles = {new_style} } ) end for style, _ in pairs(inputs) do dostyle(style) end local function diff(style1, style2) if not pronuns_by_style[style1] or not pronuns_by_style[style2] then return true end return not m_table.deepEquals(pronuns_by_style[style1], pronuns_by_style[style2]) end local fa_teh_different = diff("fa", "teh") local prs_kbl_different = diff("prs", "kbl") local prs_haz_different = diff("prs", "haz") -- Classical Persian express_style("[[w:en:Classical Persian|Farisiya klasîk]]", "[[w:en:Classical Persian|Farisiya klasîk]]", "cls") -- Dari Persian express_style( "[[w:en:Dari Persian|Darî, resmî]]", "[[w:en:Dari Persian|Darî, resmî]]", "prs" ) express_style("[[w:en:Dari Persian|Darî, resmî]]", "[[w:en:Dari#South-Eastern|Kabulî]]", "kbl", 2) express_style("[[w:en:Dari Persian|Darî, resmî]]", "[[w:en:Hazaragi dialect|Hazaragî]]", "haz", 2) -- Iranian Persian express_style( "[[w:en:Iranian Persian|Îran, resmî]]", "[[w:en:Iranian Persian|Îran, resmî]]", "fa" ) if fa_teh_different then express_style("[[w:en:Iranian Persian|Îran, resmî]]", "[[w:en:Tehrani accent|Tehranî]]", "teh", 2) end -- Tajik express_style( "[[:Kategorî:Tacikî|Tacikî, resmî]]", "[[:Kategorî:Tacikî|Tacikî, resmî]]", "tg" ) return expressed_styles end function export.show(frame) -- Create parameter specs local params = { [1] = {}, -- this replaces style group 'all' ["pre"] = {}, ["post"] = {}, ["ref"] = {}, ["style"] = {}, ["bullets"] = {type = "number", default = 1} } for group, _ in pairs(export.all_style_groups) do if group ~= "all" then params[group] = {} end end for _, style in ipairs(export.all_styles) do params[style] = {} end -- Parse arguments local parargs = frame:getParent().args local args = require("Module:parameters").process(parargs, params) -- Set inputs local inputs = {} -- If 1= specified, do all styles. if args[1] then for _, style in ipairs(export.all_styles) do inputs[style] = args[1] end end -- Then do remaining style groups other than 'all', overriding 1= if given. for group, styles in pairs(export.all_style_groups) do if group ~= "all" and args[group] then for _, style in ipairs(styles) do inputs[style] = args[group] end end end -- Then do individual style settings. for _, style in ipairs(export.all_styles) do if args[style] then inputs[style] = args[style] end end -- If no inputs given, set all styles based on current pagename. if not next(inputs) then local text = mw.title.getCurrentTitle().text for _, style in ipairs(export.all_styles) do inputs[style] = text end end for style, input in pairs(inputs) do inputs[style] = rsplit(input, ",") end local expressed_styles = export.express_styles(inputs, args.style) local lines = {} local function format_style(tag, expressed_style, is_first) local pronunciations = {} local formatted_pronuns = {} for _, pronun in ipairs(expressed_style.pronuns) do table.insert( pronunciations, { pron = "[" .. pronun.phonemic .. "]", qualifiers = pronun.qualifiers } ) local formatted_phonemic = "[" .. pronun.phonemic .. "]" if pronun.qualifiers then formatted_phonemic = "(" .. table.concat(pronun.qualifiers, ", ") .. ") " .. formatted_phonemic end table.insert(formatted_pronuns, formatted_phonemic) end -- Number of bullets: When indent = 1, we want the number of bullets given by `args.bullets`, -- and when indent = 2, we want `args.bullets + 1`, hence we subtract 1. local bullet = string.rep("*", args.bullets + expressed_style.indent - 1) .. " " -- Here we construct the formatted line in `formatted`, and also try to construct the equivalent without HTML -- and wiki markup in `formatted_for_len`, so we can compute the approximate textual length for use in sizing -- the toggle box with the "more" button on the right. local pre = is_first and args.pre and args.pre .. " " or "" local pre_for_len = pre .. (tag and "(" .. tag .. ") " or "") pre = pre .. (tag and m_qual.format_qualifier(tag) .. " " or "") local post = is_first and (args.ref or "") .. (args.post and " " .. args.post or "") or "" local formatted = bullet .. pre .. m_IPA.format_IPA_full { lang = lang, items = pronunciations } .. post local formatted_for_len = bullet .. pre .. "IPA(key): " .. table.concat(formatted_pronuns, ", ") .. post return formatted, formatted_for_len end for i, style_group in ipairs(expressed_styles) do if #style_group.styles == 1 then style_group.formatted, style_group.formatted_for_len = format_style(style_group.styles[1].tag, style_group.styles[1], i == 1) else style_group.formatted, style_group.formatted_for_len = format_style(style_group.tag, style_group.styles[1], i == 1) for j, style in ipairs(style_group.styles) do style.formatted, style.formatted_for_len = format_style(style.tag, style, i == 1 and j == 1) end end end local function textual_len(text) text = rsub(text, "<.->", "") return ulen(text) end local maxlen = 0 for i, style_group in ipairs(expressed_styles) do local this_len = textual_len(style_group.formatted_for_len) if #style_group.styles > 1 then for _, style in ipairs(style_group.styles) do this_len = math.max(this_len, textual_len(style.formatted_for_len)) end end maxlen = math.max(maxlen, this_len) end for i, style_group in ipairs(expressed_styles) do if #style_group.styles == 1 then table.insert(lines, "<div>\n" .. style_group.formatted .. "</div>") else local inline = '\n<div class="vsShow" style="display:none">\n' .. style_group.formatted .. "</div>" local full_prons = {} for _, style in ipairs(style_group.styles) do table.insert(full_prons, style.formatted) end local full = '\n<div class="vsHide">\n' .. table.concat(full_prons, "\n") .. "</div>" local em_length = math.floor(maxlen * 0.68) -- from [[Module:grc-pronunciation]] table.insert( lines, '<div class="vsSwitcher" data-toggle-category="Telafûzê" style="width: ' .. em_length .. 'em; max-width:100%;"><span class="vsToggleElement" style="float: right;">&nbsp;</span>' .. inline .. full .. "</div>" ) end end -- major hack to get bullets working on the next line return table.concat(lines, "\n") .. "\n<span></span>" end --Tajik from Cyrillic local t_consonants = { ['g'] = 'ɡ', ['j'] = 'd͡ʒ', ['ġ'] = 'ɣ', ['y'] = 'j', ['š'] = 'ʃ', ['č'] = 't͡ʃ', ['x'] = 'x', ['ž'] = 'ʒ', ['\''] = 'ʔ' } local t_vowels = { ['a'] = 'a', ['ü'] = 'ɵ', ['o'] = 'o', } function export.tg_phonemic(text) text = require('Module:languages').getByCode('tg'):transliterate(text) text = m_str_utils.lower(text) text = rsubn(text, "`", "ˈ") text = rsubn(text, "%-", "") text = rsubn(text, "[-,]", " ") text = rsubn(text, "%.", "") -- Replace vowels text = rsubn(text, ".", t_vowels) -- Replace consonants text = rsubn(text, ".", t_consonants) return text end function export.tg_phonetic(text) text = require('Module:languages').getByCode('tg'):transliterate(text) text = m_str_utils.lower(text) text = rsubn(text, "^%-", "‿") text = rsubn(text, "(i)", "ī") text = rsubn(text, "(u)", "ū") text = rsubn(text, "(e)", "ē") text = rsubn(text, "(ü)", "ō") text = rsubn(text, "(o)", "ā") text = rsubn(text, "ʾ", "'") text = rsubn(text, "%-", "") text = syllabify(text) text = export.tg_IPA(text) text = mw.ustring.toNFC(text) return text end function export.show_tg(frame) local tg = require("Module:languages").getByCode("tg") local args = frame:getParent().args local p, results = {}, {} if args[1] then for index, item in ipairs(args) do table.insert(p, (item ~= "") and item or nil) end else if mw.title.getCurrentTitle().nsText == "Template" then p = {"чаҳоршанбе"} else p = {mw.title.getCurrentTitle().text} end end for _, word in ipairs(p) do table.insert(results, {pron = "/" .. export.tg_phonemic(word) .. "/"}) table.insert(results, {pron = "[" .. export.tg_phonetic(word) .. "]"}) end return "* " .. m_IPA.format_IPA_full { lang = tg, items = results } end return export cuv0emf1uy82j6s008v9i6tt1k1ph3q Şablon:quote-book 10 1326027 6329780 6105832 2026-08-12T21:53:56Z Wikihez 7344 Ji bo [[Şablon:jêder-kitêb]] hat beralîkirin 6329780 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:jêder-kitêb]] crpolxhi8g1rb43jp5tboxbdkehhxiu Şablon:Ç:kho:Bailey 10 1326157 6329866 6067099 2026-08-13T00:13:43Z Wikihez 7344 Wikihezî/ê navê [[Şablon:Bailey]] weke [[Şablon:Ç:kho:Bailey]] guhart 6067099 wikitext text/x-wiki * {{kitêb|nivîskar={{zim|en|Bailey, H. W.}}|sernav=Ferhenga xotan-sekeyî|sernavê orjînal={{zim|en|Dictionary of Khotan Saka}}|weşanxane=Cambridge University press|cih=Cambridge, London, New York, Melbourne|rûpel={{{r|{{{rûpel|}}}}}}}}<noinclude>[[Kategorî:Çavkanî]]</noinclude> eo4g9vdjflctrb6l5cs4oi7htjpwswj 6329868 6112097 2026-08-13T00:13:55Z Wikihez 7344 Wikihezî/ê navê [[Şablon:R:kho:Bailey]] weke [[Şablon:Ç:kho:Bailey]] guhart 6112097 wikitext text/x-wiki {{cite-book<!-- -->|last=Bailey<!-- -->|first=H. W.<!-- -->|authorlink=H. W. Bailey<!-- -->|title=Dictionary of Khotan Saka<!-- -->|entry={{{head|{{{1|}}}}}}<!-- -->|location=Cambridge, London, New York, Melbourne<!-- -->|publisher=Cambridge University press<!-- -->|year=1979<!-- -->|page={{{page|{{{2|}}}}}}<!-- -->|pages={{{pages|}}}<!-- -->|passage={{{passage|{{{3|}}}}}}<!-- -->}}<noinclude>[[Category:Khotanese reference templates|Bailey]][[Category:Proto-Iranian reference templates|Bailey]]</noinclude> nh5didhur19s7n61gqsfia4q1n9hwfw 6329870 6329868 2026-08-13T00:19:59Z Wikihez 7344 6329870 wikitext text/x-wiki {{#invoke:quote|call_template |template=cite-book|en<!-- -->|last=Bailey<!-- -->|first=H. W.<!-- -->|authorlink=H. W. Bailey<!-- -->|title=Dictionary of Khotan Saka<t:Ferhenga xotan-sekeyî><!-- -->|entry={{{head|{{{1|{{{ser|}}}}}}}}}<!-- -->|location=Cambridge, London, New York, Melbourne<!-- -->|publisher=Cambridge University press<!-- -->|year=1979<!-- -->|pageparam=page,r,rûpel,2<!-- -->|pages={{{pages|{{{rûpelên|}}}}}}<!-- -->|passage={{{passage|{{{3|{{{jêgirtin|}}}}}}}}}<!-- -->|allowparams=1,volume,vol,cild,passage,jêgirtin,rûpelên,pages,ser }}<noinclude>{{çavkkat|kho|ira-pro}}</noinclude> lk59w4cumi8f02zg35ql8dh452ajq1k Şablon:Ç:Jaba:1879 10 1326394 6329925 6329533 2026-08-13T11:07:52Z Wikihez 7344 6329925 wikitext text/x-wiki {{#invoke:quote|call_template |template=cite-book |last=Jaba |first=Auguste |authorlink=August Kościesza-Żaba |last2=Justi |first2=Ferdinand |authorlink2=Ferdinand Justi |title=Dictionnaire Kurde-Français |trans-title=Ferhenga Kurdî-Fransî |entry={{{1|}}} |location=Saint Petersburg |publisher=Imperial Academy of Sciences |year=1879 |pageparam=page,r,rûpel |pageurl=https://books.google.com/books?id=aggVAAAAYAAJ&pg=PA{{#expr:{{#invoke:string/templates|match|{{{page|{{{pages|{{{rûpel|{{{r|}}}}}}}}}}}}|[0-9]+}}}} |allowparams=1 }}<noinclude>{{belgekirin}}</noinclude> q3oxjilzfntfy713hytwymxmy42jn33 Şablon:J:ku:Qur'an:2023 10 1326428 6329834 6119110 2026-08-12T23:36:47Z Wikihez 7344 6329834 wikitext text/x-wiki {{{{#if:{{{jêgirtin|{{{jg|}}}}}}|jêder-}}kitêb|ku|jêgirtin={{{jêgirtin|{{{jg|}}}}}}|r={{{rûpel|{{{r|}}}}}}|sernav=Meala Tewhîd a Qur'ana Mecîd|terciman=Orhan Eren|weşanxane=Tevhid Basım Yayın|isbn=978-6057176424|sal=2023|url=https://archive.org/details/221102-meal-kurtce}}<noinclude>{{refcat}}</noinclude> f6p15himfo78hyo1q0fw8yayiq1zazj Wîkîferheng:Dîwan/2026 4 1327120 6329622 6329444 2026-08-12T13:48:01Z Wikihez 7344 /* Gotûbêj */ Bersiv 6329622 wikitext text/x-wiki <noinclude>{{Dîwan/arşîv-ser|2026}}</noinclude> {{clear}} == Daxwazên standardkirinê == https://ku.wiktionary.org/wiki/W%C3%AEk%C3%AEferheng:Daxwaz%C3%AAn_standardkirin%C3%AA, Gelo di vê malperê de peyvên hatîye standart kirin; ji malperê rakin? Zêde tehlîhev e. @[[Bikarhêner:Bikarhêner|Bikarhêner]]@[[Bikarhêner:Guherto|Guherto]] [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 10:03, 8 kanûna paşîn 2026 (UTC) :@[[Bikarhêner:Rewiye tine|Rewiye tine]] [[Taybet:Tercîh#mw-prefsection-gadgets]] li vir amûra [[MediaWiki:Gadget-aWa.js/belgekirin|awa]] aktîv bike û pê re dikarî gotûbêjan arşîv bikî. Li sayfa [[WF:DS]] li kêleka her sernavê gotûbêjê <nowiki>[arşîv bike]</nowiki> derdikeve, pê lê bike û ew ê arşîv bike. Eger nikarî tu tenê şablona {{ş|ds-kirî}} îlawe bike, ez ê dûre arşîv bikim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:35, 5 tîrmeh 2026 (UTC) == Standartkirin == Sala borî, min pêşnîyazek kiribû. Halî hazir piştî daxwaza standarkirinê em du heftî disekinin, eger kesek fikrek dîyar neke. Raste rast peyv li gor ferhenga standart a mezopotamyayê tê standart kirin. Ji xwe sazîyek vê karî dike çima em vê barî dikin stuyê xwe. Mesela ez çaxe di wîkîferhengê de peyvek digêrim; standart a peyvê jî li cem xwe kontrol dikim. Eger destûr hebe bi germî dikarim wê malperê standart bikim. Benda bûna du heftîyan gelo ne zehmet e? Duyemîn pêşnîyaza min nîşandana standarta peyvê di malpera de ye. Kesek dema malperan binêre, divê li jora malperan bibîne ku ev peyv standart e. Ev jî hîzmet e. Çimkî nivîskar, wergêr, edîtor, rojnemavan hez dikin bi peyvê standart binivîsin. https://ku.wiktionary.org/wiki/k%C3%AAf li vir wekî mînak min daye nîşan. Lê îfade eger wisa be: Standarda Rastnivîsîna Ferhenga Kurdî a Weqfa Mezopotamyayê kêf (r. 253) e yê çetir be. Çimkî îfadeya berê de peyva kurdî-tirkî derbas dibe û di mejîyê mirov de tevlihevî çêdibe.@[[Bikarhêner:Bikarhêner|Bikarhêner]]@[[Bikarhêner:Guherto|Guherto]] [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 10:25, 8 kanûna paşîn 2026 (UTC) :Merheba. Hevalno dîyar e karê standarkirinê li wîkîferhengê rawestîya ye. Min sê peyv ji bo standartkirinê qeyd kir. Kes li ser şîrove nenivîsî. Mehek jî li ser derbas bû. Aniha ez dikarim van rupelan biguherim. Li gor qaîdeya hatine danîn wisa ye. Daxwaza min heta niha jî ew e kelîmeyên di ferhenga standartkirinê de heyî divê em bikaribin rasterast li vir jî bikin standart. An jî demê kurttir bikin. Li weqfa mezapotamyayê 20 mirov digêhin hev li ser peyvekî seetan nîqaş dikin. Ma hewceyê em jî li vir nîqaş bikin? Tevlî vê jî ji xwe kes li ser vê mijare nasekîne van dema. Xeynî vê pêşnîyaza min nîşandana standarta peyvê di malpera de hebû. Li ser malperê 'Standarda Rastnivîsîna Ferhenga Kurdî a Weqfa Mezopotamyayê kêf (r.253) e' Tiştek mîna wî hebe yê gelek kêrî her cure nivîskarê me were. Çimkî hin nivîskarên me hez dike bi kelîmeyên standart binivîse. Di malperê de bila vê hêsanî fam bike çêtir e. @[[Bikarhêner:Bikarhêner|Bikarhêner]]@[[Bikarhêner:Ghybu|Ghybu]] [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 18:35, 17 sibat 2026 (UTC) ::Merheba @[[Bikarhêner:Rewiye tine|Rewiye tine]]. Ev format pir xirab dibe. Tu dikarî li beşa Çavkaniyê binivîsî bi şablona {{ş|kitêb}} binivîsî çêtir e û tê eynî maneyê. Lê her kes standarda Weqfa Mezopotamyayê qebûl nakin û ez jî şibhê dikim ku ev websîte bi awayekî kolektîv tê çêkirin an na. Loma em bi ya kitêba rastnivisînê çêkin û eger îtîraz tinebe, şablona {{ş|ds-kirî}} li gotûbêja [[WF:DS]] binivîse, dûre li gotûbêjê arşîv bike, ne hewce ye li hêviya kesên din bisekinî. Eger itirazek hebe, ê ku dixwaze dûre dîsa şablona ds zêde bike. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:30, 5 tîrmeh 2026 (UTC) :::[https://berwarnews.com/ferhenga-rastnivisine-qonaxeke-giring-a-standardkirina-kurmanci-ye/ Roportaja Mikail Bülbül] li ser proseya standardkirinê. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:57, 9 tîrmeh 2026 (UTC) ::::Min nû dît an jî nû hatiye zêdekirin lê meqaleyek bi navê [https://www.ferhengkurdi.com/?q=iltihap&modal=lijne lijneya edîtorîyê] nivîsandine [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:40, 22 tîrmeh 2026 (UTC) == <span lang="en" dir="ltr">Annual review of the Universal Code of Conduct and Enforcement Guidelines</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> I am writing to you to let you know the annual review period for the Universal Code of Conduct and Enforcement Guidelines is open now. You can make suggestions for changes through 9 February 2026. This is the first step of several to be taken for the annual review. [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2026|Read more information and find a conversation to join on the UCoC page on Meta]]. The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|you may review the U4C Charter]]. Please share this information with other members in your community wherever else might be appropriate. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]])<section end="announcement-content" /> </div> 21:02, 19 kanûna paşîn 2026 (UTC) <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> == Request for comment (global AI policy) == <bdi lang="en" dir="ltr" class="mw-content-ltr"> Apologies for writing in English. {{int:Please-translate}} A [[:m:Requests for comment/Artificial intelligence policy|request for comment]] is currently being held to decide on a global AI policy. {{int:Feedback-thanks-title}} [[Bikarhêner:MediaWiki message delivery|MediaWiki message delivery]] ([[Gotûbêja bikarhêner:MediaWiki message delivery|gotûbêj]]) 00:58, 26 nîsan 2026 (UTC) </bdi> <!-- Message sent by User:Codename Noreste@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30424282 --> == Guharto == : <small>→ Ji rûpela ''[//ku.wiktionary.org/w/index.php?title=Got%C3%BBb%C3%AAj:berf%C3%AEtik&oldid=6233338 Gotûbêj:berfîtik]'' hatiye girtin.</small> Silav {{r|Ghybu}} ma hewce ye em guhartoyan jî kategorîze bikin? Li vê [[ژیشک]] binere, tije guhartoyên wê hene, ku em ji gişan re guhandar binivîsin dê 10 navên heman hebin di nav wê kategorîyê de. Tu çi difikirî? [[Bikarhêner:Keyomerd|Keyomerd]] ([[Gotûbêja bikarhêner:Keyomerd|gotûbêj]]) 09:40, 26 nîsan 2026 (UTC) :{{silav|Keyomerd}}. Erê, problem çî ye? {{=)}} Ew jî tên bikaranîn... Dema ku peyvek tê çêkirin hewce ye ku em hemû agahiyên wan binivîsin: bilêvkirin, bikaranîn, mînak, terîm, herêm, tewandin, etîmolojî... :Bi min peyvên ku wekî ''guherto'' hatine nivîsandin bi nivîsa {{w|Italic type|îtalîk|ziman=en}} (xwahr) di nav kategoriyan de werin nişan kirin (ji bo cudakirinê). {{ping|Ferhengvan|Bikarhêner}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:40, 30 nîsan 2026 (UTC) ::Yên '''''nestandard''''' di kategorîyan de biferq werin nîşandan baştir e. Qene em karibin wan ji yên stadard ferq bikin. @[[Bikarhêner:Ghybu|Ghybu]] Xêra xwe hûn sîstemeke wisa çêkin. -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 14:36, 1 gulan 2026 (UTC) :::Merheba @[[Bikarhêner:Keyomerd|Keyomerd]] û @[[Bikarhêner:Bikarhêner|Bikarhêner]] ev xisûsiyet jixwe di şablonên rêzimanê de heye, wextê {{param|formaalt|1}} dinivîsin, made dikeve Kategoriya [[:Kategorî:Formên alternatîv bi kurmancî]] li gorî koda zimanî jî zimanên din tê çêkirin. Hemû madeyên kurmancî bi alfabeya erebî dikevin vê kategoriyê lê nizanim ev tiştekî rast e Yan xelet e, ji bo nîşandanê min çêkiribû lê min hîn wext nedît ku nîqaşek li ser çêkim. Qaîdeyên bikaranîna vê parametreyê di wîkiya îngilîzî de jî tam ne belî ye. Du gotûbêj [https://en.wiktionary.org/wiki/Wiktionary:Requests_for_moves,_mergers_and_splits#Category:Alternative_forms_by_language] [https://en.wiktionary.org/wiki/Wiktionary:Beer_parlour/2024/June#Decluttering_the_altform_mess] çêkirine lê ji bo îngilîzî ev parametre nehatiye bikaranîn. Min ji bo nîşandanê niha [https://ku.wiktionary.org/w/index.php?title=bax%C3%A7%C3%AA_zarokan&diff=prev&oldid=6241372] ceriband lê bi min xelet e. Em çawa bikin? Kengî vê parametreyê bi kar bînin? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:29, 8 tîrmeh 2026 (UTC) ::::@[[Bikarhêner:Kurdanparez|Kurdanparez]] Tu çi difikirî? Ji bo zazakî [https://ku.wiktionary.org/w/index.php?title=a_c%C4%B1_geyrayene&oldid=6241396 wisa] bikin? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:55, 8 tîrmeh 2026 (UTC) :::::Kategorîyekê cuda baş dibe. Wextê ku ez li kategorîya "lekêren bi zazakî" dinêrim, ez hem formê bi şikilê Johnsonê û formê standardê dibînim. Zaten wexte ku ez dikevim ê Johnsonê, min dibe formê standardê. Kategorîyekê cuda, bi taybetî ji bo nivîsandinên alternatîf, baş dibe. :::::Lê em bîr nekin ku wextê ku em bo formên alternatîf yên devokî qal dikin, belkî adil neye ku em ev bişînin derekê din yê ku însan ewqas nabînin. [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:03, 8 tîrmeh 2026 (UTC) ::::::@[[Bikarhêner:Kurdanparez|Kurdanparez]] Gelo min rast fêm kir? Tu dibêjî formên {{q|ku|kîvroşk}} bi dîqet werin guhartokirin lê bi yên bi alfabeya Jacobsonê hemû bikin {{param|formaalt|1}}? Formên Jacobsonê dê bikevin Kategoriya [[:Kategorî:Lêker bi zazakî|Lêker bi zazakî]] û [[:Kategorî:Lema bi zazakî|Lema bi zazakî]] yan na? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 23:55, 8 tîrmeh 2026 (UTC) :::::::Bi min naxwaze di wan kategoriyan de bikeve. Wek tu dibînî dûplîkat pir hene. Bi min çareya baştir yên Johnsonê di katehgorîyekê din bikevin (bila format li rûpelan neyin guherandin, bi tenê kategorî) [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 00:37, 9 tîrmeh 2026 (UTC) == Peyvên soranî bi latînî ([[:Kategorî:Soranî]]) == Silav, di nav vê kategoriyê (''[[:Kategorî:Soranî]]'') de pirr peyv tenê bi alfabeya latînî hatine nivîsandin. Divê ew mutleq jî bi alfabeya erebî werin transkrîbe kirin ji ber ku soranî bi alfabeya erebî tê nivîsand... Bikarênerên ku soranî dizanin dikarin wan sererast bikin? Mînakên guhertinan: [//ku.wiktionary.org/w/index.php?title=zor%C3%AEne&curid=6584&diff=6233355&oldid=5859303], [//ku.wiktionary.org/w/index.php?title=s%C3%AAw&diff=6233097&oldid=6233003], [//ku.wiktionary.org/w/index.php?title=sewz&diff=6233313&oldid=6069107], ... Spas! [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 01:16, 2 gulan 2026 (UTC) == <span lang="en" dir="ltr">Vote now in the 2026 U4C election</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> Eligible voters are asked to participate in the 2026 [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] election. More information–including an eligibility check, voting process information, candidate information, and a link to the vote–are available on Meta at the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|2026 Election information page]]. The vote closes on 2 June 2026 at [https://zonestamp.toolforge.org/1780358400 00:00 UTC]. Please vote if your account is eligible. Results will be available by 14 June 2026. -- In cooperation with the U4C,<section end="announcement-content" /> </div> [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 17:15, 27 gulan 2026 (UTC) <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 --> == RFC about AI-generated content in Wikimedia Commons == <bdi lang="en" dir="ltr">Apologies for writing in English, please help translate this message to your language. You are invited to participate in a [[c:Commons:Requests for comment/Policy update for AI content|request for comment on Wikimedia Commons about a policy update for AI content]]. This may affect files that are uploaded to Wikimedia Commons for use on this project. Thank you. [[m:User:Codename Noreste|Codename Noreste]] ([[m:User talk:Codename Noreste|gotûbêj]])</bdi> 17:12, 23 hezîran 2026 (UTC) <!-- Message sent by User:Codename Noreste@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 --> == <span lang="en" dir="ltr">Deployment of Legal and Safety Contacts Link in the Footer of Your Wiki</span> == <div lang="en" dir="ltr"> <section begin="Message"/> '''Legal & Safety Contacts''' Hello community, the Wikimedia Foundation has provided a [[wmf:Special:MyLanguage/Legal:Wikimedia Foundation Legal and Safety Contact Information|single legal and safety contact page]], to be linked in the footer of your wiki, to ensure access to accurate legal information. This is a regulatory requirement. We have already rolled out links to English, German, Italian, Spanish and other wikis and we will deploy to your wiki soon. [[m:Special:MyLanguage/Wikimedia_Foundation_Legal_and_Safety_Contacts_FAQ|Please read more on the project page]] and leave any comments in this thread or on the [[m:Special:MyLanguage/Talk:Wikimedia Foundation Legal and Safety Contacts FAQ|talk page]]. <section end="Message"/> </div> -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 13:31, 25 hezîran 2026 (UTC) <!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=30731267 --> == Jêbirina ferhenga Sadallah == Merheba @[[Bikarhêner:Guherto|Guherto]] Îmkan heye lîsteyeke wisa çêkî ku hemû sayfeyên Cyrusbot çêkir yên ku tê de tenê tercimeyeke îngilîzî heye û ev tercime jî hatibe jêbirin? Nimûne ''[[derdzanî]], [[êşzanî]]'' tenê tercimeya [[pestology]] heye ew jî ji ber heqê telîfê hatiye jêbirin. Nimûneyeke din ''zêrrgeh'', ''zêrrkar'' [[goldsmith]] hatiye jêbirin zêr wekî zêrr hatiye guhartin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:48, 26 hezîran 2026 (UTC) :Temam @[[Bikarhêner:Wikihez|Wikihez]], lê vê heyvê ez nikarim, heyva were ez ê li vê meseleyê vegerim înşellah. [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 22:51, 2 tebax 2026 (UTC) == Beşa Tewandin bo kurmancî == Bi ya min şablona {{ş|ku-tewîn-nav}} û ya fiîlê em bixin beşa Tewandinê (wekî [[şodir|zazakî]]. Bi vî awayî hem ji aliyê şiklî ve hem jî ji aliyê bikaranînê ve xweştir xuya bike. Eger di qismê Tewandinê de be, ê ku dixwaze îzah û notên xwe yan jî emilandinên din jî dikare binivîse. Hûn çi dibêjin? @[[Bikarhêner:Ferhengvan|Ferhengvan]], @[[Bikarhêner:Ghybu|Ghybu]], @[[Bikarhêner:Bikarhêner|Bikarhêner]]. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:05, 6 tîrmeh 2026 (UTC) :Belkî em dikarin Formata şiweyan wekî ya behdînî jî têxin nav şablonê. Pir caran şiklê tabloya Tercimeyan ji ber dirêjbûna şablona teqînê jî xirab dibe wekî [[astrofizîk]]. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:08, 6 tîrmeh 2026 (UTC) :Min mijarê te li jorê yê xwe dît, fikirên min jî hene eger baş e. Yê ku te gotiye bi min baş dibe, ji ber ku her rûpel ji vê mîna hev dibe. Em ê rindtir jî ferq li nav devokan binivîsin. [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 11:44, 7 tîrmeh 2026 (UTC) ::@[[Bikarhêner:Bikarhêner|Bikarhêner]] fikr? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 08:44, 15 tîrmeh 2026 (UTC) :::Formata ku te teklîf kirîye jî ne xerab e, baş tê xuyan. Feqet bi min halê berê (mewcûd) baştir e. Ji ber ku ev şablon (ku-tewîn-nav) bi piranî kurt in û ji bo her kesî ne mihîm e, lewma li kinarê bi formeke hebe ku karibe were vekirin û girtin baştir e. Lê belê ger şablon dirêjtir bin, em karin wekî ya wîkîya almanî bikin (ew jî wekî teklîfa te ye). -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 09:50, 15 tîrmeh 2026 (UTC) ::::Em tabloya lêkerê jî rakin? 1)Em wekî navdêran bikin, bin beşa Tewandinê 2) Tabloya {{ş|ku-tewîn-reh}} were şûnda tabloya {{ş|ku-tewîn-lk}}: '''[//ku.wiktionary.org/w/index.php?title=gotin&diff=prev&oldid=6323518]''' , '''[//ku.wiktionary.org/w/index.php?title=vexwarin&diff=prev&oldid=6323525]''' 3) Bi şablona {{ş|tewandin}} û bi parametreyên {{param2|niha}} û {{param2|borî}}: '''[//ku.wiktionary.org/w/index.php?title=vexwarin&diff=6323528&oldid=6323525]'''--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 10:46, 3 tebax 2026 (UTC) :::::Ez dibêjim em {{ş|ku-tewîn-lk}} bixin bin beşa Tewandinê feqat dema niha û borî tevî formên wan ên negatîv tê de cih bigire, hinek fireh be jî baş e. Dilê min dixwaze yek ji opsiyonên 2 û 3 tevî beşa Tewandinê jî bi kar bînin lê nizanim kîjan hilbijêrin? Herwiha ji bo îsman em dikarin resim zêde bikin ji bo nîşandanê, em ê fiîlan çawa bikin? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 13:10, 3 tebax 2026 (UTC) ::::::Bi min ji bo kesên ku kurmancî dizanin, tabloya tewandinê "piranî" ne hewce ye. Dema ku ez lêkereke nû hu dikim pêşta rehê wê digerim paşê jî devoka wê... Şablonana "ku-tewîn-reh" pirr dirêj nîne: li ser mobîlê jî pirsgirêk nîne: bin beşa "Lêker"ê de tê nivîsandin: lojîk e. Problema beşa Tewandinê va ye: em ê hertim du rûpel serrast bikinê, rupela lêker (beşa "Tewandinê") û rûpela Tewandin:''lêker''. Bila hêmû gotûbêj tenê li ser rûpela Tewandinê were kirin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 15:06, 3 tebax 2026 (UTC) :::::::Erê em ku-tewîn-lk bi ku-tewîn-reh biguherînin dê baştir bibe. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:30, 4 tebax 2026 (UTC) == Reşwî == Silav ji we gî re, Pirsekê min heye. Ez difikirim şablonekê din çê bikim boy devokek kurmancî, yê êla Reşwî. Ew lêkerên xwe hinek cuda ditewînin. Mesela te hem "ez dikim" bêjî yan jî "ez dikime", "em dikinî, em tênî, te em kuştinî" (ne "em dikin") dema xwe yek in lê maneyên xwe ne yek in, "ez bikim" "ez ê bikim" "ez bikime" û dewamên xwe hemû demên xwe yek in lê mane dîsa ne yek in. Eger min çê kir, şûna xwe li ku derê tînim? Ez difikirim li tewandina devokên kurdî yê ku "tabên" xwe hene "kurmancîya rojavayî", "kurmancîya standard" hsw. Lê tewandin ewqes cuda ye dixwaze ku wî şablona tewandina kurdî pir were guherîn. Hûn çi dibêjin? (R: Hûn dewên çi?) [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 11:38, 7 tîrmeh 2026 (UTC) :{{silav|Kurdanparez}} Binêre mînaka devoka ''rojhilatî'': [[Modul:ku-tewandin#L-135]] / [[Modul:ku-tewandin#L-138|L138]] / [[Modul:ku-tewandin#L-143|L-143]], .. Di nav modula ''ku-tewandin"-ê de tê çêkirin. [[Gotûbêja modulê:ku-tewandin#Paşgirên lêkeran di kurmanciya rojhilatî de]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 13:09, 7 tîrmeh 2026 (UTC) ::PS: Dema niha: [[Modul:ku-tewandin#L-128]]; dema borî: [[Modul:ku-tewandin#L-153]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 13:15, 7 tîrmeh 2026 (UTC) :::Merheba @[[Bikarhêner:Ghybu|Ghybu]], Eger mimkin be tu dikarî yên devokî têxî binmodulekê û bila modul load bike, bi vî awayî belkî çêkirina yên nû û famkirina modulê hêsantir be? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 15:09, 7 tîrmeh 2026 (UTC) :::Lê di devokê reşwî de hem dema niha yê statîk heye (Îng: I do -> Ez dikim) û yê progressîf heye (I am doing -> Eîz (nêr) Ez î (mê) dikime, yan jî Ez î dikime/Ez ê dikime). Reşwî ji yê standardê pirtir bo zayend ferq tîne, hem jî li dema pêşî (Ez ê bikim (Nêr) ez a bikim (Mê)). Dema pêşî jî formên cuda hene (Ezêk bikime (I will be doing it) û ez ê/a bikim (I will do it)) :::Ev di modûlê têhel bê? [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:09, 8 tîrmeh 2026 (UTC) == WF:Xebat == Min sayfeya [[WF:Xebat]] çêkir, xeletiyên ku hûn ferq dikin ji kerema xwe lê zêde bikin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:35, 15 tîrmeh 2026 (UTC) == Modul:quote == @[[Bikarhêner:Ghybu|Ghybu]], @[[Bikarhêner:Bikarhêner|Bikarhêner]], @[[Bikarhêner:Keyomerd|Keyomerd]], @[[Bikarhêner:Ferhengvan|Ferhengvan]] Merheba, ez modula îngilîzî ya jêgirtin û çavkaniyan li gorî şablonên {{ş|jêder}} format dikim û ji bo ku hertişt wekî formata me ya niha be, gelek serê min diêşe. Ez dibêjim bila em dev ji formata niha berdin wekî ya îngilîzî bi kar bînin ji ber ku gelek xisûsiyetên îngilîzî hene ku yekî dikare biemilîne. Hûn ê bibêjin niha ji kû hat bîra tê, min got [[Wîkîferheng:Xebat#MediaWiki:Gadget-start.js|start.js]] nû bikim û min dît otomatîk çavkanî bi riya [[mw:Citoid]]ê bi riya DOI, ISBN û lînk tê çêkirin, min got wiya jî li skrîptê îlawe bikim loma min [[Wîkîferheng:Xebat#Mediawiki:Gadget-citoid-helper.js|Mediawiki:Gadget-citoid-helper.js]] hazir kir lê hin parametreyên Citoidê kêm bûn, min got ka wana rast bikim, min dît formata me ya niha ti standard bi kar nayîne tenê parametreyan bi virgulê li hev dixe. Ez dibêjim formata îngilîzî baştir e, hem ne îtalîk e ku bi hêsanî tên xwendin, hem jî tarîx û çavkanî herî pêşî tên nîşandan ku ji bo peyitandinê bo min muhîm e. Modula îngilîzî de hema bêje her tişt hatiye çêkirin, eger em rûnin tenê yên lazim li şablona çavkaniyên xwe binivîsin ew ê gelek wext bistîne. Eger em modula îngilîzî bi kar bînin, em ê hem karibin şablonên îngilîzî bi hêsanî û rast kopî bikin hem jî kurdîkirina parametreyan gelek hêsan e. Fikir? --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:20, 24 tîrmeh 2026 (UTC) : Ji bo miqayesekirinê bnr. [[:en:Template:quote-book]] / [[Şablon:jêder-kitêb/ceribandin]] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:32, 24 tîrmeh 2026 (UTC) ::Bi min bila yê mewcûd jî bimîne, ew jî şiklen xweş û baştir e. Feqet bi min jî yên îngilîzî rehettir in, eger rastkirina yê mewcûd zehmet be, em rasterast wan ji xwe re bînin û tercime bikin. -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 09:41, 24 tîrmeh 2026 (UTC) :::Ez êvarê ve dixebitim, min nêzîk kiribû lê min got belkî hûn qane bibin lê xuya ye hûn ê hîn serê min gelek biêşînin {{=D}} [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:59, 24 tîrmeh 2026 (UTC) ::::@[[Bikarhêner:Bikarhêner|Bikarhêner]] û @[[Bikarhêner:Ghybu|Ghybu]] Eger îtîrazek tinebe, ez ê îtalîk ji jêgirtinê rakim... Jixwe bi riya [jêgirtin] dikare were veşartin û her daim bi * dest pê dike loma bi hêsanî tê fêmkirin û xwendin rihettir dibe. Bnr. [https://ku.wiktionary.org/w/index.php?title=W%C3%AEk%C3%AEferheng:ceribandin/nim%C3%BBne&oldid=6277132#L%C3%AAker_2 ceribandinê] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:13, 24 tîrmeh 2026 (UTC) == Request for comment (the future of Abstract Wikipedia) == <bdi lang="en" dir="ltr" class="mw-content-ltr"> Apologies if this has not yet been translated into your wiki's language. {{int:Please-translate}} You are invited to voice your opinions in a [[:m:Requests for comment/The future of Abstract Wikipedia|request for comment about the future of Abstract Wikipedia]]. {{Int:Feedback-thanks-title}} [[:m:User:Kowal2701|Kowal2701]] ([[:m:User talk:Kowal2701|talk]]) 12:25, 24 tîrmeh 2026 (UTC) </bdi> <!-- Message sent by User:DreamRimmer@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 --> == ''mê'' yan ''nêr'' li gorî maneyê / ''mê'' yan ''nêr'' (bikaranîn dudil e) == [//ku.wiktionary.org/w/index.php?title=xelat&diff=prev&oldid=6291766]: Mixabin pirr bikarhêner şûnda parametreya <code>z=m/n</code> ('' m yan n li gorî maneyê'') <code>z=mn</code> (''m yan n (bikaranîn dudil e)'') bi kar tînin ([[Şablon:navdêr#Parametre]]) ji ber ku di nav her du nivîsê de pir ferq nebînin. Nizanim em ê dîsa parametreya <code>z=nt</code> (''nêtar'') çêkin, wekî berê: [//ku.wiktionary.org/w/index.php?title=W%C3%AEk%C3%AEferheng:D%C3%AEwan/ar%C5%9F%C3%AEv_2019&oldid=6104681#Zayend]. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 00:17, 28 tîrmeh 2026 (UTC) :Merheba {{r|Ghybu}} {{demo|sep=wisa xuya dibe:<br>|<nowiki>{{navdêr|ku|kelîme|c=mn}}</nowiki>}} Ya din jî; {{demo|sep=wisa xuya dibe:<br>|<nowiki>{{navdêr|ku|kelîme|c=m/n}}</nowiki>}} Tu dixwazî em wana berevajî bikin? Not: nêtar ji bo kurmancî nabe, mn û m/n baş in. Berê ji ber ku m/n tinebû, her kes li gorî parametreyên heyî dixebitî. Niha hene bi min problem nîne eger em berevajî nekin.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 05:32, 28 tîrmeh 2026 (UTC) : Bi min ev format baştir e: {{demo|sep=wisa xuya dibe:<br>|<nowiki>{{navdêr|ku|kelîme|c1=m|c1etîk=Mêrdîn|c2=n|c2etîk=Dihok}}</nowiki>}} Yan jî: {{demo|sep=wisa xuya dibe:<br>|<nowiki>{{navdêr|ku|zayend|c1=n|c2=m|c1ref={{Jêgirtin/Celadet Alî Bedirxan/HAWAR Cild 1 Hejmar 1-23 (1932-1933)/1998|hejmar=4|sal=1938}}|c2ref={{Zana Farqînî}}}}</nowiki>}} {{çavkanî}} :--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 05:49, 28 tîrmeh 2026 (UTC) ::Feqat em dikarin li şûna {{param2|c|m/n}}, {{param2|c|mn?}} yan {{param2|c|mn!}} çêkin ji bo ku neyên tevlihevkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 06:00, 28 tîrmeh 2026 (UTC) :::Ez jî dizanim ku "nêtar ji bo kurmancî nabe" ([//ku.wiktionary.org/w/index.php?title=Got%C3%BBb%C3%AAj%3Afikirmend&diff=3063789&oldid=3063526]) jixwe min "nêtar" kiribû "[//ku.wiktionary.org/w/index.php?title=Got%C3%BBb%C3%AAj:fikirmend&diff=prev&oldid=3063788 mê an nêr li gorî bikaranînê]". Feqet nizanim çima rind nayê fêm kirin: Ferhengvan jî ew parametreyê bi awayekî rast bi kar nayîne [//ku.wiktionary.org/w/index.php?title=Got%C3%BBb%C3%AAj%3Areh&diff=6235991&oldid=6235985]. {{ping|Bikarhêner}} ? Min heta niha pirr gotar serrerastkir... Em ê hertim kontrol bikinê: pêşta problemeke vitira tine bû :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 15:13, 28 tîrmeh 2026 (UTC) ::::Bi rastî kî li vira parametreyên ku te li jor nivîsandine bi kar tîne {{=D}} ? Ji bîr meke em li ser wîkîferhenga kurdî ne... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 15:39, 28 tîrmeh 2026 (UTC) :::::Ya muhîm hebûna sîstemekê ye, heta niha ti sîstemeke baş nehatiye çêkirin û ti rê nehatiye dayîn ji bikarhêneran re ku hîn bibin, hêdî hêdî em ê çi ji destê me were, çêkin û hîn bikin. Bi min atolyeyek lazim e em hin tiştan ji bikarhênerên din re hîn bikin. Mîsal min <code><nowiki>{{subst:beralîbike}}</nowiki></code> li wîkîpediyayê çêkir û ji bikarhênerekî re nîşan da çawa tê bikaranîn, wî dest bi bikaranînê kir. Ji ber ku bikarhênerekî mobîlê ye, nikaribû bi tenê serê xwe beralîkin çêke her daîm alîkarî ji kesên din dixwast ku pir carî ti kes nedihat. Însanên me ji aliyê teknîkî ve baş nebin jî, wextê bi riyeke baş îzah dikî, fam dikim şikir ji xwedê re. :::::Welhasil, [https://ku.wiktionary.org/w/index.php?title=reh&diff=prev&oldid=6291839 reh] çêbû? Eger tu nabêjî nêtar be, min daxwaza te fam nekir. Tu çi dixwazî em çawa bikin? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 15:58, 28 tîrmeh 2026 (UTC) ::::::Nivîs dîsa "''mê yan nêr li gorî maneyê''" be (kategorî jî) feqet di nav parametreyê de <code>mn</code> neyê nivîsandin. Parametre wekî {{param2|z/c|nt}} bisekiniyana (an jî navekî din "g" an "c") feqet nivîs û kategorî bihata guhertin... Herwiha profîlên bikarhênerên ku tên vira wekî en.wiki nînin: li vir zêde namînin û tiştên ku hu dikin jî ji bîr dikin. PS: Di zimanê peştûyî de jî (nêzîkî zimanê kurmancî ye) peyvên "mê an nêr" (''common gender'') hene [[:en:Category:Pashto nouns with multiple genders]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 17:28, 28 tîrmeh 2026 (UTC) :::::::"g", "c", "nt" gî behsa cureyekî xisûsî dikin loma nabin, feqat di nav [https://ku.wiktionary.org/w/index.php?title=Modul:r%C3%AAziman&oldid=6115355#L-306 Modul:rêziman] de koda me "mn" otomatîk dike "mnmane" min ji bo back-compatiblity wisa kiribû lê ya rast "mnmane" ya, em "mn" ji bo kurmancî rakin, hemû "mn" bikin "mnmane" û "m/n" jî rakin û bikin "mndudil", nabe? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:44, 28 tîrmeh 2026 (UTC) ::::::::OK, bi min baş e:) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:18, 28 tîrmeh 2026 (UTC) :::::::::Îmkan heye şablona tewandinê jî wisa bikî ku hem di qismê tewandinê de hem jî aliyê rastê were bikaranîn? Wekî me [[Wîkîferheng:Dîwan/2026#Beşa_Tewandin_bo_kurmancî|li vir]] got? Wextê gelek dirêj be yan mndudil be, em dikarin bixin qismê tewandinê bi şiklê "ya mêr" û "ya nêr". Wekî din yên biçûk û standard bila li aliyê rastê bimînin? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:54, 28 tîrmeh 2026 (UTC) ::::::::::Erê bi parametreya {{param2|hêl|çep}} tê çêkirin. Belkî bi JSê tiştekî vitra jî tê çêkirin: dema ku tablo pirr fireh ye (>450px) tablo wekî "veşartî" xuya bike... ::::::::::"''Wekî din yên biçûk û standard bila li aliyê rastê bimînin?''": '''Aliyê rast:''' Dema ku tu mînakan dixwînî bi hêsanî tabloya tewandinê jî seh dikî (pedagojîk e). '''Bin beşa Tewandinê:''' 1) Ji bo mobilan rind e, tablo ne ser maneya peyvê ye. 3) Şûnda maneyan direj dibe 3) Wêne baştir xuya dikin ji ber ku ne bin tabloyê ne. '''Encam''': yek pratîk e, yek jî pedagojîk e [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:27, 28 tîrmeh 2026 (UTC) :::::::::::Di bin beşa Tewandinê de baştir xuya dike... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:28, 28 tîrmeh 2026 (UTC) ::::::::::::Erê {{=D}} [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:29, 28 tîrmeh 2026 (UTC) :::::::::::::Feqat lazim e yên mezin wekî [[mustensîx]] di nav qutîyê de bê wekî [[:en:heval]] di mobîlê de ya me sayfeyê fireh dike, ya îngilîzî de dikarî qutîyê bişemitînî [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:44, 28 tîrmeh 2026 (UTC) ::::::::::::::Formata herî xweş [https://ku.wiktionary.org/wiki/mustens%C3%AEx#Kurmanc%C3%AE] resm jî lê tê tablo jî di cihê xwe de ye. Wekî din wextê tablo li aliyê rastê ye însan naxwaze resmekî jî lê zêde bike. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:54, 28 tîrmeh 2026 (UTC) :::::::::::::::''overflow'' bi tagên "div"-an rind tên çêkirin. Em ê tabloyên ''NavFrame'' bi kar bînin... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:06, 28 tîrmeh 2026 (UTC) ::::::::::::::::Eger class inflection-table bi kar bînî, bi [[MediaWiki:Gadget-defaultVisibilityToggles.js#L-43]] ê ku dixwaze dikare gîya veşêre an nîşan bide. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:11, 28 tîrmeh 2026 (UTC) :::::::::::::::::Min fêm nekir, biryara we çi ye? Hemû bin beşa Tewandinê? an jî herdu? Li gor wê şablon tê guherandin. Bi min ferq nake, her du jî baş in... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:19, 28 tîrmeh 2026 (UTC) ::::::::::::::::::Me [[#Beşa Tewandin bo kurmancî|li jor]] gotibû bila hemû di beşa Tewandinê de bin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:21, 28 tîrmeh 2026 (UTC) :::::::::::::::::::Erê, min xwand Bikarnêner tiştekî din gotibû... Tu bi botê çêdikî? Bi botê hemû tabloyan bê parmetreya "hêl" bike bin beşa "Tewandin"-ê. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:30, 28 tîrmeh 2026 (UTC) ::::::::::::::::::::Va rabim botekê hazir bikim. Bi qasî min jê fam kir, tam nabêje hemû nekin, nabêje hemû bikin jî. Lê em hemû bikin çunkî du kes got erê. Cihê Tewandinê piştî Bi alfabeyên din û Formên alternatîv be an jî beriya wan piştî maneyê (piştî wajeya klasîk) be? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:38, 28 tîrmeh 2026 (UTC) :::::::::::::::::::::Eger di yekcarê de nayê çêkirin bi parametreya "hêl" ve çêke. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:42, 28 tîrmeh 2026 (UTC) ::::::::::::::::::::::[https://linkcount.toolforge.org/?project=ku.wiktionary.org&page=%C5%9Eablon%3Aku-tew%C3%AEn-nav 27 hezar] car tê bikaranîn, Eger behsa wextê dikî, ne problem e, eger behsa "tenê yên fireh bixin tewandinê" wê carê yên mê û nêr bixim? Te cewaba pirsê cihê tewandinê jî neda? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:48, 28 tîrmeh 2026 (UTC) :::::::::::::::::::::::Lojîk dibêje ku piştî bi "alfabeyên din", "formên alternatîv" û "Ji wêjeya klasîk" [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:55, 28 tîrmeh 2026 (UTC) ::::::::::::::::::::::::Feqet tabloya tewandinê dûr dikeve... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:00, 28 tîrmeh 2026 (UTC) :::::::::::::::::::::::::Bi min "Bi alfabeyên din" bixin piştî Bilêvkirinê çûnkî @[[Bikarhêner:Ferhengvan|Ferhengvan]] pir caran ji bo nîşandana dengî alfaba erebî bi kar tîne, h3 rengê teal tenê ji bo "Navdêr, Lêker hwd." bi cssê bi kar bînin [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/vector-2022.css&diff=prev&oldid=6241199 wekî wisa lê berevajî], Piştî "Ji wêjeyê/klasîk" em tewandinê deynîn, "Formên alternatîv" piştî Tewandinê be û îro nekin, eger dixwazî di ceribandinê de tabloya nû hazir bike, em hefteyek li hêviya hevalên din bisekinin, eger îtîraz nehat, em çêkin? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:15, 28 tîrmeh 2026 (UTC) ::::::::::::::::::::::::::Beşa "Bikaranîn" jî heye... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:28, 28 tîrmeh 2026 (UTC) :::::::::::::::::::::::::::Piştî Bikaranînê bnr. [[:en:Wiktionary:Entry_layout#Headings_after_the_definitions]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:37, 28 tîrmeh 2026 (UTC) ::::::::::::::::::::::::::::(h3) Bilêvkirin, Bi alfabeyên din, Sinifa rêzimanî, ::::::::::::::::::::::::::::(h4) Ji wêjeyê/klasîk (divê were xistin bin maneyê), Bikaranîn, Tewandin, Formên alternatîv, Hevmane, Nêzîk, Dijmane, Jê, Têkildar, Etîmolojî (eger du sinifa rêzimanî ji eynî kokê hebe h3) Dûnde, Binêre herwiha, Werger [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:40, 28 tîrmeh 2026 (UTC) {{outdent|::::::::::::::::::::::::::::}} {{r|Ferhengvan|Bikarhêner|Keyomerd|Zerwanda|Kurdanparez}} Fikir? --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:42, 28 tîrmeh 2026 (UTC) :"Bi alfabeyên din" beşeke pirr hewce nîne, niha beşa "mane" li ser rûpelê dûr dikeve. Bi min "Bîlêvkirin" > Mane > Ji wêjeya klasîk (wekî mînak e) > Bikaranîn > Tewandin > Bi alfabeyên din > Formên alternatîv > ... Divê beşên ku herî zêde tên xwastin werin "ronîkirin". [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 03:07, 29 tîrmeh 2026 (UTC) ::''[[bileks|Bîl'eks]],'' "Bi alfabeyên din" gelek muhîm e, ev ji bo kurmancî "formên alternatîv"-a wîkiya îngilîzî ye, başûrî tenê bi alfaba erebî dinivîsin û wextê kelîmeyek digerin çawa zanibin hatin kîjan kelîmeyê? Bi kirîlî ne lazim e lê bi erebî mecbûrî ye. Ji bo nettir bikin, lazim e em beşa "Bi alfabeyên din" baştir bikin. Mane hinek li jêr be ne muhîm e, wîkiya îngilîzî de jî gelek car lazim e herî jêr ji bo dîtina maneyê. "Ronîkirin"/teal xelet tê famkirin, sankî "qismê sereke (h3) lazim e wê be û qismên din werin xistin binê wê" tê famkirin loma em tenê Mane ronî bikin bes e, ka [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/common.css&oldid=6291927 vê cssê] biceribîne û dîsa fikrên xwe bibêje. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 07:20, 29 tîrmeh 2026 (UTC) :1. '''Li ser cinsîyetê:''' Bi min, em malûmatên ekstra yên wek ''"li Dihokê nêr, li Serhedê mê"'' (Serhed:m|Dihok:n) li qismê ''"Bikaranîn/Emilandin"''ê bidin baştir e. Kelîme di ferhengan de wek form û cinsîyet bi halê standard cih digirin, eger li mintiqayek cuda be ew cudahî li qismê "Bikaranîn/Emilandin"ê wek malûmatek ekstra cih bigire çêtir e. Ferhenga ku em vê gavê ji bo standardkirinê esas digirin ''"Ji bo Rastnivîsînê Ferhenga Kurdî (Kurmancî) - Tirkî ya Nû"'' de jî bi yek cinsîyetê cih dane kelîmeyan. Ji xeynî wê di ferhenga standardkirinê ya Weqfa Mezopotamyayê de jî ew kelîme bi yek cinsîyetê cih digirin. Tiştekî din jî bêjim, eger em şablonê wek "mndudil" bi nav bikin mimkin e ku rê bide şaşîyan. Çimkî gava mirov wê dibîne, mirov dibêje qey li ser cinsîyeta kelîmeyê dudilîyek heye, bi qenaeta min dudilîyek bi wî şiklî nîne. Divê her kelîme xwedî cinsîyetekê bin û îstîsnayên mintiqayî -ger were xwestin- ekstra were nîşandan. Lewma bi min halê mewcûd baş e. 2. '''Li ser şablonên tewandinê:''' Ger şablonên tewandinê di xuyabûna mobîl de bibin sedema xirabîyê, em wan şablonan ji bo mobîlan têxin qismê "Tewandin"ê. 3. '''Li ser rêzkirina qisman:''' Bi min divê mane li pêş be û ne hewce ye ku qismê "Bi alfabeyên din" derxin pêş. -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 13:20, 29 tîrmeh 2026 (UTC) ::Li ser cinsiyetê erê, eger di ferhenga rastnivîsînê de cinsiyet hatibe nivîsandin ne hewce ye em "mndudil" binivîsin li qismê Bikaranînê behskirin bes e, lê eger tê de ev kelîme tinebe û di ferhengên din de jî dudiliyek li ser bikaranîna cinsiyetê hebe, wê demê "mndudil" lazim e bikaranîn çunkî wîkîferheng lazim e li gorî çavkaniyan were nivîsin. Li ser tewandinê ne mimkûnê em di mobîlê de di qismê Tewandinê de, di sermaseyê de em li qismê maneyê bixin loma lazim e em bi yek şiklî li qismê Tewandinê hemû bixin çêtir e. Li ser "Bi alfabeyên din" ji bo min zêde muhîm nîne, feqat dîsa jî ez dibêjim lazim e were pêşxistin. Tiştekî wisa jî heye eger di sayfeyekê de ji yekî zêdetir sinifên rêzimanî hebe wê demê lazim e Bi alfabeyên din bi sê = were bikaranîn, û cihê wê ne li dawiyê lê divê piştî Bilêvkirinê be.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 13:45, 29 tîrmeh 2026 (UTC) :Bi a min beşa çevandinê li serê rûpelê be beşa maneyê pir dûrî çavan dikeve. Li jêrtir be çêtir e. [[Bikarhêner:Keyomerd|Keyomerd]] ([[Gotûbêja bikarhêner:Keyomerd|gotûbêj]]) 06:01, 31 tîrmeh 2026 (UTC) ::{{r|Wikihez}} Bi min di nav tabloyê de parametreya yekem jî were rakirin, ne hewce ye bi <nowiki>{{PAGNAME}}</nowiki> tê çêkirin. Di rûpelên din de jî (ne yên sereke) bi parametreya {{param2|nav}} were nivîsandin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 11:07, 31 tîrmeh 2026 (UTC) :::Erê, maqûl e. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:23, 31 tîrmeh 2026 (UTC) ::::cinsiyet jî m, n, mn be bes e ma bila wekî {{ş|navdêr}} be. cuda nebin [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:41, 31 tîrmeh 2026 (UTC) :::::@[[Bikarhêner:Bikarhêner|Bikarhêner]], @[[Bikarhêner:Keyomerd|Keyomerd]], @[[Bikarhêner:Ghybu|Ghybu]] "Bikaranîn" an "Notên bikaranînê" ? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 13:47, 31 tîrmeh 2026 (UTC) :::::Wekî {{r|Bikarhêner}}î gotî zayenda peyvnan gorî devokan jî diguhere, divê ew jî bêne dîyarkirin. Herwiha beşa lêvandinê a ji bo pîtên cêwî pir tê paşguhkirin. Divê jê re cîyekî cihê bê hilanîn. Û ew jî wek zayendê bi devokan diguhere. Meselen tya pêşîn a "tişt" ê li ba me nerm e lê li deverên din hişk e. Û ji devla reqê (wek t-ya req) hişk bi kar bê çêtir e, jixwe her kes wê bi kar tîne nizanim req ji ku derketîye. [[Bikarhêner:Keyomerd|Keyomerd]] ([[Gotûbêja bikarhêner:Keyomerd|gotûbêj]]) 14:05, 31 tîrmeh 2026 (UTC) : <syntaxhighlight lang="json"> "subsections": [ "Ji wêjeya klasîk", "Ji wêjeyê", "Bikaranîn", "Tewandin", "Bi alfabeyên din", "Formên alternatîv", "Kurtkirin", "Sembol", "Navê zanistî", "Hevmane", "Dijmane", "Jê", "Nêzîk", "Jornav", "Jêrnav", "Têkildar", "Etîmolojî", "Dûnde", "Binêre herwiha", "Bi zaravayên din", "Werger", "Qafiye", "Anagram" ] </syntaxhighlight> {{r|Keyomerd|Ghybu|Bikarhêner}}Li gorî nîqaşa jor û [[Alîkarî:Formata nivîsînê]] min ev lîste hazir kir lê tê de hin kêmasî hene, "Bide ber" tê de tine ye, li kû derê bixim? Mihtemelen beşên din jî hene ku haya min ji wan nîne. Pirsek din, beşên nestandard wekî [https://ku.wiktionary.org/w/index.php?title=berf&diff=prev&oldid=6292461] çi bikim? Min got li dawiyê bixim berî Wergerê lê sankî piştî Wergerê be çêtir e?--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:24, 31 tîrmeh 2026 (UTC) :@[[Bikarhêner:Bikarhêner|Bikarhêner]], @[[Bikarhêner:Ghybu|Ghybu]], @[[Bikarhêner:Keyomerd|Keyomerd]] Eger îtîraz an fikrekî din neyê, ez ê beşên nestandard bixim beriya "Bi zaravayên din" eger ev beş tinebe, beriya "Werger". Ez ê "Nêzîk" jî bixim piştî Hevmane û li ser [[Alîkarî:Formata nivîsînê]] "rast" bikim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:50, 1 tebax 2026 (UTC) ::Ez ê "Bikaranîn" jî bikim "Notên bikaranînê" [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 01:03, 1 tebax 2026 (UTC) :::Jixwe bot hema bêje hazir e, eger dûre kesek rabe fikrekî din li pêş bixe, em dikarin biguherînin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 01:04, 1 tebax 2026 (UTC) ::::Ev hinek zêdetir problematîk e feqat ez ê "Ji wêjeyê/a klasîk" jî bikim "Ji edebiyatê"/"Ji edebiyata klasîk". Tabî eger fikrekî din hebe, ne problem e. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 01:05, 1 tebax 2026 (UTC) :::::Na, bi min "wêje" bimînî... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 01:22, 1 tebax 2026 (UTC) ::::::Ok {{=D}} [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 01:23, 1 tebax 2026 (UTC) :::::::"Bide ber" pêşiya "Binêre herwiha" :::::::"Jê" pêşiya "Têkildar" piştî jornav, jêrnav [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 01:41, 1 tebax 2026 (UTC) :::::Ji bo min "'''edebîyat'''" çêtir e, bila ne wêje be. "wêje" kelîmeyeke şaşçêkirî ye. Mahîyeta qisman (kîjan qism bi kêrî çi tê) ji navên wan nayê famkirin. "Binêre herwiha" û "Herwiha" tevlihev dibû, baş e we rast kirîye. Feqet mahîyeta wê qismê ("Binêre herwiha") hê jî ji navê wî nayê famkirin. Jixwe ger em bixwazin bi wî şeklî binivîsin jî divê em bikin "Herwiha binêre", ew jî zid hatîye nivîsandin. Ji xeynî wê, "Navê zanistî" na, "'''Navê îlmî'''" çêtir e. -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 22:51, 2 tebax 2026 (UTC) ::::::Bi min beşa Navê zanistî werin rakirin, wekî en.wikt em li dawiyê yan li pêşiya maneya bi şablona {{ş|q}} binivîsin yan jî wê şablona îngilîzî çêkin ku enwikt bi kar tîne. ::::::Li wikipediyayê min çend car dîtiye Penaber49 jî "Binêre herwiha" dike "Binêre" loma guhartina wê wekî "Herwiha binêre" fikrekî maqûl e. ::::::Herwiha tu ji bo Bêhtir xwendin çi dibêjî [[Special:PermanentLink/6323554#Binêrê_herwiha]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 13:29, 3 tebax 2026 (UTC) :::::::Ez dibêjim bila '''''"Xwendina Zêdetir"''''' be. -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 05:03, 6 tebax 2026 (UTC) :::Em çima peyva notê bi kar tînin, ma "nîşeyên bikaranînê" ne çêtir e? [[Bikarhêner:Keyomerd|Keyomerd]] ([[Gotûbêja bikarhêner:Keyomerd|gotûbêj]]) 06:04, 1 tebax 2026 (UTC) :Rêzkirina dawî: <syntaxhighlight lang="json"> "subsections": ["Ji wêjeya klasîk", "Ji wêjeyê", "Tewandin", "Notên bikaranînê", "Bi alfabeyên din", "Formên alternatîv", "Kurtkirin", "Sembol", "Navê zanistî", "Hevmane", "Nêzîk", "Dijmane", "Jornav", "Jêrnav", "Jê", "Têkildar", "Etîmolojî", "Dûnde", "Bide ber", "Binêre herwiha", "Bi zaravayên din", "Werger", "Qafiye", "Anagram"] </syntaxhighlight> Bnr. [[Wîkîferheng:Bot/Balyozbot/tercîh.json]] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 01:44, 1 tebax 2026 (UTC) :Bi botê ez ê tenê binebeşên sinifên rêzimanî yên bi 4 = biguherînim, yên din lazim e bi destî werin guhartin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 01:46, 1 tebax 2026 (UTC) ::@[[Bikarhêner:Ghybu|Ghybu]] Bota rêzkirina binebeşan û cihguhartina Tewandinê hema bêje hazir e. Param {{param|hêl}} bi kar bînim (eger wisa be, em kategoriya "ku-tewîn-nav bê param hêl" çêkin daku hemû xilas bikin) yan jî şablonên heyî bikim ku-tewîn-nav/kevn û piştî kontrolkirinê hemû bikin nû? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:26, 1 tebax 2026 (UTC) :::Bi parametreyê {{param2|hêl}} tu ê paşê wan dîsa rakî... Herwiha min va [https://ku.wiktionary.org/w/index.php?title=abes%C3%AEv&curid=43641&diff=6294632&oldid=6244736] fêm nekir, me çima Tabloya tewandinê rakir :)? [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:26, 1 tebax 2026 (UTC) ::::Ji bo ku rê bidin tiştên wisa :D Em ê li kû derê deynîn examples?? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:28, 1 tebax 2026 (UTC) :::::Tablo hazir bin, em dest pê bikin? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:28, 1 tebax 2026 (UTC) ::::::Sernav tê rakirin, mê bikim "m"? yan bila bimînî? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:28, 1 tebax 2026 (UTC) :::::::Tablo hatiye çêkirin bi [https://ku.wiktionary.org/wiki/Modul:ku-tew%C3%AEn-nav/ceribandin vê] kodê her du parametre jî tên bikaranîn mê/m, nêr/n û mê û nêr/mn... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:41, 1 tebax 2026 (UTC) :::::Ez nizanim çi bibêjim... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:43, 1 tebax 2026 (UTC) ::::::[https://ku.wiktionary.org/w/index.php?title=abes%C3%AEv&diff=prev&oldid=6294657] ok? ::::::Bi min li şûna {{param|hêl}} em {{ş|ku-tewîn-nav/nû}} bi [[Modul:ku-tewîn-nav/ceribandin|modula ceribandinê]] çêkin, paşê navê şablonê biguherînin baştir be, çunkî [[Special:PermanentLink/6294527#L-337|modula nû]] ne backward compatible e. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:56, 1 tebax 2026 (UTC) :::::::Em ê dîsa paşê nivîsa "/nû" rakin. Bi botê 22000 rûpel di 2 rojan de tê guherandin? Eger wisa ye (bi min pirr nîne), bi navê rast biguhrîne, bila di nav rûpelên ku nehatine guherandin xeletî hebin... Dîsa jî tu dizanî, bot te çêkiriye û tu sererast dikî :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:17, 1 tebax 2026 (UTC) ::::::::Min gelek caran dîtiye, bi botê tiştekî hatiye guhartin lê ji ber ku rind nehatiye kontrolkirin, şablona kevn bi halê xwe yê kevn maye. Tirsa min ew e. Ji ber ku formata hemû sayfeyan ne eynî ne, ez dibêm bot gelek ji wan derbas bike. Bi vî awayî em ê {{ş|ku-tewîn-nav}} sêwî bihêlin û piştî bot xilas kir, em ê bi dil rehetî karibin şablona nû rakin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:26, 1 tebax 2026 (UTC) :::::::::Rast e! {{param|g|2}} :)) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:32, 1 tebax 2026 (UTC) ::::::::::Mîsalên wan gelek in :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:36, 1 tebax 2026 (UTC) :::::::::::Eger karibî hinek round edges bixî û rengê background a "Tewandina X" biguherînî, gelek moderntir û xweştir xuya bike :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 23:25, 1 tebax 2026 (UTC) ::::::::::::''Simplicity is best'' / ''Fewer choices mean less worry:'' felsefeya min e:) Me tabloyê wekî en.wîkî kir [https://ku.wiktionary.org/wiki/%C5%9Eablon:tabloya-tewandin%C3%AA-ser {tabloya-tewandinê-ser}], tenê [//ku.wiktionary.org/wiki/Modul:ku-tew%C3%AEn-nav/ceribandin#L-362 reng] ({{param2|palette}}) tê guherandin (felsefeya wan e jî...). Bi min tiştekî pir rind çêkirine. Dîsa jî em dikarin (wekî berî) bi CSSê biguherînin. Ji bo çêkirina tabloyan min di rûpela şablonê de tiştên ku pirr hewce ne nivisandiye ji bo detayan jî rûpela en.wiki heye. Herwiha tabloyê li gor daxwaza we biguherînin û serrast bikin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 03:04, 2 tebax 2026 (UTC) :::::::::::::PS: Şiklê tabloyê li vira tê guherandin [[Şablon:tewandin-ser/style.css]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 04:41, 2 tebax 2026 (UTC) ::::::::::::::Mala te ava tu ji heqê rengan gelek xweş derdikevî :) ::::::::::::::Ev felsefeya te gelek caran karê min pir zor dike {{=D}} en.witk gelek tiştî bi awayekî xweş çêkirine, ez jî heta ku wana adapte bikim, gelek êş dikşînim bnr. [[#Modul:quote]] û Şablonên etîmolojiyê [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 10:47, 2 tebax 2026 (UTC) :::::::::::::::Bot xilas kiriye, Baş e [[Special:PermanentLink/6323268#Şablona_ku-tewîn-nav_ne_li_binê_Serenav_an_Navdêrê_ye|zêde]] xeletî derneketin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:35, 2 tebax 2026 (UTC) ::::::::::::::::Gelek spas! [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:42, 2 tebax 2026 (UTC) :::::::::::::::::Niha şablon sêwî ma ji xeynî gotûbêjan, ew jî dûrê rast bikim, tu dikarî modulan rojane bikî? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:28, 3 tebax 2026 (UTC) ::::::::::::::::::Spas. Ev rûpel pirr dirêj bû... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 00:33, 3 tebax 2026 (UTC) :::::::::::::::::::Erê, rêzkirina beşan ez ê bikim yek satir, lê dîsa jî zêde fêde nede, fikrekî din heye? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:38, 3 tebax 2026 (UTC) ::::::::::::::::::::@[[Bikarhêner:Ghybu|Ghybu]] [https://ku.wiktionary.org/wiki/W%C3%AEk%C3%AEferheng:D%C3%AEwan#c-Wikihez-20260801005000-Wikihez-20260731162400] û [https://ku.wiktionary.org/w/index.php?title=gur&curid=5384&diff=6328092&oldid=6328089] ? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:00, 7 tebax 2026 (UTC) == SEO == Merheba @[[Bikarhêner:Ghybu|Ghybu]] Wextê ''jiyannas'' bi şiklê "jiyannas" lê digerî di nav netîceyên googlê de [[jiyannas]] derdikeve? Min hem bi Chromeê û hem jî bi VPNê ceriband lê [[jiyannaseke]] derdikeve feqat [[jiyannas]] dernakeve. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:31, 2 tebax 2026 (UTC) :"zengilok" derdikeve [[zengilok]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:38, 2 tebax 2026 (UTC) :Min jî tenê [https://usercontent.one/wp/portal.arsivakurd.org/wp-content/uploads/2024/08/Bernamegeh-4.pdf?media=1709107483 va] (''Berna Megeh'', Jan Dost, OCCO MAHABAD) û https://portal.arsivakurd.org/wp-content/uploads/2022/06/Xwebun-34.pdf va] (''Xwebûn'', hj.34) dît herwiha ''Jihannasî'' jî heye... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:44, 2 tebax 2026 (UTC) ::Behsa çavkaniyan nakim behsa SEOyê dikim, çima [[jiyannas]] di netîceyan de dernakeve. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:49, 2 tebax 2026 (UTC) :::Min fêm nekir, pirsa te çima Wîkîferheng dernakeve ye? [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:51, 2 tebax 2026 (UTC) ::::Erê çima sayfeya Wîkîferhengê ya [[jiyannas]] dernakeve feqat [[jiyannaseke]] derdikeve. Min du nimûne nivîsandin ka piştî mehekê em binêrin derkeve yan na. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:54, 2 tebax 2026 (UTC) :::::Bi min dema ku motora googlê "jiyannaseke" (-eke bi kurdî ye) digere, ew peyv tenê di kurdî de heye ji ber vê yekî dide. Feqet "Jiyannas" di nav zimanên din de jî heye (belkî difikire ku ew xeletî ye.). Herwiha nivîsa bin "Jiyannas" li gor "jiyannaseke" biçûk e û li bin "biolog" hatiye nivîsandin:) Herwiya peyva "biolog" jî dide ew jî giridayî pirr peyvan e... Pirr parametre hene... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:09, 2 tebax 2026 (UTC) ::::::Wextê li "birakujî" dictionnaire digerî netîceya ewil rasterast fr.wikt e. Wana tiştekî kirine lê çi? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:13, 2 tebax 2026 (UTC) :::::::"Trust Score" ? Herwiha peyva "birakujî" pêş Wîkîfehengê hatiye çêkirin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:21, 2 tebax 2026 (UTC) ::::::::Nizanim [[:en:Wiktionary:Votes/2023-08/Installing the WikiSEO extension]] heye lê [[:phab:T346590]] sekinî ye. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:27, 2 tebax 2026 (UTC) :::::::::Erê, feqet lînkên û navên Wîkîferhenga fransî û îngilîzî di internetê de pirr tên parvê kirin. Wîkîferhenga fansî ferhengek derxistiye: [https://www.fnac.com/a13530183/Collectif-Le-dico-adapte-du-Wiktionnaire Le dico] (li ser Amazonê). Kî qala Wîkîferhenga kurdî dike? Ji ber vê yêke hertim pêş me ne. Daxwaza wan werin pêş malperên din... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:36, 2 tebax 2026 (UTC) ::::::::::[https://www.google.com/search?sca_esv=a854c327b7bb0786&q=%22W%C3%AEk%C3%AEferheng%22&tbm=nws&source=lnms&fbs=ABfTbFUDadgeu2mn4mYJ8iEZ1GUDDuwRa4um-2LNhBFWIpqZc7ZL_t3iAe0lB1D4hb_Ohp7yg8FO-XwZ7R-ba4YefvIQCF4Ra4wbUNQStQ8dVc6IK2vWHoXbgHLwJobq4HTNMksBhYHBmxw2hK9Sa4pHAI3I2Ovzox54EiEId7q7IoMJRkRlr-XDezqDqx33xDsZIWuHy-a_vqoqDlYrhNBbNeVEP9MwaA&sa=X&ved=2ahUKEwiz94Co9IKWAxXNUaQEHQJAAGYQ0pQJegQIGBAB&biw=1320&bih=583&dpr=1 Wîkîferheng] {{=D}} Li ser X û medyayên din de jî pirr qala Wîkîferhengê nakin... Bi rastî kî Wîkîfrhengê dixwîne? [https://pageviews.wmcloud.org/topviews/?project=ku.wiktionary.org&platform=all-access&date=yesterday&excludes=]... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:41, 2 tebax 2026 (UTC) :::::::::::Haya ti kesî ji Wîkîferhengê nîne bi rastî loma pêşxistina SEOyê hewce ye. Ez dibêjim miheqeq fr.wikt tiştek çêkiriye ne mimkun e wextê heval dictionnaire binivîsî wiktionary derkeve bêyî çêkirina tiştekî. Not: Min ferq kir li ser fr.wikt wextê bi mobîlê tê dikevî, eger di sayfeyekê de du ziman hebe ya fransî otomatîk vedibe zimanê din veşartî dimîne. Fikrekî xweş e em jî çêkin? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:21, 2 tebax 2026 (UTC) ::::::::::::Erê bila were çêkirin. Min gotûbêja wan li ser vê mijarê xwandibû, Wîkîferhenga fransî jî ne razî ye. Dema ku li ser Googlê tu peyvek diguherî Wîkîferhenga wan di bin Wîkîpediyayê û di bin malperên din de derdikeve. Û çend caran şûnda "Wiktionnaire" "Wikipédia" tê nivîsansin... Ew jî nizanin çi bikin :)) Niha dizanim ku en.wikt ji ne razî ye... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:37, 2 tebax 2026 (UTC) :::::::::::::@[[Bikarhêner:Ghybu|Ghybu]], @[[Bikarhêner:Wikihez|Wikihez]]: Ez dibêjim rûpelên ku tenê form di wan de hene, divê <nowiki>__NOINDEX__</nowiki> bin. Wî çaxî, rêza wan nikare ji lemmayê bilindtir be ji ber ku wê nînbin. Ez dibêjim belkî îhtîmala derketina lemmayê bêhtir jî bibe heke netîceyên ku dişibin wê nînbin. Jixwe lemma wê derkeve heke yek li formekê bigere, ji ber ku di rûpelê lemmayê de tabloyên tewandinê hene û ev tên jimartin. [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 22:55, 2 tebax 2026 (UTC) ::::::::::::::@[[Bikarhêner:Guherto|Guherto]] Em dibêjin tenê form xuya dike ya sermade xuya nake tu dibêjî em formê noindex bikin {{=D}} ::::::::::::::Claude [[Special:PermanentLink/6323375|li vir]] dibêje ya ku Ghybu got rast e, ji ber ku frwikt gelek tê bikaranîn bêtir dikeve ber çavê google. Eger rojek Wikiseo li en.wikt were çêkirin, em jî bixwazin qet nebe kêrî tiştekî were. ::::::::::::::Em şablonek ji bo metadescription çêkin? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 23:09, 2 tebax 2026 (UTC) :::::::::::::::@[[Bikarhêner:Wikihez|Wikihez]] Min got, ''Wî çaxî, rêza wan nikare ji lemmayê bilindtir be ji ber ku wê nînbin. Ez dibêjim belkî îhtîmala derketina lemmayê bêhtir jî bibe heke netîceyên ku dişibin wê nînbin.'' [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 23:10, 2 tebax 2026 (UTC) :::::::::::Em jegirtinan lînk bikin? Bi vî sayî gelek sayfe lînk bide ser hev. Bi riya cssê em dikarin rengê tarî bikin da ku wekî lînk xuya nekin... [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:39, 3 tebax 2026 (UTC) ::::::::::::Wextê jîwar ferheng yan jî boçik ferheng lê digerî rasterast Wîkîferheng dertê. Meselê hejmara bikaranîna eynî kelîmeyê di sayfeyê de ye. Em çiqas jêgirtin lê zêde bikin ewqas baştir dibe netîce :) Google AI Mode rasterast Wîkîferheng wek çavkanî nîşan û lînk dide loma kurmanc bi kar neyînin jî AI bi kar tînin baş e ... [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:24, 3 tebax 2026 (UTC) :::::::::::::Êêêê Google AI Overview çi bi şikle "tarîxiyen" ferheng lê digerim wekî ku min li ferhengê qeyd kiriye gelek xweş îzah dike (ji ber ku hîn gelek nû ye netîceyan de Wîkîferheng dernakeve) Nimûneyên bikaranînê jî ji înternetê derdixe. Çi mana ferhengê nemaye... Em çi îşî dikin li vir :D [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:47, 3 tebax 2026 (UTC) :::::::::::::Êdî Google jî nayê bikaranîn :)) Niha kî tere ser ''Stack Overflow'' û di nav belgeyên kodan de digere... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:47, 3 tebax 2026 (UTC) ::::::::::::::Erê welle, ez gelek car dibînim kesên derdora min hemen Gemini an Chatgpt vedikin, çi tiştê biçûk hebin, hemen pirs dikin, qet li ser Googlê jî lê nagerin :D [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:52, 3 tebax 2026 (UTC) :::::::::::::::"êgsig ferheng" netîce nade feqat wexta "ornag ferheng" digerim rasterast wîkîferheng derdikeve li binê dibêje "Tewandina ornag. Zayenda nêr a binavkirî. Rewş, Yekjimar, Pirjimar. Navkî, ornag, ornag. Îzafe, ornagê · ornagên. Çemandî, ornagî · ornagan.Read more" :::::::::::::::Meraq dikim guhartina cihê tewandinê çi netîce bide. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:21, 3 tebax 2026 (UTC) ::::::::::::::::Pêşta me tabloya Tewandinê vitira dinivîsand: [[ketin (Tewandin)]] Dma ku nav hat guherandin li ser Googlê tewandin winda bû... ::::::::::::::::Min tewandin:kirin geriya tabloya tewandina Wîkîferhengê dide. Êdî kes nê vira:) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:38, 3 tebax 2026 (UTC) :::::::::::::::::Tenê dema "niha" nivîsand. Min jî bi kurdî "dema bê jî binivîse" nivîsî: ew jî nivîsand... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:42, 3 tebax 2026 (UTC) ::::::::::::::::::[https://support.google.com/webmasters/answer/16908024?hl=en tê asteng kirin]... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:07, 4 tebax 2026 (UTC) :::::::::::::::::::kî dibêje? li wir tiştek wisa nabêje...? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 02:16, 4 tebax 2026 (UTC) ::::::::::::::::::::Va hatiye nivîsandin: "''Exclude my site's links and content from Search generative AI features: Your site's content is prevented from being visible to users in Search generative AI features, including being linked to within these features and helping with grounding AI responses in these features. You won't receive any traffic or impressions from these features. Learn more about what excluding your site means.''" [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:23, 4 tebax 2026 (UTC) == Moda tarî == Bi chrome û Firefoxê wextê Reng dikî "otomatîk", eger tarî be, tiştên bi reng xirab xuya dikin, lê wextê "tarî" hildibijêrî xweş xuya dikin. Min hemû js/css/Gadget betal kirin û ?safemode=1 ceriband, dîsa jî wextê "otomatîk" e, her tiştê tarî xirab e. Êdî nizanim problem li cem min e yan di Moda tarî de ye. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:15, 9 tebax 2026 (UTC) == Formata jêgirtinan == Merheba hevalno {{r|Ghybu|Bikarhêner|Keyomerd|Kurdanparez|Guherto|Şêr}} Wekî min [[#Modul:quote|li jor]] jî gotiye, formata îngilîzî ji ya me baştir e. Her tişt di cihên xwe de ne. Ya me wexta çend tercime yan jî transliterasyon îlawe dikî, gelek tevlihev dibe. Berê me çavkaniyê bi amûra [[MediaWiki:Gadget-jeder.js]] kurt kiribû feqat ew jî ne tiştekî baş e ji ber ku gelek malûmat tên veşartin û kesên nû tên tenê sal û nivîskarê dinivîsin carinan ew jî ne tiştekî baş e. Em dikarin amûra jêderê wisa eyar bikin ku bêyî parentez bixebite û ewilî vekirî be, dûre ê ku dixwaze malûmatan kurttir bike. Eger em vî tiştî bi formata me ya niha bikin, jêgirtinên bi çavkaniyên dirêj dê gelek xirab xuya bikin. Hûn dikarin li vir miqayese bikin ka kîjan baştir xuya dike: # [[Special:PermanentLink/6329434|jêgirtina dirêj bi îngilîzî bi formata en.wikt]] vs. [[Special:PermanentLink/6329414|bi formata me ya niha]] # [[Special:PermanentLink/6329439|jêgirtineke bi soranî bi formata en.wikt]] vs. [[Special:PermanentLink/6329437|jêgirtineke bi soranî bi formata me ya niha]] Ez naxwazim xwe wisa nîşan bidim ku li ser eynî tiştî her daîm israr dike feqat bi ya min ev zarûriyeteke ji bo baştirkirina xwendina nimûneyan e. Loma ez li vir dengdanek li dar dixim, bila qerar çi be, em wisa bikin, dûre em dikarin amûreke nû çêkin ku li gorî tercîhên bikarhênerî formata en.wikt yan jî formata niha were bikaranîn. Ji kerema xwe raya xwe li jêr bidin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:01, 11 tebax 2026 (UTC) === Dengdan === {{dengdan|destpêk=11.08.2026|dawî=18.08.2026}} <!-- kengî dengdan xilas bû vê şablonê {{dengdan/borî|destpêk=|dawî=}} bi kar bînin. --> ==== Bila formata niha bimîne ==== <!-- Li jêr '# {{erê}} ~~~~' binivîse ji bo raya erê. --> ==== Bila formata en.wikt were bikaranîn ==== <!-- Li jêr '# {{erê}} ~~~~' binivîse ji bo raya erê. --> # {{erê}} [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:05, 11 tebax 2026 (UTC) === Gotûbêj === {{şirove}} Eger hûn bibêjin çima sal û çavkanî li herî pêş e sebeb ev e: Ji bo en.wiktê "attestion" yanî peyitandin bi riya emilandinên heqîqî pêk tê. Yanî eger di ferhengekê de ev kelîme derbas bibe ji bo wan ne muhîm e, ya muhîm emilandina di nav cumleyan de ye. Mîsal ew kelîmeyên ku tenê ferhengan de derbas dibin dixin [[:en:Appendix:English dictionary-only terms]]. --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:14, 11 tebax 2026 (UTC) :@[[Bikarhêner:Ferhengvan|Ferhengvan]], @[[Bikarhêner:Bibliophile|Bibliophile]] û @[[Bikarhêner:Dûrzan|Dûrzan]] fikrê we çi ye li ser vê meseleyê? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 13:48, 12 tebax 2026 (UTC) 3rv6m15nj5f7i8oihg97stetedglaqu 6329730 6329622 2026-08-12T21:04:59Z Dûrzan 875 /* Gotûbêj */ Bersiv 6329730 wikitext text/x-wiki <noinclude>{{Dîwan/arşîv-ser|2026}}</noinclude> {{clear}} == Daxwazên standardkirinê == https://ku.wiktionary.org/wiki/W%C3%AEk%C3%AEferheng:Daxwaz%C3%AAn_standardkirin%C3%AA, Gelo di vê malperê de peyvên hatîye standart kirin; ji malperê rakin? Zêde tehlîhev e. @[[Bikarhêner:Bikarhêner|Bikarhêner]]@[[Bikarhêner:Guherto|Guherto]] [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 10:03, 8 kanûna paşîn 2026 (UTC) :@[[Bikarhêner:Rewiye tine|Rewiye tine]] [[Taybet:Tercîh#mw-prefsection-gadgets]] li vir amûra [[MediaWiki:Gadget-aWa.js/belgekirin|awa]] aktîv bike û pê re dikarî gotûbêjan arşîv bikî. Li sayfa [[WF:DS]] li kêleka her sernavê gotûbêjê <nowiki>[arşîv bike]</nowiki> derdikeve, pê lê bike û ew ê arşîv bike. Eger nikarî tu tenê şablona {{ş|ds-kirî}} îlawe bike, ez ê dûre arşîv bikim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:35, 5 tîrmeh 2026 (UTC) == Standartkirin == Sala borî, min pêşnîyazek kiribû. Halî hazir piştî daxwaza standarkirinê em du heftî disekinin, eger kesek fikrek dîyar neke. Raste rast peyv li gor ferhenga standart a mezopotamyayê tê standart kirin. Ji xwe sazîyek vê karî dike çima em vê barî dikin stuyê xwe. Mesela ez çaxe di wîkîferhengê de peyvek digêrim; standart a peyvê jî li cem xwe kontrol dikim. Eger destûr hebe bi germî dikarim wê malperê standart bikim. Benda bûna du heftîyan gelo ne zehmet e? Duyemîn pêşnîyaza min nîşandana standarta peyvê di malpera de ye. Kesek dema malperan binêre, divê li jora malperan bibîne ku ev peyv standart e. Ev jî hîzmet e. Çimkî nivîskar, wergêr, edîtor, rojnemavan hez dikin bi peyvê standart binivîsin. https://ku.wiktionary.org/wiki/k%C3%AAf li vir wekî mînak min daye nîşan. Lê îfade eger wisa be: Standarda Rastnivîsîna Ferhenga Kurdî a Weqfa Mezopotamyayê kêf (r. 253) e yê çetir be. Çimkî îfadeya berê de peyva kurdî-tirkî derbas dibe û di mejîyê mirov de tevlihevî çêdibe.@[[Bikarhêner:Bikarhêner|Bikarhêner]]@[[Bikarhêner:Guherto|Guherto]] [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 10:25, 8 kanûna paşîn 2026 (UTC) :Merheba. Hevalno dîyar e karê standarkirinê li wîkîferhengê rawestîya ye. Min sê peyv ji bo standartkirinê qeyd kir. Kes li ser şîrove nenivîsî. Mehek jî li ser derbas bû. Aniha ez dikarim van rupelan biguherim. Li gor qaîdeya hatine danîn wisa ye. Daxwaza min heta niha jî ew e kelîmeyên di ferhenga standartkirinê de heyî divê em bikaribin rasterast li vir jî bikin standart. An jî demê kurttir bikin. Li weqfa mezapotamyayê 20 mirov digêhin hev li ser peyvekî seetan nîqaş dikin. Ma hewceyê em jî li vir nîqaş bikin? Tevlî vê jî ji xwe kes li ser vê mijare nasekîne van dema. Xeynî vê pêşnîyaza min nîşandana standarta peyvê di malpera de hebû. Li ser malperê 'Standarda Rastnivîsîna Ferhenga Kurdî a Weqfa Mezopotamyayê kêf (r.253) e' Tiştek mîna wî hebe yê gelek kêrî her cure nivîskarê me were. Çimkî hin nivîskarên me hez dike bi kelîmeyên standart binivîse. Di malperê de bila vê hêsanî fam bike çêtir e. @[[Bikarhêner:Bikarhêner|Bikarhêner]]@[[Bikarhêner:Ghybu|Ghybu]] [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 18:35, 17 sibat 2026 (UTC) ::Merheba @[[Bikarhêner:Rewiye tine|Rewiye tine]]. Ev format pir xirab dibe. Tu dikarî li beşa Çavkaniyê binivîsî bi şablona {{ş|kitêb}} binivîsî çêtir e û tê eynî maneyê. Lê her kes standarda Weqfa Mezopotamyayê qebûl nakin û ez jî şibhê dikim ku ev websîte bi awayekî kolektîv tê çêkirin an na. Loma em bi ya kitêba rastnivisînê çêkin û eger îtîraz tinebe, şablona {{ş|ds-kirî}} li gotûbêja [[WF:DS]] binivîse, dûre li gotûbêjê arşîv bike, ne hewce ye li hêviya kesên din bisekinî. Eger itirazek hebe, ê ku dixwaze dûre dîsa şablona ds zêde bike. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:30, 5 tîrmeh 2026 (UTC) :::[https://berwarnews.com/ferhenga-rastnivisine-qonaxeke-giring-a-standardkirina-kurmanci-ye/ Roportaja Mikail Bülbül] li ser proseya standardkirinê. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:57, 9 tîrmeh 2026 (UTC) ::::Min nû dît an jî nû hatiye zêdekirin lê meqaleyek bi navê [https://www.ferhengkurdi.com/?q=iltihap&modal=lijne lijneya edîtorîyê] nivîsandine [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:40, 22 tîrmeh 2026 (UTC) == <span lang="en" dir="ltr">Annual review of the Universal Code of Conduct and Enforcement Guidelines</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> I am writing to you to let you know the annual review period for the Universal Code of Conduct and Enforcement Guidelines is open now. You can make suggestions for changes through 9 February 2026. This is the first step of several to be taken for the annual review. [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2026|Read more information and find a conversation to join on the UCoC page on Meta]]. The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|you may review the U4C Charter]]. Please share this information with other members in your community wherever else might be appropriate. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]])<section end="announcement-content" /> </div> 21:02, 19 kanûna paşîn 2026 (UTC) <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> == Request for comment (global AI policy) == <bdi lang="en" dir="ltr" class="mw-content-ltr"> Apologies for writing in English. {{int:Please-translate}} A [[:m:Requests for comment/Artificial intelligence policy|request for comment]] is currently being held to decide on a global AI policy. {{int:Feedback-thanks-title}} [[Bikarhêner:MediaWiki message delivery|MediaWiki message delivery]] ([[Gotûbêja bikarhêner:MediaWiki message delivery|gotûbêj]]) 00:58, 26 nîsan 2026 (UTC) </bdi> <!-- Message sent by User:Codename Noreste@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30424282 --> == Guharto == : <small>→ Ji rûpela ''[//ku.wiktionary.org/w/index.php?title=Got%C3%BBb%C3%AAj:berf%C3%AEtik&oldid=6233338 Gotûbêj:berfîtik]'' hatiye girtin.</small> Silav {{r|Ghybu}} ma hewce ye em guhartoyan jî kategorîze bikin? Li vê [[ژیشک]] binere, tije guhartoyên wê hene, ku em ji gişan re guhandar binivîsin dê 10 navên heman hebin di nav wê kategorîyê de. Tu çi difikirî? [[Bikarhêner:Keyomerd|Keyomerd]] ([[Gotûbêja bikarhêner:Keyomerd|gotûbêj]]) 09:40, 26 nîsan 2026 (UTC) :{{silav|Keyomerd}}. Erê, problem çî ye? {{=)}} Ew jî tên bikaranîn... Dema ku peyvek tê çêkirin hewce ye ku em hemû agahiyên wan binivîsin: bilêvkirin, bikaranîn, mînak, terîm, herêm, tewandin, etîmolojî... :Bi min peyvên ku wekî ''guherto'' hatine nivîsandin bi nivîsa {{w|Italic type|îtalîk|ziman=en}} (xwahr) di nav kategoriyan de werin nişan kirin (ji bo cudakirinê). {{ping|Ferhengvan|Bikarhêner}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:40, 30 nîsan 2026 (UTC) ::Yên '''''nestandard''''' di kategorîyan de biferq werin nîşandan baştir e. Qene em karibin wan ji yên stadard ferq bikin. @[[Bikarhêner:Ghybu|Ghybu]] Xêra xwe hûn sîstemeke wisa çêkin. -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 14:36, 1 gulan 2026 (UTC) :::Merheba @[[Bikarhêner:Keyomerd|Keyomerd]] û @[[Bikarhêner:Bikarhêner|Bikarhêner]] ev xisûsiyet jixwe di şablonên rêzimanê de heye, wextê {{param|formaalt|1}} dinivîsin, made dikeve Kategoriya [[:Kategorî:Formên alternatîv bi kurmancî]] li gorî koda zimanî jî zimanên din tê çêkirin. Hemû madeyên kurmancî bi alfabeya erebî dikevin vê kategoriyê lê nizanim ev tiştekî rast e Yan xelet e, ji bo nîşandanê min çêkiribû lê min hîn wext nedît ku nîqaşek li ser çêkim. Qaîdeyên bikaranîna vê parametreyê di wîkiya îngilîzî de jî tam ne belî ye. Du gotûbêj [https://en.wiktionary.org/wiki/Wiktionary:Requests_for_moves,_mergers_and_splits#Category:Alternative_forms_by_language] [https://en.wiktionary.org/wiki/Wiktionary:Beer_parlour/2024/June#Decluttering_the_altform_mess] çêkirine lê ji bo îngilîzî ev parametre nehatiye bikaranîn. Min ji bo nîşandanê niha [https://ku.wiktionary.org/w/index.php?title=bax%C3%A7%C3%AA_zarokan&diff=prev&oldid=6241372] ceriband lê bi min xelet e. Em çawa bikin? Kengî vê parametreyê bi kar bînin? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:29, 8 tîrmeh 2026 (UTC) ::::@[[Bikarhêner:Kurdanparez|Kurdanparez]] Tu çi difikirî? Ji bo zazakî [https://ku.wiktionary.org/w/index.php?title=a_c%C4%B1_geyrayene&oldid=6241396 wisa] bikin? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:55, 8 tîrmeh 2026 (UTC) :::::Kategorîyekê cuda baş dibe. Wextê ku ez li kategorîya "lekêren bi zazakî" dinêrim, ez hem formê bi şikilê Johnsonê û formê standardê dibînim. Zaten wexte ku ez dikevim ê Johnsonê, min dibe formê standardê. Kategorîyekê cuda, bi taybetî ji bo nivîsandinên alternatîf, baş dibe. :::::Lê em bîr nekin ku wextê ku em bo formên alternatîf yên devokî qal dikin, belkî adil neye ku em ev bişînin derekê din yê ku însan ewqas nabînin. [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:03, 8 tîrmeh 2026 (UTC) ::::::@[[Bikarhêner:Kurdanparez|Kurdanparez]] Gelo min rast fêm kir? Tu dibêjî formên {{q|ku|kîvroşk}} bi dîqet werin guhartokirin lê bi yên bi alfabeya Jacobsonê hemû bikin {{param|formaalt|1}}? Formên Jacobsonê dê bikevin Kategoriya [[:Kategorî:Lêker bi zazakî|Lêker bi zazakî]] û [[:Kategorî:Lema bi zazakî|Lema bi zazakî]] yan na? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 23:55, 8 tîrmeh 2026 (UTC) :::::::Bi min naxwaze di wan kategoriyan de bikeve. Wek tu dibînî dûplîkat pir hene. Bi min çareya baştir yên Johnsonê di katehgorîyekê din bikevin (bila format li rûpelan neyin guherandin, bi tenê kategorî) [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 00:37, 9 tîrmeh 2026 (UTC) == Peyvên soranî bi latînî ([[:Kategorî:Soranî]]) == Silav, di nav vê kategoriyê (''[[:Kategorî:Soranî]]'') de pirr peyv tenê bi alfabeya latînî hatine nivîsandin. Divê ew mutleq jî bi alfabeya erebî werin transkrîbe kirin ji ber ku soranî bi alfabeya erebî tê nivîsand... Bikarênerên ku soranî dizanin dikarin wan sererast bikin? Mînakên guhertinan: [//ku.wiktionary.org/w/index.php?title=zor%C3%AEne&curid=6584&diff=6233355&oldid=5859303], [//ku.wiktionary.org/w/index.php?title=s%C3%AAw&diff=6233097&oldid=6233003], [//ku.wiktionary.org/w/index.php?title=sewz&diff=6233313&oldid=6069107], ... Spas! [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 01:16, 2 gulan 2026 (UTC) == <span lang="en" dir="ltr">Vote now in the 2026 U4C election</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> Eligible voters are asked to participate in the 2026 [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] election. More information–including an eligibility check, voting process information, candidate information, and a link to the vote–are available on Meta at the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|2026 Election information page]]. The vote closes on 2 June 2026 at [https://zonestamp.toolforge.org/1780358400 00:00 UTC]. Please vote if your account is eligible. Results will be available by 14 June 2026. -- In cooperation with the U4C,<section end="announcement-content" /> </div> [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 17:15, 27 gulan 2026 (UTC) <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 --> == RFC about AI-generated content in Wikimedia Commons == <bdi lang="en" dir="ltr">Apologies for writing in English, please help translate this message to your language. You are invited to participate in a [[c:Commons:Requests for comment/Policy update for AI content|request for comment on Wikimedia Commons about a policy update for AI content]]. This may affect files that are uploaded to Wikimedia Commons for use on this project. Thank you. [[m:User:Codename Noreste|Codename Noreste]] ([[m:User talk:Codename Noreste|gotûbêj]])</bdi> 17:12, 23 hezîran 2026 (UTC) <!-- Message sent by User:Codename Noreste@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 --> == <span lang="en" dir="ltr">Deployment of Legal and Safety Contacts Link in the Footer of Your Wiki</span> == <div lang="en" dir="ltr"> <section begin="Message"/> '''Legal & Safety Contacts''' Hello community, the Wikimedia Foundation has provided a [[wmf:Special:MyLanguage/Legal:Wikimedia Foundation Legal and Safety Contact Information|single legal and safety contact page]], to be linked in the footer of your wiki, to ensure access to accurate legal information. This is a regulatory requirement. We have already rolled out links to English, German, Italian, Spanish and other wikis and we will deploy to your wiki soon. [[m:Special:MyLanguage/Wikimedia_Foundation_Legal_and_Safety_Contacts_FAQ|Please read more on the project page]] and leave any comments in this thread or on the [[m:Special:MyLanguage/Talk:Wikimedia Foundation Legal and Safety Contacts FAQ|talk page]]. <section end="Message"/> </div> -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 13:31, 25 hezîran 2026 (UTC) <!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=30731267 --> == Jêbirina ferhenga Sadallah == Merheba @[[Bikarhêner:Guherto|Guherto]] Îmkan heye lîsteyeke wisa çêkî ku hemû sayfeyên Cyrusbot çêkir yên ku tê de tenê tercimeyeke îngilîzî heye û ev tercime jî hatibe jêbirin? Nimûne ''[[derdzanî]], [[êşzanî]]'' tenê tercimeya [[pestology]] heye ew jî ji ber heqê telîfê hatiye jêbirin. Nimûneyeke din ''zêrrgeh'', ''zêrrkar'' [[goldsmith]] hatiye jêbirin zêr wekî zêrr hatiye guhartin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:48, 26 hezîran 2026 (UTC) :Temam @[[Bikarhêner:Wikihez|Wikihez]], lê vê heyvê ez nikarim, heyva were ez ê li vê meseleyê vegerim înşellah. [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 22:51, 2 tebax 2026 (UTC) == Beşa Tewandin bo kurmancî == Bi ya min şablona {{ş|ku-tewîn-nav}} û ya fiîlê em bixin beşa Tewandinê (wekî [[şodir|zazakî]]. Bi vî awayî hem ji aliyê şiklî ve hem jî ji aliyê bikaranînê ve xweştir xuya bike. Eger di qismê Tewandinê de be, ê ku dixwaze îzah û notên xwe yan jî emilandinên din jî dikare binivîse. Hûn çi dibêjin? @[[Bikarhêner:Ferhengvan|Ferhengvan]], @[[Bikarhêner:Ghybu|Ghybu]], @[[Bikarhêner:Bikarhêner|Bikarhêner]]. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:05, 6 tîrmeh 2026 (UTC) :Belkî em dikarin Formata şiweyan wekî ya behdînî jî têxin nav şablonê. Pir caran şiklê tabloya Tercimeyan ji ber dirêjbûna şablona teqînê jî xirab dibe wekî [[astrofizîk]]. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:08, 6 tîrmeh 2026 (UTC) :Min mijarê te li jorê yê xwe dît, fikirên min jî hene eger baş e. Yê ku te gotiye bi min baş dibe, ji ber ku her rûpel ji vê mîna hev dibe. Em ê rindtir jî ferq li nav devokan binivîsin. [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 11:44, 7 tîrmeh 2026 (UTC) ::@[[Bikarhêner:Bikarhêner|Bikarhêner]] fikr? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 08:44, 15 tîrmeh 2026 (UTC) :::Formata ku te teklîf kirîye jî ne xerab e, baş tê xuyan. Feqet bi min halê berê (mewcûd) baştir e. Ji ber ku ev şablon (ku-tewîn-nav) bi piranî kurt in û ji bo her kesî ne mihîm e, lewma li kinarê bi formeke hebe ku karibe were vekirin û girtin baştir e. Lê belê ger şablon dirêjtir bin, em karin wekî ya wîkîya almanî bikin (ew jî wekî teklîfa te ye). -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 09:50, 15 tîrmeh 2026 (UTC) ::::Em tabloya lêkerê jî rakin? 1)Em wekî navdêran bikin, bin beşa Tewandinê 2) Tabloya {{ş|ku-tewîn-reh}} were şûnda tabloya {{ş|ku-tewîn-lk}}: '''[//ku.wiktionary.org/w/index.php?title=gotin&diff=prev&oldid=6323518]''' , '''[//ku.wiktionary.org/w/index.php?title=vexwarin&diff=prev&oldid=6323525]''' 3) Bi şablona {{ş|tewandin}} û bi parametreyên {{param2|niha}} û {{param2|borî}}: '''[//ku.wiktionary.org/w/index.php?title=vexwarin&diff=6323528&oldid=6323525]'''--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 10:46, 3 tebax 2026 (UTC) :::::Ez dibêjim em {{ş|ku-tewîn-lk}} bixin bin beşa Tewandinê feqat dema niha û borî tevî formên wan ên negatîv tê de cih bigire, hinek fireh be jî baş e. Dilê min dixwaze yek ji opsiyonên 2 û 3 tevî beşa Tewandinê jî bi kar bînin lê nizanim kîjan hilbijêrin? Herwiha ji bo îsman em dikarin resim zêde bikin ji bo nîşandanê, em ê fiîlan çawa bikin? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 13:10, 3 tebax 2026 (UTC) ::::::Bi min ji bo kesên ku kurmancî dizanin, tabloya tewandinê "piranî" ne hewce ye. Dema ku ez lêkereke nû hu dikim pêşta rehê wê digerim paşê jî devoka wê... Şablonana "ku-tewîn-reh" pirr dirêj nîne: li ser mobîlê jî pirsgirêk nîne: bin beşa "Lêker"ê de tê nivîsandin: lojîk e. Problema beşa Tewandinê va ye: em ê hertim du rûpel serrast bikinê, rupela lêker (beşa "Tewandinê") û rûpela Tewandin:''lêker''. Bila hêmû gotûbêj tenê li ser rûpela Tewandinê were kirin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 15:06, 3 tebax 2026 (UTC) :::::::Erê em ku-tewîn-lk bi ku-tewîn-reh biguherînin dê baştir bibe. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:30, 4 tebax 2026 (UTC) == Reşwî == Silav ji we gî re, Pirsekê min heye. Ez difikirim şablonekê din çê bikim boy devokek kurmancî, yê êla Reşwî. Ew lêkerên xwe hinek cuda ditewînin. Mesela te hem "ez dikim" bêjî yan jî "ez dikime", "em dikinî, em tênî, te em kuştinî" (ne "em dikin") dema xwe yek in lê maneyên xwe ne yek in, "ez bikim" "ez ê bikim" "ez bikime" û dewamên xwe hemû demên xwe yek in lê mane dîsa ne yek in. Eger min çê kir, şûna xwe li ku derê tînim? Ez difikirim li tewandina devokên kurdî yê ku "tabên" xwe hene "kurmancîya rojavayî", "kurmancîya standard" hsw. Lê tewandin ewqes cuda ye dixwaze ku wî şablona tewandina kurdî pir were guherîn. Hûn çi dibêjin? (R: Hûn dewên çi?) [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 11:38, 7 tîrmeh 2026 (UTC) :{{silav|Kurdanparez}} Binêre mînaka devoka ''rojhilatî'': [[Modul:ku-tewandin#L-135]] / [[Modul:ku-tewandin#L-138|L138]] / [[Modul:ku-tewandin#L-143|L-143]], .. Di nav modula ''ku-tewandin"-ê de tê çêkirin. [[Gotûbêja modulê:ku-tewandin#Paşgirên lêkeran di kurmanciya rojhilatî de]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 13:09, 7 tîrmeh 2026 (UTC) ::PS: Dema niha: [[Modul:ku-tewandin#L-128]]; dema borî: [[Modul:ku-tewandin#L-153]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 13:15, 7 tîrmeh 2026 (UTC) :::Merheba @[[Bikarhêner:Ghybu|Ghybu]], Eger mimkin be tu dikarî yên devokî têxî binmodulekê û bila modul load bike, bi vî awayî belkî çêkirina yên nû û famkirina modulê hêsantir be? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 15:09, 7 tîrmeh 2026 (UTC) :::Lê di devokê reşwî de hem dema niha yê statîk heye (Îng: I do -> Ez dikim) û yê progressîf heye (I am doing -> Eîz (nêr) Ez î (mê) dikime, yan jî Ez î dikime/Ez ê dikime). Reşwî ji yê standardê pirtir bo zayend ferq tîne, hem jî li dema pêşî (Ez ê bikim (Nêr) ez a bikim (Mê)). Dema pêşî jî formên cuda hene (Ezêk bikime (I will be doing it) û ez ê/a bikim (I will do it)) :::Ev di modûlê têhel bê? [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:09, 8 tîrmeh 2026 (UTC) == WF:Xebat == Min sayfeya [[WF:Xebat]] çêkir, xeletiyên ku hûn ferq dikin ji kerema xwe lê zêde bikin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:35, 15 tîrmeh 2026 (UTC) == Modul:quote == @[[Bikarhêner:Ghybu|Ghybu]], @[[Bikarhêner:Bikarhêner|Bikarhêner]], @[[Bikarhêner:Keyomerd|Keyomerd]], @[[Bikarhêner:Ferhengvan|Ferhengvan]] Merheba, ez modula îngilîzî ya jêgirtin û çavkaniyan li gorî şablonên {{ş|jêder}} format dikim û ji bo ku hertişt wekî formata me ya niha be, gelek serê min diêşe. Ez dibêjim bila em dev ji formata niha berdin wekî ya îngilîzî bi kar bînin ji ber ku gelek xisûsiyetên îngilîzî hene ku yekî dikare biemilîne. Hûn ê bibêjin niha ji kû hat bîra tê, min got [[Wîkîferheng:Xebat#MediaWiki:Gadget-start.js|start.js]] nû bikim û min dît otomatîk çavkanî bi riya [[mw:Citoid]]ê bi riya DOI, ISBN û lînk tê çêkirin, min got wiya jî li skrîptê îlawe bikim loma min [[Wîkîferheng:Xebat#Mediawiki:Gadget-citoid-helper.js|Mediawiki:Gadget-citoid-helper.js]] hazir kir lê hin parametreyên Citoidê kêm bûn, min got ka wana rast bikim, min dît formata me ya niha ti standard bi kar nayîne tenê parametreyan bi virgulê li hev dixe. Ez dibêjim formata îngilîzî baştir e, hem ne îtalîk e ku bi hêsanî tên xwendin, hem jî tarîx û çavkanî herî pêşî tên nîşandan ku ji bo peyitandinê bo min muhîm e. Modula îngilîzî de hema bêje her tişt hatiye çêkirin, eger em rûnin tenê yên lazim li şablona çavkaniyên xwe binivîsin ew ê gelek wext bistîne. Eger em modula îngilîzî bi kar bînin, em ê hem karibin şablonên îngilîzî bi hêsanî û rast kopî bikin hem jî kurdîkirina parametreyan gelek hêsan e. Fikir? --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:20, 24 tîrmeh 2026 (UTC) : Ji bo miqayesekirinê bnr. [[:en:Template:quote-book]] / [[Şablon:jêder-kitêb/ceribandin]] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:32, 24 tîrmeh 2026 (UTC) ::Bi min bila yê mewcûd jî bimîne, ew jî şiklen xweş û baştir e. Feqet bi min jî yên îngilîzî rehettir in, eger rastkirina yê mewcûd zehmet be, em rasterast wan ji xwe re bînin û tercime bikin. -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 09:41, 24 tîrmeh 2026 (UTC) :::Ez êvarê ve dixebitim, min nêzîk kiribû lê min got belkî hûn qane bibin lê xuya ye hûn ê hîn serê min gelek biêşînin {{=D}} [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:59, 24 tîrmeh 2026 (UTC) ::::@[[Bikarhêner:Bikarhêner|Bikarhêner]] û @[[Bikarhêner:Ghybu|Ghybu]] Eger îtîrazek tinebe, ez ê îtalîk ji jêgirtinê rakim... Jixwe bi riya [jêgirtin] dikare were veşartin û her daim bi * dest pê dike loma bi hêsanî tê fêmkirin û xwendin rihettir dibe. Bnr. [https://ku.wiktionary.org/w/index.php?title=W%C3%AEk%C3%AEferheng:ceribandin/nim%C3%BBne&oldid=6277132#L%C3%AAker_2 ceribandinê] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:13, 24 tîrmeh 2026 (UTC) == Request for comment (the future of Abstract Wikipedia) == <bdi lang="en" dir="ltr" class="mw-content-ltr"> Apologies if this has not yet been translated into your wiki's language. {{int:Please-translate}} You are invited to voice your opinions in a [[:m:Requests for comment/The future of Abstract Wikipedia|request for comment about the future of Abstract Wikipedia]]. {{Int:Feedback-thanks-title}} [[:m:User:Kowal2701|Kowal2701]] ([[:m:User talk:Kowal2701|talk]]) 12:25, 24 tîrmeh 2026 (UTC) </bdi> <!-- Message sent by User:DreamRimmer@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 --> == ''mê'' yan ''nêr'' li gorî maneyê / ''mê'' yan ''nêr'' (bikaranîn dudil e) == [//ku.wiktionary.org/w/index.php?title=xelat&diff=prev&oldid=6291766]: Mixabin pirr bikarhêner şûnda parametreya <code>z=m/n</code> ('' m yan n li gorî maneyê'') <code>z=mn</code> (''m yan n (bikaranîn dudil e)'') bi kar tînin ([[Şablon:navdêr#Parametre]]) ji ber ku di nav her du nivîsê de pir ferq nebînin. Nizanim em ê dîsa parametreya <code>z=nt</code> (''nêtar'') çêkin, wekî berê: [//ku.wiktionary.org/w/index.php?title=W%C3%AEk%C3%AEferheng:D%C3%AEwan/ar%C5%9F%C3%AEv_2019&oldid=6104681#Zayend]. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 00:17, 28 tîrmeh 2026 (UTC) :Merheba {{r|Ghybu}} {{demo|sep=wisa xuya dibe:<br>|<nowiki>{{navdêr|ku|kelîme|c=mn}}</nowiki>}} Ya din jî; {{demo|sep=wisa xuya dibe:<br>|<nowiki>{{navdêr|ku|kelîme|c=m/n}}</nowiki>}} Tu dixwazî em wana berevajî bikin? Not: nêtar ji bo kurmancî nabe, mn û m/n baş in. Berê ji ber ku m/n tinebû, her kes li gorî parametreyên heyî dixebitî. Niha hene bi min problem nîne eger em berevajî nekin.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 05:32, 28 tîrmeh 2026 (UTC) : Bi min ev format baştir e: {{demo|sep=wisa xuya dibe:<br>|<nowiki>{{navdêr|ku|kelîme|c1=m|c1etîk=Mêrdîn|c2=n|c2etîk=Dihok}}</nowiki>}} Yan jî: {{demo|sep=wisa xuya dibe:<br>|<nowiki>{{navdêr|ku|zayend|c1=n|c2=m|c1ref={{Jêgirtin/Celadet Alî Bedirxan/HAWAR Cild 1 Hejmar 1-23 (1932-1933)/1998|hejmar=4|sal=1938}}|c2ref={{Zana Farqînî}}}}</nowiki>}} {{çavkanî}} :--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 05:49, 28 tîrmeh 2026 (UTC) ::Feqat em dikarin li şûna {{param2|c|m/n}}, {{param2|c|mn?}} yan {{param2|c|mn!}} çêkin ji bo ku neyên tevlihevkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 06:00, 28 tîrmeh 2026 (UTC) :::Ez jî dizanim ku "nêtar ji bo kurmancî nabe" ([//ku.wiktionary.org/w/index.php?title=Got%C3%BBb%C3%AAj%3Afikirmend&diff=3063789&oldid=3063526]) jixwe min "nêtar" kiribû "[//ku.wiktionary.org/w/index.php?title=Got%C3%BBb%C3%AAj:fikirmend&diff=prev&oldid=3063788 mê an nêr li gorî bikaranînê]". Feqet nizanim çima rind nayê fêm kirin: Ferhengvan jî ew parametreyê bi awayekî rast bi kar nayîne [//ku.wiktionary.org/w/index.php?title=Got%C3%BBb%C3%AAj%3Areh&diff=6235991&oldid=6235985]. {{ping|Bikarhêner}} ? Min heta niha pirr gotar serrerastkir... Em ê hertim kontrol bikinê: pêşta problemeke vitira tine bû :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 15:13, 28 tîrmeh 2026 (UTC) ::::Bi rastî kî li vira parametreyên ku te li jor nivîsandine bi kar tîne {{=D}} ? Ji bîr meke em li ser wîkîferhenga kurdî ne... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 15:39, 28 tîrmeh 2026 (UTC) :::::Ya muhîm hebûna sîstemekê ye, heta niha ti sîstemeke baş nehatiye çêkirin û ti rê nehatiye dayîn ji bikarhêneran re ku hîn bibin, hêdî hêdî em ê çi ji destê me were, çêkin û hîn bikin. Bi min atolyeyek lazim e em hin tiştan ji bikarhênerên din re hîn bikin. Mîsal min <code><nowiki>{{subst:beralîbike}}</nowiki></code> li wîkîpediyayê çêkir û ji bikarhênerekî re nîşan da çawa tê bikaranîn, wî dest bi bikaranînê kir. Ji ber ku bikarhênerekî mobîlê ye, nikaribû bi tenê serê xwe beralîkin çêke her daîm alîkarî ji kesên din dixwast ku pir carî ti kes nedihat. Însanên me ji aliyê teknîkî ve baş nebin jî, wextê bi riyeke baş îzah dikî, fam dikim şikir ji xwedê re. :::::Welhasil, [https://ku.wiktionary.org/w/index.php?title=reh&diff=prev&oldid=6291839 reh] çêbû? Eger tu nabêjî nêtar be, min daxwaza te fam nekir. Tu çi dixwazî em çawa bikin? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 15:58, 28 tîrmeh 2026 (UTC) ::::::Nivîs dîsa "''mê yan nêr li gorî maneyê''" be (kategorî jî) feqet di nav parametreyê de <code>mn</code> neyê nivîsandin. Parametre wekî {{param2|z/c|nt}} bisekiniyana (an jî navekî din "g" an "c") feqet nivîs û kategorî bihata guhertin... Herwiha profîlên bikarhênerên ku tên vira wekî en.wiki nînin: li vir zêde namînin û tiştên ku hu dikin jî ji bîr dikin. PS: Di zimanê peştûyî de jî (nêzîkî zimanê kurmancî ye) peyvên "mê an nêr" (''common gender'') hene [[:en:Category:Pashto nouns with multiple genders]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 17:28, 28 tîrmeh 2026 (UTC) :::::::"g", "c", "nt" gî behsa cureyekî xisûsî dikin loma nabin, feqat di nav [https://ku.wiktionary.org/w/index.php?title=Modul:r%C3%AAziman&oldid=6115355#L-306 Modul:rêziman] de koda me "mn" otomatîk dike "mnmane" min ji bo back-compatiblity wisa kiribû lê ya rast "mnmane" ya, em "mn" ji bo kurmancî rakin, hemû "mn" bikin "mnmane" û "m/n" jî rakin û bikin "mndudil", nabe? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:44, 28 tîrmeh 2026 (UTC) ::::::::OK, bi min baş e:) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:18, 28 tîrmeh 2026 (UTC) :::::::::Îmkan heye şablona tewandinê jî wisa bikî ku hem di qismê tewandinê de hem jî aliyê rastê were bikaranîn? Wekî me [[Wîkîferheng:Dîwan/2026#Beşa_Tewandin_bo_kurmancî|li vir]] got? Wextê gelek dirêj be yan mndudil be, em dikarin bixin qismê tewandinê bi şiklê "ya mêr" û "ya nêr". Wekî din yên biçûk û standard bila li aliyê rastê bimînin? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:54, 28 tîrmeh 2026 (UTC) ::::::::::Erê bi parametreya {{param2|hêl|çep}} tê çêkirin. Belkî bi JSê tiştekî vitra jî tê çêkirin: dema ku tablo pirr fireh ye (>450px) tablo wekî "veşartî" xuya bike... ::::::::::"''Wekî din yên biçûk û standard bila li aliyê rastê bimînin?''": '''Aliyê rast:''' Dema ku tu mînakan dixwînî bi hêsanî tabloya tewandinê jî seh dikî (pedagojîk e). '''Bin beşa Tewandinê:''' 1) Ji bo mobilan rind e, tablo ne ser maneya peyvê ye. 3) Şûnda maneyan direj dibe 3) Wêne baştir xuya dikin ji ber ku ne bin tabloyê ne. '''Encam''': yek pratîk e, yek jî pedagojîk e [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:27, 28 tîrmeh 2026 (UTC) :::::::::::Di bin beşa Tewandinê de baştir xuya dike... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:28, 28 tîrmeh 2026 (UTC) ::::::::::::Erê {{=D}} [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:29, 28 tîrmeh 2026 (UTC) :::::::::::::Feqat lazim e yên mezin wekî [[mustensîx]] di nav qutîyê de bê wekî [[:en:heval]] di mobîlê de ya me sayfeyê fireh dike, ya îngilîzî de dikarî qutîyê bişemitînî [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:44, 28 tîrmeh 2026 (UTC) ::::::::::::::Formata herî xweş [https://ku.wiktionary.org/wiki/mustens%C3%AEx#Kurmanc%C3%AE] resm jî lê tê tablo jî di cihê xwe de ye. Wekî din wextê tablo li aliyê rastê ye însan naxwaze resmekî jî lê zêde bike. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:54, 28 tîrmeh 2026 (UTC) :::::::::::::::''overflow'' bi tagên "div"-an rind tên çêkirin. Em ê tabloyên ''NavFrame'' bi kar bînin... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:06, 28 tîrmeh 2026 (UTC) ::::::::::::::::Eger class inflection-table bi kar bînî, bi [[MediaWiki:Gadget-defaultVisibilityToggles.js#L-43]] ê ku dixwaze dikare gîya veşêre an nîşan bide. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:11, 28 tîrmeh 2026 (UTC) :::::::::::::::::Min fêm nekir, biryara we çi ye? Hemû bin beşa Tewandinê? an jî herdu? Li gor wê şablon tê guherandin. Bi min ferq nake, her du jî baş in... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:19, 28 tîrmeh 2026 (UTC) ::::::::::::::::::Me [[#Beşa Tewandin bo kurmancî|li jor]] gotibû bila hemû di beşa Tewandinê de bin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:21, 28 tîrmeh 2026 (UTC) :::::::::::::::::::Erê, min xwand Bikarnêner tiştekî din gotibû... Tu bi botê çêdikî? Bi botê hemû tabloyan bê parmetreya "hêl" bike bin beşa "Tewandin"-ê. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:30, 28 tîrmeh 2026 (UTC) ::::::::::::::::::::Va rabim botekê hazir bikim. Bi qasî min jê fam kir, tam nabêje hemû nekin, nabêje hemû bikin jî. Lê em hemû bikin çunkî du kes got erê. Cihê Tewandinê piştî Bi alfabeyên din û Formên alternatîv be an jî beriya wan piştî maneyê (piştî wajeya klasîk) be? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:38, 28 tîrmeh 2026 (UTC) :::::::::::::::::::::Eger di yekcarê de nayê çêkirin bi parametreya "hêl" ve çêke. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:42, 28 tîrmeh 2026 (UTC) ::::::::::::::::::::::[https://linkcount.toolforge.org/?project=ku.wiktionary.org&page=%C5%9Eablon%3Aku-tew%C3%AEn-nav 27 hezar] car tê bikaranîn, Eger behsa wextê dikî, ne problem e, eger behsa "tenê yên fireh bixin tewandinê" wê carê yên mê û nêr bixim? Te cewaba pirsê cihê tewandinê jî neda? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:48, 28 tîrmeh 2026 (UTC) :::::::::::::::::::::::Lojîk dibêje ku piştî bi "alfabeyên din", "formên alternatîv" û "Ji wêjeya klasîk" [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:55, 28 tîrmeh 2026 (UTC) ::::::::::::::::::::::::Feqet tabloya tewandinê dûr dikeve... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:00, 28 tîrmeh 2026 (UTC) :::::::::::::::::::::::::Bi min "Bi alfabeyên din" bixin piştî Bilêvkirinê çûnkî @[[Bikarhêner:Ferhengvan|Ferhengvan]] pir caran ji bo nîşandana dengî alfaba erebî bi kar tîne, h3 rengê teal tenê ji bo "Navdêr, Lêker hwd." bi cssê bi kar bînin [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/vector-2022.css&diff=prev&oldid=6241199 wekî wisa lê berevajî], Piştî "Ji wêjeyê/klasîk" em tewandinê deynîn, "Formên alternatîv" piştî Tewandinê be û îro nekin, eger dixwazî di ceribandinê de tabloya nû hazir bike, em hefteyek li hêviya hevalên din bisekinin, eger îtîraz nehat, em çêkin? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:15, 28 tîrmeh 2026 (UTC) ::::::::::::::::::::::::::Beşa "Bikaranîn" jî heye... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:28, 28 tîrmeh 2026 (UTC) :::::::::::::::::::::::::::Piştî Bikaranînê bnr. [[:en:Wiktionary:Entry_layout#Headings_after_the_definitions]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:37, 28 tîrmeh 2026 (UTC) ::::::::::::::::::::::::::::(h3) Bilêvkirin, Bi alfabeyên din, Sinifa rêzimanî, ::::::::::::::::::::::::::::(h4) Ji wêjeyê/klasîk (divê were xistin bin maneyê), Bikaranîn, Tewandin, Formên alternatîv, Hevmane, Nêzîk, Dijmane, Jê, Têkildar, Etîmolojî (eger du sinifa rêzimanî ji eynî kokê hebe h3) Dûnde, Binêre herwiha, Werger [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:40, 28 tîrmeh 2026 (UTC) {{outdent|::::::::::::::::::::::::::::}} {{r|Ferhengvan|Bikarhêner|Keyomerd|Zerwanda|Kurdanparez}} Fikir? --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:42, 28 tîrmeh 2026 (UTC) :"Bi alfabeyên din" beşeke pirr hewce nîne, niha beşa "mane" li ser rûpelê dûr dikeve. Bi min "Bîlêvkirin" > Mane > Ji wêjeya klasîk (wekî mînak e) > Bikaranîn > Tewandin > Bi alfabeyên din > Formên alternatîv > ... Divê beşên ku herî zêde tên xwastin werin "ronîkirin". [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 03:07, 29 tîrmeh 2026 (UTC) ::''[[bileks|Bîl'eks]],'' "Bi alfabeyên din" gelek muhîm e, ev ji bo kurmancî "formên alternatîv"-a wîkiya îngilîzî ye, başûrî tenê bi alfaba erebî dinivîsin û wextê kelîmeyek digerin çawa zanibin hatin kîjan kelîmeyê? Bi kirîlî ne lazim e lê bi erebî mecbûrî ye. Ji bo nettir bikin, lazim e em beşa "Bi alfabeyên din" baştir bikin. Mane hinek li jêr be ne muhîm e, wîkiya îngilîzî de jî gelek car lazim e herî jêr ji bo dîtina maneyê. "Ronîkirin"/teal xelet tê famkirin, sankî "qismê sereke (h3) lazim e wê be û qismên din werin xistin binê wê" tê famkirin loma em tenê Mane ronî bikin bes e, ka [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/common.css&oldid=6291927 vê cssê] biceribîne û dîsa fikrên xwe bibêje. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 07:20, 29 tîrmeh 2026 (UTC) :1. '''Li ser cinsîyetê:''' Bi min, em malûmatên ekstra yên wek ''"li Dihokê nêr, li Serhedê mê"'' (Serhed:m|Dihok:n) li qismê ''"Bikaranîn/Emilandin"''ê bidin baştir e. Kelîme di ferhengan de wek form û cinsîyet bi halê standard cih digirin, eger li mintiqayek cuda be ew cudahî li qismê "Bikaranîn/Emilandin"ê wek malûmatek ekstra cih bigire çêtir e. Ferhenga ku em vê gavê ji bo standardkirinê esas digirin ''"Ji bo Rastnivîsînê Ferhenga Kurdî (Kurmancî) - Tirkî ya Nû"'' de jî bi yek cinsîyetê cih dane kelîmeyan. Ji xeynî wê di ferhenga standardkirinê ya Weqfa Mezopotamyayê de jî ew kelîme bi yek cinsîyetê cih digirin. Tiştekî din jî bêjim, eger em şablonê wek "mndudil" bi nav bikin mimkin e ku rê bide şaşîyan. Çimkî gava mirov wê dibîne, mirov dibêje qey li ser cinsîyeta kelîmeyê dudilîyek heye, bi qenaeta min dudilîyek bi wî şiklî nîne. Divê her kelîme xwedî cinsîyetekê bin û îstîsnayên mintiqayî -ger were xwestin- ekstra were nîşandan. Lewma bi min halê mewcûd baş e. 2. '''Li ser şablonên tewandinê:''' Ger şablonên tewandinê di xuyabûna mobîl de bibin sedema xirabîyê, em wan şablonan ji bo mobîlan têxin qismê "Tewandin"ê. 3. '''Li ser rêzkirina qisman:''' Bi min divê mane li pêş be û ne hewce ye ku qismê "Bi alfabeyên din" derxin pêş. -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 13:20, 29 tîrmeh 2026 (UTC) ::Li ser cinsiyetê erê, eger di ferhenga rastnivîsînê de cinsiyet hatibe nivîsandin ne hewce ye em "mndudil" binivîsin li qismê Bikaranînê behskirin bes e, lê eger tê de ev kelîme tinebe û di ferhengên din de jî dudiliyek li ser bikaranîna cinsiyetê hebe, wê demê "mndudil" lazim e bikaranîn çunkî wîkîferheng lazim e li gorî çavkaniyan were nivîsin. Li ser tewandinê ne mimkûnê em di mobîlê de di qismê Tewandinê de, di sermaseyê de em li qismê maneyê bixin loma lazim e em bi yek şiklî li qismê Tewandinê hemû bixin çêtir e. Li ser "Bi alfabeyên din" ji bo min zêde muhîm nîne, feqat dîsa jî ez dibêjim lazim e were pêşxistin. Tiştekî wisa jî heye eger di sayfeyekê de ji yekî zêdetir sinifên rêzimanî hebe wê demê lazim e Bi alfabeyên din bi sê = were bikaranîn, û cihê wê ne li dawiyê lê divê piştî Bilêvkirinê be.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 13:45, 29 tîrmeh 2026 (UTC) :Bi a min beşa çevandinê li serê rûpelê be beşa maneyê pir dûrî çavan dikeve. Li jêrtir be çêtir e. [[Bikarhêner:Keyomerd|Keyomerd]] ([[Gotûbêja bikarhêner:Keyomerd|gotûbêj]]) 06:01, 31 tîrmeh 2026 (UTC) ::{{r|Wikihez}} Bi min di nav tabloyê de parametreya yekem jî were rakirin, ne hewce ye bi <nowiki>{{PAGNAME}}</nowiki> tê çêkirin. Di rûpelên din de jî (ne yên sereke) bi parametreya {{param2|nav}} were nivîsandin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 11:07, 31 tîrmeh 2026 (UTC) :::Erê, maqûl e. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:23, 31 tîrmeh 2026 (UTC) ::::cinsiyet jî m, n, mn be bes e ma bila wekî {{ş|navdêr}} be. cuda nebin [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:41, 31 tîrmeh 2026 (UTC) :::::@[[Bikarhêner:Bikarhêner|Bikarhêner]], @[[Bikarhêner:Keyomerd|Keyomerd]], @[[Bikarhêner:Ghybu|Ghybu]] "Bikaranîn" an "Notên bikaranînê" ? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 13:47, 31 tîrmeh 2026 (UTC) :::::Wekî {{r|Bikarhêner}}î gotî zayenda peyvnan gorî devokan jî diguhere, divê ew jî bêne dîyarkirin. Herwiha beşa lêvandinê a ji bo pîtên cêwî pir tê paşguhkirin. Divê jê re cîyekî cihê bê hilanîn. Û ew jî wek zayendê bi devokan diguhere. Meselen tya pêşîn a "tişt" ê li ba me nerm e lê li deverên din hişk e. Û ji devla reqê (wek t-ya req) hişk bi kar bê çêtir e, jixwe her kes wê bi kar tîne nizanim req ji ku derketîye. [[Bikarhêner:Keyomerd|Keyomerd]] ([[Gotûbêja bikarhêner:Keyomerd|gotûbêj]]) 14:05, 31 tîrmeh 2026 (UTC) : <syntaxhighlight lang="json"> "subsections": [ "Ji wêjeya klasîk", "Ji wêjeyê", "Bikaranîn", "Tewandin", "Bi alfabeyên din", "Formên alternatîv", "Kurtkirin", "Sembol", "Navê zanistî", "Hevmane", "Dijmane", "Jê", "Nêzîk", "Jornav", "Jêrnav", "Têkildar", "Etîmolojî", "Dûnde", "Binêre herwiha", "Bi zaravayên din", "Werger", "Qafiye", "Anagram" ] </syntaxhighlight> {{r|Keyomerd|Ghybu|Bikarhêner}}Li gorî nîqaşa jor û [[Alîkarî:Formata nivîsînê]] min ev lîste hazir kir lê tê de hin kêmasî hene, "Bide ber" tê de tine ye, li kû derê bixim? Mihtemelen beşên din jî hene ku haya min ji wan nîne. Pirsek din, beşên nestandard wekî [https://ku.wiktionary.org/w/index.php?title=berf&diff=prev&oldid=6292461] çi bikim? Min got li dawiyê bixim berî Wergerê lê sankî piştî Wergerê be çêtir e?--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:24, 31 tîrmeh 2026 (UTC) :@[[Bikarhêner:Bikarhêner|Bikarhêner]], @[[Bikarhêner:Ghybu|Ghybu]], @[[Bikarhêner:Keyomerd|Keyomerd]] Eger îtîraz an fikrekî din neyê, ez ê beşên nestandard bixim beriya "Bi zaravayên din" eger ev beş tinebe, beriya "Werger". Ez ê "Nêzîk" jî bixim piştî Hevmane û li ser [[Alîkarî:Formata nivîsînê]] "rast" bikim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:50, 1 tebax 2026 (UTC) ::Ez ê "Bikaranîn" jî bikim "Notên bikaranînê" [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 01:03, 1 tebax 2026 (UTC) :::Jixwe bot hema bêje hazir e, eger dûre kesek rabe fikrekî din li pêş bixe, em dikarin biguherînin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 01:04, 1 tebax 2026 (UTC) ::::Ev hinek zêdetir problematîk e feqat ez ê "Ji wêjeyê/a klasîk" jî bikim "Ji edebiyatê"/"Ji edebiyata klasîk". Tabî eger fikrekî din hebe, ne problem e. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 01:05, 1 tebax 2026 (UTC) :::::Na, bi min "wêje" bimînî... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 01:22, 1 tebax 2026 (UTC) ::::::Ok {{=D}} [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 01:23, 1 tebax 2026 (UTC) :::::::"Bide ber" pêşiya "Binêre herwiha" :::::::"Jê" pêşiya "Têkildar" piştî jornav, jêrnav [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 01:41, 1 tebax 2026 (UTC) :::::Ji bo min "'''edebîyat'''" çêtir e, bila ne wêje be. "wêje" kelîmeyeke şaşçêkirî ye. Mahîyeta qisman (kîjan qism bi kêrî çi tê) ji navên wan nayê famkirin. "Binêre herwiha" û "Herwiha" tevlihev dibû, baş e we rast kirîye. Feqet mahîyeta wê qismê ("Binêre herwiha") hê jî ji navê wî nayê famkirin. Jixwe ger em bixwazin bi wî şeklî binivîsin jî divê em bikin "Herwiha binêre", ew jî zid hatîye nivîsandin. Ji xeynî wê, "Navê zanistî" na, "'''Navê îlmî'''" çêtir e. -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 22:51, 2 tebax 2026 (UTC) ::::::Bi min beşa Navê zanistî werin rakirin, wekî en.wikt em li dawiyê yan li pêşiya maneya bi şablona {{ş|q}} binivîsin yan jî wê şablona îngilîzî çêkin ku enwikt bi kar tîne. ::::::Li wikipediyayê min çend car dîtiye Penaber49 jî "Binêre herwiha" dike "Binêre" loma guhartina wê wekî "Herwiha binêre" fikrekî maqûl e. ::::::Herwiha tu ji bo Bêhtir xwendin çi dibêjî [[Special:PermanentLink/6323554#Binêrê_herwiha]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 13:29, 3 tebax 2026 (UTC) :::::::Ez dibêjim bila '''''"Xwendina Zêdetir"''''' be. -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 05:03, 6 tebax 2026 (UTC) :::Em çima peyva notê bi kar tînin, ma "nîşeyên bikaranînê" ne çêtir e? [[Bikarhêner:Keyomerd|Keyomerd]] ([[Gotûbêja bikarhêner:Keyomerd|gotûbêj]]) 06:04, 1 tebax 2026 (UTC) :Rêzkirina dawî: <syntaxhighlight lang="json"> "subsections": ["Ji wêjeya klasîk", "Ji wêjeyê", "Tewandin", "Notên bikaranînê", "Bi alfabeyên din", "Formên alternatîv", "Kurtkirin", "Sembol", "Navê zanistî", "Hevmane", "Nêzîk", "Dijmane", "Jornav", "Jêrnav", "Jê", "Têkildar", "Etîmolojî", "Dûnde", "Bide ber", "Binêre herwiha", "Bi zaravayên din", "Werger", "Qafiye", "Anagram"] </syntaxhighlight> Bnr. [[Wîkîferheng:Bot/Balyozbot/tercîh.json]] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 01:44, 1 tebax 2026 (UTC) :Bi botê ez ê tenê binebeşên sinifên rêzimanî yên bi 4 = biguherînim, yên din lazim e bi destî werin guhartin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 01:46, 1 tebax 2026 (UTC) ::@[[Bikarhêner:Ghybu|Ghybu]] Bota rêzkirina binebeşan û cihguhartina Tewandinê hema bêje hazir e. Param {{param|hêl}} bi kar bînim (eger wisa be, em kategoriya "ku-tewîn-nav bê param hêl" çêkin daku hemû xilas bikin) yan jî şablonên heyî bikim ku-tewîn-nav/kevn û piştî kontrolkirinê hemû bikin nû? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:26, 1 tebax 2026 (UTC) :::Bi parametreyê {{param2|hêl}} tu ê paşê wan dîsa rakî... Herwiha min va [https://ku.wiktionary.org/w/index.php?title=abes%C3%AEv&curid=43641&diff=6294632&oldid=6244736] fêm nekir, me çima Tabloya tewandinê rakir :)? [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:26, 1 tebax 2026 (UTC) ::::Ji bo ku rê bidin tiştên wisa :D Em ê li kû derê deynîn examples?? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:28, 1 tebax 2026 (UTC) :::::Tablo hazir bin, em dest pê bikin? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:28, 1 tebax 2026 (UTC) ::::::Sernav tê rakirin, mê bikim "m"? yan bila bimînî? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:28, 1 tebax 2026 (UTC) :::::::Tablo hatiye çêkirin bi [https://ku.wiktionary.org/wiki/Modul:ku-tew%C3%AEn-nav/ceribandin vê] kodê her du parametre jî tên bikaranîn mê/m, nêr/n û mê û nêr/mn... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:41, 1 tebax 2026 (UTC) :::::Ez nizanim çi bibêjim... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:43, 1 tebax 2026 (UTC) ::::::[https://ku.wiktionary.org/w/index.php?title=abes%C3%AEv&diff=prev&oldid=6294657] ok? ::::::Bi min li şûna {{param|hêl}} em {{ş|ku-tewîn-nav/nû}} bi [[Modul:ku-tewîn-nav/ceribandin|modula ceribandinê]] çêkin, paşê navê şablonê biguherînin baştir be, çunkî [[Special:PermanentLink/6294527#L-337|modula nû]] ne backward compatible e. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:56, 1 tebax 2026 (UTC) :::::::Em ê dîsa paşê nivîsa "/nû" rakin. Bi botê 22000 rûpel di 2 rojan de tê guherandin? Eger wisa ye (bi min pirr nîne), bi navê rast biguhrîne, bila di nav rûpelên ku nehatine guherandin xeletî hebin... Dîsa jî tu dizanî, bot te çêkiriye û tu sererast dikî :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:17, 1 tebax 2026 (UTC) ::::::::Min gelek caran dîtiye, bi botê tiştekî hatiye guhartin lê ji ber ku rind nehatiye kontrolkirin, şablona kevn bi halê xwe yê kevn maye. Tirsa min ew e. Ji ber ku formata hemû sayfeyan ne eynî ne, ez dibêm bot gelek ji wan derbas bike. Bi vî awayî em ê {{ş|ku-tewîn-nav}} sêwî bihêlin û piştî bot xilas kir, em ê bi dil rehetî karibin şablona nû rakin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:26, 1 tebax 2026 (UTC) :::::::::Rast e! {{param|g|2}} :)) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:32, 1 tebax 2026 (UTC) ::::::::::Mîsalên wan gelek in :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:36, 1 tebax 2026 (UTC) :::::::::::Eger karibî hinek round edges bixî û rengê background a "Tewandina X" biguherînî, gelek moderntir û xweştir xuya bike :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 23:25, 1 tebax 2026 (UTC) ::::::::::::''Simplicity is best'' / ''Fewer choices mean less worry:'' felsefeya min e:) Me tabloyê wekî en.wîkî kir [https://ku.wiktionary.org/wiki/%C5%9Eablon:tabloya-tewandin%C3%AA-ser {tabloya-tewandinê-ser}], tenê [//ku.wiktionary.org/wiki/Modul:ku-tew%C3%AEn-nav/ceribandin#L-362 reng] ({{param2|palette}}) tê guherandin (felsefeya wan e jî...). Bi min tiştekî pir rind çêkirine. Dîsa jî em dikarin (wekî berî) bi CSSê biguherînin. Ji bo çêkirina tabloyan min di rûpela şablonê de tiştên ku pirr hewce ne nivisandiye ji bo detayan jî rûpela en.wiki heye. Herwiha tabloyê li gor daxwaza we biguherînin û serrast bikin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 03:04, 2 tebax 2026 (UTC) :::::::::::::PS: Şiklê tabloyê li vira tê guherandin [[Şablon:tewandin-ser/style.css]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 04:41, 2 tebax 2026 (UTC) ::::::::::::::Mala te ava tu ji heqê rengan gelek xweş derdikevî :) ::::::::::::::Ev felsefeya te gelek caran karê min pir zor dike {{=D}} en.witk gelek tiştî bi awayekî xweş çêkirine, ez jî heta ku wana adapte bikim, gelek êş dikşînim bnr. [[#Modul:quote]] û Şablonên etîmolojiyê [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 10:47, 2 tebax 2026 (UTC) :::::::::::::::Bot xilas kiriye, Baş e [[Special:PermanentLink/6323268#Şablona_ku-tewîn-nav_ne_li_binê_Serenav_an_Navdêrê_ye|zêde]] xeletî derneketin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:35, 2 tebax 2026 (UTC) ::::::::::::::::Gelek spas! [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:42, 2 tebax 2026 (UTC) :::::::::::::::::Niha şablon sêwî ma ji xeynî gotûbêjan, ew jî dûrê rast bikim, tu dikarî modulan rojane bikî? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:28, 3 tebax 2026 (UTC) ::::::::::::::::::Spas. Ev rûpel pirr dirêj bû... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 00:33, 3 tebax 2026 (UTC) :::::::::::::::::::Erê, rêzkirina beşan ez ê bikim yek satir, lê dîsa jî zêde fêde nede, fikrekî din heye? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:38, 3 tebax 2026 (UTC) ::::::::::::::::::::@[[Bikarhêner:Ghybu|Ghybu]] [https://ku.wiktionary.org/wiki/W%C3%AEk%C3%AEferheng:D%C3%AEwan#c-Wikihez-20260801005000-Wikihez-20260731162400] û [https://ku.wiktionary.org/w/index.php?title=gur&curid=5384&diff=6328092&oldid=6328089] ? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:00, 7 tebax 2026 (UTC) == SEO == Merheba @[[Bikarhêner:Ghybu|Ghybu]] Wextê ''jiyannas'' bi şiklê "jiyannas" lê digerî di nav netîceyên googlê de [[jiyannas]] derdikeve? Min hem bi Chromeê û hem jî bi VPNê ceriband lê [[jiyannaseke]] derdikeve feqat [[jiyannas]] dernakeve. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:31, 2 tebax 2026 (UTC) :"zengilok" derdikeve [[zengilok]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:38, 2 tebax 2026 (UTC) :Min jî tenê [https://usercontent.one/wp/portal.arsivakurd.org/wp-content/uploads/2024/08/Bernamegeh-4.pdf?media=1709107483 va] (''Berna Megeh'', Jan Dost, OCCO MAHABAD) û https://portal.arsivakurd.org/wp-content/uploads/2022/06/Xwebun-34.pdf va] (''Xwebûn'', hj.34) dît herwiha ''Jihannasî'' jî heye... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:44, 2 tebax 2026 (UTC) ::Behsa çavkaniyan nakim behsa SEOyê dikim, çima [[jiyannas]] di netîceyan de dernakeve. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:49, 2 tebax 2026 (UTC) :::Min fêm nekir, pirsa te çima Wîkîferheng dernakeve ye? [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:51, 2 tebax 2026 (UTC) ::::Erê çima sayfeya Wîkîferhengê ya [[jiyannas]] dernakeve feqat [[jiyannaseke]] derdikeve. Min du nimûne nivîsandin ka piştî mehekê em binêrin derkeve yan na. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:54, 2 tebax 2026 (UTC) :::::Bi min dema ku motora googlê "jiyannaseke" (-eke bi kurdî ye) digere, ew peyv tenê di kurdî de heye ji ber vê yekî dide. Feqet "Jiyannas" di nav zimanên din de jî heye (belkî difikire ku ew xeletî ye.). Herwiha nivîsa bin "Jiyannas" li gor "jiyannaseke" biçûk e û li bin "biolog" hatiye nivîsandin:) Herwiya peyva "biolog" jî dide ew jî giridayî pirr peyvan e... Pirr parametre hene... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:09, 2 tebax 2026 (UTC) ::::::Wextê li "birakujî" dictionnaire digerî netîceya ewil rasterast fr.wikt e. Wana tiştekî kirine lê çi? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:13, 2 tebax 2026 (UTC) :::::::"Trust Score" ? Herwiha peyva "birakujî" pêş Wîkîfehengê hatiye çêkirin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:21, 2 tebax 2026 (UTC) ::::::::Nizanim [[:en:Wiktionary:Votes/2023-08/Installing the WikiSEO extension]] heye lê [[:phab:T346590]] sekinî ye. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:27, 2 tebax 2026 (UTC) :::::::::Erê, feqet lînkên û navên Wîkîferhenga fransî û îngilîzî di internetê de pirr tên parvê kirin. Wîkîferhenga fansî ferhengek derxistiye: [https://www.fnac.com/a13530183/Collectif-Le-dico-adapte-du-Wiktionnaire Le dico] (li ser Amazonê). Kî qala Wîkîferhenga kurdî dike? Ji ber vê yêke hertim pêş me ne. Daxwaza wan werin pêş malperên din... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:36, 2 tebax 2026 (UTC) ::::::::::[https://www.google.com/search?sca_esv=a854c327b7bb0786&q=%22W%C3%AEk%C3%AEferheng%22&tbm=nws&source=lnms&fbs=ABfTbFUDadgeu2mn4mYJ8iEZ1GUDDuwRa4um-2LNhBFWIpqZc7ZL_t3iAe0lB1D4hb_Ohp7yg8FO-XwZ7R-ba4YefvIQCF4Ra4wbUNQStQ8dVc6IK2vWHoXbgHLwJobq4HTNMksBhYHBmxw2hK9Sa4pHAI3I2Ovzox54EiEId7q7IoMJRkRlr-XDezqDqx33xDsZIWuHy-a_vqoqDlYrhNBbNeVEP9MwaA&sa=X&ved=2ahUKEwiz94Co9IKWAxXNUaQEHQJAAGYQ0pQJegQIGBAB&biw=1320&bih=583&dpr=1 Wîkîferheng] {{=D}} Li ser X û medyayên din de jî pirr qala Wîkîferhengê nakin... Bi rastî kî Wîkîfrhengê dixwîne? [https://pageviews.wmcloud.org/topviews/?project=ku.wiktionary.org&platform=all-access&date=yesterday&excludes=]... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:41, 2 tebax 2026 (UTC) :::::::::::Haya ti kesî ji Wîkîferhengê nîne bi rastî loma pêşxistina SEOyê hewce ye. Ez dibêjim miheqeq fr.wikt tiştek çêkiriye ne mimkun e wextê heval dictionnaire binivîsî wiktionary derkeve bêyî çêkirina tiştekî. Not: Min ferq kir li ser fr.wikt wextê bi mobîlê tê dikevî, eger di sayfeyekê de du ziman hebe ya fransî otomatîk vedibe zimanê din veşartî dimîne. Fikrekî xweş e em jî çêkin? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:21, 2 tebax 2026 (UTC) ::::::::::::Erê bila were çêkirin. Min gotûbêja wan li ser vê mijarê xwandibû, Wîkîferhenga fransî jî ne razî ye. Dema ku li ser Googlê tu peyvek diguherî Wîkîferhenga wan di bin Wîkîpediyayê û di bin malperên din de derdikeve. Û çend caran şûnda "Wiktionnaire" "Wikipédia" tê nivîsansin... Ew jî nizanin çi bikin :)) Niha dizanim ku en.wikt ji ne razî ye... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:37, 2 tebax 2026 (UTC) :::::::::::::@[[Bikarhêner:Ghybu|Ghybu]], @[[Bikarhêner:Wikihez|Wikihez]]: Ez dibêjim rûpelên ku tenê form di wan de hene, divê <nowiki>__NOINDEX__</nowiki> bin. Wî çaxî, rêza wan nikare ji lemmayê bilindtir be ji ber ku wê nînbin. Ez dibêjim belkî îhtîmala derketina lemmayê bêhtir jî bibe heke netîceyên ku dişibin wê nînbin. Jixwe lemma wê derkeve heke yek li formekê bigere, ji ber ku di rûpelê lemmayê de tabloyên tewandinê hene û ev tên jimartin. [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 22:55, 2 tebax 2026 (UTC) ::::::::::::::@[[Bikarhêner:Guherto|Guherto]] Em dibêjin tenê form xuya dike ya sermade xuya nake tu dibêjî em formê noindex bikin {{=D}} ::::::::::::::Claude [[Special:PermanentLink/6323375|li vir]] dibêje ya ku Ghybu got rast e, ji ber ku frwikt gelek tê bikaranîn bêtir dikeve ber çavê google. Eger rojek Wikiseo li en.wikt were çêkirin, em jî bixwazin qet nebe kêrî tiştekî were. ::::::::::::::Em şablonek ji bo metadescription çêkin? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 23:09, 2 tebax 2026 (UTC) :::::::::::::::@[[Bikarhêner:Wikihez|Wikihez]] Min got, ''Wî çaxî, rêza wan nikare ji lemmayê bilindtir be ji ber ku wê nînbin. Ez dibêjim belkî îhtîmala derketina lemmayê bêhtir jî bibe heke netîceyên ku dişibin wê nînbin.'' [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 23:10, 2 tebax 2026 (UTC) :::::::::::Em jegirtinan lînk bikin? Bi vî sayî gelek sayfe lînk bide ser hev. Bi riya cssê em dikarin rengê tarî bikin da ku wekî lînk xuya nekin... [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:39, 3 tebax 2026 (UTC) ::::::::::::Wextê jîwar ferheng yan jî boçik ferheng lê digerî rasterast Wîkîferheng dertê. Meselê hejmara bikaranîna eynî kelîmeyê di sayfeyê de ye. Em çiqas jêgirtin lê zêde bikin ewqas baştir dibe netîce :) Google AI Mode rasterast Wîkîferheng wek çavkanî nîşan û lînk dide loma kurmanc bi kar neyînin jî AI bi kar tînin baş e ... [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:24, 3 tebax 2026 (UTC) :::::::::::::Êêêê Google AI Overview çi bi şikle "tarîxiyen" ferheng lê digerim wekî ku min li ferhengê qeyd kiriye gelek xweş îzah dike (ji ber ku hîn gelek nû ye netîceyan de Wîkîferheng dernakeve) Nimûneyên bikaranînê jî ji înternetê derdixe. Çi mana ferhengê nemaye... Em çi îşî dikin li vir :D [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:47, 3 tebax 2026 (UTC) :::::::::::::Êdî Google jî nayê bikaranîn :)) Niha kî tere ser ''Stack Overflow'' û di nav belgeyên kodan de digere... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:47, 3 tebax 2026 (UTC) ::::::::::::::Erê welle, ez gelek car dibînim kesên derdora min hemen Gemini an Chatgpt vedikin, çi tiştê biçûk hebin, hemen pirs dikin, qet li ser Googlê jî lê nagerin :D [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:52, 3 tebax 2026 (UTC) :::::::::::::::"êgsig ferheng" netîce nade feqat wexta "ornag ferheng" digerim rasterast wîkîferheng derdikeve li binê dibêje "Tewandina ornag. Zayenda nêr a binavkirî. Rewş, Yekjimar, Pirjimar. Navkî, ornag, ornag. Îzafe, ornagê · ornagên. Çemandî, ornagî · ornagan.Read more" :::::::::::::::Meraq dikim guhartina cihê tewandinê çi netîce bide. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:21, 3 tebax 2026 (UTC) ::::::::::::::::Pêşta me tabloya Tewandinê vitira dinivîsand: [[ketin (Tewandin)]] Dma ku nav hat guherandin li ser Googlê tewandin winda bû... ::::::::::::::::Min tewandin:kirin geriya tabloya tewandina Wîkîferhengê dide. Êdî kes nê vira:) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:38, 3 tebax 2026 (UTC) :::::::::::::::::Tenê dema "niha" nivîsand. Min jî bi kurdî "dema bê jî binivîse" nivîsî: ew jî nivîsand... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:42, 3 tebax 2026 (UTC) ::::::::::::::::::[https://support.google.com/webmasters/answer/16908024?hl=en tê asteng kirin]... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:07, 4 tebax 2026 (UTC) :::::::::::::::::::kî dibêje? li wir tiştek wisa nabêje...? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 02:16, 4 tebax 2026 (UTC) ::::::::::::::::::::Va hatiye nivîsandin: "''Exclude my site's links and content from Search generative AI features: Your site's content is prevented from being visible to users in Search generative AI features, including being linked to within these features and helping with grounding AI responses in these features. You won't receive any traffic or impressions from these features. Learn more about what excluding your site means.''" [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:23, 4 tebax 2026 (UTC) == Moda tarî == Bi chrome û Firefoxê wextê Reng dikî "otomatîk", eger tarî be, tiştên bi reng xirab xuya dikin, lê wextê "tarî" hildibijêrî xweş xuya dikin. Min hemû js/css/Gadget betal kirin û ?safemode=1 ceriband, dîsa jî wextê "otomatîk" e, her tiştê tarî xirab e. Êdî nizanim problem li cem min e yan di Moda tarî de ye. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:15, 9 tebax 2026 (UTC) == Formata jêgirtinan == Merheba hevalno {{r|Ghybu|Bikarhêner|Keyomerd|Kurdanparez|Guherto|Şêr}} Wekî min [[#Modul:quote|li jor]] jî gotiye, formata îngilîzî ji ya me baştir e. Her tişt di cihên xwe de ne. Ya me wexta çend tercime yan jî transliterasyon îlawe dikî, gelek tevlihev dibe. Berê me çavkaniyê bi amûra [[MediaWiki:Gadget-jeder.js]] kurt kiribû feqat ew jî ne tiştekî baş e ji ber ku gelek malûmat tên veşartin û kesên nû tên tenê sal û nivîskarê dinivîsin carinan ew jî ne tiştekî baş e. Em dikarin amûra jêderê wisa eyar bikin ku bêyî parentez bixebite û ewilî vekirî be, dûre ê ku dixwaze malûmatan kurttir bike. Eger em vî tiştî bi formata me ya niha bikin, jêgirtinên bi çavkaniyên dirêj dê gelek xirab xuya bikin. Hûn dikarin li vir miqayese bikin ka kîjan baştir xuya dike: # [[Special:PermanentLink/6329434|jêgirtina dirêj bi îngilîzî bi formata en.wikt]] vs. [[Special:PermanentLink/6329414|bi formata me ya niha]] # [[Special:PermanentLink/6329439|jêgirtineke bi soranî bi formata en.wikt]] vs. [[Special:PermanentLink/6329437|jêgirtineke bi soranî bi formata me ya niha]] Ez naxwazim xwe wisa nîşan bidim ku li ser eynî tiştî her daîm israr dike feqat bi ya min ev zarûriyeteke ji bo baştirkirina xwendina nimûneyan e. Loma ez li vir dengdanek li dar dixim, bila qerar çi be, em wisa bikin, dûre em dikarin amûreke nû çêkin ku li gorî tercîhên bikarhênerî formata en.wikt yan jî formata niha were bikaranîn. Ji kerema xwe raya xwe li jêr bidin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:01, 11 tebax 2026 (UTC) === Dengdan === {{dengdan|destpêk=11.08.2026|dawî=18.08.2026}} <!-- kengî dengdan xilas bû vê şablonê {{dengdan/borî|destpêk=|dawî=}} bi kar bînin. --> ==== Bila formata niha bimîne ==== <!-- Li jêr '# {{erê}} ~~~~' binivîse ji bo raya erê. --> ==== Bila formata en.wikt were bikaranîn ==== <!-- Li jêr '# {{erê}} ~~~~' binivîse ji bo raya erê. --> # {{erê}} [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:05, 11 tebax 2026 (UTC) === Gotûbêj === {{şirove}} Eger hûn bibêjin çima sal û çavkanî li herî pêş e sebeb ev e: Ji bo en.wiktê "attestion" yanî peyitandin bi riya emilandinên heqîqî pêk tê. Yanî eger di ferhengekê de ev kelîme derbas bibe ji bo wan ne muhîm e, ya muhîm emilandina di nav cumleyan de ye. Mîsal ew kelîmeyên ku tenê ferhengan de derbas dibin dixin [[:en:Appendix:English dictionary-only terms]]. --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:14, 11 tebax 2026 (UTC) :@[[Bikarhêner:Ferhengvan|Ferhengvan]], @[[Bikarhêner:Bibliophile|Bibliophile]] û @[[Bikarhêner:Dûrzan|Dûrzan]] fikrê we çi ye li ser vê meseleyê? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 13:48, 12 tebax 2026 (UTC) ::Ez ji tiştên teknîk pirr fêhm nakim. Çewa baş be ên ku pispor in bila biryar bidin... [[Bikarhêner:Dûrzan|Dûrzan]] ([[Gotûbêja bikarhêner:Dûrzan|gotûbêj]]) 21:04, 12 tebax 2026 (UTC) szwjq17g1tzsx51l0ybwxgh6y5lcv38 tarîxçî 0 1357406 6329927 6318445 2026-08-13T11:08:14Z Wikihez 7344 6329927 wikitext text/x-wiki {{bnr-h|tarixçi}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|c=mn}} # {{e|ku|meslek}} Kesê ku li ser [[tarîx]]ê dinivîse an lê dikole.<ref>{{Ç:Jaba:1879|تاریخچی<ts:tarikhtchi>|r=92}}</ref> #: {{hevmane|ku|tarîxnas|dîroknas|dîrokvan|dîrokzan|mêjûnas|mêjûzan}} #* {{jêder-kovar|ku|jêgirtin='''Tarîxçîkî''' Îngîlîz navê wî Arnold Tombey e, dibêje: "Tirk bi tarîxê nizanin, ku li wan teng bibe karin Hezretê Nebî Silêman û Qanûnî Siltan Silêman bikin yek, tenê ji navê wan."|kovar=Welat (Rojnameya Hefteyî)|sernav=TC dewletî û dewletên Tirkan yên nû|nivîskar=Musa Anter|hejmar=62|sal=1993|rûpel=7}} #* {{jêder-kovar|ku|jêgirtin=Malzemeyê dîrokzan (yan jî dîroknas – zimanzanên kurd(!) hêj biryar nedane ku ew ji ”'''tarîxçî'''”yan re bibêjin dîrokzan yan dîroknas.) belgeyên rastîn û şîroveyên îlmî, zanîstî ne.|kovar=Agirî|sernav=Edebiyat û Dîrok|nivîskar=Loqman Polat|hejmar=61|sal=2007|rûpel=11}} #* {{jêder-malper|ku|jêgirtin='''Tarîxçî''' û teorîsyenên Tirk, Ziya Gökalpê Diyarbekirî hosteyê ilmê xwe yê sosyolojîyê dihesibînin.|nivîskar=Omer Faruk Baran|sernav=Zewaca Ziya Gökalp û sosyolojîyeka sînesoj|url=https://www.botantimes.com/zewaca-ziya-gokalp-u-sosyolojiyeka-sinesoj/|malper=Botan Times|sal=2023}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê û nêr}} ==== Etîmolojî ==== Deyn ji {{deyn|ota|ku|tr=tarihçi}}. {{anlz|ku|tarîx|-çî}}. ==== Werger ==== {{werger-ser|kesê ku li ser tarîxê dinivîse an lê dikole}} * {{Z|sq}}: {{W+|sq|historian}} * {{Z|de}}: {{W+|de|Historiker|n}}, {{W+|de|Historikerin|m}} * {{Z|az}}: {{W+|az|tarixçi}} * {{Z|eu}}: {{W-|eu|historialari}}, {{W-|eu|historiagile}} * {{Z|be}}: {{W-|be|гісто́рык|n}}, {{W-|be|гісто́рычка|m}} * {{Z|bg}}: {{W-|bg|истори́к|n}}, {{W-|bg|истори́чка|m}} * {{Z|my}}: {{W-|my|သမိုင်းပညာရှင်}} * {{Z|cs}}: {{W+|cs|historik|n}}, {{W+|cs|historička|m}} * {{Z|zh}}: *: {{Z|cmn}}: {{W+|cmn|歷史學家|tr=lìshǐxuéjiā}}, {{W+|cmn|歷史家|tr=lìshǐjiā}}, {{W+|cmn|史家|tr=shǐjiā}} * {{Z|da}}: {{W-|da|historiker|g}} * {{Z|ar}}: {{W-|ar|مُؤَرِّخ}}, {{W-|ar|مُؤَرِّخَة|m}} * {{Z|hy}}: {{W+|hy|պատմագետ}}, {{W+|hy|պատմաբան}} * {{Z|eo}}: {{W+|eo|historiisto}} * {{Z|et}}: {{W+|et|ajaloolane}} * {{Z|fa}}: {{W+|fa|مورخ|tr=movarrax}} * {{Z|fi}}: {{W+|fi|historioitsija}} * {{Z|fr}}: {{W+|fr|historien|n}}, {{W+|fr|historienne|m}} * {{Z|gl}}: {{W+|gl|historiador|n}} * {{Z|ka}}: {{W-|ka|ისტორიკოსი}} * {{Z|hi}}: {{W-|hi|इतिहासकार|n}}, {{W-|hi|इतिहासज्ञ|n}} * {{Z|nl}}: {{W+|nl|historicus|n}}, {{W+|nl|geschiedkundige|n|m}} * {{Z|he}}: {{W+|he|הִיסְטוֹרְיוֹן|n|tr=historyón}} * {{Z|io}}: {{W+|io|historiisto}}, {{W+|io|historiero}} * {{Z|ang}}: {{W-|ang|stǣrleornere|n}} * {{Z|en}}: {{W+|en|historian}} * {{Z|ga}}: {{W-|ga|staraí|n}} * {{Z|it}}: {{W+|it|storico|n}}, {{W+|it|storica|m}} * {{Z|is}}: {{W+|is|sagnfræðingur|n}} * {{Z|ja}}: {{W+|ja|歴史家|tr=れきしか, rekishika}} * {{Z|ca}}: {{W+|ca|historiador|n}} * {{Z|ky}}: {{W+|ky|тарыхчы}} * {{Z|ko}}: {{W-|ko|역사학자}}, {{W-|ko|력사학자}}, {{W+|ko|역사가}}, {{W-|ko|력사가}}, {{W+|ko|사학자}} * {{Z|la}}: {{W+|la|historicus|n}} * {{Z|lv}}: {{W-|lv|vēsturnieks|n}}, {{W-|lv|vēsturniece|m}} * {{Z|lt}}: {{W-|lt|istorikas|n}}, {{W-|lt|istorikė|m}} * {{Z|mk}}: {{W-|mk|историчар|n}}, {{W-|mk|историчарка|m}} * {{Z|hu}}: {{W+|hu|történész}} * {{Z|mn}}: *: Kirîlî: {{W+|mn|түүхч}} *: {{Z|mn}}: {{W-|mn|ᠲᠡᠦᠬᠡᠴᠢ}} * {{Z|no}}: *: {{Z|nb}}: {{W-|nb|historiker|n}} *: {{Z|nn}}: {{W-|nn|historikar|n}} * {{Z|ug}}: {{W-|ug|تارىخچى}} * {{Z|uz}}: {{W+|uz|tarixchi}}, {{W+|uz|muarrix}} * {{Z|pl}}: {{W+|pl|historyk|n}}, {{W+|pl|historyczka|m}} * {{Z|pt}}: {{W+|pt|historiador|n}}, {{W+|pt|historiadora|m}} * {{Z|kk}}: {{W-|kk|тарихшы}} * {{Z|ro}}: {{W+|ro|istoric|n}}, {{W-|ro|istorică|m}} * {{Z|ru}}: {{W+|ru|исто́рик|n}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|по̏вјеснича̄р|n}}, {{W-|sh|по̏вјеснича̄рка|m}}, {{W-|sh|хисто̀рича̄р|n}}, {{W-|sh|хисто̀рича̄рка|m}} *: Latînî: {{W+|sh|pȍvjesničār|n}}, {{W+|sh|pȍvjesničārka|m}}, {{W+|sh|històričār|n}}, {{W+|sh|històričārka|m}} * {{Z|sk}}: {{W+|sk|historik|n}}, {{W+|sk|historička|m}} * {{Z|sl}}: {{W+|sl|zgodovinar|n}}, {{W-|sl|zgodovinarka|m}} * {{Z|es}}: {{W+|es|historiador|n}}, {{W+|es|historiadora|m}} * {{Z|sw}}: {{W-|sw|mwanahistoria}} * {{Z|sv}}: {{W+|sv|historiker|g}} * {{Z|tg}}: {{W-|tg|муаррих}} * {{Z|th}}: {{W-|th|นักประวัติศาสตร์}} * {{Z|tt}}: {{W+|tt|тарихчы}} * {{Z|tr}}: {{W+|tr|tarihçi}} * {{Z|tk}}: {{W-|tk|taryhçy}} * {{Z|ur}}: {{W-|ur|مؤرخ|n|tr=muvarrix}} * {{Z|uk}}: {{W-|uk|істо́рик|n}}, {{W-|uk|істо́ричка|m}} * {{Z|vi}}: {{W+|vi|[[nhà]] [[sử học]]}}, {{W+|vi|sử gia}} * {{Z|vro}}: {{W-|vro|aoluulanõ}} * {{Z|cy}}: {{W+|cy|hanesydd|n}} * {{Z|el}}: {{W+|el|ιστορικός|n}} *: {{Z|grc}}: {{W-|grc|ἱστορικός|n}} {{werger-bin}} :{{werger çavkanî|en|historian|beş=Ev qismê Wergerê|oldid=90059179}} === Çavkanî === {{çavkanî}} tk8ogauvsn715wnx5alui79s4zwxw7r 6329928 6329927 2026-08-13T11:10:59Z Wikihez 7344 6329928 wikitext text/x-wiki {{bnr-h|tarixçi}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|c=mn}} # {{e|ku|meslek}} Kesê ku li ser [[tarîx]]ê dinivîse an lê dikole.<ref>{{Ç:Jaba:1879|تاریخچی<ts:tarikhtchi>|r=92}}</ref> #: {{hevmane|ku|tarîxnas|dîroknas|dîrokvan|dîrokzan|mêjûnas|mêjûzan}} #* {{jêder-kovar|ku|jêgirtin='''Tarîxçîkî''' Îngîlîz navê wî Arnold Tombey e, dibêje: "Tirk bi tarîxê nizanin, ku li wan teng bibe karin Hezretê Nebî Silêman û Qanûnî Siltan Silêman bikin yek, tenê ji navê wan."|kovar=Welat (Rojnameya Hefteyî)|sernav=TC dewletî û dewletên Tirkan yên nû|nivîskar=w:Musa Anter|hejmar=62|sal=1993|rûpel=7}} #* {{jêder-kovar|ku|jêgirtin=Malzemeyê dîrokzan (yan jî dîroknas – zimanzanên kurd(!) hêj biryar nedane ku ew ji ”'''tarîxçî'''”yan re bibêjin dîrokzan yan dîroknas.) belgeyên rastîn û şîroveyên îlmî, zanîstî ne.|kovar=Agirî|sernav=Edebiyat û Dîrok|nivîskar=w:Loqman Polat|hejmar=61|sal=2007|rûpel=11}} #* {{jêder-malper|ku|jêgirtin='''Tarîxçî''' û teorîsyenên Tirk, Ziya Gökalpê Diyarbekirî hosteyê ilmê xwe yê sosyolojîyê dihesibînin.|nivîskar=w:Omer Faruk Baran|sernav=Zewaca Ziya Gökalp û sosyolojîyeka sînesoj|url=https://www.botantimes.com/zewaca-ziya-gokalp-u-sosyolojiyeka-sinesoj/|malper=Botan Times|sal=2023}} ==== Tewandin ==== {{ku-tewîn-nav|mê û nêr}} ==== Etîmolojî ==== Deyn ji {{deyn|ota|ku|tr=tarihçi}}. {{anlz|ku|tarîx|-çî}}. ==== Werger ==== {{werger-ser|kesê ku li ser tarîxê dinivîse an lê dikole}} * {{Z|sq}}: {{W+|sq|historian}} * {{Z|de}}: {{W+|de|Historiker|n}}, {{W+|de|Historikerin|m}} * {{Z|az}}: {{W+|az|tarixçi}} * {{Z|eu}}: {{W-|eu|historialari}}, {{W-|eu|historiagile}} * {{Z|be}}: {{W-|be|гісто́рык|n}}, {{W-|be|гісто́рычка|m}} * {{Z|bg}}: {{W-|bg|истори́к|n}}, {{W-|bg|истори́чка|m}} * {{Z|my}}: {{W-|my|သမိုင်းပညာရှင်}} * {{Z|cs}}: {{W+|cs|historik|n}}, {{W+|cs|historička|m}} * {{Z|zh}}: *: {{Z|cmn}}: {{W+|cmn|歷史學家|tr=lìshǐxuéjiā}}, {{W+|cmn|歷史家|tr=lìshǐjiā}}, {{W+|cmn|史家|tr=shǐjiā}} * {{Z|da}}: {{W-|da|historiker|g}} * {{Z|ar}}: {{W-|ar|مُؤَرِّخ}}, {{W-|ar|مُؤَرِّخَة|m}} * {{Z|hy}}: {{W+|hy|պատմագետ}}, {{W+|hy|պատմաբան}} * {{Z|eo}}: {{W+|eo|historiisto}} * {{Z|et}}: {{W+|et|ajaloolane}} * {{Z|fa}}: {{W+|fa|مورخ|tr=movarrax}} * {{Z|fi}}: {{W+|fi|historioitsija}} * {{Z|fr}}: {{W+|fr|historien|n}}, {{W+|fr|historienne|m}} * {{Z|gl}}: {{W+|gl|historiador|n}} * {{Z|ka}}: {{W-|ka|ისტორიკოსი}} * {{Z|hi}}: {{W-|hi|इतिहासकार|n}}, {{W-|hi|इतिहासज्ञ|n}} * {{Z|nl}}: {{W+|nl|historicus|n}}, {{W+|nl|geschiedkundige|n|m}} * {{Z|he}}: {{W+|he|הִיסְטוֹרְיוֹן|n|tr=historyón}} * {{Z|io}}: {{W+|io|historiisto}}, {{W+|io|historiero}} * {{Z|ang}}: {{W-|ang|stǣrleornere|n}} * {{Z|en}}: {{W+|en|historian}} * {{Z|ga}}: {{W-|ga|staraí|n}} * {{Z|it}}: {{W+|it|storico|n}}, {{W+|it|storica|m}} * {{Z|is}}: {{W+|is|sagnfræðingur|n}} * {{Z|ja}}: {{W+|ja|歴史家|tr=れきしか, rekishika}} * {{Z|ca}}: {{W+|ca|historiador|n}} * {{Z|ky}}: {{W+|ky|тарыхчы}} * {{Z|ko}}: {{W-|ko|역사학자}}, {{W-|ko|력사학자}}, {{W+|ko|역사가}}, {{W-|ko|력사가}}, {{W+|ko|사학자}} * {{Z|la}}: {{W+|la|historicus|n}} * {{Z|lv}}: {{W-|lv|vēsturnieks|n}}, {{W-|lv|vēsturniece|m}} * {{Z|lt}}: {{W-|lt|istorikas|n}}, {{W-|lt|istorikė|m}} * {{Z|mk}}: {{W-|mk|историчар|n}}, {{W-|mk|историчарка|m}} * {{Z|hu}}: {{W+|hu|történész}} * {{Z|mn}}: *: Kirîlî: {{W+|mn|түүхч}} *: {{Z|mn}}: {{W-|mn|ᠲᠡᠦᠬᠡᠴᠢ}} * {{Z|no}}: *: {{Z|nb}}: {{W-|nb|historiker|n}} *: {{Z|nn}}: {{W-|nn|historikar|n}} * {{Z|ug}}: {{W-|ug|تارىخچى}} * {{Z|uz}}: {{W+|uz|tarixchi}}, {{W+|uz|muarrix}} * {{Z|pl}}: {{W+|pl|historyk|n}}, {{W+|pl|historyczka|m}} * {{Z|pt}}: {{W+|pt|historiador|n}}, {{W+|pt|historiadora|m}} * {{Z|kk}}: {{W-|kk|тарихшы}} * {{Z|ro}}: {{W+|ro|istoric|n}}, {{W-|ro|istorică|m}} * {{Z|ru}}: {{W+|ru|исто́рик|n}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|по̏вјеснича̄р|n}}, {{W-|sh|по̏вјеснича̄рка|m}}, {{W-|sh|хисто̀рича̄р|n}}, {{W-|sh|хисто̀рича̄рка|m}} *: Latînî: {{W+|sh|pȍvjesničār|n}}, {{W+|sh|pȍvjesničārka|m}}, {{W+|sh|històričār|n}}, {{W+|sh|històričārka|m}} * {{Z|sk}}: {{W+|sk|historik|n}}, {{W+|sk|historička|m}} * {{Z|sl}}: {{W+|sl|zgodovinar|n}}, {{W-|sl|zgodovinarka|m}} * {{Z|es}}: {{W+|es|historiador|n}}, {{W+|es|historiadora|m}} * {{Z|sw}}: {{W-|sw|mwanahistoria}} * {{Z|sv}}: {{W+|sv|historiker|g}} * {{Z|tg}}: {{W-|tg|муаррих}} * {{Z|th}}: {{W-|th|นักประวัติศาสตร์}} * {{Z|tt}}: {{W+|tt|тарихчы}} * {{Z|tr}}: {{W+|tr|tarihçi}} * {{Z|tk}}: {{W-|tk|taryhçy}} * {{Z|ur}}: {{W-|ur|مؤرخ|n|tr=muvarrix}} * {{Z|uk}}: {{W-|uk|істо́рик|n}}, {{W-|uk|істо́ричка|m}} * {{Z|vi}}: {{W+|vi|[[nhà]] [[sử học]]}}, {{W+|vi|sử gia}} * {{Z|vro}}: {{W-|vro|aoluulanõ}} * {{Z|cy}}: {{W+|cy|hanesydd|n}} * {{Z|el}}: {{W+|el|ιστορικός|n}} *: {{Z|grc}}: {{W-|grc|ἱστορικός|n}} {{werger-bin}} :{{werger çavkanî|en|historian|beş=Ev qismê Wergerê|oldid=90059179}} === Çavkanî === {{çavkanî}} kl43g11f4pwi6xcc1gxzf408142cwqm Modul:quote 828 1357519 6329830 6329553 2026-08-12T23:33:15Z Wikihez 7344 6329830 Scribunto text/plain --[=[ This module contains functions to implement quote-* templates. Author: Benwing2; conversion into Lua of {{quote-meta/source}} template, written by Sgconlaw with some help from Erutuon and Benwing2. The main interface is quote_t(). Note that the source display is handled by source(), which reads both the arguments passed to it *and* the arguments passed to the parent template, with the former overriding the latter. ]=] local export = {} --[=[ FIXME: 1. Dates like `1 march 2025` with the day of the month being 1 and the month lowercased are treated as month-year-only. The relevant code checks for a capitalized word; it should probably instead check for the actual month names or abbrevs. ]=] -- Named constants for all modules used, to make it easier to swap out sandbox versions. local check_isxn_module = "Module:check isxn" local debug_track_module = "Module:debug/track" local en_utilities_module = "Module:en-utilities" local italics_module = "Module:italics" local labels_module = "Module:labels" local languages_module = "Module:languages" local languages_error_module = "Module:languages/error" local links_module = "Module:links" local number_utilities_module = "Module:number utilities" local parameters_module = "Module:parameters" local parse_utilities_module = "Module:parse utilities" local qualifier_module = "Module:qualifier" local roman_numerals_module = "Module:roman numerals" local scribunto_module = "Module:Scribunto" local script_utilities_module = "Module:script utilities" local scripts_module = "Module:scripts" local string_pattern_escape_module = "Module:string/patternEscape" local string_replacement_escape_module = "Module:string/replacementEscape" local string_utilities_module = "Module:string utilities" local table_module = "Module:table" local template_parser_module = "Module:template parser" local usex_module = "Module:usex" local usex_templates_module = "Module:usex/templates" local utilities_module = "Module:utilities" local yesno_module = "Module:yesno" local concat = table.concat local insert = table.insert local new_title = mw.title.new local remove = table.remove local require = require local sort = table.sort local u = mw.ustring.char local ugsub = mw.ustring.gsub local umatch = mw.ustring.match local unpack = unpack or table.unpack -- Lua 5.2 compatibility -- Use HTML entities here to avoid parsing issues (esp. with brackets) local SEMICOLON_SPACE = "&#59; " local SPACE_LBRAC = " &#91;" local RBRAC = "&#93;" local TEMP_LT = u(0xFFF1) local TEMP_GT = u(0xFFF2) local TEMP_LBRAC = u(0xFFF3) local TEMP_RBRAC = u(0xFFF4) local TEMP_SEMICOLON = u(0xFFF5) local function apply_subst(...) apply_subst = require(usex_module).apply_subst return apply_subst(...) end local function check_isbn(...) check_isbn = require(check_isxn_module).check_isbn return check_isbn(...) end local function check_issn(...) check_issn = require(check_isxn_module).check_issn return check_issn(...) end local function debug_track(...) debug_track = require(debug_track_module) return debug_track(...) end local function decode_entities(...) decode_entities = require(string_utilities_module).decode_entities return decode_entities(...) end local function embedded_language_links(...) embedded_language_links = require(links_module).embedded_language_links return embedded_language_links(...) end local function escape_wikicode(...) escape_wikicode = require(parse_utilities_module).escape_wikicode return escape_wikicode(...) end local function find_best_script_without_lang(...) find_best_script_without_lang = require(scripts_module).findBestScriptWithoutLang return find_best_script_without_lang(...) end local function find_parameters(...) find_parameters = require(template_parser_module).find_parameters return find_parameters(...) end local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function format_processed_labels(...) format_processed_labels = require(labels_module).format_processed_labels return format_processed_labels(...) end local function format_qualifier(...) format_qualifier = require(qualifier_module).format_qualifier return format_qualifier(...) end local function format_usex(...) format_usex = require(usex_module).format_usex return format_usex(...) end local function get_lang(...) get_lang = require(languages_module).getByCode return get_lang(...) end local function get_number(...) get_number = require(number_utilities_module).get_number return get_number(...) end local function get_script(...) get_script = require(scripts_module).getByCode return get_script(...) end local function gsplit(...) gsplit = require(string_utilities_module).gsplit return gsplit(...) end local function page_should_be_ignored(...) page_should_be_ignored = require(usex_templates_module).page_should_be_ignored return page_should_be_ignored(...) end local function parse_inline_modifiers(...) parse_inline_modifiers = require(parse_utilities_module).parse_inline_modifiers return parse_inline_modifiers(...) end local function parse_inline_modifiers_from_segments(...) parse_inline_modifiers_from_segments = require(parse_utilities_module).parse_inline_modifiers_from_segments return parse_inline_modifiers_from_segments(...) end local function parse_multi_delimiter_balanced_segment_run(...) parse_multi_delimiter_balanced_segment_run = require(parse_utilities_module).parse_multi_delimiter_balanced_segment_run return parse_multi_delimiter_balanced_segment_run(...) end local function parse_term_with_lang(...) parse_term_with_lang = require(parse_utilities_module).parse_term_with_lang return parse_term_with_lang(...) end local function pattern_escape(...) pattern_escape = require(string_pattern_escape_module) return pattern_escape(...) end local function pluralize(...) pluralize = require(en_utilities_module).pluralize return pluralize(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function remove_links(...) remove_links = require(links_module).remove_links return remove_links(...) end local function roman_to_arabic(...) roman_to_arabic = require(roman_numerals_module).roman_to_arabic return roman_to_arabic(...) end local function replacement_escape(...) replacement_escape = require(string_replacement_escape_module) return replacement_escape(...) end local function scribunto_parameter_key(...) scribunto_parameter_key = require(scribunto_module).scribunto_parameter_key return scribunto_parameter_key(...) end local function serial_comma_join(...) serial_comma_join = require(table_module).serialCommaJoin return serial_comma_join(...) end local function shallow_copy(...) shallow_copy = require(table_module).shallowCopy return shallow_copy(...) end local function split(...) split = require(string_utilities_module).split return split(...) end local function split_alternating_runs(...) split_alternating_runs = require(parse_utilities_module).split_alternating_runs return split_alternating_runs(...) end local function split_and_process_raw_labels(...) split_and_process_raw_labels = require(labels_module).split_and_process_raw_labels return split_and_process_raw_labels(...) end local function split_on_comma(...) split_on_comma = require(parse_utilities_module).split_on_comma return split_on_comma(...) end local function tag_text(...) tag_text = require(script_utilities_module).tag_text return tag_text(...) end local function tag_transcription(...) tag_transcription = require(script_utilities_module).tag_transcription return tag_transcription(...) end local function tag_translit(...) tag_translit = require(script_utilities_module).tag_translit return tag_translit(...) end local function ulen(...) ulen = require(string_utilities_module).len return ulen(...) end local function unitalicize_brackets(...) unitalicize_brackets = require(italics_module).unitalicize_brackets return unitalicize_brackets(...) end local function upper(...) upper = require(string_utilities_module).upper return upper(...) end local function usub(...) usub = require(string_utilities_module).sub return usub(...) end local function yesno(...) yesno = require(yesno_module) return yesno(...) end local function track(page) debug_track("quote/" .. page) end local function maintenance_line(text) return '<span class="maintenance-line">(' .. text .. ")</span>" end local function isbn(text) return "[[Special:BookSources/" .. text .. "|→ISBN]]" .. check_isbn( text, '&nbsp;<span class="error" style="font-size:88%">Invalid&nbsp;ISBN</span>[[Category:Pages with ISBN errors]]' ) end local function issn(text) return "[https://www.worldcat.org/issn/" .. text .. " →ISSN]" .. check_issn( text, '&nbsp;<span class="error" style="font-size:88%">Invalid&nbsp;ISSN</span>[[Category:Pages with ISSN errors]]' ) end local function lccn(text) text = text:gsub(" ", "") if text:find("-") then -- old-style LCCN; reformat per request by [[User:The Editor's Apprentice]] local prefix, part1, part2 = text:match("^(.-)(%d+)%-(%d+)$") if prefix then if ulen(part2) < 6 then part2 = ("0"):rep(6 - ulen(part2)) .. part2 end text = prefix .. part1 .. part2 end end return "[https://lccn.loc.gov/" .. mw.uri.encode(text) .. " →LCCN]" end local function format_date(text) -- Localized formatDate translates month names, unlike {{#formatdate:}}. local language = mw.getContentLanguage() local ok, date = pcall(language.formatDate, language, "j F Y", text) if ok then return date end return mw.getCurrentFrame():callParserFunction("#formatdate", text, "dmy") end -- Parse a raw lb= param (or nil) to individual label info objects and then concatenate them appropriately into a -- qualifier input, respecting flags like `omit_preComma` and `omit_postSpace` in the label specs. local function parse_and_format_labels(raw_lb, lang) if not raw_lb then return nil end local labels = split_and_process_raw_labels{labels = raw_lb, lang = lang, nocat = true} labels = format_processed_labels{labels = labels, lang = lang, no_ib_content = true} if labels ~= "" then -- not sure labels can be an empty string but it seems possible in some circumstances return {labels} end end -- Convert a comma-separated list of language codes to a comma-separated list of language names. `fullname` is the -- name of the parameter from which the list of language codes was fetched. local function format_langs(langs) local names = {} for i, lang in ipairs(langs) do names[i] = lang:getCanonicalName() end if #names == 1 then return names[1] end return serial_comma_join(names) end local function get_first_lang(langs) return langs[1] or get_lang("und") end --[=[ Normally we parse off inline modifiers and language code prefixes in various places, e.g. he:מרים<tr:Miryem>. But we exclude HTML entries with <span ...>, <i ...>, <br/> or similar in it, caused by wrapping an argument in {{l|...}}, {{lang|...}} or similar. Basically, all tags of the sort we parse here should consist of a less-than sign, plus letters, plus a colon, e.g. <tr:...>, so if we see a tag on the outer level that isn't in this format, we don't try to parse it. The restriction to the outer level is to allow generated HTML inside of e.g. qualifier modifiers, such as foo<q:similar to {{m|fr|bar}}> (if we end up supporting such modifiers). Also exclude things that look like URL's from being parsed as having language code prefixes. ]=] local function val_should_not_be_parsed_for_annotations(val) return val:find("^[^<]*<%l*[^%l:]") or val:find("^%l+://") end local param_mods = { t = { -- <t:...> and <gloss:...> are aliases. item_dest = "gloss", }, gloss = {}, -- Kurmanji aliases of <t:...>/<gloss:...>. w = { item_dest = "gloss", }, werger = { item_dest = "gloss", }, tercime = { item_dest = "gloss", }, alt = {}, -- Kurmanji alias of <alt:...>. cuda = { item_dest = "alt", }, tr = {}, ts = {}, subst = {}, sc = {type = "script"}, f = { convert = function(arg, parse_err) local prefix, val = arg:match("^(.-):([^ ].*)$") if not prefix then prefix = "" val = arg end local tags, sc_code, sc = prefix:match("^(.*)/(.-)$") if sc_code then sc = get_script(sc_code) or require(languages_error_module)(sc_code, parse_err, "script code", nil, "not real lang") else tags = prefix end local quals if tags ~= "" then quals = split_on_comma(tags) for i, qual in ipairs(quals) do local obj = get_lang(qual, nil, "allow etym") or get_script(qual) quals[i] = obj or qual end end return { quals = quals, sc = sc, val = val, } end, store = "insert", }, q = {}, qq = {}, } local function generate_obj_annotated_text(text, parse_err, paramname) local obj = {} if text:find(":[^ ]") or text:find("%[%[") then local display, is_wikipedia_wikisource obj.text, obj.lang, obj.link, display, is_wikipedia_wikisource = parse_term_with_lang { term = text, parse_err = parse_err, paramname = paramname } -- HACK: If object is a Wikipedia or Wikisource link, we need to convert it to a two-part link -- to avoid the w: or s: prefix showing. We should probably avoid this by calling -- language_link() (in [[Module:links]]) in format_annotated_text() instead of the hacky stuff -- that we currently do; but we need to test that carefully to make sure it doesn't do things like -- munge % signs. if is_wikipedia_wikisource and not obj.text:find("%[%[") and not obj.text:find("%]%]") then -- Don't directly set .alt, because then if the user specifies <alt:...>, it will cause an error in -- parse_inline_modifiers(). obj.display = display end else obj.text = text obj.link = text end return obj end --[=[ Parse a textual property that may be in a foreign language or script and may be annotated with a language prefix and/or inline modifiers. `val` is the value of the parameter and `fullname` is the name of the parameter from which the value was retrieved. `explicit_gloss`, if specified and non-nil, overrides any gloss specified using the <t:...> or <gloss:...> inline modifier. If `val` is nil, the return value of this function is nil. Otherwise it is parsed for a language prefix (e.g. 'ar:مُؤَلِّف') and inline modifiers (e.g. 'ar:مُؤَلِّف<t:Author>'), and the return value is an object with the following fields: `lang`: The language object corresponding to the language prefix, if specified, or nil if no language prefix is given. `text`: The text after stripping off any language prefix and inline modifiers. `link`: The link part of the text if it consists of a two-part link; otherwise, same as `text`. `alt`: Display text specified using the <alt:...> modifier, if given; otherwise, nil. `subst`: Substitutions used to generate the transliteration, in the same format as the subst= parameter. `sc`: The script object corresponding to the <sc:...> modifier, if given; otherwise nil. `tr`: The transliteration corresponding to the <tr:...> modifier, if given; otherwise nil. `ts`: The transcription corresponding to the <ts:...> modifier, if given; otherwise nil. `gloss`: The gloss/translation corresponding to the `explicit_gloss` parameter (if given and non-nil), otherwise the <t:...> or <gloss:...> modifiers if given, otherwise nil. `f`: Foreign versions of the text. `q`: Left qualifiers. `qq`: Right qualifiers. Note that as a special case, if `val` contains HTML tags at the top level (e.g. '<span class="Arab">...</span>', as might be generated by specifying {{lang|ar|مُؤَلِّف}}), no language prefix or inline modifiers are parsed, and the return value has the `noscript` field set to true, which tells format_annotated_text() not to try to identify the script of the text and CSS-tag the text accordingly, but to leave the text untagged. This object can be passed to format_annotated_text() to format a string displaying the text (appropriately script-tagged, unless `noscript` is set, as described above) and modifiers. ]=] local function parse_annotated_text(val, fullname, explicit_gloss) if not val then return nil end -- When checking for inline modifiers, exclude HTML entry with <span ...>, <i ...>, <br/> or similar in it, caused -- by wrapping an argument in {{l|...}}, {{lang|...}} or similar. Also exclude URL's from being parsed as having -- language code prefixes. See val_should_not_be_parsed_for_annotations() for more information. If we find a -- parameter value with top-level HTML in it, add 'noscript = true' to indicate that we should not try to do script -- inference and tagging. (Otherwise, e.g. if you specify {{lang|ar|مُؤَلِّف}} as the author, you'll get an extra big -- font coming from the fact that {{lang|...}} wraps the Arabic text in CSS that increases the size from the -- default, and then we do script detection and again wrap the text in the same CSS, which increases the size even -- more.) if val_should_not_be_parsed_for_annotations(val) then return {text = val, link = val, noscript = true, gloss = explicit_gloss} end local obj if val:find("<") then -- Check for inline modifier. obj = parse_inline_modifiers(val, { paramname = fullname, param_mods = param_mods, generate_obj = generate_obj_annotated_text, }) else obj = generate_obj_annotated_text(val, nil, fullname) end if explicit_gloss then obj.gloss = explicit_gloss end return obj end local html_entity_char_to_replacement = { ["<"] = TEMP_LT, [">"] = TEMP_GT, ["["] = TEMP_LBRAC, ["]"] = TEMP_RBRAC, } local function html_entity_replacement(entity, code_without_semicolon, hash, xcode, x, code) -- Try to decode the entity. If successful, Replace certain special HTML entities (those that are bracket-like) -- with single Unicode characters; otherwise, replace the semicolon with a special character so it won't get -- interpreted as a delimiter. local ch = decode_entities(entity) if ch ~= entity then return html_entity_char_to_replacement[ch] or code_without_semicolon .. TEMP_SEMICOLON end -- If the entity doesn't decode, escape it anyway iff it follows a valid format. if hash == "" then -- Any nonstandard MediaWiki-only entities have now been filtered off, so treat any non-ASCII characters as -- invalid. return xcode:match("^[^\128-\255]+$") and code_without_semicolon .. TEMP_SEMICOLON or entity elseif x == "" then return xcode:match("^%d+$") and code_without_semicolon .. TEMP_SEMICOLON or entity end return code:match("^%x+$") and code_without_semicolon .. TEMP_SEMICOLON or entity end local html_entity_replacement_to_char = { [TEMP_LT] = "&lt;", [TEMP_GT] = "&gt;", [TEMP_LBRAC] = "&#91;", [TEMP_RBRAC] = "&#93;", [TEMP_SEMICOLON] = ";", } local function undo_html_entity_replacement(txt) -- Pattern covers everything in html_entity_replacement_to_char. return (txt:gsub("\239\191[\177-\181]", html_entity_replacement_to_char)) end -- NOTE: We try hard to optimize this function for the common cases and avoid loading [[Module:parse utilities]] -- in such cases. The cases we can handle without loading [[Module:parse utilities]] are single values (no -- semicolons present) without inline modifiers or language prefixes, and multi-entity values (semicolons present) -- without (a) brackets of any kind (including parens, braces and angle brackets; angle brackets typically indicate -- inline modifiers and other brackets may protect a semicolon from being interpreted as a delimiter); -- (b) ampersands (which may indicate HTML entities, which protect a semicolon from being interpreted as a -- delimiter); and (c) colons not followed by a space (which may indicate a language prefix). local function generate_obj_multivalued_annotated_text(text, parse_err, paramname, no_undo_html_entity_replacement) local obj = generate_obj_annotated_text(text, parse_err, paramname) if not no_undo_html_entity_replacement then obj.text = undo_html_entity_replacement(obj.text) obj.link = undo_html_entity_replacement(obj.link) end return obj end --[=[ Similar to parse_annotated_text() but the parameter value may contain multiple semicolon-separated entities, each with their own inline modifiers. Some examples: * mainauthor=Paula Pattengale; Terea Sonsthagen * author=Katie Brick; J. Cody Nielsen; Greg Jao; Eric Paul Rogers; John A. Monson * author=Suzanne Brockmann; Patrick G. Lawlor (Patrick Girard); Melanie Ewbank * author=G Ristori; et al. * author=Jason Scott; zh:王晰宁<t:Wang Xining> * editors=zh:包文俊; zh:金心雯 * quotee=zh:張福運<t:Chang Fu-yun>; zh:張景文<t:Chang Ching-wen> There may be embedded semicolons within brackets, braces or parens that should not be treated as delimiters, e.g.: * author=Oliver Optic [pseudonym; {{w|William Taylor Adams}}] * author=author=Shannon Drake (pen name; {{w|Heather Graham Pozzessere}}) * author=James (the Elder;) Humphrys There may also be HTML entities with semicolons in them: * author=&#91;{{w|Gilbert Clerke}}&#93; * 2ndauthor=Martin Biddle &amp; Sally Badham * author=Peter Christen Asbj&oslash;rnsen There may be both embedded semicolons and HTML entities with semicolons in them: * author=&#91;{{w|Voltaire}} [pseudonym; François-Marie Arouet]&#93; In general we want to treat &#91; like an opening bracket and &#93; like a closing bracket. Beware that they may be mismatched: * author=Anonymous &#91;{{w|Karl Maria Kertbeny}}] Here, `val` is the value of the parameter and `fullname` is the name of the parameter from which the value was retrieved. `explicit_gloss`, if specified and non-nil, overrides any gloss specified using the <t:...> or <gloss:...> inline modifier, and `explicit_gloss_fullname` is the name of the parameter from which this value was retrieved. (If `explicit_gloss` is specified and multiple values were seen, an error results.) Return value is a list of objects of the same sort as returned by parse_annotated_text(). ]=] local function parse_multivalued_annotated_text(val, fullname, explicit_gloss, explicit_gloss_fullname) if not val then return nil end -- NOTE: In the code that follows, we use `entity` most of the time to refer to one of the semicolon-separated -- values in the multivalued param. Entities are most commonly people (typically authors, editors, translators or -- the like), but may be the names of publishers, locations, or other entities. "Entity" can also refer to HTML -- entities; in the places where this occurs, the variable name contains 'html' in it. local splitchar, english_delim if val:find("^,") then splitchar = "," english_delim = "comma" val = val:gsub("^,", "") else splitchar = ";" english_delim = "semicolon" end -- Optimization #1: No semicolons/commas or angle brackets (indicating inline modifiers). if not val:find("[<" .. splitchar .. "]") then if val_should_not_be_parsed_for_annotations(val) then return {{text = val, link = val, noscript = true}} else return {generate_obj_multivalued_annotated_text(val, nil, fullname, "no undo html entity replacement")} end end -- Optimization #2: Semicolons/commas but no angle brackets (indicating inline modifiers), braces, brackets, or -- parens (any of which would protect the semicolon/comma from interpretation as a delimiter), and no ampersand -- (which might indicate an HTML entity with a terminating semicolon, which should not be interpreted as a -- delimiter). if not val:find("[<>%[%](){}&]") then local entity_objs = {} for entity in gsplit(val, "%s*" .. splitchar .. "%s*") do if val_should_not_be_parsed_for_annotations(entity) then insert(entity_objs, { text = entity, link = entity, noscript = true }) else insert(entity_objs, generate_obj_multivalued_annotated_text(entity, nil, fullname, "no undo html entity replacement")) end end return entity_objs end -- Escape HTML entities, and get rid of directionality markers. local amp = val:find("&", nil, true) if amp then -- The pattern is more permissive than the usual entity pattern, as MediaWiki has some nonstandard entities -- that have non-ASCII characters in their codes. val = val:gsub("((&(#?)(([xX]?)([%w\128-\255]+)));)", html_entity_replacement) end -- Pattern covers left-to-right (U+200E) and right-to-left (U+200F). val = val:gsub("\226\128[\142\143]", "") -- Parse balanced segment runs, treating HTML entities for left and right bracket and left and right angle bracket -- as matching literal versions of the same characters. local entity_runs = parse_multi_delimiter_balanced_segment_run( val, {{"[" .. TEMP_LBRAC, "]" .. TEMP_RBRAC}, {"(", ")"}, {"{", "}"}, {"<" .. TEMP_LT, ">" .. TEMP_GT}}, true ) if type(entity_runs) == "string" then local undo_val = undo_html_entity_replacement(val) -- Parse error due to unbalanced delimiters. Don't throw an error here; instead, don't attempt to parse off -- any annotations, but return the value directly, maybe allowing script tagging (not allowing it if it appears -- the text is already script-tagged). return {{text = undo_val, link = undo_val, noscript = not not val_should_not_be_parsed_for_annotations(val)}} end -- Split on semicolon (or comma), possibly surrounded by whitespace. local separated_groups = split_alternating_runs(entity_runs, "%s*" .. splitchar .. "%s*") -- Process each value. local entity_objs = {} for _, entity_group in ipairs(separated_groups) do -- Rejoin runs that don't involve <...>. local j = 2 while j <= #entity_group do if not entity_group[j]:find("^<.*>$") then entity_group[j - 1] = entity_group[j - 1] .. entity_group[j] .. entity_group[j + 1] remove(entity_group, j) remove(entity_group, j) else j = j + 2 end end local oneval = undo_html_entity_replacement(concat(entity_group)) -- When checking for inline modifiers, exclude HTML entry with <span ...>, <i ...>, <br/> or similar in it, -- caused by wrapping an argument in {{l|...}}, {{lang|...}} or similar. Also exclude URL's from being parsed -- as having language code prefixes. This works analogously to parse_annotated_text(); see there for more. if val_should_not_be_parsed_for_annotations(oneval) then insert(entity_objs, { text = oneval, link = oneval, noscript = true }) else local obj if #entity_group > 1 then -- Check for inline modifier. obj = parse_inline_modifiers_from_segments({ group = entity_group, arg = oneval, props = { paramname = fullname, param_mods = param_mods, generate_obj = generate_obj_multivalued_annotated_text, }, }) else obj = generate_obj_multivalued_annotated_text(entity_group[1], nil, fullname) end insert(entity_objs, obj) end end if explicit_gloss then if #entity_objs > 1 then error( ( "Nabe ku |%s= digel çend unsirên ku bi %s ve hatine veqetandin di |%s= de bi hev re were bikaranîn; " .. "ji bo her unsirê modîfîkatora hundirîn a <t:...> bi kar bîne" ):format(explicit_gloss_fullname, english_delim, fullname) ) end entity_objs[1].gloss = explicit_gloss end return entity_objs end --[=[ Format a text property that may be in a foreign language or script, along with annotations. This is conceptually similar to the full_link() function in [[Module:links]], but displays the annotations in a different format that is more appropriate for bibliographic entries. The output looks like this: TEXT [TRANSLIT /TRANSCRIPTION/, GLOSS] `textobj` is as returned by parse_annotated_text(). `tag_text_func`, if supplied, is a function of one argument to further wrap the text after it has been processed and CSS-tagged appropriately, directly before insertion. `tag_gloss_func` is a similar function for the gloss. ]=] local function format_annotated_text(textobj, tag_text_func, tag_gloss_func) if not textobj then return nil end local text, link = textobj.text, textobj.link local subst, tr, ts, f, gloss = textobj.subst, textobj.tr, textobj.ts, textobj.f, textobj.gloss -- Retrieve the display text, either specified by the user (.alt) or by parse_annotated_text() (.display) when a -- Wikipedia link is given. local alt = textobj.alt or textobj.display if alt then if link:find("%[%[") or link:find("%]%]") then local errmsg = ("Niha lînkên di hundirê '%s' de, digel nivîsa <alt:...> '%s', nayên piştgirîkirin"):format(link, alt) error(escape_wikicode(errmsg)) end text = ("[[%s|%s]]"):format(link, alt) end -- See above for `noscript`, meaning HTML was found in the text value, probably generated using {{lang|...}}. -- {{lang}} already script-tags the text and processes embedded language links, so we don't want to do it again (in -- fact, the code below within the if-clause is similar to what {{lang}} does). In such a case, an explicit language -- won't be available and find_best_script_without_lang() may not be accurate, so we can't do automatic transliteration. if not textobj.noscript then local lang = textobj.lang -- As an optimization, don't do script detection on an argument that contains only ASCII. local sc = textobj.sc or lang and lang:findBestScript(text) or not text:find("^[ -~]$") and find_best_script_without_lang(text) or nil -- As an optimization, don't do any of the following if there's no language, script, translit or transcription, -- as will be the case with simple ASCII values. if lang or sc or tr or ts then if not lang then lang = get_lang("und") end if tr == "-" then tr = nil elseif not tr and sc and not sc:getCode():find("Lat") then -- Latn, Latf, Latg, pjt-Latn -- might return nil local text_for_tr = text if subst then text_for_tr = apply_subst(text_for_tr, subst) else text_for_tr = remove_links(text) end tr = (lang:transliterate(text_for_tr, sc)) end if text:find("%[%[") then -- FIXME: embedded_language_links() replaces % signs with their URL-encoded equivalents, -- which messes up URL's that may be present (e.g. if chapterurl= is given). IMO this -- should not happen, and embedded_language_links() should do nothing if no embedded links -- are present. To work around this, only call embedded_language_links() when there are -- embedded links present. text = embedded_language_links({ term = text, lang = lang, sc = sc, }) end if lang:getCode() ~= "und" or sc:getCode() ~= "Latn" then text = tag_text(text, lang, sc) end if tr then -- Should we link to the transliteration of languages with lang:link_tr()? Probably not because `text` is not -- likely to be a term that has an entry. tr = tag_translit(tr, lang, "usex") end if ts then ts = tag_transcription(ts, lang, "usex") end end end text = unitalicize_brackets(text) if tag_text_func then text = tag_text_func(text) end local parts = {} if textobj.q then insert(parts, format_qualifier(textobj.q) .. " ") end insert(parts, text) if tr or ts or f or gloss then insert(parts, SPACE_LBRAC) local subparts = {} if tr or ts then local tr_ts if ts then ts = "/" .. ts .. "/" end if tr and ts then tr_ts = tr .. " " .. ts else tr_ts = tr or ts end insert(subparts, tr_ts) end if f then for _, ff in ipairs(f) do local sc = ff.sc local lang if not sc and ff.quals then local qual = ff.quals[1] if type(qual) == "string" then -- do nothing; we'll do script detection farther down elseif qual:hasType("script") then sc = qual else -- language sc = qual:findBestScript(ff.val) lang = qual end end if not lang then lang = get_lang("und") end sc = sc or find_best_script_without_lang(ff.val) local val = embedded_language_links({ term = ff.val, lang = lang, sc = sc, }) if lang:getCode() ~= "und" or sc:getCode() ~= "Latn" then val = tag_text(val, lang, sc) end local qual_prefix if ff.quals then for i, qual in ipairs(ff.quals) do if type(qual) ~= "string" and (qual:hasType("script") or qual:hasType("language")) then ff.quals[i] = qual:getCanonicalName() end end qual_prefix = concat(ff.quals, "/") .. ": " else qual_prefix = "" end insert(subparts, qual_prefix .. val) end end if gloss then gloss = '<span class="e-translation">' .. gloss .. "</span>" gloss = unitalicize_brackets(gloss) if tag_gloss_func then gloss = tag_gloss_func(gloss) end insert(subparts, gloss) end insert(parts, concat(subparts, ", ")) insert(parts, RBRAC) end if textobj.qq then insert(parts, " " .. format_qualifier(textobj.qq)) end return concat(parts) end --[=[ Format a multivalued text property that may be in a foreign language or script, along with annotations. This is the multivalued analog to format_annotated_text(), and formats each individual entity using format_annotated_text(), joining the results with `delimiter`, which defaults to ", ". It `delimiter` is "and" or "or", join the results using serial_comma_join() with the specified conjunction. `textobjs` is as returned by parse_multivalued_annotated_text(). `tag_text_func` and `tag_gloss_func` are as in format_annotated_text(). ]=] local function format_multivalued_annotated_text(textobjs, delimiter, tag_text_func, tag_gloss_func) if not textobjs then return nil end if #textobjs == 1 then return format_annotated_text(textobjs[1], tag_text_func, tag_gloss_func) end local parts = {} for _, textobj in ipairs(textobjs) do insert(parts, format_annotated_text(textobj, tag_text_func, tag_gloss_func)) end -- Change delimiter to semicolon if the items themselves contain commas (e.g., in ", Jr.") local use_semicolon = false for _, obj in ipairs(textobjs) do -- Use remove_links to ignore commas in links if obj.text and remove_links(obj.text):find(", ") then use_semicolon = true break end end local n = #parts if n > 0 and parts[n]:match("^'*et al[.']*$") then -- Special handling for 'et al.' parts[n] = "''et al.''" if n == 2 then -- author et al. return concat(parts, " ") else -- author 1, author 2, et al. return concat(parts, (use_semicolon and "; ") or ", ") end if delimiter == "and" or delimiter == "or" then delimiter = ", " end return concat(parts, delimiter) end if delimiter == "and" or delimiter == "or" then local conj_translations = {["and"] = "û", ["or"] = "an"} return serial_comma_join(parts, {conj = conj_translations[delimiter]}) end return concat(parts, delimiter or ((use_semicolon and "; ") or ", ")) end -- Fancy version of ine() (if-not-empty). Converts empty string to nil, but also strips leading/trailing space. local function ine(arg) if not arg then return nil elseif type(arg) ~= "string" then return arg end arg = mw.text.trim(arg) if arg == "" then return nil end return arg end local abbrs = { ["a."] = {anchor = "a.", display = "a.", full = "ante"}, ["c."] = {anchor = "c.", display = "~", full = "nêzîkî"}, ["p."] = {anchor = "p.", display = "p.", full = "post"}, } -- Patterns recognized at the start of a date/year spec, each mapped to the key into `abbrs` it stands for. -- Checked in order, so longer/more specific prefixes should come before shorter ones that could be a substring -- of them. local abbr_prefix_patterns = { {pattern = "^nêzîkî%s+", key = "c."}, {pattern = "^c%.%s*", key = "c."}, {pattern = "^a%.%s*", key = "a."}, {pattern = "^p%.%s*", key = "p."}, } -- Process prefixes 'a.' (ante), 'c.' (circa; also recognizes the Kurdish word 'nêzîkî') and 'p.' (post) at the -- beginning of an arbitrary date or year spec. Returns two values, the formatted version of the prefix and the -- date spec minus the prefix. If no prefix is found, returns an empty string and the full date. local function process_ante_circa_post(date) for _, prefix_spec in ipairs(abbr_prefix_patterns) do if umatch(date, prefix_spec.pattern) then local abbr = abbrs[prefix_spec.key] local abbr_prefix = "''[[Appendix:Glossary#" .. abbr.anchor .. '|<abbr title="' .. abbr.full .. '">' .. abbr.display .. "</abbr>]]'' " -- Remove the matched prefix (letter/word, period if any, and trailing space) from the date parameter. date = ugsub(date, prefix_spec.pattern, "") return abbr_prefix, date end end return "", date end -- Format the arguments that specify the date of the quotation. These include the following: -- |date=: The date. If |start_date= is given, this is the end date. -- |year=, |month=: Year and month of quotation date or end of range, if |date= isn't given. -- |start_date=: The start date, to specify a range. -- |start_year=, |start_month=: Year and month of start of range, if |start_date= isn't given. -- |accessdate=: Date a website was accessed; processed if no other date was given. -- |nodate=: Indicate that no date is present; otherwise a maintenance line will be displayed if there is no date. -- -- If `parampref` and/or `paramsuf` are given, this modifies all the date arguments accordingly. For example, if -- `parampref` == "orig" and `paramsuf` is omitted, the date is specified using |origdate= or |origyear=/|origmonth=, -- and the start of the range is |origstart_date=, etc. Similarly, if `parampref` is omitted and `paramsuf` is -- "_published", the date is specified using |date_published= or |year_published=/|month_published=, and the start of -- the range is |start_date_published=, etc. -- -- `a` and `get_full_paramname` are functions with the same interpretation as the local functions of the same name in -- source(). These are used to fetch parameters and get their full names. Note that this may cause all arguments to -- have an index added to them (|date2=, |year2=, |month2=, etc.). -- -- `alias_map` is as in source() and is used to map canonical arguments to their aliases when aliases were used. -- -- If `bold_year` is given, displayed years are boldfaced unless boldface is present in the parameter value. -- -- If `maintenance_line_no_date` is specified, it should be a string that will be returned if no date is found (i.e. -- neither |date= nor |year=, or their appropriate equivalents per `parampref` and `paramsuf`, are specified, and -- neither |nodate= is given to indicate that there is no date, or |accessdate= is given). -- -- Kurdish month names, for translating dates typed with a Kurdish month (e.g. |date=9 tebax 2011) into something -- MediaWiki's date parser (which only understands English month names) can parse. -- Calendar order, {Kurdish, English} pairs. Single source of truth for both directions (Kurdish->English for -- parsing, index->English for building a date from a bare month number). local months = { {"kanûna paşîn", "January"}, {"sibat", "February"}, {"adar", "March"}, {"nîsan", "April"}, {"gulan", "May"}, {"hezîran", "June"}, {"tîrmeh", "July"}, {"tebax", "August"}, {"îlon", "September"}, {"çiriya pêşîn", "October"}, {"çiriya paşîn", "November"}, {"kanûna pêşîn", "December"}, } local kurdish_month_to_english = {} for _, pair in ipairs(months) do kurdish_month_to_english[pair[1]] = pair[2] end -- Returns two values: the formatted date and a boolean indicating whether to add a maintenance category -- [[:Category:Requests for date in LANG entries]]. The first return value will be nil if nothing is to be added -- (in which case the scond return value will always be nil). local function format_date_args( a, get_full_paramname, alias_map, parampref, paramsuf, bold_year, maintenance_line_no_date, year_last ) local output = {} parampref = parampref or "" paramsuf = paramsuf or "" local function getp(param) return a(parampref .. param .. paramsuf) end local function pname(param) local fullname = get_full_paramname(parampref .. param .. paramsuf) return alias_map[fullname] or fullname end -- Format `timestamp` (a timestamp referencing a date) according to the spec in `code`. `param` is the base name of -- the parameter from which the timestamp was fetched, for error messages. local function format_date_with_code(code, timestamp, param) local language = mw.getContentLanguage() local ok, date = pcall(language.formatDate, language, code, timestamp) if ok then return date else -- All the formats used in format_date_args() are fine, so the timestamp must be at fault. error( ( "Wextê |%s=%s (dibe ku ji forma xwe ya orjînal hatibe standardîzekirin) naxebite; li " .. "[[mw:Help:Extension:ParserFunctions##time|belgekirina fonksiyona #time]] binêre" ):format(pname(param), tostring(timestamp)) ) end end -- Try to figure out if the given timestamp has the day of the month explicitly given. We use the following -- algorithm: -- 1. Format as year-month-day; if the day is not 1, the day was explicitly given, since if only the year/month are -- given, the day shows up as 1. -- 2. If the day shows up as 1 and there isn't a 1 or 01 in the timestamp, the day wasn't explicitly given. -- 3. Otherwise, if there are three separate numbers (e.g. 2022-07-01), or two separate numbers plus a capitalized -- letter (taken as an English month, e.g. 2022 July 1), the day was explicitly given, otherwise not. -- -- `param` is the base name of the parameter from which the timestamp was fetched. local function date_has_day_specified(timestamp, param) local day = format_date_with_code("j", timestamp, param) if day ~= "1" then return true end local english_month = timestamp:find("%u") local canon_timestamp = mw.text.trim((timestamp:gsub("%D+", " "))) local seen_nums = split(canon_timestamp, " ", true) local saw_one = false for _, num in ipairs(seen_nums) do if num == "1" or num == "01" then saw_one = true break end end if not saw_one then return false end return #seen_nums >= 3 or english_month and #seen_nums >= 2 end -- Format a date with boldfaced year, as e.g. '''2023''' August 3. `explicit_day_given` indicates whether to include -- the day; if false, the return value will be e.g. '''2023''' August. `date_param` is the base name of the param -- from which the date was fetched, for error messages. local function format_bold_date(date, explicit_day_given, date_param) local day_month_code = explicit_day_given and "j F" or "F" local month_day_code = explicit_day_given and "F j" or "F" if year_last then if bold_year then -- This formats like "3 August '''2023'''" (or "August '''2023'''" if day not explicitly given). return format_date_with_code(day_month_code .. " '''Y'''", date, date_param) else -- This formats like "3 August 2023" (or "August 2023" if day not explicitly given). return format_date_with_code(day_month_code .. " Y", date, date_param) end else if bold_year then -- This formats like "'''2023''' August 3" (or "'''2023''' August" if day not explicitly given). return format_date_with_code("'''Y''' " .. month_day_code, date, date_param) else -- This formats like "2023 August 3" (or "2023 August" if day not explicitly given). return format_date_with_code("Y " .. month_day_code, date, date_param) end end end -- The formatDate method of the mw.language object behaves like the {{#time:}} parser function, which doesn't -- accept the formats "monthday monthname, year" or "year monthname monthday", but outputs garbage when it receives -- them, behavior inherited from PHP. {{#formatdate:}} magic word is more forgiving. Fix dates so that, for -- instance, the |date= parameter of {{quote-journal}} (which uses this code) and the |accessdate= parameter (which -- uses {{#formatdate:}}) accept similar date formats. See: -- * [[mw:Extension:Scribunto/Lua_reference_manual#mw.language:formatDate]] -- * [[mw:Help:Extension:ParserFunctions##time]] -- * [[mw:Help:Magic_words#Formatting]] -- `date` is the date spec from the user, which is assumed to come from a parameter whose base name ends in "date"; -- `parampref` is the prefix added to "date" to get the parameter name. local function fix_date(date, param_pref) if date then for ku, en in pairs(kurdish_month_to_english) do date = ugsub(date, ku, en) end end if tonumber(date) ~= nil then error( ("|%s= divê tarîxa temam (sal-meh-roj) bi kar bîne; ji bo salê |%s= bi kar bîne"):format( pname(param_pref .. "date"), pname(param_pref .. "year") ) ) elseif date and date:find("%s*%a+,%s*%d+%s*$") then error( ("|%s= divê tarîxa temam (sal-meh-roj) bi kar bîne; ji bo mehê |%s= û ji bo salê |%s= bikar bîne"):format( pname(param_pref .. "date"), pname(param_pref .. "month"), pname(param_pref .. "year") ) ) end if date then -- Commas are replaced with spaces to prevent parsing issues local fixed_date = ugsub(date, ", *", " ") return (ugsub(ugsub(fixed_date or date, "(%d+ %a+),", "%1"), "^(%d%d%d%d) (%a+ %d%d?)$", "%2 %1")) end end local start_date, date = fix_date(getp("start_date"), "start_"), fix_date(getp("date"), "") local year = getp("year") local month = getp("month") local start_year = getp("start_year") local start_month = getp("start_month") -- Accept M/YYYY or MM/YYYY in year= (e.g. "6/2007" or "06/2007") as a month+year date, so it renders with a -- localized month name (e.g. "2007 hezîran") instead of literally. if year and not date then local mon, yr = umatch(year, "^(%d%d?)/(%d%d%d%d)$") local mon_num = mon and tonumber(mon) if mon_num and mon_num >= 1 and mon_num <= 12 then date = months[mon_num][2] .. " " .. yr year = nil end end if date and year then error(("Divê tenê yek ji |%s= an |%s= were dayîn"):format(pname("date"), pname("year"))) end if date and month then error( ("|%s= divê tenê digel |%s= were dayîn, ne digel |%s="):format( pname("month"), pname("year"), pname("date") ) ) end if start_date and start_year then error(("Divê tenê yek ji |%s= an |%s= were dayîn"):format(pname("start_date"), pname("start_year"))) end if start_date and start_month then error( ("|%s= divê tenê digel |%s= were dayîn, ne digel |%s="):format( pname("start_month"), pname("start_year"), pname("start_date") ) ) end if (start_date or start_year) and not (date or year) then error( ("Bêyî ku |%s= an |%s=/|%s= were dayîn, |%s= an |%s=/|%s= nayê dayîn"):format( pname("start_date"), pname("start_year"), pname("start_month"), pname("date"), pname("year"), pname("month") ) ) end local dash = "&nbsp;– " local day_explicitly_given = date and date_has_day_specified(date, "date") local start_day_explicitly_given = start_date and date_has_day_specified(start_date, "start_date") -- Format a date with boldfaced year, as e.g. '''2023''' August 3 (if `explicit_day_given` specified) or -- '''2023''' August (if `explicit_day_given` not specified). If no date specified, fall back to formatting based -- on the year and (optionally) month params given in `yearobj` and `monthobj`, boldfacing the year if not already. -- `date_param` is the base name of the param from which the date was fetched, for error messages. local function format_date_or_year_month(date, yearobj, monthobj, explicit_day_given, date_param) if date then return format_bold_date(date, explicit_day_given, date_param) else -- Boldface a year spec if it's not already boldface. if bold_year and not yearobj.text:find("'''") then -- Clone the year object before modifying it because we may use it later to check against the current -- year (if we're dealing with start_year). yearobj = shallow_copy(yearobj) yearobj.text = "'''" .. yearobj.text .. "'''" if yearobj.alt then yearobj.alt = "'''" .. yearobj.alt .. "'''" end end if year_last then return (monthobj and format_annotated_text(monthobj) .. " " or "") .. format_annotated_text(yearobj) else return format_annotated_text(yearobj) .. (monthobj and " " .. format_annotated_text(monthobj) or "") end end end local yearobj = parse_annotated_text(year, pname("year")) local monthobj = parse_annotated_text(month, pname("month")) local start_yearobj = parse_annotated_text(start_year, pname("start_year")) local start_monthobj = parse_annotated_text(start_month, pname("start_month")) if start_yearobj then local abbr_prefix abbr_prefix, start_yearobj.text = process_ante_circa_post(start_yearobj.text) start_yearobj.link = select(2, process_ante_circa_post(start_yearobj.link)) insert(output, abbr_prefix) elseif yearobj then local abbr_prefix abbr_prefix, yearobj.text = process_ante_circa_post(yearobj.text) yearobj.link = select(2, process_ante_circa_post(yearobj.link)) insert(output, abbr_prefix) end if start_date or start_year then local cur_year = yearobj and yearobj.text or format_date_with_code("Y", date, "date") local cur_month = monthobj and monthobj.text or date and format_date_with_code("F", date, "date") or nil local cur_day = date and day_explicitly_given and format_date_with_code("j", date, "date") or nil local beg_year = start_yearobj and start_yearobj.text or format_date_with_code("Y", start_date, "start_date") local beg_month = start_monthobj and start_monthobj.text or start_date and format_date_with_code("F", start_date, "start_date") or nil local beg_day = start_date and start_day_explicitly_given and format_date_with_code("j", start_date, "start_date") or nil if year_last then if beg_day then insert(output, beg_day .. " " .. beg_month) else insert(output, beg_month) end if beg_year ~= cur_year then insert(output, " " .. beg_year) end else insert(output, format_date_or_year_month( start_date, start_yearobj, start_monthobj, start_day_explicitly_given, "start_date" )) end if cur_year ~= beg_year then -- Different years; insert current date in full. if beg_month or cur_month then insert(output, dash) else insert(output, "–") end insert(output, format_date_or_year_month(date, yearobj, monthobj, day_explicitly_given, "date")) elseif cur_month and cur_month ~= beg_month then local month_ins = monthobj and format_annotated_text(monthobj) or cur_month -- Same year but different months; insert current month and (if available) current day. if cur_day then insert(output, dash) if year_last then insert(output, cur_day .. " " .. month_ins) else insert(output, month_ins .. " " .. cur_day) end else if beg_day then insert(output, dash) else insert(output, "–") end insert(output, month_ins) end elseif cur_day and cur_day ~= beg_day then -- Same year and month but different days; insert current day. insert(output, "–") insert(output, cur_day) else -- Same year, month and day; or same year and month, and day not available; or same year, and month and -- day not available. Do nothing. FIXME: Should we throw an error? end if year_last and beg_year == cur_year then if cur_month then insert(output, " " .. cur_year) else insert(output, " " .. cur_year) end end elseif date or yearobj then insert(output, format_date_or_year_month(date, yearobj, monthobj, day_explicitly_given, "date")) elseif not maintenance_line_no_date then -- Not main quote date. Return nil, caller will handle. return nil, nil elseif not getp("nodate") then local accessdate = getp("accessdate") if accessdate then local explicit_day_given = date_has_day_specified(accessdate, "accessdate") insert(output, format_bold_date(accessdate, explicit_day_given, "accessdate") .. " (cara dawî hate gihiştin)") else if mw.title.getCurrentTitle().namespace ~= 10 then return maintenance_line(maintenance_line_no_date), true end return nil, nil end end return ine(concat(output)), nil end local function tag_with_cite(txt) return "<cite>" .. txt .. "</cite>" end -- Display the source line of the quote, above the actual quote text. This contains the majority of the logic of this -- module (formerly contained in {{quote-meta/source}}). function export.source(args, alias_map, format_as_cite, other_controls) local tracking_categories = {} local argslang = args[1] or args.lang if not argslang then -- For the moment, only trigger an error on mainspace pages and -- other pages that are not user pages or pages containing discussions. -- These are the same pages that appear in the appropriate tracking -- categories. User and discussion pages have not generally been -- fixed up to include a language code and so it's more helpful -- to use a maintenance line than signal an error. local current_title = mw.title.getCurrentTitle() if not (current_title.namespace == 10 or page_should_be_ignored(current_title.fullText)) then require(languages_error_module)(nil, 1) end end -- Single resolved language object for categorization at the end of this function (format_categories() needs an -- object with e.g. :makeSortKey(), not the raw argslang list). local lang = argslang and get_first_lang(argslang) -- Given a canonical param, convert it to the original parameter specified by the user (which may have been an -- alias). local function alias(param) return alias_map[param] or param end -- Wrap contributor names (authors, editors, translators, compilers, etc.) and the bolded publication year in a -- span so they can be styled distinctly (e.g. Kurdish Wiktionary's "j-pewist" highlighting). local function j_lazim(text) if not text then return nil end return '<span class="j-pewist">' .. text .. "</span>" end local output, sep = {} local overrides = other_controls and other_controls.overrides or {} -- Add text to the output. The text goes into a list, and we concatenate all the list components together at the -- end. To make it easier to handle comma-separated items, we keep track (in `sep`) of the separator (if any) that -- needs to be inserted before the next item added. For example, if we're in the "newversion" code (ind ~= ""), and -- there's no title and no URL, then the first time we add anything after the title, we don't want to add a -- separating comma because the preceding text will say "republished " or "republished as " or "translated as " or -- similar. In all- other cases, we do want to add a separating comma. The bare add() function reset the separator -- to be nothing, while the add_with_sep() function resets the separator to be the value of `next_sep` (defaulting -- to ", "), so the next time around we do add a comma to separate `text` from the preceding piece of text. local function add(text) if sep then insert(output, sep) end insert(output, text) sep = nil end local function add_with_sep(text, next_sep) add(text) sep = next_sep or ", " end -- FIXME: This is all very over-engineered, which makes it slow and memory-inefficient. -- Return a function that generates the actual parameter name associated with a base param (e.g. "author", "last"). -- The actual parameter name may have an index added (an empty string for the first set of params, e.g. author=, -- last=, or a numeric index for further sets of params, e.g. author2=, last2=, etc.). local function make_get_full_paramname(ind) return function(param) return param .. ind end end -- Function to fetch the actual parameter name associated with a base param (see make_get_full_paramname() above). -- Assigned at various times below by calling make_get_full_paramname(). We do it this way so that we can have -- wrapper functions that access params and define them only once. local get_full_paramname -- Return two values: the value of a parameter given the base param name (which may have a numeric index added), -- and the parameter name from which the value was fetched (which may be an alias, i.e. you can't necessarily fetch -- the parameter value from args[] given this name). The base parameter can be a list of such base params, which -- are checked in turn, or nil, in which case nil is returned. local function a_with_name(param) if not param then return nil elseif type(param) ~= "table" then local fullname = get_full_paramname(param) return args[fullname], alias(fullname) end for _, par in ipairs(param) do local val, fullname = a_with_name(par) if val then return val, alias(fullname) end end return nil end -- Fetch the value of a parameter given the base param name (which may have a numeric index added). The base -- parameter can be a list of such base params, which are checked in turn, or nil, in which case nil is returned. local function a(param) return (a_with_name(param)) end -- Identical to a_with_name(param) except that it verifies that no space is present. Should be used for URL's. local function aurl_with_name(param) local value, fullname = a_with_name(param) if value and value:find(" ") and not value:find("%[") then error(("URL nikare valahiyê tê de bihewîne, lê |%s=%s hate dîtin"):format(fullname, value)) end return value, fullname end -- Identical to a(param) except that it verifies that no space is present. Should be used for URL's. local function aurl(param) return (aurl_with_name(param)) end -- Convenience function to fetch a parameter that may be in a foreign language or text (and may consequently have -- a language prefix and/or inline modifiers), parse the annotations and convert the result into a formatted string. -- This is the same as parse_and_format_annotated_text() below but also returns the full param name as the second -- return value. local function parse_and_format_annotated_text_with_name(param, tag_text_func, tag_gloss_func) local val, fullname = a_with_name(param) local obj = parse_annotated_text(val, fullname) return format_annotated_text(obj, tag_text_func, tag_gloss_func), fullname end -- Convenience function to fetch a parameter that may be in a foreign language or text (and may consequently have -- a language prefix and/or inline modifiers), parse the modifiers and convert the result into a formatted string. -- This is a wrapper around parse_annotated_text() and format_annotated_text(). `param` is the base parameter name (see -- a_with_name()), `tag_text_func` is an optional function to tag the parameter text after all other processing (e.g. -- wrap in <cite>...</cite> tags), and `tag_gloss_func` is a similar function for the parameter translation/gloss. local function parse_and_format_annotated_text(param, tag_text_func, tag_gloss_func) return (parse_and_format_annotated_text_with_name(param, tag_text_func, tag_gloss_func)) end -- Convenience function to fetch a multivalued parameter that may be in a foreign language or text (and may -- consequently have a language prefix and/or inline modifiers), parse the modifiers and convert the result into a -- formatted string. This is the multivalued analog to parse_and_format_annotated_text_with_name() and returns two -- values, the formatted string and the full name of the parameter fetched. `delimiter` is as in -- format_multivalued_annotated_text(). local function parse_and_format_multivalued_annotated_text_with_name(param, delimiter, tag_text_func, tag_gloss_func) local val, fullname = a_with_name(param) local objs = parse_multivalued_annotated_text(val, fullname) local num_objs = objs and #objs or 0 return format_multivalued_annotated_text(objs, delimiter, tag_text_func, tag_gloss_func), fullname, num_objs end -- Convenience function to fetch a multivalued parameter that may be in a foreign language or text (and may -- consequently have a language prefix and/or inline modifiers), parse the modifiers and convert the result into a -- formatted string. This is the multivalued analog to parse_and_format_annotated_text(). `delimiter` is as in -- format_multivalued_annotated_text(). local function parse_and_format_multivalued_annotated_text(param, delimiter, tag_text_func, tag_gloss_func) return (parse_and_format_multivalued_annotated_text_with_name(param, delimiter, tag_text_func, tag_gloss_func)) end -- This determines whether to display "Mary Bloggs, transl." (if there's no author preceding) or "translated by -- Mary Bloggs" (if there's an author preceding). local author_outputted = false -- When formatting as a citation, the priority is to display a name and a date before the book/chapter title -- this tracks whether or not the author/date has been displayed local date_outputted, formatted_date, formatted_origdate, need_date = false local function add_date(no_paren) if not date_outputted then if no_paren then sep = ", " else sep = " " end if formatted_date then if no_paren then add(formatted_date) else add("(" .. formatted_date .. ")") end end if formatted_origdate then add(SPACE_LBRAC .. formatted_origdate .. RBRAC) end sep = ", " date_outputted = true end end local function is_anonymous(val) return val:match("^[Aa]non[yî]mo?u?s?$") or val:match("^[Aa]non%.?$") end -- Add a formatted author (whose values may be specified using `author` or, for compatibility purposes, split -- among various parameters): -- * `author` is the value of the author param (e.g. "author", "author2" or "2ndauthor"), and `author_fullname` is -- the full parameter name holding that value; -- * `trans_author` is the optional value of the param holding the gloss/translation of the author, and -- `trans_author_fullname` is the full parameter name holding that value (or nil for no such parameter); -- * `authorlink` is the value of the authorlink param, which holds the Wikipedia link of the author(s) in `author`, -- and `authorlink_fullname` is the full parameter name holding that value; -- * `trans_authorlink` is the optional value of the param holding the Wikipedia link of the gloss/translation of -- the author, and `trans_authorlink_fullname` is the full parameter name holding that value (or nil for no such -- parameter); -- * `first` is the value of the parameter holding the first name of the author, and `first_fullname` is the full -- parameter name holding that value; -- * `trans_first` is the value of the corresponding parameter holding the gloss/translation of the first name -- (e.g. "trans-first"), and `trans_first_fullname` is the full parameter name holding that value (or nil for -- no such parameter); -- * `last` is the value of the parameter holding the last name of the author, and `last_fullname` is the full -- parameter name holding that value; -- * `trans_last` is the value of the corresponding parameter holding the gloss/translation of the last name -- (e.g. "trans-last"), and `trans_last_fullname` is the full parameter name holding that value (or nil for -- no such parameter). -- * `last_first` if set, when parameters `first` and `last` are used, display the author name as "last, first" local function add_author( author, author_fullname, trans_author, trans_author_fullname, authorlink, authorlink_fullname, trans_authorlink, trans_authorlink_fullname, first, first_fullname, trans_first, trans_first_fullname, last, last_fullname, trans_last, trans_last_fullname, last_first ) local function make_author_with_url(txt, txtparam, authorlink, authorlink_param) if authorlink then if authorlink:find("%[%[") then error(("Nabe ku lînk di |%s=%s de were dayîn"):format(authorlink_param, authorlink)) end if txt:find("%[%[") then error(("Nabe ku lînk di %s=%s de were dayîn"):format(txtparam, txt)) end return "[[w:" .. authorlink .. "|" .. txt .. "]]" else return txt end end local num_authorobjs if author then local authorobjs = parse_multivalued_annotated_text(author, author_fullname, trans_author, trans_author_fullname) num_authorobjs = #authorobjs if num_authorobjs == 1 then if is_anonymous(authorobjs[1].text) then authorobjs[1].text = "nivîskarê anonîm" authorobjs[1].link = "nivîskarê anonîm" end if authorlink then authorobjs[1].text = make_author_with_url( authorobjs[1].text, "|" .. author_fullname, authorlink, "|" .. authorlink_fullname ) authorobjs[1].link = make_author_with_url( authorobjs[1].link, "|" .. author_fullname, authorlink, "|" .. authorlink_fullname ) end if authorobjs[1].gloss and trans_authorlink then authorobjs[1].gloss = make_author_with_url( authorobjs[1].gloss, ("<t:...> in |%s"):format(author_fullname), trans_authorlink, "|" .. trans_author_fullname ) end add(j_lazim(format_multivalued_annotated_text(authorobjs))) elseif trans_authorlink then error( ( "Nabe ku |%s= digel çend unsirên ku bi bernavekê ve hatine veqetandin di |%s= de bi hev re " .. "were bikaranîn; ji bo her unsirê modîfîkatora hundirîn a <t:...> bi kar bîne û lînkê " .. "rasterast têxe nirxa modîfîkatorê hundirîn" ):format(trans_authorlink_fullname, author_fullname) ) else -- Allow an authorlink with multiple authors, e.g. for use with |author=Max Mills; Harvey Mills -- with |authorlink=Max and Harvey. For this we have to generate the entire text and link it -- all. local formatted_text = format_multivalued_annotated_text(authorobjs) if authorlink then formatted_text = make_author_with_url( formatted_text, "|" .. author_fullname, authorlink, "|" .. authorlink_fullname ) end add(j_lazim(formatted_text)) end else num_authorobjs = 1 -- Author separated into first name + last name. We don't currently support non-Latin-script -- authors separated this way and probably never will. if first then if last_first then author = last .. ", " .. first else author = first .. " " .. last end else author = last end if authorlink then local authorparam = first and ("|%s |%s"):format(first_fullname, last_fullname) or "|" .. last_fullname author = make_author_with_url(author, authorparam, authorlink, authorlink_fullname) end local trans_author if trans_last then if trans_first then trans_author = trans_first .. " " .. trans_last else trans_author = trans_last end if trans_authorlink then local trans_authorparam = trans_first and ("|%s |%s"):format(trans_first_fullname, trans_last_fullname) or "|" .. trans_last_fullname trans_author = make_author_with_url( trans_author, trans_authorparam, trans_authorlink, trans_authorlink_fullname ) end end add(j_lazim(author)) if trans_author then add(SPACE_LBRAC) add(trans_author) add(RBRAC) end end author_outputted = true return num_authorobjs end local function add_authorlike( param, prefix_with_preceding_authors, suffix_without_preceding_authors, suffix_if_multiple, anonymous_suffix ) local delimiter = author_outputted and "and" or ", " local entities, _, num_entities = parse_and_format_multivalued_annotated_text_with_name(param, delimiter) if not entities then return end if is_anonymous(entities) then -- If tlr=anonymous or similar given, display as "anonymous translator" or similar. If a specific -- anonymous suffix not given, try to derive the anonymous suffix from the non-preceding-author suffix. if not anonymous_suffix then local cleaned_suffix = suffix_without_preceding_authors :gsub("&#32;", " ") :gsub("&nbsp;", " ") :gsub("&#160;", " ") :gsub("&#91;", "[") :gsub("&#93;", "]") cleaned_suffix = mw.text.trim(cleaned_suffix) if not anonymous_suffix then anonymous_suffix = " " .. cleaned_suffix:match("^, (.*)$") end if not anonymous_suffix then anonymous_suffix = " " .. cleaned_suffix:match("^%((.*)%)$") end if not anonymous_suffix then anonymous_suffix = " " .. cleaned_suffix:match("^%[(.*)%]$") end if not anonymous_suffix then anonymous_suffix = suffix_without_preceding_authors end end add_with_sep(j_lazim("anonîm" .. anonymous_suffix)) else entities = j_lazim(entities) if prefix_with_preceding_authors and (author_outputted or not suffix_without_preceding_authors) then add_with_sep(prefix_with_preceding_authors .. entities) elseif suffix_if_multiple and num_entities > 1 then add_with_sep(entities .. suffix_if_multiple) else add_with_sep(entities .. suffix_without_preceding_authors) end end author_outputted = true end local function add_authorlabel() local default_authorlabel = a("default-authorlabel") if default_authorlabel and yesno(a("authorlabel"), true) then sep = nil add_with_sep(" " .. default_authorlabel) end end local function has_new_title_or_author() return args["2ndauthor"] or args["2ndlast"] or args.chapter2 or args.title2 or args.tlr2 or args.mainauthor2 or args.editor2 or args.editors2 or args.compiler2 or args.compilers2 or args.director2 or args.directors2 end local function has_newversion() return args.newversion or args.location2 or has_new_title_or_author() end -- Handle chapter=, section=, etc. `param` is the base name of the parameter in question, e.g. "chapter" or -- "section". If numeric (either Arabic or Roman), add `numeric_prefix`; otherwise, parse as textual (allowing for -- language prefixes, inline modifiers, etc.), prefix with `textual_prefix` (if given) and suffix with -- `textual_suffix` (if given). Also checks for and handles the following (assuming param == "chapter"): -- * chapterurl=: URL of the chapter. -- * trans-chapter=: Chapter translation (can be given using an inline modifier <t:...>). -- * chapter_number=: Chapter number, when chapter= is also given (otherwise put the chapter number in chapter=). -- * chapter_plain=: Plain version of the chapter number; the "chapter " prefix isn't added. -- * chapter_series=: Series that the chapter is within (used e.g. for journal articles part of a series). -- * chapter_seriesvolume=: Volume of the series (compare seriesvolume=). -- -- Returns nil if no value specified for the main parameter, otherwise the formatted value. local function format_chapterlike(param, numeric_prefix, textual_prefix, textual_suffix) local chap, chap_fullname = a_with_name(param) local chap_num, chap_num_fullname = a_with_name(param .. "_number") local chap_plain, chap_plain_fullname = parse_and_format_annotated_text_with_name(param .. "_plain") if chap_num and chap_plain then error(("Divê tenê yek ji |%s= an %s= were dayîn"):format(chap_num_fullname, chap_plain_fullname)) end local chap_series, chap_series_fullname = parse_and_format_annotated_text_with_name(param .. "_series", tag_with_cite, tag_with_cite) local chap_seriesvolume, chap_seriesvolume_fullname = parse_and_format_annotated_text_with_name(param .. "_seriesvolume") if chap_series then chap_series = ", " .. chap_series end if chap_seriesvolume then if not chap_series then error(("Ji bo |%s= ev %s= lazim e"):format(chap_series_fullname, chap_seriesvolume_fullname)) end chap_series = chap_series .. " (" .. chap_seriesvolume .. ")" end local chapterurl local function make_chapter_with_url(chap) if chapterurl then return "[" .. chapterurl .. " " .. chap .. "]" else return chap end end if not chap then if chap_num then error( ("Ji bo |%s= ev |%s= lazim e; nirxa hejmarî li |%s= binivîse"):format( chap_num_fullname, chap_fullname, chap_fullname ) ) end if chap_plain then chapterurl = aurl(param .. "url") return make_chapter_with_url(chap_plain .. (chap_series or "")) end return nil end local cleaned_chap = chap:gsub("<sup>[^<>]*</sup>", ""):gsub("[*+#]", "") chapterurl = aurl(param .. "url") local formatted if numeric_prefix and get_number(cleaned_chap) then -- Arabic chapter number formatted = numeric_prefix .. make_chapter_with_url(chap) elseif numeric_prefix and cleaned_chap:match("^[mdclxviMDCLXVI]+$") and roman_to_arabic(cleaned_chap, true) and (not overrides[param] or not overrides[param].noroman) then -- Roman chapter number formatted = numeric_prefix .. make_chapter_with_url(upper(chap)) else -- strip leading ! (used to force text-mode for titles that look like Roman numerals like "mil" and "dill") if chap:find("^!") then chap = chap:gsub("^!", "") end -- Must be a chapter name local chapterobj = parse_annotated_text(chap, chap_fullname, a("trans-" .. param)) chapterobj.text = make_chapter_with_url(chapterobj.text) chapterobj.link = make_chapter_with_url(chapterobj.link) formatted = (textual_prefix or "") .. format_annotated_text(chapterobj) .. (textual_suffix or "") end if chap_num or chap_plain then -- NOTE: Up above we throw an error if both chap_num and chap_plain are specified. formatted = formatted .. " (" .. (chap_plain or numeric_prefix .. chap_num) .. ")" end if chap_series then formatted = formatted .. chap_series end return formatted end -- This handles everything after displaying the author, starting with the chapter and ending with page, column, -- line and then other=. It is currently called twice: Once to handle the main portion of the citation, and once to -- handle a "newversion" citation. `ind` is either "" for the main portion or a number (currently only 2) for a -- "newversion" citation. In a few places we conditionalize on `ind` to take actions depending on its value. local function postauthor(ind, num_authors, format_as_cite) get_full_paramname = make_get_full_paramname(ind) -- Set to true by add_entry()/add_chapter() when a chapter/entry title has been added and "li ser " (lit. -- "on/in") is owed to whatever comes next. It's consumed either by mainauthor= (attached directly in front -- of it) or, if there's no mainauthor=, by the work's title= later on. Fields in between (translator, -- editor, compiler, director) don't consume it, but the first of them printed while it's still pending gets -- a "bi " (lit. "with/by") prefix instead, since otherwise e.g. "edîtoriya X" would read as a bare noun -- phrase with nothing to attach it to the sentence. local pending_li_ser = false if author_outputted then add_authorlabel() end local coauthors = parse_and_format_multivalued_annotated_text("coauthors", "and") coauthors = j_lazim(coauthors) if coauthors then local with_prefix = "" if author_outputted then with_prefix = "li gel " if num_authors == 1 then sep = " " end end add_with_sep(with_prefix .. coauthors) author_outputted = true end add_authorlike("quotee", "quoting ", ", quotee", ", quotees") if format_as_cite and author_outputted and not date_outputted then add_date() sep = ", " end add_authorlike("chapter_tlr", "tercimeya ", nil, nil, " terciman") local function add_labeled_editor() local editor, editor_fullname = a_with_name("editor") local editors, editors_fullname = a_with_name("editors") if editor and editors then error(("Nabe ku hem |%s= hem jî |%s= were bikaranîn"):format(editor_fullname, editors_fullname)) end local val, fullname, param = editor, editor_fullname, "editor" if editors then val, fullname, param = editors, editors_fullname, "editors" end if not val then return end local entities = parse_and_format_multivalued_annotated_text(param, "and") local label if fullname == "amadekar" or fullname == "amadekar2" then label = "amadekariya" else -- covers "editor", "editor2", "edîtor", "edîtor2", etc. label = "edîtoriya" end local bi_prefix = (pending_li_ser and not author_outputted) and "bi " or "" if is_anonymous(entities) then add_with_sep(j_lazim(bi_prefix .. label .. " kesekî nenas")) else add_with_sep(bi_prefix .. label .. " " .. j_lazim(entities)) end author_outputted = true end local function add_sg_and_pl_authorlike(noun, verbed) local sgparam = noun local plparam = noun .. "s" local sgval, sgval_fullname = a_with_name(sgparam) local plval, plval_fullname = a_with_name(plparam) if sgval and plval then error(("Nabe ku hem |%s= hem jî |%s= were bikaranîn"):format(sgval_fullname, plval_fullname)) end if sgval or plval then local verbed_by = verbed .. " ji hêla " local comma_sgnoun = ", " .. noun local comma_plnoun = ", " .. noun .. "s" add_authorlike(sgparam, verbed_by, comma_sgnoun, comma_plnoun) add_authorlike(plparam, verbed_by, comma_plnoun) end end local formatted_entry = format_chapterlike("entry", nil, "“", "”") local formatted_chapter = format_chapterlike("chapter", "beşa ", "“", "”") local function add_entry() if formatted_entry then add_with_sep(formatted_entry) if not a("notitle") then pending_li_ser = true author_outputted = false else author_outputted = true end formatted_entry = nil end end local function add_chapter() add_entry() if formatted_chapter then add_with_sep(formatted_chapter) if not a("notitle") then pending_li_ser = true author_outputted = false end formatted_chapter = nil end end local function add_actor_role(format_as_cite) local role = parse_and_format_multivalued_annotated_text("role", "and") role = j_lazim(role) local actor_val, actor_fullname = a_with_name("actor") local actor_objs = parse_multivalued_annotated_text(actor_val, actor_fullname) local actor = format_multivalued_annotated_text(actor_objs, "and") actor = j_lazim(actor) if format_as_cite then if role then if actor then add_with_sep(actor .. " wekî ") end sep = nil add_with_sep(role) elseif actor then add_with_sep(actor .. " (aktor)") end else if role then add_with_sep("xeberdan ji aliyê " .. role .. " ve") if actor then sep = nil add_with_sep(" (" .. actor .. ")") end elseif actor then add_with_sep(actor .. " (aktor)") end end end if format_as_cite then if date_outputted then add_chapter() end local output_len = #output local mainauthor = parse_and_format_multivalued_annotated_text("mainauthor") mainauthor = j_lazim(mainauthor) if mainauthor then add_with_sep(mainauthor) end -- quote-* templates display "jobbed by name" after the author, controlled by the author_outputted flag author_outputted = false add_authorlike("tlr", "tercimeya ", nil, nil, " terciman") author_outputted = false add_labeled_editor() add_sg_and_pl_authorlike("compiler", "berhevkirin") add_sg_and_pl_authorlike("director", "derhênan") add_authorlike("lyricist", nil, " (gotin)", nil, " gotinnivîs") add_authorlike("lyrics-translator", nil, " (tercime)", nil, " tercimanê gotinan") add_authorlike("composer", nil, " (muzîk)", nil, " bestekar") add_actor_role("format_as_cite") -- if the output length has changed, a credit name has been printed -- and we can print the date if output_len ~= #output then author_outputted = true add_date() end add_chapter() else add_chapter() local mainauthor = parse_and_format_multivalued_annotated_text("mainauthor") mainauthor = j_lazim(mainauthor) if mainauthor then -- Label mainauthor explicitly when another credit (translator, editor, compiler, director) follows -- it, so e.g. "li ser Kurt Gödel, edîtoriya X" doesn't read as if Kurt Gödel were the editor. if a("tlr") or a("editor") or a("editors") or a("compiler") or a("compilers") or a("director") or a("directors") then mainauthor = mainauthor .. " (nivîskarê sereke)" end if pending_li_ser then add_with_sep("li ser " .. mainauthor) pending_li_ser = false else add_with_sep(mainauthor) end author_outputted = true end do local tlr_prefix = "tercimekirina " if pending_li_ser and not author_outputted then tlr_prefix = "bi tercimekirina " end add_authorlike("tlr", tlr_prefix, nil, nil, " terciman") end add_labeled_editor() add_sg_and_pl_authorlike("compiler", "berhevkirin") add_sg_and_pl_authorlike("director", "derhênan") add_authorlike("lyricist", nil, " (gotin)", nil, " gotinnivîs") add_authorlike("lyrics-translator", nil, " (tercime)", nil, " tercimanê gotinan") add_authorlike("composer", nil, " (muzîk)", nil, " bestekar") end local title, title_fullname = a_with_name("title") local need_comma = false if title then local titleobj = parse_annotated_text(title, title_fullname, a("trans-title")) local title_text = format_annotated_text(titleobj, tag_with_cite, tag_with_cite) -- No author/editor/etc. given: the title (malper/kovar/etc.) is the primary entity, so highlight it -- the same way mainauthor would be. if not author_outputted then title_text = j_lazim(title_text) end if pending_li_ser then title_text = "li ser " .. title_text pending_li_ser = false end add(title_text) local series = parse_and_format_annotated_text("series") if series then add(" (" .. series) local seriesvolume = parse_and_format_annotated_text("seriesvolume") if seriesvolume then add(SEMICOLON_SPACE .. seriesvolume) end add(")") end need_comma = true elseif ind == "" then if not a("notitle") then local maint_text = maintenance_line("jkx sernavê kitêb an kovarê binivîse") if pending_li_ser then maint_text = "li ser " .. maint_text pending_li_ser = false end add(maint_text) need_comma = true end end local archiveurl, archiveurl_fullname = aurl_with_name("archiveurl") local url, url_fullname = aurl_with_name("url") local urls, urls_fullname = aurl_with_name("urls") if url and urls then error(("Divê tenê yek ji |%s= an |%s= were dayîn"):format(url_fullname, urls_fullname)) end local function verify_title_supplied(url_name) -- There are too many cases of this to throw an error at this time. -- if not title then -- error(("If |%s= is given, |%s= must also be supplied"):format(url_name, title_fullname)) -- end end if archiveurl or url then verify_title_supplied(archiveurl and archiveurl_fullname or url_fullname) sep = nil add("&lrm;<sup>[" .. (archiveurl or url) .. "]</sup>") elseif urls then verify_title_supplied(urls_fullname) sep = nil add("&lrm;<sup>" .. urls .. "</sup>") end -- display (in Language) if language is provided and is not English and not overriden by termlang or worklang if format_as_cite and ind == "" and not (args.termlang or args.worklang) and (args[1] or args.lang) then local lang = get_first_lang(args[1] or args.lang) if lang then local langcode = lang:getCode() if not (langcode == "und" or langcode == "ku") then local langs = format_langs(args[1] or args.lang) if langs then add(" (bi " .. langs .. ")") end end end end if need_comma then sep = ", " end local edition, edition_fullname = parse_and_format_annotated_text_with_name("edition") local edition_plain, edition_plain_fullname = parse_and_format_annotated_text_with_name("edition_plain") if edition and edition_plain then error(("Divê tenê yek ji |%s= an |%s= were dayîn"):format(edition_fullname, edition_plain_fullname)) end local function ordinal_suffix(n) n = tonumber(n) if not n then return nil end if n % 100 == 11 then return "an" elseif n % 10 == 1 then return "ê" else return "an" end end if edition then local edStr = tostring(edition) local numPart = edStr:match("^(%d+)%s*[Ss][Tt]$") or edStr:match("^(%d+)%s*[Nn][Dd]$") or edStr:match("^(%d+)%s*[Rr][Dd]$") or edStr:match("^(%d+)%s*[Tt][Hh]$") or edStr:match("^(%d+)$") if numPart then add_with_sep("çapa " .. numPart .. ordinal_suffix(numPart)) else add_with_sep("çapa " .. edition) end end if edition_plain then add_with_sep(edition_plain) end -- Display a numeric param such as page=, volume=, column=. For each `paramname`, four params are actually -- recognized, e.g. for paramname == "page", the params page=, pages=, page_plain= and pageurl= are recognized -- and checked (or the same with an index, e.g. page2=, pages2=, page_plain2= and pageurl2= respectively if -- ind == "2"). Only one of the first three can be specified; an error results if more than one are given. -- If none are given, the return value is nil; otherwise it is a string. The numeric spec is taken directly -- from e.g. page_plain= if given; otherwise if e.g. pages= is given, or if page= is given and looks like a -- combination of numbers (i.e. it has a hyphen or dash in it, a comma, or the word " and "), it is prefixed -- by `singular_desc` + "s" (e.g. "pages "), otherwise it is prefixed by just `singular_desc` (e.g. "page "). -- (As a special case, if either e.g. page=unnumbered or pages=unnumbered is given, the numeric spec is -- "unnumbered page".) The resulting spec is returned directly unless e.g. pageurl= is given, in which case -- it is linked to the specified URL. Note that any of the specs can be foreign text, e.g. foreign numbers -- (including with optional inline modifiers), and such text is handled appropriately. local function format_numeric_param(paramname, singular_desc) local sgval = a_with_name(paramname) local sgobj = parse_annotated_text(sgval, paramname) local plparamname = paramname .. "s" local plval = a_with_name(plparamname) local plobj = parse_annotated_text(plval, plparamname) local plainval, plain_fullname = parse_and_format_annotated_text_with_name(paramname .. "_plain") local numspec if not sgval and not plval and not plainval then return elseif plainval and (sgval or plval) then error(("Nabe ku " .. plain_fullname .. " digel " .. paramname .. " an " .. plparamname .. " were dayîn")) elseif sgval and plval then -- if both singular and plural, display "page 1 of 1-10" numspec = singular_desc .. " " .. sgval .. " ji " .. plval else -- Merge page= and pages= and treat alike because people often mix them up in both directions. if plainval then numspec = plainval else local val = sgobj and sgobj.text or plobj.text if val == "unnumbered" then numspec = "bêhejmar " .. singular_desc else local desc if val:find("^!") then val = val:gsub("^!", "") desc = sgval and singular_desc or (singular_desc .. "ên") else local check_val = val if check_val:find("%[") then check_val = remove_links(check_val) -- convert URL's of the form [URL DISPLAY] to the displayed value check_val = check_val:gsub("%[[^ %[%]]* ([^%[%]]*)%]", "%1") end -- in case of negative page numbers (do they exist?), don't treat as multiple pages check_val = check_val:gsub("^%-", "") -- replace HTML entity en-dashes and em-dashes with their literal codes check_val = check_val:gsub("&ndash;", "–") check_val = check_val:gsub("&#8211;", "–") check_val = check_val:gsub("&mdash;", "—") check_val = check_val:gsub("&#8212;", "—") -- Check for en-dash or em-dash, or two numbers (possibly with stuff after like 12a-15b) -- separated by a hyphen or by comma a followed by a space (to avoid firing on thousands separators). if umatch(check_val, "[–—]") or check_val:find(" and ") or check_val:match("%d+[^ ]* *%- *%d+") or check_val:match("%d+[^ ]* *, +%d+") then desc = singular_desc .. "ên" else desc = singular_desc end end local obj = sgobj or plobj obj.text = val if obj.link:find("^!") then obj.link = obj.link:gsub("^!", "") end val = format_annotated_text(obj) numspec = desc .. " " .. val end end end local url = a(paramname .. "url") if url then return "[" .. url .. " " .. numspec .. "]" else return numspec end end local volume = format_numeric_param("volume", a("volume_prefix") or "cild") if volume then add_with_sep(volume) end local issue = format_numeric_param("issue", a("issue_prefix") or "hejmar") if issue then add_with_sep(issue) end -- number= is an alias for issue= (except in {{quote-av}}, where it is the episode number) local number = format_numeric_param("number", a("number_prefix") or "nimare") if number then add_with_sep(number) end local annotations = {} local genre = a("genre") if genre then insert(annotations, genre) end local format = a("format") if format then insert(annotations, format) end local medium = a("medium") if medium then insert(annotations, medium) end -- Now handle the display of language annotations like "(in French)" or -- "(quotation in Nauruan; overall work in German)". local quotelang = args[1] or args.lang if not quotelang then if ind == "" then -- This can only happen for certain non-mainspace pages, e.g. Talk pages; otherwise an error is thrown -- above. insert(annotations, maintenance_line("Ji kerema xwe zimanê vê jêgirtinê bi |1= diyar bike")) else -- do nothing in newversion= portion end elseif ind == "" then local worklang = a("worklang") local termlang = a("termlang") worklang = worklang or quotelang termlang = termlang or quotelang if worklang == quotelang then if worklang == termlang then -- do nothing else insert(annotations, "bi " .. format_langs(quotelang)) end else if quotelang ~= termlang then insert(annotations, "jêgirtin bi " .. format_langs(quotelang)) end insert(annotations, "bi giştî eser bi " .. format_langs(worklang)) end else local lang2 = a("lang2") if lang2 then insert(annotations, "bi " .. format_langs(lang2)) end end if #annotations > 0 then sep = nil add_with_sep(" (" .. concat(annotations, SEMICOLON_SPACE) .. ")") end local artist = parse_and_format_multivalued_annotated_text("artist", "and") artist = j_lazim(artist) if artist then add_with_sep("hunermend: " .. artist) end local feat = parse_and_format_multivalued_annotated_text("feat", "and") feat = j_lazim(feat) if feat then sep = " " add_with_sep("digel " .. feat) end if not format_as_cite then add_actor_role() end local others = parse_and_format_annotated_text("others") others = j_lazim(others) if others then add_with_sep(others) end local quoted_in = parse_and_format_annotated_text("quoted_in", tag_with_cite, tag_with_cite) if quoted_in then add_with_sep("hate jêgirtin di " .. quoted_in .. " de") insert(tracking_categories, "Jêgirtin bi parametreya quoted-in") end local location = parse_and_format_multivalued_annotated_text("location", "; ") local publisher = parse_and_format_multivalued_annotated_text("publisher", "; ") if publisher then if location then add_with_sep(location) -- colon sep = "&#58; " -- colon end add_with_sep(publisher) elseif location then add_with_sep(location) end if not date_outputted then add_date("no_paren") end local source = parse_and_format_multivalued_annotated_text("source", "and") if source then add_with_sep("ji " .. source .. " hatiye wergirtin") end local original = parse_and_format_annotated_text("original", tag_with_cite, tag_with_cite) local by = parse_and_format_multivalued_annotated_text("by", "and") by = j_lazim(by) local origtype = a("deriv") or "tercimeya" if original or by then add_with_sep(origtype .. " " .. (original or "orîjînal") .. (by and " ji hêla " .. by .. " ve" or "")) end -- Handle origlang=, origworklang=. How we handle them depends on whether the original title or author are explicitly -- given. local origlang = a("origlang") local origworklang = a("origworklang") local origlangtext, origworklangtext if origlang then origlangtext = "bi " .. format_langs(origlang) end if origworklang then origworklangtext = "bi giştî eser bi " .. format_langs(origworklang) end if origlang or origworklang then if original or by then local orig_annotations = {} if origlangtext then insert(orig_annotations, origlangtext) end if origworklangtext then insert(orig_annotations, origworklangtext) end sep = nil add_with_sep(" (" .. concat(orig_annotations, SEMICOLON_SPACE) .. ")") else add_with_sep(origtype .. " orîjînal" .. (origlangtext and " " .. origlangtext or "")) if origworklangtext then sep = nil add_with_sep(" (" .. origworklangtext .. ")") end end end if ind ~= "" and has_newversion() then local formatted_new_date = format_date_args(a, get_full_paramname, alias_map, "", "", nil, "Ji kerema xwe tarîx an salekê binivîse", true) if formatted_new_date then add_with_sep(formatted_new_date) end end -- Fetch date_published=/year_published=/month_published= and format appropriately. local formatted_date_published = format_date_args(a, get_full_paramname, alias_map, "", "_published", nil, nil, true) local platform = parse_and_format_multivalued_annotated_text("platform", "and") if formatted_date_published then add_with_sep("di " .. formatted_date_published .. " de hate weşandin" .. (platform and " li ser " .. platform or "")) elseif platform then add_with_sep("li ser " .. platform) end -- From here on out, there should always be a preceding item, so we -- can dispense with add_with_sep() and always insert the comma. sep = nil local function small(txt) add(", <small>") add(txt) add("</small>") end -- Add an identifier to a book or article database such as DOI, ISBN, JSTOR, etc. `param_or_params` -- is a string identifying the base param, or a list of such strings to check in turn. If found, the value -- of the parameter is processed using `process` (a function of one argument, defaulting to mw.uri.encode()), -- and then the actual URL to insert is generated by preceding with `pretext`, following with `posttext`, -- and running the resulting string through small(), which first adds a comma and then the URL in small font. local function add_identifier(param_or_params, pretext, posttext, process) local val = a(param_or_params) if val then val = (process or mw.uri.encode)(val) small(pretext .. val .. posttext) end end add_identifier("bibcode", "[https://adsabs.harvard.edu/abs/", " →Bibcode]") add_identifier("doi", '<span class="neverexpand">[https://doi.org/', " →DOI]</span>") add_identifier("isbn", "", "", isbn) add_identifier("issn", "", "", issn) add_identifier("jstor", "[https://www.jstor.org/stable/", " →JSTOR]") add_identifier("lccn", "", "", lccn) add_identifier("oclc", "[https://search.worldcat.org/title/", " →OCLC]") add_identifier("ol", "[https://openlibrary.org/works/OL", "/ →OL]") add_identifier("pmid", "[https://www.ncbi.nlm.nih.gov/pubmed/", " →PMID]") add_identifier("pmcid", "[https://www.ncbi.nlm.nih.gov/pmc/articles/", "/ →PMCID]") add_identifier("ssrn", "[https://ssrn.com/abstract=", " →SSRN]") -- add_identifier("urn", "", "", urn) local id = a("id") if id then small(id) end archiveurl, archiveurl_fullname = aurl_with_name("archiveurl") if archiveurl then local url, url_fullname = aurl_with_name("url") if not url then -- attempt to infer original URL from archive URL; this works at -- least for Wayback Machine (web.archive.org) URL's url = archiveurl:match("/(https?:.*)$") if not url then error( ("Gava |%s= tê dayîn, divê |%s= jî were dayîn"):format(archiveurl_fullname, url_fullname) ) end end add(", ji [" .. url .. " orjînalê] di ") local archivedate, archivedate_fullname = a_with_name("archivedate") if archivedate then add(format_date(archivedate)) elseif string.sub(archiveurl, 1, 28) == "https://web.archive.org/web/" then -- If the archive is from the Wayback Machine, then it already contains the date -- Get the date and format it local wayback_date = string.sub(archiveurl, 29, 29 + 7) wayback_date = string.sub(wayback_date, 1, 4) .. "-" .. string.sub(wayback_date, 5, 6) .. "-" .. string.sub(wayback_date, 7, 8) add(format_date(wayback_date)) else error( ("Gava |%s= tê dayîn, divê |%s= jî were dayîn"):format( archiveurl_fullname, archivedate_fullname ) ) end add(" de hatiye arşîvkirin") end if a("accessdate") then --Otherwise do not display here, as already used as a fallback for missing date= or year= earlier. if (a("date") or a("nodate") or a("year")) and not a("archivedate") then add(", di " .. format_date(a("accessdate")) .. " de hatiye gihiştin") end end local formatted_section = format_chapterlike("section", "qismê ") if formatted_section then add(", ") add(formatted_section) end -- video game stuff local system = parse_and_format_annotated_text("system") if system then add(", " .. system) end local scene = parse_and_format_annotated_text("scene") if scene then add(", sehne: " .. scene) end local level = parse_and_format_annotated_text("level") if level then add(", seviye/herêm: " .. level) end local note = parse_and_format_annotated_text("note") if note then add(", " .. note) end local note_plain = parse_and_format_annotated_text("note_plain") if note_plain then add(" " .. note_plain) end -- Wrapper around format_numeric_param that inserts the formatted text with optional preceding text. local function handle_numeric_param(paramname, singular_desc, pretext) local numspec = format_numeric_param(paramname, singular_desc) if numspec then add((pretext or "") .. numspec) end end handle_numeric_param("page", a("page_prefix") or "rûpel", ", ") handle_numeric_param("column", a("column_prefix") or "stûn", ", ") handle_numeric_param("line", a("line_prefix") or "rêz", ", ") -- FIXME: Does this make sense? What is other=? local other = parse_and_format_annotated_text("other") if other then add(", " .. other) end end local function add_authors(args, last_first) -- Find maximum indexed author or last name. local maxind = math.max(args.author.maxindex, args.last.maxindex) -- Include max index of ancillary params so we get an error message about their use without the primary params. local ancillary_params = {"trans-author", "authorlink", "trans-authorlink", "first", "trans-first", "trans-last"} for _, ancillary in ipairs(ancillary_params) do maxind = math.max(maxind, args[ancillary].maxindex) end local num_authors = 0 for i = 1, maxind do local ind = i == 1 and "" or i local author, last = args.author[i], args.last[i] if author or last then local this_num_authors = add_author( author, "author" .. ind, args["trans-author"][i], "trans-author" .. ind, args.authorlink[i], "authorlink" .. ind, args["trans-authorlink"][i], "trans-authorlink" .. ind, args.first[i], "first" .. ind, args["trans-first"][i], "trans-first" .. ind, last, "last" .. ind, args["trans-last"][i], "trans-last" .. ind, last_first ) num_authors = num_authors + this_num_authors sep = last_first and "; " or ", " else for _, cant_have in ipairs(ancillary_params) do if args[cant_have][i] then error(("Nabe ku |%s%s= bêyî |author%s= an |last%s= were dayîn"):format(cant_have, ind, ind, ind)) end end end end return num_authors end local function add_newversion() -- If there's a "newversion" section, add the new-version text. if has_newversion() then sep = nil --Test for new version of work. add(SEMICOLON_SPACE) if args.newversion then -- newversion= is intended for English text, e.g. "hate jêgirtin di" or "ji nû ve hatiye weşandin wekî". add(args.newversion) elseif not args.edition2 then if has_new_title_or_author() then add("ji nû ve hatiye weşandin wekî") else add("ji nû ve hatiye weşandin") end end add(" ") return "" else return ", " end end ------------------- Now we start outputting text ---------------------- local need_comma = false -- Set this now so a() works just below. get_full_paramname = make_get_full_paramname("") if args.brackets then add("[") end bold_year = not format_as_cite year_last = format_as_cite formatted_date, need_date = format_date_args( a, get_full_paramname, alias_map, nil, nil, bold_year, "Tu dikarî tarîxa vê jêgirtinê [[:Category:Daxwazên tarîxê|binivîsî]]?", year_last ) -- format_date_args bolds the year here (via bold_year = not format_as_cite), so this is the only date variable -- we wrap; origdate=, date_published= and the newversion date are left unwrapped. formatted_date = j_lazim(formatted_date) -- Fetch origdate=/origyear=/origmonth= and format appropriately. formatted_origdate = format_date_args(a, get_full_paramname, alias_map, "orig", nil, nil, nil, year_last) local num_authors if format_as_cite then num_authors = add_authors(args, "last_first") if author_outputted then sep = " " end -- Display all the text that comes after the author, for the main portion. postauthor("", num_authors, "format_as_cite") author_outputted = false sep = add_newversion() -- Add the newversion author(s). if args["2ndauthor"] or args["2ndlast"] then num_authors = add_author( args["2ndauthor"], "2ndauthor", nil, nil, args["2ndauthorlink"], "2ndauthorlink", nil, nil, args["2ndfirst"], "2ndfirst", nil, nil, args["2ndlast"], "2ndlast", nil, nil, "last_first" ) sep = ", " else for _, cant_have in ipairs{"2ndauthorlink", "2ndfirst"} do if args[cant_have] then error(("Nabe ku |%s= bêyî |2ndauthor= an |2ndlast= were dayîn"):format(cant_have)) end end end -- Display all the text that comes after the author, for the "newversion" section. postauthor(2, num_authors, "format_as_cite") else if formatted_date then need_comma = true add(formatted_date) end if formatted_origdate then need_comma = true add(SPACE_LBRAC .. formatted_origdate .. RBRAC) end if need_comma then sep = ", " end date_outputted = true num_authors = add_authors(args) -- Display all the text that comes after the author, for the main portion. postauthor("", num_authors) author_outputted = false sep = add_newversion() -- Add the newversion author(s). if args["2ndauthor"] or args["2ndlast"] then num_authors = add_author( args["2ndauthor"], "2ndauthor", nil, nil, args["2ndauthorlink"], "2ndauthorlink", nil, nil, args["2ndfirst"], "2ndfirst", nil, nil, args["2ndlast"], "2ndlast", nil, nil ) sep = ", " else for _, cant_have in ipairs{"2ndauthorlink", "2ndfirst"} do if args[cant_have] then error(("Nabe ku |%s= bêyî |2ndauthor= an |2ndlast= were dayîn"):format(cant_have)) end end end -- Display all the text that comes after the author, for the "newversion" section. postauthor(2, num_authors) end if not args.nocolon then sep = nil add(":") elseif args.usenodot and not args.nodot then add(".") end -- Concatenate output portions to form output text. local output_text = concat(output) -- Remainder of code handles adding categories. We add one or more of the following categories: -- -- 1. [[Category:LANG terms with quotations]], based on the first language code in termlang= or 1=. Added to -- mainspace, Reconstruction: and Appendix: pages as well as Citations: pages if the corresponding mainspace -- page exists. Not added if nocat= is given. Note that [[Module:usex]] adds the same category using the same -- logic, but we do it here too because we may not have a quotation to format. (We add in those circumstances -- because typically when there's no quotation to format, it's because it's formatted manually underneath the -- citation, or using {{ja-x}}, {{th-x}} or similar.) -- 2. [[Category:Requests for date in LANG entries]], based on the first language code in 1=. Added to mainspace, -- Reconstruction:, Appendix: and Citations: pages unless nocat= is given. -- 3. [[Category:Quotations using nocat parameter]], if nocat= is given. Added to mainspace, Reconstruction:, -- Appendix: and Citations: pages. local categories = {} local termlang = get_first_lang(args.termlang or argslang) if args.nocat then if format_as_cite then insert(tracking_categories, "Çavkanî bi parametreya nekat") else insert(tracking_categories, "Jêgirtin bi parametreya nekat") end else -- don't create language tracking categories for citations if not format_as_cite then local title if args.pagename then -- for testing, doc pages, etc. title = mw.title.new(args.pagename) if not title then error(("Nirxa `args.pagename` xelet e: '%s'"):format(args.pagename)) end else title = mw.title.getCurrentTitle() end -- Only add [[Citations:foo]] to [[:Category:LANG terms with quotations]] if [[foo]] exists. local ok_to_add_cat if title.nsText ~= "Citations" then ok_to_add_cat = true else local mainspace_title = mw.title.new(title.text) if mainspace_title and mainspace_title.exists then ok_to_add_cat = true end end if ok_to_add_cat then insert(categories, "Jêgirtin bi " .. termlang:getFullName()) end end if need_date then local argslangobj = get_first_lang(argslang) insert(categories, "Daxwazên tarîxê bi " .. argslangobj:getCanonicalName()) end end return output_text .. ( not lang and "" or (#categories > 0 and format_categories(categories, lang, args.sort) or "") .. ( #tracking_categories > 0 and format_categories( tracking_categories, lang, args.sort, nil, not page_should_be_ignored(mw.title.getCurrentTitle().fullText) ) or "" ) ) end -- Alias specs for type= and type2=. Each spec is `{canon, aliases, with_newversion}` where `canon` is the canonical -- parameter (with "2" added if type2= is being handled), `aliases` is a comma-separated string of aliases (with "2" -- added if type2= is being handled, except for numeric params), and `with_newversion` indicates whether we should -- process this spec if type2= is being handled. local type_alias_specs = { av = { {"author", "writer,writers", true}, {"chapter", "episode", true}, {"chapterurl", "episodeurl", true}, {"trans-chapter", "trans-episode", true}, {"chapter_tlr", "episode_tlr,episode_tlrs,episode_translator,episode_translators", true}, {"chapter_series", "episode_series", true}, {"chapter_seriesvolume", "episode_seriesvolume", true}, {"chapter_number", "episode_number", true}, {"chapter_plain", "episode_plain", true}, {"volume", "season", true}, {"volumes", "seasons", true}, {"volume_plain", "season_plain", true}, {"volumeurl", "seasonurl", true}, {"platform", "network", true}, }, book = { {"author", "3"}, {"editor", "amadekar"}, {"title", ",4"}, {"url", "5"}, {"year", "2"}, {"page", "6"}, {"text", "7"}, {"t", "8"}, }, journal = { {"year", "2"}, {"author", "3"}, {"chapter", "title,sernav,article,meqale,4", true}, {"chapterurl", "titleurl,articleurl,urlya-sernav,urlya-meqaleyê", true}, {"trans-chapter", "trans-title,trans-article,tercimeya-sernav,tercimeya-meqale", true}, {"chapter_tlr", "title_tlr,title_tlrs,title_translator,title_translators,article_tlr,article_tlrs,article_translator,article_translators,tercimanê-sernav,tercimanên-sernav,tercimanên-meqaleyê,tercimanê-meqaleyê", true}, {"chapter_series", "title_series,article_series,seriya-sernav,seriya-meqaleyê", true}, {"chapter_seriesvolume", "title_seriesvolume,article_seriesvolume,cildê-seriya-sernav,cildê-seriya-meqaleyê", true}, {"chapter_number", "title_number,article_number,hejmara-sernav,hejmara-meqaleyê", true}, {"chapter_plain", "title_plain,article_plain,sernav-sade,meqale-sade", true}, {"title", "journal,kovar,magazine,newspaper,work,xebat,xezete,rojname,5", true}, {"trans-title", "trans-journal,tercimeya-kovar,trans-magazine,trans-newspaper,tercimeya-xezete,tercimeya-rojname,trans-work,tercimeya-xebat", true}, {"tlr", "journal_tlr,tercimanê-kovarê,journal_tlrs,journal_translator,journal_translators,magazine_tlr,magazine_tlrs,magazine_translator,magazine_translators,newspaper_tlr,newspaper_tlrs,newspaper_translator,tercimanê-xezeteyê,tercimanê-rojnameyê,newspaper_translators,work_tlr,tercimanê-xebatê,work_tlrs,work_translator,work_translators", true}, {"url", "6,journalurl,urlya-kovarê,magazineurl,newspaperurl,urlya-xezeteyê,urlya-rojnameyê,workurl,urlya-xebatê", true}, {"page", "7"}, {"source", "newsagency,ajans,news_agency", true}, {"text", "8"}, {"t", "9"}, }, } -- Process interally-handled aliases related to type= or type2=. `args` is a table of arguments; `typ` is the value of -- type= or type2=; newversion=true if we're dealing with type2=; alias_map is used to keep track of alias mappings -- seen. local function process_type_aliases(args, typ, newversion, alias_map) local ind = newversion and "2" or "" local deprecated = ine(args.lang) or ine(args.ziman) if not type_alias_specs[typ] then local possible_values = {} for possible, _ in pairs(type_alias_specs) do insert(possible_values, possible) end sort(possible_values) error( ("Nirxa '%s' ji bo type%s= nayê naskirin; nirxên mihtemel ev in: %s"):format( typ, ind, concat(possible_values, ",") ) ) end for _, alias_spec in ipairs(type_alias_specs[typ]) do local canon, aliases, with_newversion = unpack(alias_spec) if with_newversion or not newversion then canon = canon .. ind aliases = split(aliases, ",", true) local saw_alias = nil for _, alias in ipairs(aliases) do if alias:match("^%d+$") then alias = tonumber(alias) if deprecated then alias = alias - 1 end else alias = alias .. ind end if args[alias] then if saw_alias == nil then saw_alias = alias else error(("|%s= û |%s= bernav in; nabe ku nirx ji bo herduyan were dayîn"):format(saw_alias, alias)) end end end if saw_alias and (not newversion or type(saw_alias) == "string") then if args[canon] then error(("|%s= bernavê |%s= ye; nabe ku nirx ji bo herduyan were dayîn"):format(saw_alias, canon)) end args[canon] = args[saw_alias] -- Wipe out the original after copying. This is important in case of a param that has general significance -- but has been redefined (e.g. {{quote-av}} redefines number= for the episode number, and -- {{quote-journal}} redefines title= for the chapter= (article). It's also important due to unhandled -- parameter checking. args[saw_alias] = nil alias_map[canon] = saw_alias end end end end -- Clone and combine frame's and parent's args while also assigning nil to empty strings. Handle aliases and ignores. local function clone_args(direct_args, parent_args) local args = {} -- Processing parent args must come first so that direct args override parent args. Note that if a direct arg is -- specified but is blank, it will still override the parent arg (with nil). for pname, param in pairs(parent_args) do -- [[Special:WhatLinksHere/Wiktionary:Tracking/quote/param/PARAM]] track("param/" .. pname) args[pname] = ine(param) end -- Process ignores. The value of `ignore` is a comma-separated list of parameter names to ignore (erase). We need to -- do this before aliases due to {{quote-song}}, which sets chapter= to the value of title= in the direct params and -- sets title= to the value of album= using an alias. If we do the ignores after aliases, we get an error during alias -- processing, saying that title= and its alias album= are both present. local ignores = ine(direct_args.ignore) if ignores then for ignore in gsplit(ignores, "%s*,%s*") do args[ignore] = nil end end local alias_map = {} local other_controls = {} -- noroman local noroman = ine(direct_args.noroman) if noroman then other_controls.overrides = other_controls.overrides or {} for param in gsplit(noroman, "%s*,%s*") do other_controls.overrides[param] = (other_controls.overrides[param] or {}) other_controls.overrides[param].noroman = true end end -- Process internally-specified aliases using type= or type2=. local typ = args.type or direct_args.type or args.cure or direct_args.cure if typ then process_type_aliases(args, typ, false, alias_map) end local typ2 = args.type2 or direct_args.type2 or args.cure2 or direct_args.cure2 if typ2 then process_type_aliases(args, typ2, true, alias_map) end -- Process externally-specified aliases. The value of `alias` is a list of semicolon-separated specs, each of which -- is of the form DEST:SOURCE,SOURCE,... where DEST is the canonical name of a parameter and SOURCE refers to an -- alias. Whitespace is allowed between all delimiters. The order of aliases may be important. For example, for -- {{quote-journal}}, title= contains the article name and is an alias of underlying chapter=, while journal= or -- work= contains the journal name and is an alias of underlying title=. As a result, the title -> chapter alias -- must be specified before the journal/work -> title alias. -- -- Whenever we copy a value from argument SOURCE to argument DEST, we record an entry for the pair in alias_map, so -- that when we would display an error message about DEST, we display SOURCE instead. -- -- Do alias processing (and ignore and error_if processing) before processing direct_args so that e.g. we can set up -- an alias of title -> chapter and then set title= to something else in the direct args ({{quote-hansard}} does -- this). -- -- FIXME: Delete this once we've converted all alias processing to internal. local aliases = ine(direct_args.alias) if aliases then -- Allow and discard a trailing semicolon, to make managing multiple aliases easier. aliases = ugsub(aliases, "%s*;$", "") for alias_spec in gsplit(aliases, "%s*;%s*") do local alias_spec_parts = split(alias_spec, "%s*:%s*") if #alias_spec_parts ~= 2 then error(("Ji bo bernav '%s' divê (:) tê de hebe"):format(alias_spec)) -- ("Alias spec '%s' should have one colon in it"):format(alias_spec) ev çi dibêje? end local dest, sources = unpack(alias_spec_parts) sources = split(sources, "%s*,%s*") local saw_source = nil for _, source in ipairs(sources) do if source:match("^%d+$") then source = tonumber(source) end if args[source] then if saw_source == nil then saw_source = source else error(("|%s= û |%s= bernav in; nabe ku nirx ji bo herduyan were dayîn"):format(saw_source, source)) end end end if saw_source then if args[dest] then error(("|%s= bernavê |%s= ye; nabe ku nirx ji bo herduyan were dayîn"):format(saw_source, dest)) end args[dest] = args[saw_source] -- Wipe out the original after copying. This important in case of a param that has general significance -- but has been redefined (e.g. {{quote-av}} redefines number= for the episode number, and -- {{quote-journal}} redefines title= for the chapter= (article). It's also important due to unhandled -- parameter checking. args[saw_source] = nil alias_map[dest] = saw_source end end end -- Process error_if. The value of `error_if` is a comma-separated list of parameter names to throw an error if seen -- in parent_args (they are params we overwrite in the direct args). local error_ifs = ine(direct_args.error_if) if error_ifs then for error_if in gsplit(error_ifs, "%s*,%s*") do if ine(parent_args[error_if]) then error( ("Nabe ku nirxek ji bo |%s=%s were dayîn, ji ber ku dê were guhartin an paşguhkirin"):format( error_if, ine(parent_args[error_if]) ) ) end end end for pname, param in pairs(direct_args) do -- ignore control params if pname ~= "ignore" and pname ~= "alias" and pname ~= "error_if" and pname ~= "noroman" then args[pname] = ine(param) end end return args, alias_map, other_controls end local function get_args(frame_args, parent_args, require_lang) -- FIXME: We are processing arguments twice, once in clone_args() and then again in [[Module:parameters]]. This is -- wasteful of memory. local cloned_args, alias_map, other_controls = clone_args(frame_args, parent_args) local deprecated = ine(parent_args.lang) or ine(parent_args.ziman) if ine(parent_args[1]) and deprecated then error("Nikarî hem parametreya 1. (koda zimên) hem jî |lang=/|ziman= bi hev re bi kar bînî; tenê yekê ji wan bi kar bîne.") end -- Enforce the language requirement here (instead of leaving it to Module:parameters' generic "required" -- validation) so the namespace-aware custom error below actually gets a chance to run. if require_lang and not (ine(parent_args[1]) or deprecated) then local current_title = mw.title.getCurrentTitle() if not (current_title.namespace == 10 or page_should_be_ignored(current_title.fullText)) then require(languages_error_module)(nil, 1) end end local alias_of_t = {alias_of = "t"} local boolean = {type = "boolean"} local language_sublist = {type = "language", sublist = true} local list_allow_holes = {list = true, allow_holes = true} local script = {type = "script"} local function alias_list_allow_holes(canon) return {alias_of = canon, list = true, allow_holes = true} end -- First, the "single" params that don't have FOO2 or FOOn versions. local params = { [deprecated and "lang" or 1] = {type = "language", sublist = true, default = "und"}, ["lang2"] = language_sublist, ["ziman2"] = {alias_of = "lang2", type = "language", sublist = true}, ["newversion"] = true, ["versiyona-nû"] = {alias_of = "newversion"}, ["author"] = list_allow_holes, ["nivîskar"] = alias_list_allow_holes("author"), ["2ndauthor"] = true, ["2nivîskar"] = {alias_of = "2ndauthor"}, ["trans-author"] = list_allow_holes, ["tercimeya-nivîskar"] = alias_list_allow_holes("trans-author"), ["authorlink"] = list_allow_holes, ["lînka-nivîskar"] = alias_list_allow_holes("authorlink"), ["2ndauthorlink"] = true, ["2lînka-nivîskar"] = {alias_of = "2ndauthorlink"}, ["trans-authorlink"] = list_allow_holes, ["lînka-tercimeya-nivîskar"] = alias_list_allow_holes("trans-authorlink"), ["first"] = list_allow_holes, ["pêşnav"] = alias_list_allow_holes("first"), ["2ndfirst"] = true, ["2pêşnav"] = {alias_of = "2ndfirst"}, ["trans-first"] = list_allow_holes, ["tercimeya-pêşnav"] = alias_list_allow_holes("trans-first"), ["last"] = list_allow_holes, ["paşnav"] = alias_list_allow_holes("last"), ["2ndlast"] = true, ["2paşnav"] = {alias_of = "2ndlast"}, ["trans-last"] = list_allow_holes, ["tercimeya-paşnav"] = alias_list_allow_holes("trans-last"), ["nocat"] = boolean, ["nekat"] = {alias_of = "nocat"}, ["nocolon"] = boolean, -- quote params text = true, passage = {alias_of = "text"}, ["jêgirtin"] = {alias_of = "text"}, ["jg"] = {alias_of = "text"}, tr = true, transliteration = {alias_of = "tr"}, ts = true, transcription = {alias_of = "ts"}, norm = true, normalization = {alias_of = "norm"}, sc = script, normsc = script, sort = true, subst = true, footer = true, lit = true, ["hrf"] = {alias_of = "lit"}, t = true, translation = alias_of_t, ["tercime"] = alias_of_t, ["werger"] = alias_of_t, ["w"] = alias_of_t, gloss = alias_of_t, lb = true, ["e"] = {alias_of = "lb"}, brackets = boolean, ["parantez"] = {alias_of = "brackets"}, -- original quote params origtext = true, ["metna-orîjînal"] = {alias_of = "origtext"}, origtr = true, ["tr-orîjînal"] = {alias_of = "origtr"}, origts = true, ["ts-orîjînal"] = {alias_of = "origts"}, orignorm = true, ["norm-orîjînal"] = {alias_of = "orignorm"}, origsc = script, ["sc-orîjînal"] = {alias_of = "origsc"}, orignormsc = script, ["normsc-orîjînal"] = {alias_of = "orignormsc"}, origsubst = true, ["subst-orîjînal"] = {alias_of = "origsubst"}, origlb = true, ["e-orîjînal"] = {alias_of = "origlb"}, usenodot = boolean, nodot = boolean, inline = boolean, asquote = boolean, ["wekjêgirtin"] = {alias_of = "asquote"}, ascite = boolean, ["wekçavkanî"] = {alias_of = "ascite"}, } -- ziman= is a deprecated Kurdish alias of the deprecated named lang= param (only meaningful once "lang" is -- actually a registered key, i.e. when deprecated is true; see the [deprecated and "lang" or 1] key above). if deprecated then params["ziman"] = {alias_of = "lang"} end -- Most params have PARAM2 variants for use with `newversion`. FIXME: We should generalize this to -- allow PARAMN variants for any N. local function add_with_2(param, value) params[param] = value params[param .. "2"] = value end local function alias_with_2(alias, canon) params[alias] = {alias_of = canon} params[alias .. "2"] = {alias_of = canon .. "2"} -- Record which alias was actually used, so error messages show e.g. |tarîx= instead of |date=. if cloned_args[alias] then alias_map[canon] = alias end if cloned_args[alias .. "2"] then alias_map[canon .. "2"] = alias .. "2" end end for _, param12 in ipairs{ "worklang", "termlang", "origlang", "origworklang" } do add_with_2(param12, language_sublist) end -- Then the newversion params (which have FOO2 versions). for _, param12 in ipairs{ -- author-like params; author params themselves are either list params (author=, last=, etc.) or single params -- (2ndauthor=, 2ndlast=, etc.) "coauthors", "quotee", "tlr", "editor", "editors", "mainauthor", "compiler", "compilers", "director", "directors", "lyricist", "lyrics-translator", "composer", "role", "actor", "artist", "feat", -- author control params "default-authorlabel", "authorlabel", -- title "title", "trans-title", "series", "seriesvolume", "notitle", -- entry "entry", "entryurl", "trans-entry", -- chapter "chapter", "chapterurl", "chapter_number", "chapter_plain", "chapter_series", "chapter_seriesvolume", "trans-chapter", "chapter_tlr", -- section "section", "sectionurl", "section_number", "section_plain", "section_series", "section_seriesvolume", "trans-section", -- other video-game params "system", "scene", "level", -- URL "url", "urls", "archiveurl", -- edition "edition", "edition_plain", -- ID params "bibcode", "doi", "isbn", "issn", "jstor", "lccn", "oclc", "ol", "pmid", "pmcid", "ssrn", "urn", "id", -- misc date params; most date params handled below "archivedate", "accessdate", "nodate", -- numeric params handled below -- other params "type", "genre", "format", "medium", "others", "quoted_in", "location", "publisher", "original", "by", "deriv", "note", "note_plain", "other", "source", "platform", } do add_with_2(param12, true) end -- Then the aliases of newversion params (which have FOO2 versions). for _, param12_aliased in ipairs{ {"role", "roles"}, {"role", "speaker"}, {"tlr", "tlrs"}, {"tlr", "translator"}, {"tlr", "translators"}, {"chapter_tlr", "chapter_tlrs"}, {"chapter_tlr", "chapter_translator"}, {"chapter_tlr", "chapter_translators"}, {"doi", "DOI"}, {"isbn", "ISBN"}, {"issn", "ISSN"}, {"jstor", "JSTOR"}, {"lccn", "LCCN"}, {"oclc", "OCLC"}, {"ol", "OL"}, {"pmid", "PMID"}, {"pmcid", "PMCID"}, {"ssrn", "SSRN"}, {"urn", "URN"}, } do local canon, alias = unpack(param12_aliased) alias_with_2(alias, canon) end -- tercimeyên Then the aliases of newversion params (which have FOO2 versions). for _, param12_aliased in ipairs{ {"role", "rol"}, {"role", "axivêr"}, {"tlr", "terciman"}, {"tlr", "wergêr"}, {"chapter_tlr", "tercimanên-beşê"}, {"chapter_tlr", "tercimanê-beşê"}, {"chapter_tlr", "tercimana-beşê"}, {"chapter_tlr", "wergêrên-beşê"}, {"chapter_tlr", "wergêrê-beşê"}, {"chapter_tlr", "wergêra-beşê"}, -- tercimeyên Then the newversion params (which have FOO2 versions). -- author-like params; author params themselves are either list params (author=, last=, etc.) or single params -- (2ndauthor=, 2ndlast=, etc.) {"coauthors", "hevnivîskar"}, {"quotee", "jê-tê-girtin"}, {"editor", "edîtor"}, {"editor", "amadekar"}, {"mainauthor", "nivîskarê-sereke"}, {"compiler", "berhevkar"}, {"director", "derhêner"}, {"lyricist", "gotinnivîs"}, {"lyrics-translator", "tercimanê-gotinan"}, {"lyrics-translator", "tercimana-gotinan"}, {"lyrics-translator", "wergêrê-gotinan"}, {"lyrics-translator", "wergêra-gotinan"}, {"composer", "bestekar"}, {"actor", "aktor"}, {"actor", "lîstikvan"}, {"artist", "hunermend"}, {"artist", "artîst"}, {"feat", "mêvan"}, --tercimeyên author control params {"default-authorlabel", "standard-etîketa-nivîskar"}, {"authorlabel", "etîketa-nivîskar"}, --tercimeyên title {"title", "sernav"}, {"trans-title", "tercimeya-sernav"}, {"trans-title", "wergera-sernav"}, {"series", "serî"}, {"series", "rêze"}, {"seriesvolume", "cildê-seriyê"}, {"seriesvolume", "cildê-rêzeyê"}, {"notitle", "bêsernav"}, --tercimeyên entry {"entry", "made"}, {"entryurl", "urlya-madeyê"}, {"trans-entry", "tercimeya-made"}, {"trans-entry", "wergera-madeyê"}, --tercimeyên chapter {"chapter", "beş"}, {"chapterurl", "urlya-beşê"}, {"chapter_number", "hejmara-beşê"}, {"chapter_plain", "beş-sade"}, {"chapter_series", "seriya-beşê"}, {"chapter_series", "rêzeya-beşê"}, {"chapter_seriesvolume", "cildê-seriya-beşê"}, {"chapter_seriesvolume", "cildê-rêzeya-beşê"}, {"trans-chapter", "tercimeya-beş"}, {"trans-chapter", "wergera-beşê"}, --tercimeyên section {"section", "qisim"}, {"section", "qism"}, {"sectionurl", "urlya-qismê"}, {"section_number", "hejmara-qismê"}, {"section_plain", "qisim-sade"}, {"section_plain", "qism-sade"}, {"section_series", "rêzeya-qismê"}, {"section_seriesvolume", "cildê-seriya-qismê"}, {"section_seriesvolume", "cildê-rêzeya-qismê"}, {"trans-section", "tercimeya-qism"}, {"trans-section", "tercimeya-qisim"}, --tercimeyên other video-game params {"system", "sîstem"}, {"system", "pergal"}, {"scene", "sehne"}, {"level", "seviye"}, --tercimeyên URL {"archiveurl", "urlya-arşîvê"}, -- tercimeyên edition {"edition", "çap"}, {"edition_plain", "çap-sade"}, --tercimeyên misc date params; most date params handled below {"archivedate", "roja-arşîvê"}, {"archivedate", "tarîxa-arşîvê"}, {"accessdate", "tarîxa-gihiştinê"}, {"accessdate", "roja-gihiştinê"}, {"nodate", "bêtarîx"}, --tercimeyên other params {"type", "cure"}, {"genre", "janr"}, {"medium", "medya"}, {"others", "kesên-din"}, {"others", "yên-din"}, {"quoted_in", "cihê-jêgirtinê"}, {"location", "cih"}, {"location", "cîh"}, {"publisher", "weşanxane"}, {"publisher", "weşanger"}, {"original", "orîjînal"}, {"original", "orjînal"}, {"by", "ji-aliyê"}, {"by", "ji-hêla"}, --{"deriv", ""}, {"note", "not"}, {"note_plain", "not-sade"}, {"other", "yê-din"}, {"source", "çavkanî"}, --tercimeyên {"worklang", "zimanê-eserê"}, {"termlang", "zimanê-termê"}, {"origlang", "zimanê-orîjînal"}, {"origworklang", "zimanê-esera-orîjînal"}, } do local canon, alias = unpack(param12_aliased) alias_with_2(alias, canon) end -- Then the date params. for _, datelike in ipairs{{"", ""}, {"orig", ""}, {"", "_published"}} do local pref, suf = unpack(datelike) for _, arg in ipairs{"date", "year", "month", "start_date", "start_year", "start_month"} do add_with_2(pref .. arg .. suf, true) end end -- Kurmancî aliases for the date params for _, date_aliased in ipairs{ {"date", "tarîx"}, {"date", "dîrok"}, {"year", "sal"}, {"month", "meh"}, {"start_date", "tarîxa-destpêkê"}, {"start_year", "sala-destpêkê"}, {"start_month", "meha-destpêkê"}, {"origdate", "tarîxa-orîjînal"}, {"origyear", "sala-orîjînal"}, {"origyear", "sala orîjînal"}, {"origmonth", "meha-orîjînal"}, {"origstart_date", "tarîxa-destpêkê-orîjînal"}, {"origstart_year", "sala-destpêkê-orîjînal"}, {"origstart_month", "meha-destpêkê-orîjînal"}, {"date_published", "tarîxa-weşandinê"}, {"year_published", "sala-weşandinê"}, {"year_published", "sala weşandinê"}, {"month_published", "meha-weşandinê"}, {"start_date_published", "tarîxa-destpêkê-weşandin"}, {"start_year_published", "sala_destpêkê-weşandin"}, {"start_month_published", "meha-destpêkê-weşandin"} } do local canon, alias = unpack(date_aliased) alias_with_2(alias, canon) end local numeric_param_suffixes = {"", "s", "_plain", "url", "_prefix"} -- Then the numeric params. for _, numeric in ipairs{"volume", "issue", "number", "line", "page", "column"} do for _, suf in ipairs(numeric_param_suffixes) do add_with_2(numeric .. suf, true) end end -- canon word -> Kurdish forms -- aliases : plain synonyms (maps straight to canon, e.g. "volume") -- sade : ezafe form used before "-sade" (canon .. "_plain") -- urlya : ezafe form used after "urlya-" (canon .. "url") local ku_numeric = { volume = {aliases = {"cild", "cîld"}, sade = "cild", urlya = "cild"}, issue = {aliases = {"hj", "hejmar"}, sade = "hejmar", urlya = "hejmarê"}, number = {aliases = {"nimare"}, sade = "nimare", urlya = "nimareyê"}, line = {aliases = {"rêz"}, sade = "rêz", urlya = "rêzê"}, page = {aliases = {"rûpel", "r"}, sade = "rûpel", urlya = "rûpelê"}, column = {aliases = {"stûn"}, sade = "stûn", urlya = "stûnê"}, } local ku_numeric_plural = { volume = "cildên", issue = "hejmarên", number = "nimareyên", line = "rêzên", page = "rûpelên", column = "stûnên", } for canon, t in pairs(ku_numeric) do for _, alias in ipairs(t.aliases) do alias_with_2(alias, canon) end alias_with_2(t.sade .. "-sade", canon .. "_plain") alias_with_2("urlya-" .. t.urlya, canon .. "url") alias_with_2("pêşgira-" .. t.urlya, canon .. "_prefix") end for canon, plural in pairs(ku_numeric_plural) do alias_with_2(plural, canon .. "s") end -- And the aliases of numeric params. for _, numeric_aliased in ipairs{{"volume", "vol"}} do local canon, alias = unpack(numeric_aliased) for _, suf in ipairs(numeric_param_suffixes) do alias_with_2(alias .. suf, canon .. suf) end end return process_params(cloned_args, params), alias_map, other_controls end local function get_origtext_params(args) local origtext, origtextlang, origsc, orignormsc if args.origtext then -- Wiktionary language codes have at least two lowercase letters followed possibly by lowercase letters and/or -- hyphens (there are more restrictions but this is close enough). Also check for nonstandard Latin etymology -- language codes (e.g. VL. or LL.). (There used to be more nonstandard codes but they have all been -- eliminated.) origtextlang, origtext = args.origtext:match("^(%l%l[%l-]*):([^ ].*)$") if not origtextlang then -- Special hack for Latin variants, which can have nonstandard etym codes, e.g. VL., LL. origtextlang, origtext = args.origtext:match("^(%uL%.):([^ ].*)$") end if not origtextlang then error("origtext= divê bi pêşgira koda zimên dest pê bike") end origtextlang = get_lang(origtextlang, nil, "allow etym") or error("origtext= divê bi pêşgira koda zimên dest pê bike") origsc = args.origsc orignormsc = args.orignormsc else for _, noparam in ipairs{"origtr", "origts", "origsc", "orignorm", "orignormsc", "origsubst", "origlb"} do if args[noparam] then error(("Nabe ku %s= bêyî origtext= were dayîn"):format(noparam)) end end end return origtext, origtextlang, origsc, orignormsc end local function get_quote(args, is_cite, source) local text = args.text local gloss = args.t local tr = args.tr local ts = args.ts local norm = args.norm local sc = args.sc local normsc = args.normsc -- Fetch original-text parameters. local origtext, origtextlang, origsc, orignormsc = get_origtext_params(args) -- If any quote-related args are present, display the actual quote; otherwise, display nothing. if text or gloss or tr or ts or norm or args.origtext then -- Pass "und" here rather than cause an error; there will be an error on mainspace, Citations, etc. pages -- in any case in source() if the language is omitted. local lang = get_first_lang(args[1] or args.lang) local termlang = args.termlang and get_first_lang(args.termlang) or lang local usex_data = { lang = lang, termlang = termlang, usex = text, sc = sc, translation = gloss, normalization = norm, normsc = normsc, transliteration = tr, transcription = ts, brackets = args.brackets, subst = args.subst, lit = args.lit, footer = args.footer, qq = parse_and_format_labels(args.lb, lang), quote = "quote-meta", orig = origtext, origlang = origtextlang, origsc = origsc, orignorm = args.orignorm, orignormsc = orignormsc, origtr = args.origtr, origts = args.origts, origsubst = args.origsubst, origqq = parse_and_format_labels(args.origlb, lang), noreq = args.noreq, nocat = is_cite or args.nocat, source = source } if args.inline then -- don't let usex format the footer, otherwise it gets inlined with the rest of the quoted text usex_data.footer = nil usex_data.inline = 1 text = format_usex(usex_data) if text then text = " “" .. text .. "”" else text = "" end if args.footer then text = text .. "<dl><dd>" .. args.footer .. "</dd></dl>" end else text = format_usex(usex_data) end elseif args.footer then text = "<dl><dd>" .. args.footer .. "</dd></dl>" end return text end -- External interface, meant to be called from a template. Replaces {{quote-meta}} and meant to be the primary -- interface for {{quote-*}} templates. function export.quote_t(frame) local args, alias_map, other_controls = get_args(frame.args, frame:getParent().args, "require_lang") if args.ascite then return export.cite_t(frame) end return show_quote(args, alias_map, other_controls) end function show_quote(args, alias_map, other_controls) local parts = {} -- kuwikt always hides the trailing colon on quote_t. args.nocolon = true insert(parts, get_quote(args, false, export.source(args, alias_map, nil, other_controls))) local retval = concat(parts) return deprecated and frame:expandTemplate({ title = "check deprecated lang param usage", args = {retval, lang = args.lang}, }) or retval end -- External interface, meant to be called from a template. Replaces {{cite-meta}} and meant to be the primary -- interface for {{cite-*}} templates. function export.cite_t(frame) local parent_args = {} for k, v in pairs(frame:getParent().args) do parent_args[k] = v end -- use "und" as lang if none provided at all (not even via the deprecated named lang=/ziman=). Don't synthesize -- this when lang=/ziman= was used, or the deprecated-shift logic in process_type_aliases() will misread this -- placeholder as a genuine shifted positional value (e.g. type=book's position-2-is-year), duplicating it into -- a real alias like sal=. if parent_args[1] == nil and not (ine(parent_args.lang) or ine(parent_args.ziman)) then parent_args[1] = "und" end local args, alias_map, other_controls = get_args(frame.args, parent_args) if args.asquote then return show_quote(args, alias_map, other_controls) end return show_cite(args, alias_map, other_controls) end function show_cite(args, alias_map, other_controls) local parts = {} -- don't nag for translations if args.text and not args.t then args.noreq = 1 end local len_visible = args.text and ulen((args.text:gsub("<[^<>]+>", ""))) or 0 if len_visible == 0 then if not args.t or args.t == "-" then args.nocolon = true end elseif args.inline == nil then args.inline = not ( args.block_text or len_visible > 300 or (args.t and not args.t == "-" and len_visible < 80) or string.match(args.text, "<br>") ) end insert(parts, '<span class="citation-whole"><span class="cited-source">') insert(parts, export.source(args, alias_map, "format_as_cite", other_controls)) insert(parts, "</span>") insert(parts, get_quote(args, "is_cite")) insert(parts, "</span>") local retval = concat(parts) return deprecated and frame:expandTemplate({ title = "check deprecated lang param usage", args = {retval, lang = args.lang}, }) or retval end -- External interface, meant to be called from a template. function export.call_quote_template(frame) return export.call_template(frame) end -- External interface, for calling a template with overloaded parameters. function export.overload(frame) local iargs, overloaded_args = process_params(frame.args, { [1] = {required = true} }, true) local parent_args = frame:getParent().args for k, v in pairs(parent_args) do overloaded_args[k] = v end return frame:expandTemplate{title = iargs[1], args = overloaded_args} end -- External interface, meant to be called from a template. function export.call_template(frame) local parameter_sublist = {type = "parameter", sublist = true} local iargs, other_direct_args = process_params(frame.args, { ["template"] = true, ["textparam"] = parameter_sublist, ["pageparam"] = parameter_sublist, ["propagateparams"] = parameter_sublist, ["allowparams"] = {sublist = true}, -- Doesn't use type = "parameter", because any that end in :list get processed differently. }, true) local function fetch_param(source, params) for _, param in ipairs(params) do if source[param] then return source[param] end end return nil end local params = { ["text"] = true, ["passage"] = true, ["jêgirtin"] = true, ["footer"] = true, -- always propagates, but gets special formatting } -- paramaters that can be used during template declaration or included in template calls -- if the template is called with param=- it will set any declared value to nil local always_propagate = { ["brackets"] = true, ["usenodot"] = true, ["nodot"] = true, ["ascite"] = true, ["asquote"] = true, } for k,v in pairs(always_propagate) do params[k] = v end local textparam = iargs.textparam or {} for _, param in ipairs(textparam) do params[param] = true end local pageparam = iargs.pageparam or {} local pageparam1 = pageparam[1] if pageparam1 ~= nil then params["page"], params["pages"] = true, true for _, param in ipairs(pageparam) do params[param] = true end end local allowparams, allow_all, list = iargs.allowparams, false if allowparams ~= nil then for _, allow in ipairs(allowparams) do local param = allow:match("^(.*):list$") if param then if list == nil then list = {list = true} end params[scribunto_parameter_key(param)] = list elseif allow == "*" then track("no parameter checking") allow_all = true else params[scribunto_parameter_key(allow)] = true end end else local parent = frame:getParent() local template_name = parent:getTitle() local template_title = new_title(template_name) local content = template_title:getContent() local allowed_params, seen = {}, {} -- Detect all params used by the parent template. param:get_name() takes the -- parent frame arg table as an argument so that preprocessing will take -- them into account, since it will matter if the name contains another -- parameter (e.g. the outer param in "{{{foo{{{bar}}}baz}}}" will change -- depending on the value for bar=). `seen` memoizes results based on the -- raw parameter text (which is stored as a string in the parameter object), -- which avoids unnecessary param:get_name() calls, which are non-trivial. for param in find_parameters(content) do local raw = param.raw if not seen[raw] then allow = param:get_name(template_args) params[scribunto_parameter_key(allow)] = true seen[raw] = true end end end local propagateparams = iargs.propagateparams or {} for _, param in ipairs(propagateparams) do params[param] = true end local parent_args = frame:getParent().args local args = process_params(parent_args, params, allow_all) parent_args = shallow_copy(parent_args) if textparam[1] ~= "-" then other_direct_args.passage = args.text or args.passage or args["jêgirtin"] or fetch_param(args, textparam) end if not (pageparam1 == nil or pageparam1 == "-") then other_direct_args.page = fetch_param(args, pageparam) or args.page or other_direct_args.page or nil other_direct_args.pages = args.pages or other_direct_args.pages or nil if other_direct_args.page == "-" then other_direct_args.page = nil end if other_direct_args.pages == "-" then other_direct_args.pages = nil end end if args.footer then other_direct_args.footer = frame:expandTemplate{title = "small", args = {args.footer}} end for param, _ in pairs(always_propagate) do if args[param] == "-" then other_direct_args[param] = nil else other_direct_args[param] = args[param] or other_direct_args[param] or nil end end -- authorlink=- can be used to prevent copying of author= to authorlink= but we don't want to propagate this to -- the actual {{quote-*}} code. if other_direct_args.authorlink == "-" then other_direct_args.authorlink = nil end for _, param in ipairs(propagateparams) do if args[param] then other_direct_args[param] = args[param] end end return frame:expandTemplate{title = iargs.template or "quote-book", args = other_direct_args} end local paramdoc_param_replacements = { passage = { param_with_synonym = "<<synonym>>, {{para|text}}, or {{para|passage}}", param_no_synonym = "{{para|text}} or {{para|passage}}", text = [=[ * <<params>> – the passage to be quoted.]=], }, page = { param_with_synonym = "<<synonym>> or {{para|page}}, or {{para|pages}}", param_no_synonym = "{{para|page}} or {{para|pages}}", text = [=[ * <<params>> – '''mandatory in some cases''': the page number(s) quoted from. When quoting a range of pages, note the following: ** Separate the first and last pages of the range with an [[en dash]], like this: {{para|pages|10–11}}. ** You must also use {{para|pageref}} to indicate the page to be linked to (usually the page on which the Wiktionary entry appears). : This parameter must be specified to have the template link to the online version of the work.]=], }, page_with_roman_preface = { param_with_synonym = {"inherit", "page"}, param_no_synonym = {"inherit", "page"}, text = [=[ * <<params>> – '''mandatory in some cases''': the page number(s) quoted from. If quoting from the preface, specify the page number(s) in lowercase Roman numerals. When quoting a range of pages, note the following: ** Separate the first and last page number of the range with an [[en dash]], like this: {{para|pages|10–11}} or {{para|pages|iii–iv}}. ** You must also use {{para|pageref}} to indicate the page to be linked to (usually the page on which the Wiktionary entry appears). : This parameter must be specified to have the template link to the online version of the work.]=], }, chapter = { param_with_synonym = "<<synonym>> or {{para|chapter}}", param_no_synonym = "{{para|chapter}}", text = [=[ * <<params>> – the name of the chapter quoted from.]=], }, roman_chapter = { param_with_synonym = {"inherit", "chapter"}, param_no_synonym = {"inherit", "chapter"}, text = [=[ * <<params>> – the chapter number quoted from in uppercase Roman numerals.]=], }, arabic_chapter = { param_with_synonym = {"inherit", "chapter"}, param_no_synonym = {"inherit", "chapter"}, text = [=[ * <<params>> – the chapter number quoted from in Arabic numerals.]=], }, trailing_params = { text = [=[ * {{para|footer}} – a comment on the passage quoted. * {{para|brackets}} – use {{para|brackets|on}} to surround a quotation with [[bracket#Noun|brackets]]. This indicates that the quotation either contains a mere mention of a term (for example, “some people find the word '''''manoeuvre''''' hard to spell”) rather than an actual use of it (for example, “we need to '''manoeuvre''' carefully to avoid causing upset”), or does not provide an actual instance of a term but provides information about related terms.]=], }, } function export.paramdoc(frame) local parargs = frame:getParent().args local args = process_params(parargs, { [1] = true, }) local text = args[1] local function do_param_with_optional_synonym(param, text_to_sub, paramtext_synonym, paramtext_no_synonym) local function sub_param(synonym) local subbed_paramtext if synonym then subbed_paramtext = paramtext_synonym:gsub("<<synonym>>", "{{para|" .. replacement_escape(synonym) .. "}}") else subbed_paramtext = paramtext_no_synonym end return frame:preprocess((text_to_sub:gsub("<<params>>", replacement_escape(subbed_paramtext)))) end text = text:gsub("<<" .. pattern_escape(param) .. ">>", function() return sub_param() end) text = text:gsub("<<" .. pattern_escape(param) .. ":(.-)>>", sub_param) end local function fetch_text(param_to_replace, key) local spec = paramdoc_param_replacements[param_to_replace] local val = spec[key] if type(val) == "string" then return val end if type(val) == "table" and val[1] == "inherit" then return fetch_text(val[2], key) end error( "Internal error: Unrecognized value for param '" .. param_to_replace .. "', key '" .. key .. "': " .. mw.dumpObject(val) ) end for param_to_replace, spec in pairs(paramdoc_param_replacements) do if not spec.param_no_synonym then -- Text to substitute directly. text = text:gsub("<<" .. pattern_escape(param_to_replace) .. ">>", function() return frame:preprocess(fetch_text(param_to_replace, "text")) end) else do_param_with_optional_synonym( param_to_replace, fetch_text(param_to_replace, "text"), fetch_text(param_to_replace, "param_with_synonym"), fetch_text(param_to_replace, "param_no_synonym") ) end end -- Remove final newline so template code can add a newline after invocation text = text:gsub("\n$", "") return text end return export 99rzvf50qfcslltek1nakuge9y0j84x 6329844 6329830 2026-08-12T23:49:55Z Wikihez 7344 6329844 Scribunto text/plain --[=[ This module contains functions to implement quote-* templates. Author: Benwing2; conversion into Lua of {{quote-meta/source}} template, written by Sgconlaw with some help from Erutuon and Benwing2. The main interface is quote_t(). Note that the source display is handled by source(), which reads both the arguments passed to it *and* the arguments passed to the parent template, with the former overriding the latter. ]=] local export = {} --[=[ FIXME: 1. Dates like `1 march 2025` with the day of the month being 1 and the month lowercased are treated as month-year-only. The relevant code checks for a capitalized word; it should probably instead check for the actual month names or abbrevs. ]=] -- Named constants for all modules used, to make it easier to swap out sandbox versions. local check_isxn_module = "Module:check isxn" local debug_track_module = "Module:debug/track" local en_utilities_module = "Module:en-utilities" local italics_module = "Module:italics" local labels_module = "Module:labels" local languages_module = "Module:languages" local languages_error_module = "Module:languages/error" local links_module = "Module:links" local number_utilities_module = "Module:number utilities" local parameters_module = "Module:parameters" local parse_utilities_module = "Module:parse utilities" local qualifier_module = "Module:qualifier" local roman_numerals_module = "Module:roman numerals" local scribunto_module = "Module:Scribunto" local script_utilities_module = "Module:script utilities" local scripts_module = "Module:scripts" local string_pattern_escape_module = "Module:string/patternEscape" local string_replacement_escape_module = "Module:string/replacementEscape" local string_utilities_module = "Module:string utilities" local table_module = "Module:table" local template_parser_module = "Module:template parser" local usex_module = "Module:usex" local usex_templates_module = "Module:usex/templates" local utilities_module = "Module:utilities" local yesno_module = "Module:yesno" local concat = table.concat local insert = table.insert local new_title = mw.title.new local remove = table.remove local require = require local sort = table.sort local u = mw.ustring.char local ugsub = mw.ustring.gsub local umatch = mw.ustring.match local unpack = unpack or table.unpack -- Lua 5.2 compatibility -- Use HTML entities here to avoid parsing issues (esp. with brackets) local SEMICOLON_SPACE = "&#59; " local SPACE_LBRAC = " &#91;" local RBRAC = "&#93;" local TEMP_LT = u(0xFFF1) local TEMP_GT = u(0xFFF2) local TEMP_LBRAC = u(0xFFF3) local TEMP_RBRAC = u(0xFFF4) local TEMP_SEMICOLON = u(0xFFF5) local function apply_subst(...) apply_subst = require(usex_module).apply_subst return apply_subst(...) end local function check_isbn(...) check_isbn = require(check_isxn_module).check_isbn return check_isbn(...) end local function check_issn(...) check_issn = require(check_isxn_module).check_issn return check_issn(...) end local function debug_track(...) debug_track = require(debug_track_module) return debug_track(...) end local function decode_entities(...) decode_entities = require(string_utilities_module).decode_entities return decode_entities(...) end local function embedded_language_links(...) embedded_language_links = require(links_module).embedded_language_links return embedded_language_links(...) end local function escape_wikicode(...) escape_wikicode = require(parse_utilities_module).escape_wikicode return escape_wikicode(...) end local function find_best_script_without_lang(...) find_best_script_without_lang = require(scripts_module).findBestScriptWithoutLang return find_best_script_without_lang(...) end local function find_parameters(...) find_parameters = require(template_parser_module).find_parameters return find_parameters(...) end local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function format_processed_labels(...) format_processed_labels = require(labels_module).format_processed_labels return format_processed_labels(...) end local function format_qualifier(...) format_qualifier = require(qualifier_module).format_qualifier return format_qualifier(...) end local function format_usex(...) format_usex = require(usex_module).format_usex return format_usex(...) end local function get_lang(...) get_lang = require(languages_module).getByCode return get_lang(...) end local function get_number(...) get_number = require(number_utilities_module).get_number return get_number(...) end local function get_script(...) get_script = require(scripts_module).getByCode return get_script(...) end local function gsplit(...) gsplit = require(string_utilities_module).gsplit return gsplit(...) end local function page_should_be_ignored(...) page_should_be_ignored = require(usex_templates_module).page_should_be_ignored return page_should_be_ignored(...) end local function parse_inline_modifiers(...) parse_inline_modifiers = require(parse_utilities_module).parse_inline_modifiers return parse_inline_modifiers(...) end local function parse_inline_modifiers_from_segments(...) parse_inline_modifiers_from_segments = require(parse_utilities_module).parse_inline_modifiers_from_segments return parse_inline_modifiers_from_segments(...) end local function parse_multi_delimiter_balanced_segment_run(...) parse_multi_delimiter_balanced_segment_run = require(parse_utilities_module).parse_multi_delimiter_balanced_segment_run return parse_multi_delimiter_balanced_segment_run(...) end local function parse_term_with_lang(...) parse_term_with_lang = require(parse_utilities_module).parse_term_with_lang return parse_term_with_lang(...) end local function pattern_escape(...) pattern_escape = require(string_pattern_escape_module) return pattern_escape(...) end local function pluralize(...) pluralize = require(en_utilities_module).pluralize return pluralize(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function remove_links(...) remove_links = require(links_module).remove_links return remove_links(...) end local function roman_to_arabic(...) roman_to_arabic = require(roman_numerals_module).roman_to_arabic return roman_to_arabic(...) end local function replacement_escape(...) replacement_escape = require(string_replacement_escape_module) return replacement_escape(...) end local function scribunto_parameter_key(...) scribunto_parameter_key = require(scribunto_module).scribunto_parameter_key return scribunto_parameter_key(...) end local function serial_comma_join(...) serial_comma_join = require(table_module).serialCommaJoin return serial_comma_join(...) end local function shallow_copy(...) shallow_copy = require(table_module).shallowCopy return shallow_copy(...) end local function split(...) split = require(string_utilities_module).split return split(...) end local function split_alternating_runs(...) split_alternating_runs = require(parse_utilities_module).split_alternating_runs return split_alternating_runs(...) end local function split_and_process_raw_labels(...) split_and_process_raw_labels = require(labels_module).split_and_process_raw_labels return split_and_process_raw_labels(...) end local function split_on_comma(...) split_on_comma = require(parse_utilities_module).split_on_comma return split_on_comma(...) end local function tag_text(...) tag_text = require(script_utilities_module).tag_text return tag_text(...) end local function tag_transcription(...) tag_transcription = require(script_utilities_module).tag_transcription return tag_transcription(...) end local function tag_translit(...) tag_translit = require(script_utilities_module).tag_translit return tag_translit(...) end local function ulen(...) ulen = require(string_utilities_module).len return ulen(...) end local function unitalicize_brackets(...) unitalicize_brackets = require(italics_module).unitalicize_brackets return unitalicize_brackets(...) end local function upper(...) upper = require(string_utilities_module).upper return upper(...) end local function usub(...) usub = require(string_utilities_module).sub return usub(...) end local function yesno(...) yesno = require(yesno_module) return yesno(...) end local function track(page) debug_track("quote/" .. page) end local function maintenance_line(text) return '<span class="maintenance-line">(' .. text .. ")</span>" end local function isbn(text) return "[[Special:BookSources/" .. text .. "|→ISBN]]" .. check_isbn( text, '&nbsp;<span class="error" style="font-size:88%">Invalid&nbsp;ISBN</span>[[Category:Pages with ISBN errors]]' ) end local function issn(text) return "[https://www.worldcat.org/issn/" .. text .. " →ISSN]" .. check_issn( text, '&nbsp;<span class="error" style="font-size:88%">Invalid&nbsp;ISSN</span>[[Category:Pages with ISSN errors]]' ) end local function lccn(text) text = text:gsub(" ", "") if text:find("-") then -- old-style LCCN; reformat per request by [[User:The Editor's Apprentice]] local prefix, part1, part2 = text:match("^(.-)(%d+)%-(%d+)$") if prefix then if ulen(part2) < 6 then part2 = ("0"):rep(6 - ulen(part2)) .. part2 end text = prefix .. part1 .. part2 end end return "[https://lccn.loc.gov/" .. mw.uri.encode(text) .. " →LCCN]" end local function format_date(text) -- Localized formatDate translates month names, unlike {{#formatdate:}}. local language = mw.getContentLanguage() local ok, date = pcall(language.formatDate, language, "j F Y", text) if ok then return date end return mw.getCurrentFrame():callParserFunction("#formatdate", text, "dmy") end -- Parse a raw lb= param (or nil) to individual label info objects and then concatenate them appropriately into a -- qualifier input, respecting flags like `omit_preComma` and `omit_postSpace` in the label specs. local function parse_and_format_labels(raw_lb, lang) if not raw_lb then return nil end local labels = split_and_process_raw_labels{labels = raw_lb, lang = lang, nocat = true} labels = format_processed_labels{labels = labels, lang = lang, no_ib_content = true} if labels ~= "" then -- not sure labels can be an empty string but it seems possible in some circumstances return {labels} end end -- Convert a comma-separated list of language codes to a comma-separated list of language names. `fullname` is the -- name of the parameter from which the list of language codes was fetched. local function format_langs(langs) local names = {} for i, lang in ipairs(langs) do names[i] = lang:getCanonicalName() end if #names == 1 then return names[1] end return serial_comma_join(names) end local function get_first_lang(langs) return langs[1] or get_lang("und") end --[=[ Normally we parse off inline modifiers and language code prefixes in various places, e.g. he:מרים<tr:Miryem>. But we exclude HTML entries with <span ...>, <i ...>, <br/> or similar in it, caused by wrapping an argument in {{l|...}}, {{lang|...}} or similar. Basically, all tags of the sort we parse here should consist of a less-than sign, plus letters, plus a colon, e.g. <tr:...>, so if we see a tag on the outer level that isn't in this format, we don't try to parse it. The restriction to the outer level is to allow generated HTML inside of e.g. qualifier modifiers, such as foo<q:similar to {{m|fr|bar}}> (if we end up supporting such modifiers). Also exclude things that look like URL's from being parsed as having language code prefixes. ]=] local function val_should_not_be_parsed_for_annotations(val) return val:find("^[^<]*<%l*[^%l:]") or val:find("^%l+://") end local param_mods = { t = { -- <t:...> and <gloss:...> are aliases. item_dest = "gloss", }, gloss = {}, -- Kurmanji aliases of <t:...>/<gloss:...>. w = { item_dest = "gloss", }, werger = { item_dest = "gloss", }, tercime = { item_dest = "gloss", }, alt = {}, -- Kurmanji alias of <alt:...>. cuda = { item_dest = "alt", }, tr = {}, ts = {}, subst = {}, sc = {type = "script"}, f = { convert = function(arg, parse_err) local prefix, val = arg:match("^(.-):([^ ].*)$") if not prefix then prefix = "" val = arg end local tags, sc_code, sc = prefix:match("^(.*)/(.-)$") if sc_code then sc = get_script(sc_code) or require(languages_error_module)(sc_code, parse_err, "script code", nil, "not real lang") else tags = prefix end local quals if tags ~= "" then quals = split_on_comma(tags) for i, qual in ipairs(quals) do local obj = get_lang(qual, nil, "allow etym") or get_script(qual) quals[i] = obj or qual end end return { quals = quals, sc = sc, val = val, } end, store = "insert", }, q = {}, qq = {}, } local function generate_obj_annotated_text(text, parse_err, paramname) local obj = {} if text:find(":[^ ]") or text:find("%[%[") then local display, is_wikipedia_wikisource obj.text, obj.lang, obj.link, display, is_wikipedia_wikisource = parse_term_with_lang { term = text, parse_err = parse_err, paramname = paramname } -- HACK: If object is a Wikipedia or Wikisource link, we need to convert it to a two-part link -- to avoid the w: or s: prefix showing. We should probably avoid this by calling -- language_link() (in [[Module:links]]) in format_annotated_text() instead of the hacky stuff -- that we currently do; but we need to test that carefully to make sure it doesn't do things like -- munge % signs. if is_wikipedia_wikisource and not obj.text:find("%[%[") and not obj.text:find("%]%]") then -- Don't directly set .alt, because then if the user specifies <alt:...>, it will cause an error in -- parse_inline_modifiers(). obj.display = display end else obj.text = text obj.link = text end return obj end --[=[ Parse a textual property that may be in a foreign language or script and may be annotated with a language prefix and/or inline modifiers. `val` is the value of the parameter and `fullname` is the name of the parameter from which the value was retrieved. `explicit_gloss`, if specified and non-nil, overrides any gloss specified using the <t:...> or <gloss:...> inline modifier. If `val` is nil, the return value of this function is nil. Otherwise it is parsed for a language prefix (e.g. 'ar:مُؤَلِّف') and inline modifiers (e.g. 'ar:مُؤَلِّف<t:Author>'), and the return value is an object with the following fields: `lang`: The language object corresponding to the language prefix, if specified, or nil if no language prefix is given. `text`: The text after stripping off any language prefix and inline modifiers. `link`: The link part of the text if it consists of a two-part link; otherwise, same as `text`. `alt`: Display text specified using the <alt:...> modifier, if given; otherwise, nil. `subst`: Substitutions used to generate the transliteration, in the same format as the subst= parameter. `sc`: The script object corresponding to the <sc:...> modifier, if given; otherwise nil. `tr`: The transliteration corresponding to the <tr:...> modifier, if given; otherwise nil. `ts`: The transcription corresponding to the <ts:...> modifier, if given; otherwise nil. `gloss`: The gloss/translation corresponding to the `explicit_gloss` parameter (if given and non-nil), otherwise the <t:...> or <gloss:...> modifiers if given, otherwise nil. `f`: Foreign versions of the text. `q`: Left qualifiers. `qq`: Right qualifiers. Note that as a special case, if `val` contains HTML tags at the top level (e.g. '<span class="Arab">...</span>', as might be generated by specifying {{lang|ar|مُؤَلِّف}}), no language prefix or inline modifiers are parsed, and the return value has the `noscript` field set to true, which tells format_annotated_text() not to try to identify the script of the text and CSS-tag the text accordingly, but to leave the text untagged. This object can be passed to format_annotated_text() to format a string displaying the text (appropriately script-tagged, unless `noscript` is set, as described above) and modifiers. ]=] local function parse_annotated_text(val, fullname, explicit_gloss) if not val then return nil end -- When checking for inline modifiers, exclude HTML entry with <span ...>, <i ...>, <br/> or similar in it, caused -- by wrapping an argument in {{l|...}}, {{lang|...}} or similar. Also exclude URL's from being parsed as having -- language code prefixes. See val_should_not_be_parsed_for_annotations() for more information. If we find a -- parameter value with top-level HTML in it, add 'noscript = true' to indicate that we should not try to do script -- inference and tagging. (Otherwise, e.g. if you specify {{lang|ar|مُؤَلِّف}} as the author, you'll get an extra big -- font coming from the fact that {{lang|...}} wraps the Arabic text in CSS that increases the size from the -- default, and then we do script detection and again wrap the text in the same CSS, which increases the size even -- more.) if val_should_not_be_parsed_for_annotations(val) then return {text = val, link = val, noscript = true, gloss = explicit_gloss} end local obj if val:find("<") then -- Check for inline modifier. obj = parse_inline_modifiers(val, { paramname = fullname, param_mods = param_mods, generate_obj = generate_obj_annotated_text, }) else obj = generate_obj_annotated_text(val, nil, fullname) end if explicit_gloss then obj.gloss = explicit_gloss end return obj end local html_entity_char_to_replacement = { ["<"] = TEMP_LT, [">"] = TEMP_GT, ["["] = TEMP_LBRAC, ["]"] = TEMP_RBRAC, } local function html_entity_replacement(entity, code_without_semicolon, hash, xcode, x, code) -- Try to decode the entity. If successful, Replace certain special HTML entities (those that are bracket-like) -- with single Unicode characters; otherwise, replace the semicolon with a special character so it won't get -- interpreted as a delimiter. local ch = decode_entities(entity) if ch ~= entity then return html_entity_char_to_replacement[ch] or code_without_semicolon .. TEMP_SEMICOLON end -- If the entity doesn't decode, escape it anyway iff it follows a valid format. if hash == "" then -- Any nonstandard MediaWiki-only entities have now been filtered off, so treat any non-ASCII characters as -- invalid. return xcode:match("^[^\128-\255]+$") and code_without_semicolon .. TEMP_SEMICOLON or entity elseif x == "" then return xcode:match("^%d+$") and code_without_semicolon .. TEMP_SEMICOLON or entity end return code:match("^%x+$") and code_without_semicolon .. TEMP_SEMICOLON or entity end local html_entity_replacement_to_char = { [TEMP_LT] = "&lt;", [TEMP_GT] = "&gt;", [TEMP_LBRAC] = "&#91;", [TEMP_RBRAC] = "&#93;", [TEMP_SEMICOLON] = ";", } local function undo_html_entity_replacement(txt) -- Pattern covers everything in html_entity_replacement_to_char. return (txt:gsub("\239\191[\177-\181]", html_entity_replacement_to_char)) end -- NOTE: We try hard to optimize this function for the common cases and avoid loading [[Module:parse utilities]] -- in such cases. The cases we can handle without loading [[Module:parse utilities]] are single values (no -- semicolons present) without inline modifiers or language prefixes, and multi-entity values (semicolons present) -- without (a) brackets of any kind (including parens, braces and angle brackets; angle brackets typically indicate -- inline modifiers and other brackets may protect a semicolon from being interpreted as a delimiter); -- (b) ampersands (which may indicate HTML entities, which protect a semicolon from being interpreted as a -- delimiter); and (c) colons not followed by a space (which may indicate a language prefix). local function generate_obj_multivalued_annotated_text(text, parse_err, paramname, no_undo_html_entity_replacement) local obj = generate_obj_annotated_text(text, parse_err, paramname) if not no_undo_html_entity_replacement then obj.text = undo_html_entity_replacement(obj.text) obj.link = undo_html_entity_replacement(obj.link) end return obj end --[=[ Similar to parse_annotated_text() but the parameter value may contain multiple semicolon-separated entities, each with their own inline modifiers. Some examples: * mainauthor=Paula Pattengale; Terea Sonsthagen * author=Katie Brick; J. Cody Nielsen; Greg Jao; Eric Paul Rogers; John A. Monson * author=Suzanne Brockmann; Patrick G. Lawlor (Patrick Girard); Melanie Ewbank * author=G Ristori; et al. * author=Jason Scott; zh:王晰宁<t:Wang Xining> * editors=zh:包文俊; zh:金心雯 * quotee=zh:張福運<t:Chang Fu-yun>; zh:張景文<t:Chang Ching-wen> There may be embedded semicolons within brackets, braces or parens that should not be treated as delimiters, e.g.: * author=Oliver Optic [pseudonym; {{w|William Taylor Adams}}] * author=author=Shannon Drake (pen name; {{w|Heather Graham Pozzessere}}) * author=James (the Elder;) Humphrys There may also be HTML entities with semicolons in them: * author=&#91;{{w|Gilbert Clerke}}&#93; * 2ndauthor=Martin Biddle &amp; Sally Badham * author=Peter Christen Asbj&oslash;rnsen There may be both embedded semicolons and HTML entities with semicolons in them: * author=&#91;{{w|Voltaire}} [pseudonym; François-Marie Arouet]&#93; In general we want to treat &#91; like an opening bracket and &#93; like a closing bracket. Beware that they may be mismatched: * author=Anonymous &#91;{{w|Karl Maria Kertbeny}}] Here, `val` is the value of the parameter and `fullname` is the name of the parameter from which the value was retrieved. `explicit_gloss`, if specified and non-nil, overrides any gloss specified using the <t:...> or <gloss:...> inline modifier, and `explicit_gloss_fullname` is the name of the parameter from which this value was retrieved. (If `explicit_gloss` is specified and multiple values were seen, an error results.) Return value is a list of objects of the same sort as returned by parse_annotated_text(). ]=] local function parse_multivalued_annotated_text(val, fullname, explicit_gloss, explicit_gloss_fullname) if not val then return nil end -- NOTE: In the code that follows, we use `entity` most of the time to refer to one of the semicolon-separated -- values in the multivalued param. Entities are most commonly people (typically authors, editors, translators or -- the like), but may be the names of publishers, locations, or other entities. "Entity" can also refer to HTML -- entities; in the places where this occurs, the variable name contains 'html' in it. local splitchar, english_delim if val:find("^,") then splitchar = "," english_delim = "comma" val = val:gsub("^,", "") else splitchar = ";" english_delim = "semicolon" end -- Optimization #1: No semicolons/commas or angle brackets (indicating inline modifiers). if not val:find("[<" .. splitchar .. "]") then if val_should_not_be_parsed_for_annotations(val) then return {{text = val, link = val, noscript = true}} else return {generate_obj_multivalued_annotated_text(val, nil, fullname, "no undo html entity replacement")} end end -- Optimization #2: Semicolons/commas but no angle brackets (indicating inline modifiers), braces, brackets, or -- parens (any of which would protect the semicolon/comma from interpretation as a delimiter), and no ampersand -- (which might indicate an HTML entity with a terminating semicolon, which should not be interpreted as a -- delimiter). if not val:find("[<>%[%](){}&]") then local entity_objs = {} for entity in gsplit(val, "%s*" .. splitchar .. "%s*") do if val_should_not_be_parsed_for_annotations(entity) then insert(entity_objs, { text = entity, link = entity, noscript = true }) else insert(entity_objs, generate_obj_multivalued_annotated_text(entity, nil, fullname, "no undo html entity replacement")) end end return entity_objs end -- Escape HTML entities, and get rid of directionality markers. local amp = val:find("&", nil, true) if amp then -- The pattern is more permissive than the usual entity pattern, as MediaWiki has some nonstandard entities -- that have non-ASCII characters in their codes. val = val:gsub("((&(#?)(([xX]?)([%w\128-\255]+)));)", html_entity_replacement) end -- Pattern covers left-to-right (U+200E) and right-to-left (U+200F). val = val:gsub("\226\128[\142\143]", "") -- Parse balanced segment runs, treating HTML entities for left and right bracket and left and right angle bracket -- as matching literal versions of the same characters. local entity_runs = parse_multi_delimiter_balanced_segment_run( val, {{"[" .. TEMP_LBRAC, "]" .. TEMP_RBRAC}, {"(", ")"}, {"{", "}"}, {"<" .. TEMP_LT, ">" .. TEMP_GT}}, true ) if type(entity_runs) == "string" then local undo_val = undo_html_entity_replacement(val) -- Parse error due to unbalanced delimiters. Don't throw an error here; instead, don't attempt to parse off -- any annotations, but return the value directly, maybe allowing script tagging (not allowing it if it appears -- the text is already script-tagged). return {{text = undo_val, link = undo_val, noscript = not not val_should_not_be_parsed_for_annotations(val)}} end -- Split on semicolon (or comma), possibly surrounded by whitespace. local separated_groups = split_alternating_runs(entity_runs, "%s*" .. splitchar .. "%s*") -- Process each value. local entity_objs = {} for _, entity_group in ipairs(separated_groups) do -- Rejoin runs that don't involve <...>. local j = 2 while j <= #entity_group do if not entity_group[j]:find("^<.*>$") then entity_group[j - 1] = entity_group[j - 1] .. entity_group[j] .. entity_group[j + 1] remove(entity_group, j) remove(entity_group, j) else j = j + 2 end end local oneval = undo_html_entity_replacement(concat(entity_group)) -- When checking for inline modifiers, exclude HTML entry with <span ...>, <i ...>, <br/> or similar in it, -- caused by wrapping an argument in {{l|...}}, {{lang|...}} or similar. Also exclude URL's from being parsed -- as having language code prefixes. This works analogously to parse_annotated_text(); see there for more. if val_should_not_be_parsed_for_annotations(oneval) then insert(entity_objs, { text = oneval, link = oneval, noscript = true }) else local obj if #entity_group > 1 then -- Check for inline modifier. obj = parse_inline_modifiers_from_segments({ group = entity_group, arg = oneval, props = { paramname = fullname, param_mods = param_mods, generate_obj = generate_obj_multivalued_annotated_text, }, }) else obj = generate_obj_multivalued_annotated_text(entity_group[1], nil, fullname) end insert(entity_objs, obj) end end if explicit_gloss then if #entity_objs > 1 then error( ( "Nabe ku |%s= digel çend unsirên ku bi %s ve hatine veqetandin di |%s= de bi hev re were bikaranîn; " .. "ji bo her unsirê modîfîkatora hundirîn a <t:...> bi kar bîne" ):format(explicit_gloss_fullname, english_delim, fullname) ) end entity_objs[1].gloss = explicit_gloss end return entity_objs end --[=[ Format a text property that may be in a foreign language or script, along with annotations. This is conceptually similar to the full_link() function in [[Module:links]], but displays the annotations in a different format that is more appropriate for bibliographic entries. The output looks like this: TEXT [TRANSLIT /TRANSCRIPTION/, GLOSS] `textobj` is as returned by parse_annotated_text(). `tag_text_func`, if supplied, is a function of one argument to further wrap the text after it has been processed and CSS-tagged appropriately, directly before insertion. `tag_gloss_func` is a similar function for the gloss. ]=] local function format_annotated_text(textobj, tag_text_func, tag_gloss_func) if not textobj then return nil end local text, link = textobj.text, textobj.link local subst, tr, ts, f, gloss = textobj.subst, textobj.tr, textobj.ts, textobj.f, textobj.gloss -- Retrieve the display text, either specified by the user (.alt) or by parse_annotated_text() (.display) when a -- Wikipedia link is given. local alt = textobj.alt or textobj.display if alt then if link:find("%[%[") or link:find("%]%]") then local errmsg = ("Niha lînkên di hundirê '%s' de, digel nivîsa <alt:...> '%s', nayên piştgirîkirin"):format(link, alt) error(escape_wikicode(errmsg)) end text = ("[[%s|%s]]"):format(link, alt) end -- See above for `noscript`, meaning HTML was found in the text value, probably generated using {{lang|...}}. -- {{lang}} already script-tags the text and processes embedded language links, so we don't want to do it again (in -- fact, the code below within the if-clause is similar to what {{lang}} does). In such a case, an explicit language -- won't be available and find_best_script_without_lang() may not be accurate, so we can't do automatic transliteration. if not textobj.noscript then local lang = textobj.lang -- As an optimization, don't do script detection on an argument that contains only ASCII. local sc = textobj.sc or lang and lang:findBestScript(text) or not text:find("^[ -~]$") and find_best_script_without_lang(text) or nil -- As an optimization, don't do any of the following if there's no language, script, translit or transcription, -- as will be the case with simple ASCII values. if lang or sc or tr or ts then if not lang then lang = get_lang("und") end if tr == "-" then tr = nil elseif not tr and sc and not sc:getCode():find("Lat") then -- Latn, Latf, Latg, pjt-Latn -- might return nil local text_for_tr = text if subst then text_for_tr = apply_subst(text_for_tr, subst) else text_for_tr = remove_links(text) end tr = (lang:transliterate(text_for_tr, sc)) end if text:find("%[%[") then -- FIXME: embedded_language_links() replaces % signs with their URL-encoded equivalents, -- which messes up URL's that may be present (e.g. if chapterurl= is given). IMO this -- should not happen, and embedded_language_links() should do nothing if no embedded links -- are present. To work around this, only call embedded_language_links() when there are -- embedded links present. text = embedded_language_links({ term = text, lang = lang, sc = sc, }) end if lang:getCode() ~= "und" or sc:getCode() ~= "Latn" then text = tag_text(text, lang, sc) end if tr then -- Should we link to the transliteration of languages with lang:link_tr()? Probably not because `text` is not -- likely to be a term that has an entry. tr = tag_translit(tr, lang, "usex") end if ts then ts = tag_transcription(ts, lang, "usex") end end end text = unitalicize_brackets(text) if tag_text_func then text = tag_text_func(text) end local parts = {} if textobj.q then insert(parts, format_qualifier(textobj.q) .. " ") end insert(parts, text) if tr or ts or f or gloss then insert(parts, SPACE_LBRAC) local subparts = {} if tr or ts then local tr_ts if ts then ts = "/" .. ts .. "/" end if tr and ts then tr_ts = tr .. " " .. ts else tr_ts = tr or ts end insert(subparts, tr_ts) end if f then for _, ff in ipairs(f) do local sc = ff.sc local lang if not sc and ff.quals then local qual = ff.quals[1] if type(qual) == "string" then -- do nothing; we'll do script detection farther down elseif qual:hasType("script") then sc = qual else -- language sc = qual:findBestScript(ff.val) lang = qual end end if not lang then lang = get_lang("und") end sc = sc or find_best_script_without_lang(ff.val) local val = embedded_language_links({ term = ff.val, lang = lang, sc = sc, }) if lang:getCode() ~= "und" or sc:getCode() ~= "Latn" then val = tag_text(val, lang, sc) end local qual_prefix if ff.quals then for i, qual in ipairs(ff.quals) do if type(qual) ~= "string" and (qual:hasType("script") or qual:hasType("language")) then ff.quals[i] = qual:getCanonicalName() end end qual_prefix = concat(ff.quals, "/") .. ": " else qual_prefix = "" end insert(subparts, qual_prefix .. val) end end if gloss then gloss = '<span class="e-translation">' .. gloss .. "</span>" gloss = unitalicize_brackets(gloss) if tag_gloss_func then gloss = tag_gloss_func(gloss) end insert(subparts, gloss) end insert(parts, concat(subparts, ", ")) insert(parts, RBRAC) end if textobj.qq then insert(parts, " " .. format_qualifier(textobj.qq)) end return concat(parts) end --[=[ Format a multivalued text property that may be in a foreign language or script, along with annotations. This is the multivalued analog to format_annotated_text(), and formats each individual entity using format_annotated_text(), joining the results with `delimiter`, which defaults to ", ". It `delimiter` is "and" or "or", join the results using serial_comma_join() with the specified conjunction. `textobjs` is as returned by parse_multivalued_annotated_text(). `tag_text_func` and `tag_gloss_func` are as in format_annotated_text(). ]=] local function format_multivalued_annotated_text(textobjs, delimiter, tag_text_func, tag_gloss_func) if not textobjs then return nil end if #textobjs == 1 then return format_annotated_text(textobjs[1], tag_text_func, tag_gloss_func) end local parts = {} for _, textobj in ipairs(textobjs) do insert(parts, format_annotated_text(textobj, tag_text_func, tag_gloss_func)) end -- Change delimiter to semicolon if the items themselves contain commas (e.g., in ", Jr.") local use_semicolon = false for _, obj in ipairs(textobjs) do -- Use remove_links to ignore commas in links if obj.text and remove_links(obj.text):find(", ") then use_semicolon = true break end end local n = #parts if n > 0 and parts[n]:match("^'*et al[.']*$") then -- Special handling for 'et al.' parts[n] = "''et al.''" if n == 2 then -- author et al. return concat(parts, " ") else -- author 1, author 2, et al. return concat(parts, (use_semicolon and "; ") or ", ") end if delimiter == "and" or delimiter == "or" then delimiter = ", " end return concat(parts, delimiter) end if delimiter == "and" or delimiter == "or" then local conj_translations = {["and"] = "û", ["or"] = "an"} return serial_comma_join(parts, {conj = conj_translations[delimiter]}) end return concat(parts, delimiter or ((use_semicolon and "; ") or ", ")) end -- Fancy version of ine() (if-not-empty). Converts empty string to nil, but also strips leading/trailing space. local function ine(arg) if not arg then return nil elseif type(arg) ~= "string" then return arg end arg = mw.text.trim(arg) if arg == "" then return nil end return arg end local abbrs = { ["a."] = {anchor = "a.", display = "a.", full = "ante"}, ["c."] = {anchor = "c.", display = "~", full = "nêzîkî"}, ["p."] = {anchor = "p.", display = "p.", full = "post"}, } -- Patterns recognized at the start of a date/year spec, each mapped to the key into `abbrs` it stands for. -- Checked in order, so longer/more specific prefixes should come before shorter ones that could be a substring -- of them. local abbr_prefix_patterns = { {pattern = "^nêzîkî%s+", key = "c."}, {pattern = "^c%.%s*", key = "c."}, {pattern = "^a%.%s*", key = "a."}, {pattern = "^p%.%s*", key = "p."}, } -- Process prefixes 'a.' (ante), 'c.' (circa; also recognizes the Kurdish word 'nêzîkî') and 'p.' (post) at the -- beginning of an arbitrary date or year spec. Returns two values, the formatted version of the prefix and the -- date spec minus the prefix. If no prefix is found, returns an empty string and the full date. local function process_ante_circa_post(date) for _, prefix_spec in ipairs(abbr_prefix_patterns) do if umatch(date, prefix_spec.pattern) then local abbr = abbrs[prefix_spec.key] local abbr_prefix = "''[[Appendix:Glossary#" .. abbr.anchor .. '|<abbr title="' .. abbr.full .. '">' .. abbr.display .. "</abbr>]]'' " -- Remove the matched prefix (letter/word, period if any, and trailing space) from the date parameter. date = ugsub(date, prefix_spec.pattern, "") return abbr_prefix, date end end return "", date end -- Format the arguments that specify the date of the quotation. These include the following: -- |date=: The date. If |start_date= is given, this is the end date. -- |year=, |month=: Year and month of quotation date or end of range, if |date= isn't given. -- |start_date=: The start date, to specify a range. -- |start_year=, |start_month=: Year and month of start of range, if |start_date= isn't given. -- |accessdate=: Date a website was accessed; processed if no other date was given. -- |nodate=: Indicate that no date is present; otherwise a maintenance line will be displayed if there is no date. -- -- If `parampref` and/or `paramsuf` are given, this modifies all the date arguments accordingly. For example, if -- `parampref` == "orig" and `paramsuf` is omitted, the date is specified using |origdate= or |origyear=/|origmonth=, -- and the start of the range is |origstart_date=, etc. Similarly, if `parampref` is omitted and `paramsuf` is -- "_published", the date is specified using |date_published= or |year_published=/|month_published=, and the start of -- the range is |start_date_published=, etc. -- -- `a` and `get_full_paramname` are functions with the same interpretation as the local functions of the same name in -- source(). These are used to fetch parameters and get their full names. Note that this may cause all arguments to -- have an index added to them (|date2=, |year2=, |month2=, etc.). -- -- `alias_map` is as in source() and is used to map canonical arguments to their aliases when aliases were used. -- -- If `bold_year` is given, displayed years are boldfaced unless boldface is present in the parameter value. -- -- If `maintenance_line_no_date` is specified, it should be a string that will be returned if no date is found (i.e. -- neither |date= nor |year=, or their appropriate equivalents per `parampref` and `paramsuf`, are specified, and -- neither |nodate= is given to indicate that there is no date, or |accessdate= is given). -- -- Kurdish month names, for translating dates typed with a Kurdish month (e.g. |date=9 tebax 2011) into something -- MediaWiki's date parser (which only understands English month names) can parse. -- Calendar order, {Kurdish, English} pairs. Single source of truth for both directions (Kurdish->English for -- parsing, index->English for building a date from a bare month number). local months = { {"kanûna paşîn", "January"}, {"sibat", "February"}, {"adar", "March"}, {"nîsan", "April"}, {"gulan", "May"}, {"hezîran", "June"}, {"tîrmeh", "July"}, {"tebax", "August"}, {"îlon", "September"}, {"çiriya pêşîn", "October"}, {"çiriya paşîn", "November"}, {"kanûna pêşîn", "December"}, } local kurdish_month_to_english = {} for _, pair in ipairs(months) do kurdish_month_to_english[pair[1]] = pair[2] end -- Returns two values: the formatted date and a boolean indicating whether to add a maintenance category -- [[:Category:Requests for date in LANG entries]]. The first return value will be nil if nothing is to be added -- (in which case the scond return value will always be nil). local function format_date_args( a, get_full_paramname, alias_map, parampref, paramsuf, bold_year, maintenance_line_no_date, year_last ) local output = {} parampref = parampref or "" paramsuf = paramsuf or "" local function getp(param) return a(parampref .. param .. paramsuf) end local function pname(param) local fullname = get_full_paramname(parampref .. param .. paramsuf) local alias = alias_map[fullname] -- A positional alias (e.g. from type=book/journal) is stored as a bare number; showing that in an error -- ("|2=") is confusing, so fall back to the canonical name instead. if type(alias) == "string" then return alias end return fullname end -- Format `timestamp` (a timestamp referencing a date) according to the spec in `code`. `param` is the base name of -- the parameter from which the timestamp was fetched, for error messages. local function format_date_with_code(code, timestamp, param) local language = mw.getContentLanguage() local ok, date = pcall(language.formatDate, language, code, timestamp) if ok then return date else -- All the formats used in format_date_args() are fine, so the timestamp must be at fault. error( ( "Wextê |%s=%s (dibe ku ji forma xwe ya orjînal hatibe standardîzekirin) naxebite; li " .. "[[mw:Help:Extension:ParserFunctions##time|belgekirina fonksiyona #time]] binêre" ):format(pname(param), tostring(timestamp)) ) end end -- Try to figure out if the given timestamp has the day of the month explicitly given. We use the following -- algorithm: -- 1. Format as year-month-day; if the day is not 1, the day was explicitly given, since if only the year/month are -- given, the day shows up as 1. -- 2. If the day shows up as 1 and there isn't a 1 or 01 in the timestamp, the day wasn't explicitly given. -- 3. Otherwise, if there are three separate numbers (e.g. 2022-07-01), or two separate numbers plus a capitalized -- letter (taken as an English month, e.g. 2022 July 1), the day was explicitly given, otherwise not. -- -- `param` is the base name of the parameter from which the timestamp was fetched. local function date_has_day_specified(timestamp, param) local day = format_date_with_code("j", timestamp, param) if day ~= "1" then return true end local english_month = timestamp:find("%u") local canon_timestamp = mw.text.trim((timestamp:gsub("%D+", " "))) local seen_nums = split(canon_timestamp, " ", true) local saw_one = false for _, num in ipairs(seen_nums) do if num == "1" or num == "01" then saw_one = true break end end if not saw_one then return false end return #seen_nums >= 3 or english_month and #seen_nums >= 2 end -- Format a date with boldfaced year, as e.g. '''2023''' August 3. `explicit_day_given` indicates whether to include -- the day; if false, the return value will be e.g. '''2023''' August. `date_param` is the base name of the param -- from which the date was fetched, for error messages. local function format_bold_date(date, explicit_day_given, date_param) local day_month_code = explicit_day_given and "j F" or "F" local month_day_code = explicit_day_given and "F j" or "F" if year_last then if bold_year then -- This formats like "3 August '''2023'''" (or "August '''2023'''" if day not explicitly given). return format_date_with_code(day_month_code .. " '''Y'''", date, date_param) else -- This formats like "3 August 2023" (or "August 2023" if day not explicitly given). return format_date_with_code(day_month_code .. " Y", date, date_param) end else if bold_year then -- This formats like "'''2023''' August 3" (or "'''2023''' August" if day not explicitly given). return format_date_with_code("'''Y''' " .. month_day_code, date, date_param) else -- This formats like "2023 August 3" (or "2023 August" if day not explicitly given). return format_date_with_code("Y " .. month_day_code, date, date_param) end end end -- The formatDate method of the mw.language object behaves like the {{#time:}} parser function, which doesn't -- accept the formats "monthday monthname, year" or "year monthname monthday", but outputs garbage when it receives -- them, behavior inherited from PHP. {{#formatdate:}} magic word is more forgiving. Fix dates so that, for -- instance, the |date= parameter of {{quote-journal}} (which uses this code) and the |accessdate= parameter (which -- uses {{#formatdate:}}) accept similar date formats. See: -- * [[mw:Extension:Scribunto/Lua_reference_manual#mw.language:formatDate]] -- * [[mw:Help:Extension:ParserFunctions##time]] -- * [[mw:Help:Magic_words#Formatting]] -- `date` is the date spec from the user, which is assumed to come from a parameter whose base name ends in "date"; -- `parampref` is the prefix added to "date" to get the parameter name. local function fix_date(date, param_pref) if date then for ku, en in pairs(kurdish_month_to_english) do date = ugsub(date, ku, en) end end if tonumber(date) ~= nil then error( ("|%s= divê tarîxa temam (sal-meh-roj) bi kar bîne; ji bo salê |%s= bi kar bîne"):format( pname(param_pref .. "date"), pname(param_pref .. "year") ) ) elseif date and date:find("%s*%a+,%s*%d+%s*$") then error( ("|%s= divê tarîxa temam (sal-meh-roj) bi kar bîne; ji bo mehê |%s= û ji bo salê |%s= bikar bîne"):format( pname(param_pref .. "date"), pname(param_pref .. "month"), pname(param_pref .. "year") ) ) end if date then -- Commas are replaced with spaces to prevent parsing issues local fixed_date = ugsub(date, ", *", " ") return (ugsub(ugsub(fixed_date or date, "(%d+ %a+),", "%1"), "^(%d%d%d%d) (%a+ %d%d?)$", "%2 %1")) end end local start_date, date = fix_date(getp("start_date"), "start_"), fix_date(getp("date"), "") local year = getp("year") local month = getp("month") local start_year = getp("start_year") local start_month = getp("start_month") -- Accept M/YYYY or MM/YYYY in year= (e.g. "6/2007" or "06/2007") as a month+year date, so it renders with a -- localized month name (e.g. "2007 hezîran") instead of literally. if year and not date then local mon, yr = umatch(year, "^(%d%d?)/(%d%d%d%d)$") local mon_num = mon and tonumber(mon) if mon_num and mon_num >= 1 and mon_num <= 12 then date = months[mon_num][2] .. " " .. yr year = nil end end if date and year then error(("Divê tenê yek ji |%s= an |%s= were dayîn"):format(pname("date"), pname("year"))) end if date and month then error( ("|%s= divê tenê digel |%s= were dayîn, ne digel |%s="):format( pname("month"), pname("year"), pname("date") ) ) end if start_date and start_year then error(("Divê tenê yek ji |%s= an |%s= were dayîn"):format(pname("start_date"), pname("start_year"))) end if start_date and start_month then error( ("|%s= divê tenê digel |%s= were dayîn, ne digel |%s="):format( pname("start_month"), pname("start_year"), pname("start_date") ) ) end if (start_date or start_year) and not (date or year) then error( ("Bêyî ku |%s= an |%s=/|%s= were dayîn, |%s= an |%s=/|%s= nayê dayîn"):format( pname("start_date"), pname("start_year"), pname("start_month"), pname("date"), pname("year"), pname("month") ) ) end local dash = "&nbsp;– " local day_explicitly_given = date and date_has_day_specified(date, "date") local start_day_explicitly_given = start_date and date_has_day_specified(start_date, "start_date") -- Format a date with boldfaced year, as e.g. '''2023''' August 3 (if `explicit_day_given` specified) or -- '''2023''' August (if `explicit_day_given` not specified). If no date specified, fall back to formatting based -- on the year and (optionally) month params given in `yearobj` and `monthobj`, boldfacing the year if not already. -- `date_param` is the base name of the param from which the date was fetched, for error messages. local function format_date_or_year_month(date, yearobj, monthobj, explicit_day_given, date_param) if date then return format_bold_date(date, explicit_day_given, date_param) else -- Boldface a year spec if it's not already boldface. if bold_year and not yearobj.text:find("'''") then -- Clone the year object before modifying it because we may use it later to check against the current -- year (if we're dealing with start_year). yearobj = shallow_copy(yearobj) yearobj.text = "'''" .. yearobj.text .. "'''" if yearobj.alt then yearobj.alt = "'''" .. yearobj.alt .. "'''" end end if year_last then return (monthobj and format_annotated_text(monthobj) .. " " or "") .. format_annotated_text(yearobj) else return format_annotated_text(yearobj) .. (monthobj and " " .. format_annotated_text(monthobj) or "") end end end local yearobj = parse_annotated_text(year, pname("year")) local monthobj = parse_annotated_text(month, pname("month")) local start_yearobj = parse_annotated_text(start_year, pname("start_year")) local start_monthobj = parse_annotated_text(start_month, pname("start_month")) if start_yearobj then local abbr_prefix abbr_prefix, start_yearobj.text = process_ante_circa_post(start_yearobj.text) start_yearobj.link = select(2, process_ante_circa_post(start_yearobj.link)) insert(output, abbr_prefix) elseif yearobj then local abbr_prefix abbr_prefix, yearobj.text = process_ante_circa_post(yearobj.text) yearobj.link = select(2, process_ante_circa_post(yearobj.link)) insert(output, abbr_prefix) end if start_date or start_year then local cur_year = yearobj and yearobj.text or format_date_with_code("Y", date, "date") local cur_month = monthobj and monthobj.text or date and format_date_with_code("F", date, "date") or nil local cur_day = date and day_explicitly_given and format_date_with_code("j", date, "date") or nil local beg_year = start_yearobj and start_yearobj.text or format_date_with_code("Y", start_date, "start_date") local beg_month = start_monthobj and start_monthobj.text or start_date and format_date_with_code("F", start_date, "start_date") or nil local beg_day = start_date and start_day_explicitly_given and format_date_with_code("j", start_date, "start_date") or nil if year_last then if beg_day then insert(output, beg_day .. " " .. beg_month) else insert(output, beg_month) end if beg_year ~= cur_year then insert(output, " " .. beg_year) end else insert(output, format_date_or_year_month( start_date, start_yearobj, start_monthobj, start_day_explicitly_given, "start_date" )) end if cur_year ~= beg_year then -- Different years; insert current date in full. if beg_month or cur_month then insert(output, dash) else insert(output, "–") end insert(output, format_date_or_year_month(date, yearobj, monthobj, day_explicitly_given, "date")) elseif cur_month and cur_month ~= beg_month then local month_ins = monthobj and format_annotated_text(monthobj) or cur_month -- Same year but different months; insert current month and (if available) current day. if cur_day then insert(output, dash) if year_last then insert(output, cur_day .. " " .. month_ins) else insert(output, month_ins .. " " .. cur_day) end else if beg_day then insert(output, dash) else insert(output, "–") end insert(output, month_ins) end elseif cur_day and cur_day ~= beg_day then -- Same year and month but different days; insert current day. insert(output, "–") insert(output, cur_day) else -- Same year, month and day; or same year and month, and day not available; or same year, and month and -- day not available. Do nothing. FIXME: Should we throw an error? end if year_last and beg_year == cur_year then if cur_month then insert(output, " " .. cur_year) else insert(output, " " .. cur_year) end end elseif date or yearobj then insert(output, format_date_or_year_month(date, yearobj, monthobj, day_explicitly_given, "date")) elseif not maintenance_line_no_date then -- Not main quote date. Return nil, caller will handle. return nil, nil elseif not getp("nodate") then local accessdate = getp("accessdate") if accessdate then local explicit_day_given = date_has_day_specified(accessdate, "accessdate") insert(output, format_bold_date(accessdate, explicit_day_given, "accessdate") .. " (cara dawî hate gihiştin)") else if mw.title.getCurrentTitle().namespace ~= 10 then return maintenance_line(maintenance_line_no_date), true end return nil, nil end end return ine(concat(output)), nil end local function tag_with_cite(txt) return "<cite>" .. txt .. "</cite>" end -- Display the source line of the quote, above the actual quote text. This contains the majority of the logic of this -- module (formerly contained in {{quote-meta/source}}). function export.source(args, alias_map, format_as_cite, other_controls) local tracking_categories = {} local argslang = args[1] or args.lang if not argslang then -- For the moment, only trigger an error on mainspace pages and -- other pages that are not user pages or pages containing discussions. -- These are the same pages that appear in the appropriate tracking -- categories. User and discussion pages have not generally been -- fixed up to include a language code and so it's more helpful -- to use a maintenance line than signal an error. local current_title = mw.title.getCurrentTitle() if not (current_title.namespace == 10 or page_should_be_ignored(current_title.fullText)) then require(languages_error_module)(nil, 1) end end -- Single resolved language object for categorization at the end of this function (format_categories() needs an -- object with e.g. :makeSortKey(), not the raw argslang list). local lang = argslang and get_first_lang(argslang) -- Given a canonical param, convert it to the original parameter specified by the user (which may have been an -- alias). local function alias(param) local aliasname = alias_map[param] -- A positional alias (e.g. from type=book/journal) is stored as a bare number; showing that in an error -- ("|2=") is confusing, so fall back to the canonical name instead. if type(aliasname) == "string" then return aliasname end return param end -- Wrap contributor names (authors, editors, translators, compilers, etc.) and the bolded publication year in a -- span so they can be styled distinctly (e.g. Kurdish Wiktionary's "j-pewist" highlighting). local function j_lazim(text) if not text then return nil end return '<span class="j-pewist">' .. text .. "</span>" end local output, sep = {} local overrides = other_controls and other_controls.overrides or {} -- Add text to the output. The text goes into a list, and we concatenate all the list components together at the -- end. To make it easier to handle comma-separated items, we keep track (in `sep`) of the separator (if any) that -- needs to be inserted before the next item added. For example, if we're in the "newversion" code (ind ~= ""), and -- there's no title and no URL, then the first time we add anything after the title, we don't want to add a -- separating comma because the preceding text will say "republished " or "republished as " or "translated as " or -- similar. In all- other cases, we do want to add a separating comma. The bare add() function reset the separator -- to be nothing, while the add_with_sep() function resets the separator to be the value of `next_sep` (defaulting -- to ", "), so the next time around we do add a comma to separate `text` from the preceding piece of text. local function add(text) if sep then insert(output, sep) end insert(output, text) sep = nil end local function add_with_sep(text, next_sep) add(text) sep = next_sep or ", " end -- FIXME: This is all very over-engineered, which makes it slow and memory-inefficient. -- Return a function that generates the actual parameter name associated with a base param (e.g. "author", "last"). -- The actual parameter name may have an index added (an empty string for the first set of params, e.g. author=, -- last=, or a numeric index for further sets of params, e.g. author2=, last2=, etc.). local function make_get_full_paramname(ind) return function(param) return param .. ind end end -- Function to fetch the actual parameter name associated with a base param (see make_get_full_paramname() above). -- Assigned at various times below by calling make_get_full_paramname(). We do it this way so that we can have -- wrapper functions that access params and define them only once. local get_full_paramname -- Return two values: the value of a parameter given the base param name (which may have a numeric index added), -- and the parameter name from which the value was fetched (which may be an alias, i.e. you can't necessarily fetch -- the parameter value from args[] given this name). The base parameter can be a list of such base params, which -- are checked in turn, or nil, in which case nil is returned. local function a_with_name(param) if not param then return nil elseif type(param) ~= "table" then local fullname = get_full_paramname(param) return args[fullname], alias(fullname) end for _, par in ipairs(param) do local val, fullname = a_with_name(par) if val then return val, alias(fullname) end end return nil end -- Fetch the value of a parameter given the base param name (which may have a numeric index added). The base -- parameter can be a list of such base params, which are checked in turn, or nil, in which case nil is returned. local function a(param) return (a_with_name(param)) end -- Identical to a_with_name(param) except that it verifies that no space is present. Should be used for URL's. local function aurl_with_name(param) local value, fullname = a_with_name(param) if value and value:find(" ") and not value:find("%[") then error(("URL nikare valahiyê tê de bihewîne, lê |%s=%s hate dîtin"):format(fullname, value)) end return value, fullname end -- Identical to a(param) except that it verifies that no space is present. Should be used for URL's. local function aurl(param) return (aurl_with_name(param)) end -- Convenience function to fetch a parameter that may be in a foreign language or text (and may consequently have -- a language prefix and/or inline modifiers), parse the annotations and convert the result into a formatted string. -- This is the same as parse_and_format_annotated_text() below but also returns the full param name as the second -- return value. local function parse_and_format_annotated_text_with_name(param, tag_text_func, tag_gloss_func) local val, fullname = a_with_name(param) local obj = parse_annotated_text(val, fullname) return format_annotated_text(obj, tag_text_func, tag_gloss_func), fullname end -- Convenience function to fetch a parameter that may be in a foreign language or text (and may consequently have -- a language prefix and/or inline modifiers), parse the modifiers and convert the result into a formatted string. -- This is a wrapper around parse_annotated_text() and format_annotated_text(). `param` is the base parameter name (see -- a_with_name()), `tag_text_func` is an optional function to tag the parameter text after all other processing (e.g. -- wrap in <cite>...</cite> tags), and `tag_gloss_func` is a similar function for the parameter translation/gloss. local function parse_and_format_annotated_text(param, tag_text_func, tag_gloss_func) return (parse_and_format_annotated_text_with_name(param, tag_text_func, tag_gloss_func)) end -- Convenience function to fetch a multivalued parameter that may be in a foreign language or text (and may -- consequently have a language prefix and/or inline modifiers), parse the modifiers and convert the result into a -- formatted string. This is the multivalued analog to parse_and_format_annotated_text_with_name() and returns two -- values, the formatted string and the full name of the parameter fetched. `delimiter` is as in -- format_multivalued_annotated_text(). local function parse_and_format_multivalued_annotated_text_with_name(param, delimiter, tag_text_func, tag_gloss_func) local val, fullname = a_with_name(param) local objs = parse_multivalued_annotated_text(val, fullname) local num_objs = objs and #objs or 0 return format_multivalued_annotated_text(objs, delimiter, tag_text_func, tag_gloss_func), fullname, num_objs end -- Convenience function to fetch a multivalued parameter that may be in a foreign language or text (and may -- consequently have a language prefix and/or inline modifiers), parse the modifiers and convert the result into a -- formatted string. This is the multivalued analog to parse_and_format_annotated_text(). `delimiter` is as in -- format_multivalued_annotated_text(). local function parse_and_format_multivalued_annotated_text(param, delimiter, tag_text_func, tag_gloss_func) return (parse_and_format_multivalued_annotated_text_with_name(param, delimiter, tag_text_func, tag_gloss_func)) end -- This determines whether to display "Mary Bloggs, transl." (if there's no author preceding) or "translated by -- Mary Bloggs" (if there's an author preceding). local author_outputted = false -- When formatting as a citation, the priority is to display a name and a date before the book/chapter title -- this tracks whether or not the author/date has been displayed local date_outputted, formatted_date, formatted_origdate, need_date = false local function add_date(no_paren) if not date_outputted then if no_paren then sep = ", " else sep = " " end if formatted_date then if no_paren then add(formatted_date) else add("(" .. formatted_date .. ")") end end if formatted_origdate then add(SPACE_LBRAC .. formatted_origdate .. RBRAC) end sep = ", " date_outputted = true end end local function is_anonymous(val) return val:match("^[Aa]non[yî]mo?u?s?$") or val:match("^[Aa]non%.?$") end -- Add a formatted author (whose values may be specified using `author` or, for compatibility purposes, split -- among various parameters): -- * `author` is the value of the author param (e.g. "author", "author2" or "2ndauthor"), and `author_fullname` is -- the full parameter name holding that value; -- * `trans_author` is the optional value of the param holding the gloss/translation of the author, and -- `trans_author_fullname` is the full parameter name holding that value (or nil for no such parameter); -- * `authorlink` is the value of the authorlink param, which holds the Wikipedia link of the author(s) in `author`, -- and `authorlink_fullname` is the full parameter name holding that value; -- * `trans_authorlink` is the optional value of the param holding the Wikipedia link of the gloss/translation of -- the author, and `trans_authorlink_fullname` is the full parameter name holding that value (or nil for no such -- parameter); -- * `first` is the value of the parameter holding the first name of the author, and `first_fullname` is the full -- parameter name holding that value; -- * `trans_first` is the value of the corresponding parameter holding the gloss/translation of the first name -- (e.g. "trans-first"), and `trans_first_fullname` is the full parameter name holding that value (or nil for -- no such parameter); -- * `last` is the value of the parameter holding the last name of the author, and `last_fullname` is the full -- parameter name holding that value; -- * `trans_last` is the value of the corresponding parameter holding the gloss/translation of the last name -- (e.g. "trans-last"), and `trans_last_fullname` is the full parameter name holding that value (or nil for -- no such parameter). -- * `last_first` if set, when parameters `first` and `last` are used, display the author name as "last, first" local function add_author( author, author_fullname, trans_author, trans_author_fullname, authorlink, authorlink_fullname, trans_authorlink, trans_authorlink_fullname, first, first_fullname, trans_first, trans_first_fullname, last, last_fullname, trans_last, trans_last_fullname, last_first ) local function make_author_with_url(txt, txtparam, authorlink, authorlink_param) if authorlink then if authorlink:find("%[%[") then error(("Nabe ku lînk di |%s=%s de were dayîn"):format(authorlink_param, authorlink)) end if txt:find("%[%[") then error(("Nabe ku lînk di %s=%s de were dayîn"):format(txtparam, txt)) end return "[[w:" .. authorlink .. "|" .. txt .. "]]" else return txt end end local num_authorobjs if author then local authorobjs = parse_multivalued_annotated_text(author, author_fullname, trans_author, trans_author_fullname) num_authorobjs = #authorobjs if num_authorobjs == 1 then if is_anonymous(authorobjs[1].text) then authorobjs[1].text = "nivîskarê anonîm" authorobjs[1].link = "nivîskarê anonîm" end if authorlink then authorobjs[1].text = make_author_with_url( authorobjs[1].text, "|" .. author_fullname, authorlink, "|" .. authorlink_fullname ) authorobjs[1].link = make_author_with_url( authorobjs[1].link, "|" .. author_fullname, authorlink, "|" .. authorlink_fullname ) end if authorobjs[1].gloss and trans_authorlink then authorobjs[1].gloss = make_author_with_url( authorobjs[1].gloss, ("<t:...> in |%s"):format(author_fullname), trans_authorlink, "|" .. trans_author_fullname ) end add(j_lazim(format_multivalued_annotated_text(authorobjs))) elseif trans_authorlink then error( ( "Nabe ku |%s= digel çend unsirên ku bi bernavekê ve hatine veqetandin di |%s= de bi hev re " .. "were bikaranîn; ji bo her unsirê modîfîkatora hundirîn a <t:...> bi kar bîne û lînkê " .. "rasterast têxe nirxa modîfîkatorê hundirîn" ):format(trans_authorlink_fullname, author_fullname) ) else -- Allow an authorlink with multiple authors, e.g. for use with |author=Max Mills; Harvey Mills -- with |authorlink=Max and Harvey. For this we have to generate the entire text and link it -- all. local formatted_text = format_multivalued_annotated_text(authorobjs) if authorlink then formatted_text = make_author_with_url( formatted_text, "|" .. author_fullname, authorlink, "|" .. authorlink_fullname ) end add(j_lazim(formatted_text)) end else num_authorobjs = 1 -- Author separated into first name + last name. We don't currently support non-Latin-script -- authors separated this way and probably never will. if first then if last_first then author = last .. ", " .. first else author = first .. " " .. last end else author = last end if authorlink then local authorparam = first and ("|%s |%s"):format(first_fullname, last_fullname) or "|" .. last_fullname author = make_author_with_url(author, authorparam, authorlink, authorlink_fullname) end local trans_author if trans_last then if trans_first then trans_author = trans_first .. " " .. trans_last else trans_author = trans_last end if trans_authorlink then local trans_authorparam = trans_first and ("|%s |%s"):format(trans_first_fullname, trans_last_fullname) or "|" .. trans_last_fullname trans_author = make_author_with_url( trans_author, trans_authorparam, trans_authorlink, trans_authorlink_fullname ) end end add(j_lazim(author)) if trans_author then add(SPACE_LBRAC) add(trans_author) add(RBRAC) end end author_outputted = true return num_authorobjs end local function add_authorlike( param, prefix_with_preceding_authors, suffix_without_preceding_authors, suffix_if_multiple, anonymous_suffix ) local delimiter = author_outputted and "and" or ", " local entities, _, num_entities = parse_and_format_multivalued_annotated_text_with_name(param, delimiter) if not entities then return end if is_anonymous(entities) then -- If tlr=anonymous or similar given, display as "anonymous translator" or similar. If a specific -- anonymous suffix not given, try to derive the anonymous suffix from the non-preceding-author suffix. if not anonymous_suffix then local cleaned_suffix = suffix_without_preceding_authors :gsub("&#32;", " ") :gsub("&nbsp;", " ") :gsub("&#160;", " ") :gsub("&#91;", "[") :gsub("&#93;", "]") cleaned_suffix = mw.text.trim(cleaned_suffix) if not anonymous_suffix then anonymous_suffix = " " .. cleaned_suffix:match("^, (.*)$") end if not anonymous_suffix then anonymous_suffix = " " .. cleaned_suffix:match("^%((.*)%)$") end if not anonymous_suffix then anonymous_suffix = " " .. cleaned_suffix:match("^%[(.*)%]$") end if not anonymous_suffix then anonymous_suffix = suffix_without_preceding_authors end end add_with_sep(j_lazim("anonîm" .. anonymous_suffix)) else entities = j_lazim(entities) if prefix_with_preceding_authors and (author_outputted or not suffix_without_preceding_authors) then add_with_sep(prefix_with_preceding_authors .. entities) elseif suffix_if_multiple and num_entities > 1 then add_with_sep(entities .. suffix_if_multiple) else add_with_sep(entities .. suffix_without_preceding_authors) end end author_outputted = true end local function add_authorlabel() local default_authorlabel = a("default-authorlabel") if default_authorlabel and yesno(a("authorlabel"), true) then sep = nil add_with_sep(" " .. default_authorlabel) end end local function has_new_title_or_author() return args["2ndauthor"] or args["2ndlast"] or args.chapter2 or args.title2 or args.tlr2 or args.mainauthor2 or args.editor2 or args.editors2 or args.compiler2 or args.compilers2 or args.director2 or args.directors2 end local function has_newversion() return args.newversion or args.location2 or has_new_title_or_author() end -- Handle chapter=, section=, etc. `param` is the base name of the parameter in question, e.g. "chapter" or -- "section". If numeric (either Arabic or Roman), add `numeric_prefix`; otherwise, parse as textual (allowing for -- language prefixes, inline modifiers, etc.), prefix with `textual_prefix` (if given) and suffix with -- `textual_suffix` (if given). Also checks for and handles the following (assuming param == "chapter"): -- * chapterurl=: URL of the chapter. -- * trans-chapter=: Chapter translation (can be given using an inline modifier <t:...>). -- * chapter_number=: Chapter number, when chapter= is also given (otherwise put the chapter number in chapter=). -- * chapter_plain=: Plain version of the chapter number; the "chapter " prefix isn't added. -- * chapter_series=: Series that the chapter is within (used e.g. for journal articles part of a series). -- * chapter_seriesvolume=: Volume of the series (compare seriesvolume=). -- -- Returns nil if no value specified for the main parameter, otherwise the formatted value. local function format_chapterlike(param, numeric_prefix, textual_prefix, textual_suffix) local chap, chap_fullname = a_with_name(param) local chap_num, chap_num_fullname = a_with_name(param .. "_number") local chap_plain, chap_plain_fullname = parse_and_format_annotated_text_with_name(param .. "_plain") if chap_num and chap_plain then error(("Divê tenê yek ji |%s= an %s= were dayîn"):format(chap_num_fullname, chap_plain_fullname)) end local chap_series, chap_series_fullname = parse_and_format_annotated_text_with_name(param .. "_series", tag_with_cite, tag_with_cite) local chap_seriesvolume, chap_seriesvolume_fullname = parse_and_format_annotated_text_with_name(param .. "_seriesvolume") if chap_series then chap_series = ", " .. chap_series end if chap_seriesvolume then if not chap_series then error(("Ji bo |%s= ev %s= lazim e"):format(chap_series_fullname, chap_seriesvolume_fullname)) end chap_series = chap_series .. " (" .. chap_seriesvolume .. ")" end local chapterurl local function make_chapter_with_url(chap) if chapterurl then return "[" .. chapterurl .. " " .. chap .. "]" else return chap end end if not chap then if chap_num then error( ("Ji bo |%s= ev |%s= lazim e; nirxa hejmarî li |%s= binivîse"):format( chap_num_fullname, chap_fullname, chap_fullname ) ) end if chap_plain then chapterurl = aurl(param .. "url") return make_chapter_with_url(chap_plain .. (chap_series or "")) end return nil end local cleaned_chap = chap:gsub("<sup>[^<>]*</sup>", ""):gsub("[*+#]", "") chapterurl = aurl(param .. "url") local formatted if numeric_prefix and get_number(cleaned_chap) then -- Arabic chapter number formatted = numeric_prefix .. make_chapter_with_url(chap) elseif numeric_prefix and cleaned_chap:match("^[mdclxviMDCLXVI]+$") and roman_to_arabic(cleaned_chap, true) and (not overrides[param] or not overrides[param].noroman) then -- Roman chapter number formatted = numeric_prefix .. make_chapter_with_url(upper(chap)) else -- strip leading ! (used to force text-mode for titles that look like Roman numerals like "mil" and "dill") if chap:find("^!") then chap = chap:gsub("^!", "") end -- Must be a chapter name local chapterobj = parse_annotated_text(chap, chap_fullname, a("trans-" .. param)) chapterobj.text = make_chapter_with_url(chapterobj.text) chapterobj.link = make_chapter_with_url(chapterobj.link) formatted = (textual_prefix or "") .. format_annotated_text(chapterobj) .. (textual_suffix or "") end if chap_num or chap_plain then -- NOTE: Up above we throw an error if both chap_num and chap_plain are specified. formatted = formatted .. " (" .. (chap_plain or numeric_prefix .. chap_num) .. ")" end if chap_series then formatted = formatted .. chap_series end return formatted end -- This handles everything after displaying the author, starting with the chapter and ending with page, column, -- line and then other=. It is currently called twice: Once to handle the main portion of the citation, and once to -- handle a "newversion" citation. `ind` is either "" for the main portion or a number (currently only 2) for a -- "newversion" citation. In a few places we conditionalize on `ind` to take actions depending on its value. local function postauthor(ind, num_authors, format_as_cite) get_full_paramname = make_get_full_paramname(ind) -- Set to true by add_entry()/add_chapter() when a chapter/entry title has been added and "li ser " (lit. -- "on/in") is owed to whatever comes next. It's consumed either by mainauthor= (attached directly in front -- of it) or, if there's no mainauthor=, by the work's title= later on. Fields in between (translator, -- editor, compiler, director) don't consume it, but the first of them printed while it's still pending gets -- a "bi " (lit. "with/by") prefix instead, since otherwise e.g. "edîtoriya X" would read as a bare noun -- phrase with nothing to attach it to the sentence. local pending_li_ser = false if author_outputted then add_authorlabel() end local coauthors = parse_and_format_multivalued_annotated_text("coauthors", "and") coauthors = j_lazim(coauthors) if coauthors then local with_prefix = "" if author_outputted then with_prefix = "li gel " if num_authors == 1 then sep = " " end end add_with_sep(with_prefix .. coauthors) author_outputted = true end add_authorlike("quotee", "quoting ", ", quotee", ", quotees") if format_as_cite and author_outputted and not date_outputted then add_date() sep = ", " end add_authorlike("chapter_tlr", "tercimeya ", nil, nil, " terciman") local function add_labeled_editor() local editor, editor_fullname = a_with_name("editor") local editors, editors_fullname = a_with_name("editors") if editor and editors then error(("Nabe ku hem |%s= hem jî |%s= were bikaranîn"):format(editor_fullname, editors_fullname)) end local val, fullname, param = editor, editor_fullname, "editor" if editors then val, fullname, param = editors, editors_fullname, "editors" end if not val then return end local entities = parse_and_format_multivalued_annotated_text(param, "and") local label if fullname == "amadekar" or fullname == "amadekar2" then label = "amadekariya" else -- covers "editor", "editor2", "edîtor", "edîtor2", etc. label = "edîtoriya" end local bi_prefix = (pending_li_ser and not author_outputted) and "bi " or "" if is_anonymous(entities) then add_with_sep(j_lazim(bi_prefix .. label .. " kesekî nenas")) else add_with_sep(bi_prefix .. label .. " " .. j_lazim(entities)) end author_outputted = true end local function add_sg_and_pl_authorlike(noun, verbed) local sgparam = noun local plparam = noun .. "s" local sgval, sgval_fullname = a_with_name(sgparam) local plval, plval_fullname = a_with_name(plparam) if sgval and plval then error(("Nabe ku hem |%s= hem jî |%s= were bikaranîn"):format(sgval_fullname, plval_fullname)) end if sgval or plval then local verbed_by = verbed .. " ji hêla " local comma_sgnoun = ", " .. noun local comma_plnoun = ", " .. noun .. "s" add_authorlike(sgparam, verbed_by, comma_sgnoun, comma_plnoun) add_authorlike(plparam, verbed_by, comma_plnoun) end end local formatted_entry = format_chapterlike("entry", nil, "“", "”") local formatted_chapter = format_chapterlike("chapter", "beşa ", "“", "”") local function add_entry() if formatted_entry then add_with_sep(formatted_entry) if not a("notitle") then pending_li_ser = true author_outputted = false else author_outputted = true end formatted_entry = nil end end local function add_chapter() add_entry() if formatted_chapter then add_with_sep(formatted_chapter) if not a("notitle") then pending_li_ser = true author_outputted = false end formatted_chapter = nil end end local function add_actor_role(format_as_cite) local role = parse_and_format_multivalued_annotated_text("role", "and") role = j_lazim(role) local actor_val, actor_fullname = a_with_name("actor") local actor_objs = parse_multivalued_annotated_text(actor_val, actor_fullname) local actor = format_multivalued_annotated_text(actor_objs, "and") actor = j_lazim(actor) if format_as_cite then if role then if actor then add_with_sep(actor .. " wekî ") end sep = nil add_with_sep(role) elseif actor then add_with_sep(actor .. " (aktor)") end else if role then add_with_sep("xeberdan ji aliyê " .. role .. " ve") if actor then sep = nil add_with_sep(" (" .. actor .. ")") end elseif actor then add_with_sep(actor .. " (aktor)") end end end if format_as_cite then if date_outputted then add_chapter() end local output_len = #output local mainauthor = parse_and_format_multivalued_annotated_text("mainauthor") mainauthor = j_lazim(mainauthor) if mainauthor then add_with_sep(mainauthor) end -- quote-* templates display "jobbed by name" after the author, controlled by the author_outputted flag author_outputted = false add_authorlike("tlr", "tercimeya ", nil, nil, " terciman") author_outputted = false add_labeled_editor() add_sg_and_pl_authorlike("compiler", "berhevkirin") add_sg_and_pl_authorlike("director", "derhênan") add_authorlike("lyricist", nil, " (gotin)", nil, " gotinnivîs") add_authorlike("lyrics-translator", nil, " (tercime)", nil, " tercimanê gotinan") add_authorlike("composer", nil, " (muzîk)", nil, " bestekar") add_actor_role("format_as_cite") -- if the output length has changed, a credit name has been printed -- and we can print the date if output_len ~= #output then author_outputted = true add_date() end add_chapter() else add_chapter() local mainauthor = parse_and_format_multivalued_annotated_text("mainauthor") mainauthor = j_lazim(mainauthor) if mainauthor then -- Label mainauthor explicitly when another credit (translator, editor, compiler, director) follows -- it, so e.g. "li ser Kurt Gödel, edîtoriya X" doesn't read as if Kurt Gödel were the editor. if a("tlr") or a("editor") or a("editors") or a("compiler") or a("compilers") or a("director") or a("directors") then mainauthor = mainauthor .. " (nivîskarê sereke)" end if pending_li_ser then add_with_sep("li ser " .. mainauthor) pending_li_ser = false else add_with_sep(mainauthor) end author_outputted = true end do local tlr_prefix = "tercimekirina " if pending_li_ser and not author_outputted then tlr_prefix = "bi tercimekirina " end add_authorlike("tlr", tlr_prefix, nil, nil, " terciman") end add_labeled_editor() add_sg_and_pl_authorlike("compiler", "berhevkirin") add_sg_and_pl_authorlike("director", "derhênan") add_authorlike("lyricist", nil, " (gotin)", nil, " gotinnivîs") add_authorlike("lyrics-translator", nil, " (tercime)", nil, " tercimanê gotinan") add_authorlike("composer", nil, " (muzîk)", nil, " bestekar") end local title, title_fullname = a_with_name("title") local need_comma = false if title then local titleobj = parse_annotated_text(title, title_fullname, a("trans-title")) local title_text = format_annotated_text(titleobj, tag_with_cite, tag_with_cite) -- No author/editor/etc. given: the title (malper/kovar/etc.) is the primary entity, so highlight it -- the same way mainauthor would be. if not author_outputted then title_text = j_lazim(title_text) end if pending_li_ser then title_text = "li ser " .. title_text pending_li_ser = false end add(title_text) local series = parse_and_format_annotated_text("series") if series then add(" (" .. series) local seriesvolume = parse_and_format_annotated_text("seriesvolume") if seriesvolume then add(SEMICOLON_SPACE .. seriesvolume) end add(")") end need_comma = true elseif ind == "" then if not a("notitle") then local maint_text = maintenance_line("jkx sernavê kitêb an kovarê binivîse") if pending_li_ser then maint_text = "li ser " .. maint_text pending_li_ser = false end add(maint_text) need_comma = true end end local archiveurl, archiveurl_fullname = aurl_with_name("archiveurl") local url, url_fullname = aurl_with_name("url") local urls, urls_fullname = aurl_with_name("urls") if url and urls then error(("Divê tenê yek ji |%s= an |%s= were dayîn"):format(url_fullname, urls_fullname)) end local function verify_title_supplied(url_name) -- There are too many cases of this to throw an error at this time. -- if not title then -- error(("If |%s= is given, |%s= must also be supplied"):format(url_name, title_fullname)) -- end end if archiveurl or url then verify_title_supplied(archiveurl and archiveurl_fullname or url_fullname) sep = nil add("&lrm;<sup>[" .. (archiveurl or url) .. "]</sup>") elseif urls then verify_title_supplied(urls_fullname) sep = nil add("&lrm;<sup>" .. urls .. "</sup>") end -- display (in Language) if language is provided and is not English and not overriden by termlang or worklang if format_as_cite and ind == "" and not (args.termlang or args.worklang) and (args[1] or args.lang) then local lang = get_first_lang(args[1] or args.lang) if lang then local langcode = lang:getCode() if not (langcode == "und" or langcode == "ku") then local langs = format_langs(args[1] or args.lang) if langs then add(" (bi " .. langs .. ")") end end end end if need_comma then sep = ", " end local edition, edition_fullname = parse_and_format_annotated_text_with_name("edition") local edition_plain, edition_plain_fullname = parse_and_format_annotated_text_with_name("edition_plain") if edition and edition_plain then error(("Divê tenê yek ji |%s= an |%s= were dayîn"):format(edition_fullname, edition_plain_fullname)) end local function ordinal_suffix(n) n = tonumber(n) if not n then return nil end if n % 100 == 11 then return "an" elseif n % 10 == 1 then return "ê" else return "an" end end if edition then local edStr = tostring(edition) local numPart = edStr:match("^(%d+)%s*[Ss][Tt]$") or edStr:match("^(%d+)%s*[Nn][Dd]$") or edStr:match("^(%d+)%s*[Rr][Dd]$") or edStr:match("^(%d+)%s*[Tt][Hh]$") or edStr:match("^(%d+)$") if numPart then add_with_sep("çapa " .. numPart .. ordinal_suffix(numPart)) else add_with_sep("çapa " .. edition) end end if edition_plain then add_with_sep(edition_plain) end -- Display a numeric param such as page=, volume=, column=. For each `paramname`, four params are actually -- recognized, e.g. for paramname == "page", the params page=, pages=, page_plain= and pageurl= are recognized -- and checked (or the same with an index, e.g. page2=, pages2=, page_plain2= and pageurl2= respectively if -- ind == "2"). Only one of the first three can be specified; an error results if more than one are given. -- If none are given, the return value is nil; otherwise it is a string. The numeric spec is taken directly -- from e.g. page_plain= if given; otherwise if e.g. pages= is given, or if page= is given and looks like a -- combination of numbers (i.e. it has a hyphen or dash in it, a comma, or the word " and "), it is prefixed -- by `singular_desc` + "s" (e.g. "pages "), otherwise it is prefixed by just `singular_desc` (e.g. "page "). -- (As a special case, if either e.g. page=unnumbered or pages=unnumbered is given, the numeric spec is -- "unnumbered page".) The resulting spec is returned directly unless e.g. pageurl= is given, in which case -- it is linked to the specified URL. Note that any of the specs can be foreign text, e.g. foreign numbers -- (including with optional inline modifiers), and such text is handled appropriately. local function format_numeric_param(paramname, singular_desc) local sgval = a_with_name(paramname) local sgobj = parse_annotated_text(sgval, paramname) local plparamname = paramname .. "s" local plval = a_with_name(plparamname) local plobj = parse_annotated_text(plval, plparamname) local plainval, plain_fullname = parse_and_format_annotated_text_with_name(paramname .. "_plain") local numspec if not sgval and not plval and not plainval then return elseif plainval and (sgval or plval) then error(("Nabe ku " .. plain_fullname .. " digel " .. paramname .. " an " .. plparamname .. " were dayîn")) elseif sgval and plval then -- if both singular and plural, display "page 1 of 1-10" numspec = singular_desc .. " " .. sgval .. " ji " .. plval else -- Merge page= and pages= and treat alike because people often mix them up in both directions. if plainval then numspec = plainval else local val = sgobj and sgobj.text or plobj.text if val == "unnumbered" then numspec = "bêhejmar " .. singular_desc else local desc if val:find("^!") then val = val:gsub("^!", "") desc = sgval and singular_desc or (singular_desc .. "ên") else local check_val = val if check_val:find("%[") then check_val = remove_links(check_val) -- convert URL's of the form [URL DISPLAY] to the displayed value check_val = check_val:gsub("%[[^ %[%]]* ([^%[%]]*)%]", "%1") end -- in case of negative page numbers (do they exist?), don't treat as multiple pages check_val = check_val:gsub("^%-", "") -- replace HTML entity en-dashes and em-dashes with their literal codes check_val = check_val:gsub("&ndash;", "–") check_val = check_val:gsub("&#8211;", "–") check_val = check_val:gsub("&mdash;", "—") check_val = check_val:gsub("&#8212;", "—") -- Check for en-dash or em-dash, or two numbers (possibly with stuff after like 12a-15b) -- separated by a hyphen or by comma a followed by a space (to avoid firing on thousands separators). if umatch(check_val, "[–—]") or check_val:find(" and ") or check_val:match("%d+[^ ]* *%- *%d+") or check_val:match("%d+[^ ]* *, +%d+") then desc = singular_desc .. "ên" else desc = singular_desc end end local obj = sgobj or plobj obj.text = val if obj.link:find("^!") then obj.link = obj.link:gsub("^!", "") end val = format_annotated_text(obj) numspec = desc .. " " .. val end end end local url = a(paramname .. "url") if url then return "[" .. url .. " " .. numspec .. "]" else return numspec end end local volume = format_numeric_param("volume", a("volume_prefix") or "cild") if volume then add_with_sep(volume) end local issue = format_numeric_param("issue", a("issue_prefix") or "hejmar") if issue then add_with_sep(issue) end -- number= is an alias for issue= (except in {{quote-av}}, where it is the episode number) local number = format_numeric_param("number", a("number_prefix") or "nimare") if number then add_with_sep(number) end local annotations = {} local genre = a("genre") if genre then insert(annotations, genre) end local format = a("format") if format then insert(annotations, format) end local medium = a("medium") if medium then insert(annotations, medium) end -- Now handle the display of language annotations like "(in French)" or -- "(quotation in Nauruan; overall work in German)". local quotelang = args[1] or args.lang if not quotelang then if ind == "" then -- This can only happen for certain non-mainspace pages, e.g. Talk pages; otherwise an error is thrown -- above. insert(annotations, maintenance_line("Ji kerema xwe zimanê vê jêgirtinê bi |1= diyar bike")) else -- do nothing in newversion= portion end elseif ind == "" then local worklang = a("worklang") local termlang = a("termlang") worklang = worklang or quotelang termlang = termlang or quotelang if worklang == quotelang then if worklang == termlang then -- do nothing else insert(annotations, "bi " .. format_langs(quotelang)) end else if quotelang ~= termlang then insert(annotations, "jêgirtin bi " .. format_langs(quotelang)) end insert(annotations, "bi giştî eser bi " .. format_langs(worklang)) end else local lang2 = a("lang2") if lang2 then insert(annotations, "bi " .. format_langs(lang2)) end end if #annotations > 0 then sep = nil add_with_sep(" (" .. concat(annotations, SEMICOLON_SPACE) .. ")") end local artist = parse_and_format_multivalued_annotated_text("artist", "and") artist = j_lazim(artist) if artist then add_with_sep("hunermend: " .. artist) end local feat = parse_and_format_multivalued_annotated_text("feat", "and") feat = j_lazim(feat) if feat then sep = " " add_with_sep("digel " .. feat) end if not format_as_cite then add_actor_role() end local others = parse_and_format_annotated_text("others") others = j_lazim(others) if others then add_with_sep(others) end local quoted_in = parse_and_format_annotated_text("quoted_in", tag_with_cite, tag_with_cite) if quoted_in then add_with_sep("hate jêgirtin di " .. quoted_in .. " de") insert(tracking_categories, "Jêgirtin bi parametreya quoted-in") end local location = parse_and_format_multivalued_annotated_text("location", "; ") local publisher = parse_and_format_multivalued_annotated_text("publisher", "; ") if publisher then if location then add_with_sep(location) -- colon sep = "&#58; " -- colon end add_with_sep(publisher) elseif location then add_with_sep(location) end if not date_outputted then add_date("no_paren") end local source = parse_and_format_multivalued_annotated_text("source", "and") if source then add_with_sep("ji " .. source .. " hatiye wergirtin") end local original = parse_and_format_annotated_text("original", tag_with_cite, tag_with_cite) local by = parse_and_format_multivalued_annotated_text("by", "and") by = j_lazim(by) local origtype = a("deriv") or "tercimeya" if original or by then add_with_sep(origtype .. " " .. (original or "orîjînal") .. (by and " ji hêla " .. by .. " ve" or "")) end -- Handle origlang=, origworklang=. How we handle them depends on whether the original title or author are explicitly -- given. local origlang = a("origlang") local origworklang = a("origworklang") local origlangtext, origworklangtext if origlang then origlangtext = "bi " .. format_langs(origlang) end if origworklang then origworklangtext = "bi giştî eser bi " .. format_langs(origworklang) end if origlang or origworklang then if original or by then local orig_annotations = {} if origlangtext then insert(orig_annotations, origlangtext) end if origworklangtext then insert(orig_annotations, origworklangtext) end sep = nil add_with_sep(" (" .. concat(orig_annotations, SEMICOLON_SPACE) .. ")") else add_with_sep(origtype .. " orîjînal" .. (origlangtext and " " .. origlangtext or "")) if origworklangtext then sep = nil add_with_sep(" (" .. origworklangtext .. ")") end end end if ind ~= "" and has_newversion() then local formatted_new_date = format_date_args(a, get_full_paramname, alias_map, "", "", nil, "Ji kerema xwe tarîx an salekê binivîse", true) if formatted_new_date then add_with_sep(formatted_new_date) end end -- Fetch date_published=/year_published=/month_published= and format appropriately. local formatted_date_published = format_date_args(a, get_full_paramname, alias_map, "", "_published", nil, nil, true) local platform = parse_and_format_multivalued_annotated_text("platform", "and") if formatted_date_published then add_with_sep("di " .. formatted_date_published .. " de hate weşandin" .. (platform and " li ser " .. platform or "")) elseif platform then add_with_sep("li ser " .. platform) end -- From here on out, there should always be a preceding item, so we -- can dispense with add_with_sep() and always insert the comma. sep = nil local function small(txt) add(", <small>") add(txt) add("</small>") end -- Add an identifier to a book or article database such as DOI, ISBN, JSTOR, etc. `param_or_params` -- is a string identifying the base param, or a list of such strings to check in turn. If found, the value -- of the parameter is processed using `process` (a function of one argument, defaulting to mw.uri.encode()), -- and then the actual URL to insert is generated by preceding with `pretext`, following with `posttext`, -- and running the resulting string through small(), which first adds a comma and then the URL in small font. local function add_identifier(param_or_params, pretext, posttext, process) local val = a(param_or_params) if val then val = (process or mw.uri.encode)(val) small(pretext .. val .. posttext) end end add_identifier("bibcode", "[https://adsabs.harvard.edu/abs/", " →Bibcode]") add_identifier("doi", '<span class="neverexpand">[https://doi.org/', " →DOI]</span>") add_identifier("isbn", "", "", isbn) add_identifier("issn", "", "", issn) add_identifier("jstor", "[https://www.jstor.org/stable/", " →JSTOR]") add_identifier("lccn", "", "", lccn) add_identifier("oclc", "[https://search.worldcat.org/title/", " →OCLC]") add_identifier("ol", "[https://openlibrary.org/works/OL", "/ →OL]") add_identifier("pmid", "[https://www.ncbi.nlm.nih.gov/pubmed/", " →PMID]") add_identifier("pmcid", "[https://www.ncbi.nlm.nih.gov/pmc/articles/", "/ →PMCID]") add_identifier("ssrn", "[https://ssrn.com/abstract=", " →SSRN]") -- add_identifier("urn", "", "", urn) local id = a("id") if id then small(id) end archiveurl, archiveurl_fullname = aurl_with_name("archiveurl") if archiveurl then local url, url_fullname = aurl_with_name("url") if not url then -- attempt to infer original URL from archive URL; this works at -- least for Wayback Machine (web.archive.org) URL's url = archiveurl:match("/(https?:.*)$") if not url then error( ("Gava |%s= tê dayîn, divê |%s= jî were dayîn"):format(archiveurl_fullname, url_fullname) ) end end add(", ji [" .. url .. " orjînalê] di ") local archivedate, archivedate_fullname = a_with_name("archivedate") if archivedate then add(format_date(archivedate)) elseif string.sub(archiveurl, 1, 28) == "https://web.archive.org/web/" then -- If the archive is from the Wayback Machine, then it already contains the date -- Get the date and format it local wayback_date = string.sub(archiveurl, 29, 29 + 7) wayback_date = string.sub(wayback_date, 1, 4) .. "-" .. string.sub(wayback_date, 5, 6) .. "-" .. string.sub(wayback_date, 7, 8) add(format_date(wayback_date)) else error( ("Gava |%s= tê dayîn, divê |%s= jî were dayîn"):format( archiveurl_fullname, archivedate_fullname ) ) end add(" de hatiye arşîvkirin") end if a("accessdate") then --Otherwise do not display here, as already used as a fallback for missing date= or year= earlier. if (a("date") or a("nodate") or a("year")) and not a("archivedate") then add(", di " .. format_date(a("accessdate")) .. " de hatiye gihiştin") end end local formatted_section = format_chapterlike("section", "qismê ") if formatted_section then add(", ") add(formatted_section) end -- video game stuff local system = parse_and_format_annotated_text("system") if system then add(", " .. system) end local scene = parse_and_format_annotated_text("scene") if scene then add(", sehne: " .. scene) end local level = parse_and_format_annotated_text("level") if level then add(", seviye/herêm: " .. level) end local note = parse_and_format_annotated_text("note") if note then add(", " .. note) end local note_plain = parse_and_format_annotated_text("note_plain") if note_plain then add(" " .. note_plain) end -- Wrapper around format_numeric_param that inserts the formatted text with optional preceding text. local function handle_numeric_param(paramname, singular_desc, pretext) local numspec = format_numeric_param(paramname, singular_desc) if numspec then add((pretext or "") .. numspec) end end handle_numeric_param("page", a("page_prefix") or "rûpel", ", ") handle_numeric_param("column", a("column_prefix") or "stûn", ", ") handle_numeric_param("line", a("line_prefix") or "rêz", ", ") -- FIXME: Does this make sense? What is other=? local other = parse_and_format_annotated_text("other") if other then add(", " .. other) end end local function add_authors(args, last_first) -- Find maximum indexed author or last name. local maxind = math.max(args.author.maxindex, args.last.maxindex) -- Include max index of ancillary params so we get an error message about their use without the primary params. local ancillary_params = {"trans-author", "authorlink", "trans-authorlink", "first", "trans-first", "trans-last"} for _, ancillary in ipairs(ancillary_params) do maxind = math.max(maxind, args[ancillary].maxindex) end local num_authors = 0 for i = 1, maxind do local ind = i == 1 and "" or i local author, last = args.author[i], args.last[i] if author or last then local this_num_authors = add_author( author, "author" .. ind, args["trans-author"][i], "trans-author" .. ind, args.authorlink[i], "authorlink" .. ind, args["trans-authorlink"][i], "trans-authorlink" .. ind, args.first[i], "first" .. ind, args["trans-first"][i], "trans-first" .. ind, last, "last" .. ind, args["trans-last"][i], "trans-last" .. ind, last_first ) num_authors = num_authors + this_num_authors sep = last_first and "; " or ", " else for _, cant_have in ipairs(ancillary_params) do if args[cant_have][i] then error(("Nabe ku |%s%s= bêyî |author%s= an |last%s= were dayîn"):format(cant_have, ind, ind, ind)) end end end end return num_authors end local function add_newversion() -- If there's a "newversion" section, add the new-version text. if has_newversion() then sep = nil --Test for new version of work. add(SEMICOLON_SPACE) if args.newversion then -- newversion= is intended for English text, e.g. "hate jêgirtin di" or "ji nû ve hatiye weşandin wekî". add(args.newversion) elseif not args.edition2 then if has_new_title_or_author() then add("ji nû ve hatiye weşandin wekî") else add("ji nû ve hatiye weşandin") end end add(" ") return "" else return ", " end end ------------------- Now we start outputting text ---------------------- local need_comma = false -- Set this now so a() works just below. get_full_paramname = make_get_full_paramname("") if args.brackets then add("[") end bold_year = not format_as_cite year_last = format_as_cite formatted_date, need_date = format_date_args( a, get_full_paramname, alias_map, nil, nil, bold_year, "Tu dikarî tarîxa vê jêgirtinê [[:Category:Daxwazên tarîxê|binivîsî]]?", year_last ) -- format_date_args bolds the year here (via bold_year = not format_as_cite), so this is the only date variable -- we wrap; origdate=, date_published= and the newversion date are left unwrapped. formatted_date = j_lazim(formatted_date) -- Fetch origdate=/origyear=/origmonth= and format appropriately. formatted_origdate = format_date_args(a, get_full_paramname, alias_map, "orig", nil, nil, nil, year_last) local num_authors if format_as_cite then num_authors = add_authors(args, "last_first") if author_outputted then sep = " " end -- Display all the text that comes after the author, for the main portion. postauthor("", num_authors, "format_as_cite") author_outputted = false sep = add_newversion() -- Add the newversion author(s). if args["2ndauthor"] or args["2ndlast"] then num_authors = add_author( args["2ndauthor"], "2ndauthor", nil, nil, args["2ndauthorlink"], "2ndauthorlink", nil, nil, args["2ndfirst"], "2ndfirst", nil, nil, args["2ndlast"], "2ndlast", nil, nil, "last_first" ) sep = ", " else for _, cant_have in ipairs{"2ndauthorlink", "2ndfirst"} do if args[cant_have] then error(("Nabe ku |%s= bêyî |2ndauthor= an |2ndlast= were dayîn"):format(cant_have)) end end end -- Display all the text that comes after the author, for the "newversion" section. postauthor(2, num_authors, "format_as_cite") else if formatted_date then need_comma = true add(formatted_date) end if formatted_origdate then need_comma = true add(SPACE_LBRAC .. formatted_origdate .. RBRAC) end if need_comma then sep = ", " end date_outputted = true num_authors = add_authors(args) -- Display all the text that comes after the author, for the main portion. postauthor("", num_authors) author_outputted = false sep = add_newversion() -- Add the newversion author(s). if args["2ndauthor"] or args["2ndlast"] then num_authors = add_author( args["2ndauthor"], "2ndauthor", nil, nil, args["2ndauthorlink"], "2ndauthorlink", nil, nil, args["2ndfirst"], "2ndfirst", nil, nil, args["2ndlast"], "2ndlast", nil, nil ) sep = ", " else for _, cant_have in ipairs{"2ndauthorlink", "2ndfirst"} do if args[cant_have] then error(("Nabe ku |%s= bêyî |2ndauthor= an |2ndlast= were dayîn"):format(cant_have)) end end end -- Display all the text that comes after the author, for the "newversion" section. postauthor(2, num_authors) end if not args.nocolon then sep = nil add(":") elseif args.usenodot and not args.nodot then add(".") end -- Concatenate output portions to form output text. local output_text = concat(output) -- Remainder of code handles adding categories. We add one or more of the following categories: -- -- 1. [[Category:LANG terms with quotations]], based on the first language code in termlang= or 1=. Added to -- mainspace, Reconstruction: and Appendix: pages as well as Citations: pages if the corresponding mainspace -- page exists. Not added if nocat= is given. Note that [[Module:usex]] adds the same category using the same -- logic, but we do it here too because we may not have a quotation to format. (We add in those circumstances -- because typically when there's no quotation to format, it's because it's formatted manually underneath the -- citation, or using {{ja-x}}, {{th-x}} or similar.) -- 2. [[Category:Requests for date in LANG entries]], based on the first language code in 1=. Added to mainspace, -- Reconstruction:, Appendix: and Citations: pages unless nocat= is given. -- 3. [[Category:Quotations using nocat parameter]], if nocat= is given. Added to mainspace, Reconstruction:, -- Appendix: and Citations: pages. local categories = {} local termlang = get_first_lang(args.termlang or argslang) if args.nocat then if format_as_cite then insert(tracking_categories, "Çavkanî bi parametreya nekat") else insert(tracking_categories, "Jêgirtin bi parametreya nekat") end else -- don't create language tracking categories for citations if not format_as_cite then local title if args.pagename then -- for testing, doc pages, etc. title = mw.title.new(args.pagename) if not title then error(("Nirxa `args.pagename` xelet e: '%s'"):format(args.pagename)) end else title = mw.title.getCurrentTitle() end -- Only add [[Citations:foo]] to [[:Category:LANG terms with quotations]] if [[foo]] exists. local ok_to_add_cat if title.nsText ~= "Citations" then ok_to_add_cat = true else local mainspace_title = mw.title.new(title.text) if mainspace_title and mainspace_title.exists then ok_to_add_cat = true end end if ok_to_add_cat then insert(categories, "Jêgirtin bi " .. termlang:getFullName()) end end if need_date then local argslangobj = get_first_lang(argslang) insert(categories, "Daxwazên tarîxê bi " .. argslangobj:getCanonicalName()) end end return output_text .. ( not lang and "" or (#categories > 0 and format_categories(categories, lang, args.sort) or "") .. ( #tracking_categories > 0 and format_categories( tracking_categories, lang, args.sort, nil, not page_should_be_ignored(mw.title.getCurrentTitle().fullText) ) or "" ) ) end -- Alias specs for type= and type2=. Each spec is `{canon, aliases, with_newversion}` where `canon` is the canonical -- parameter (with "2" added if type2= is being handled), `aliases` is a comma-separated string of aliases (with "2" -- added if type2= is being handled, except for numeric params), and `with_newversion` indicates whether we should -- process this spec if type2= is being handled. local type_alias_specs = { av = { {"author", "writer,writers", true}, {"chapter", "episode", true}, {"chapterurl", "episodeurl", true}, {"trans-chapter", "trans-episode", true}, {"chapter_tlr", "episode_tlr,episode_tlrs,episode_translator,episode_translators", true}, {"chapter_series", "episode_series", true}, {"chapter_seriesvolume", "episode_seriesvolume", true}, {"chapter_number", "episode_number", true}, {"chapter_plain", "episode_plain", true}, {"volume", "season", true}, {"volumes", "seasons", true}, {"volume_plain", "season_plain", true}, {"volumeurl", "seasonurl", true}, {"platform", "network", true}, }, book = { {"author", "3"}, {"editor", "amadekar"}, {"title", ",4"}, {"url", "5"}, {"year", "2"}, {"page", "6"}, {"text", "7"}, {"t", "8"}, }, journal = { {"year", "2"}, {"author", "3"}, {"chapter", "title,sernav,article,meqale,4", true}, {"chapterurl", "titleurl,articleurl,urlya-sernav,urlya-meqaleyê", true}, {"trans-chapter", "trans-title,trans-article,tercimeya-sernav,tercimeya-meqale", true}, {"chapter_tlr", "title_tlr,title_tlrs,title_translator,title_translators,article_tlr,article_tlrs,article_translator,article_translators,tercimanê-sernav,tercimanên-sernav,tercimanên-meqaleyê,tercimanê-meqaleyê", true}, {"chapter_series", "title_series,article_series,seriya-sernav,seriya-meqaleyê", true}, {"chapter_seriesvolume", "title_seriesvolume,article_seriesvolume,cildê-seriya-sernav,cildê-seriya-meqaleyê", true}, {"chapter_number", "title_number,article_number,hejmara-sernav,hejmara-meqaleyê", true}, {"chapter_plain", "title_plain,article_plain,sernav-sade,meqale-sade", true}, {"title", "journal,kovar,magazine,newspaper,work,xebat,xezete,rojname,5", true}, {"trans-title", "trans-journal,tercimeya-kovar,trans-magazine,trans-newspaper,tercimeya-xezete,tercimeya-rojname,trans-work,tercimeya-xebat", true}, {"tlr", "journal_tlr,tercimanê-kovarê,journal_tlrs,journal_translator,journal_translators,magazine_tlr,magazine_tlrs,magazine_translator,magazine_translators,newspaper_tlr,newspaper_tlrs,newspaper_translator,tercimanê-xezeteyê,tercimanê-rojnameyê,newspaper_translators,work_tlr,tercimanê-xebatê,work_tlrs,work_translator,work_translators", true}, {"url", "6,journalurl,urlya-kovarê,magazineurl,newspaperurl,urlya-xezeteyê,urlya-rojnameyê,workurl,urlya-xebatê", true}, {"page", "7"}, {"source", "newsagency,ajans,news_agency", true}, {"text", "8"}, {"t", "9"}, }, } -- Process interally-handled aliases related to type= or type2=. `args` is a table of arguments; `typ` is the value of -- type= or type2=; newversion=true if we're dealing with type2=; alias_map is used to keep track of alias mappings -- seen. local function process_type_aliases(args, typ, newversion, alias_map) local ind = newversion and "2" or "" local deprecated = ine(args.lang) or ine(args.ziman) if not type_alias_specs[typ] then local possible_values = {} for possible, _ in pairs(type_alias_specs) do insert(possible_values, possible) end sort(possible_values) error( ("Nirxa '%s' ji bo type%s= nayê naskirin; nirxên mihtemel ev in: %s"):format( typ, ind, concat(possible_values, ",") ) ) end for _, alias_spec in ipairs(type_alias_specs[typ]) do local canon, aliases, with_newversion = unpack(alias_spec) if with_newversion or not newversion then canon = canon .. ind aliases = split(aliases, ",", true) local saw_alias = nil for _, alias in ipairs(aliases) do if alias:match("^%d+$") then alias = tonumber(alias) if deprecated then alias = alias - 1 end else alias = alias .. ind end if args[alias] then if saw_alias == nil then saw_alias = alias else error(("|%s= û |%s= bernav in; nabe ku nirx ji bo herduyan were dayîn"):format(saw_alias, alias)) end end end if saw_alias and (not newversion or type(saw_alias) == "string") then if args[canon] then error(("|%s= bernavê |%s= ye; nabe ku nirx ji bo herduyan were dayîn"):format(saw_alias, canon)) end args[canon] = args[saw_alias] -- Wipe out the original after copying. This is important in case of a param that has general significance -- but has been redefined (e.g. {{quote-av}} redefines number= for the episode number, and -- {{quote-journal}} redefines title= for the chapter= (article). It's also important due to unhandled -- parameter checking. args[saw_alias] = nil alias_map[canon] = saw_alias end end end end -- Clone and combine frame's and parent's args while also assigning nil to empty strings. Handle aliases and ignores. local function clone_args(direct_args, parent_args) local args = {} -- Processing parent args must come first so that direct args override parent args. Note that if a direct arg is -- specified but is blank, it will still override the parent arg (with nil). for pname, param in pairs(parent_args) do -- [[Special:WhatLinksHere/Wiktionary:Tracking/quote/param/PARAM]] track("param/" .. pname) args[pname] = ine(param) end -- Process ignores. The value of `ignore` is a comma-separated list of parameter names to ignore (erase). We need to -- do this before aliases due to {{quote-song}}, which sets chapter= to the value of title= in the direct params and -- sets title= to the value of album= using an alias. If we do the ignores after aliases, we get an error during alias -- processing, saying that title= and its alias album= are both present. local ignores = ine(direct_args.ignore) if ignores then for ignore in gsplit(ignores, "%s*,%s*") do args[ignore] = nil end end local alias_map = {} local other_controls = {} -- noroman local noroman = ine(direct_args.noroman) if noroman then other_controls.overrides = other_controls.overrides or {} for param in gsplit(noroman, "%s*,%s*") do other_controls.overrides[param] = (other_controls.overrides[param] or {}) other_controls.overrides[param].noroman = true end end -- Process internally-specified aliases using type= or type2=. local typ = args.type or direct_args.type or args.cure or direct_args.cure if typ then process_type_aliases(args, typ, false, alias_map) end local typ2 = args.type2 or direct_args.type2 or args.cure2 or direct_args.cure2 if typ2 then process_type_aliases(args, typ2, true, alias_map) end -- Process externally-specified aliases. The value of `alias` is a list of semicolon-separated specs, each of which -- is of the form DEST:SOURCE,SOURCE,... where DEST is the canonical name of a parameter and SOURCE refers to an -- alias. Whitespace is allowed between all delimiters. The order of aliases may be important. For example, for -- {{quote-journal}}, title= contains the article name and is an alias of underlying chapter=, while journal= or -- work= contains the journal name and is an alias of underlying title=. As a result, the title -> chapter alias -- must be specified before the journal/work -> title alias. -- -- Whenever we copy a value from argument SOURCE to argument DEST, we record an entry for the pair in alias_map, so -- that when we would display an error message about DEST, we display SOURCE instead. -- -- Do alias processing (and ignore and error_if processing) before processing direct_args so that e.g. we can set up -- an alias of title -> chapter and then set title= to something else in the direct args ({{quote-hansard}} does -- this). -- -- FIXME: Delete this once we've converted all alias processing to internal. local aliases = ine(direct_args.alias) if aliases then -- Allow and discard a trailing semicolon, to make managing multiple aliases easier. aliases = ugsub(aliases, "%s*;$", "") for alias_spec in gsplit(aliases, "%s*;%s*") do local alias_spec_parts = split(alias_spec, "%s*:%s*") if #alias_spec_parts ~= 2 then error(("Ji bo bernav '%s' divê (:) tê de hebe"):format(alias_spec)) -- ("Alias spec '%s' should have one colon in it"):format(alias_spec) ev çi dibêje? end local dest, sources = unpack(alias_spec_parts) sources = split(sources, "%s*,%s*") local saw_source = nil for _, source in ipairs(sources) do if source:match("^%d+$") then source = tonumber(source) end if args[source] then if saw_source == nil then saw_source = source else error(("|%s= û |%s= bernav in; nabe ku nirx ji bo herduyan were dayîn"):format(saw_source, source)) end end end if saw_source then if args[dest] then error(("|%s= bernavê |%s= ye; nabe ku nirx ji bo herduyan were dayîn"):format(saw_source, dest)) end args[dest] = args[saw_source] -- Wipe out the original after copying. This important in case of a param that has general significance -- but has been redefined (e.g. {{quote-av}} redefines number= for the episode number, and -- {{quote-journal}} redefines title= for the chapter= (article). It's also important due to unhandled -- parameter checking. args[saw_source] = nil alias_map[dest] = saw_source end end end -- Process error_if. The value of `error_if` is a comma-separated list of parameter names to throw an error if seen -- in parent_args (they are params we overwrite in the direct args). local error_ifs = ine(direct_args.error_if) if error_ifs then for error_if in gsplit(error_ifs, "%s*,%s*") do if ine(parent_args[error_if]) then error( ("Nabe ku nirxek ji bo |%s=%s were dayîn, ji ber ku dê were guhartin an paşguhkirin"):format( error_if, ine(parent_args[error_if]) ) ) end end end for pname, param in pairs(direct_args) do -- ignore control params if pname ~= "ignore" and pname ~= "alias" and pname ~= "error_if" and pname ~= "noroman" then args[pname] = ine(param) end end return args, alias_map, other_controls end local function get_args(frame_args, parent_args, require_lang) -- FIXME: We are processing arguments twice, once in clone_args() and then again in [[Module:parameters]]. This is -- wasteful of memory. local cloned_args, alias_map, other_controls = clone_args(frame_args, parent_args) local deprecated = ine(parent_args.lang) or ine(parent_args.ziman) if ine(parent_args[1]) and deprecated then error("Nikarî hem parametreya 1. (koda zimên) hem jî |lang=/|ziman= bi hev re bi kar bînî; tenê yekê ji wan bi kar bîne.") end -- Enforce the language requirement here (instead of leaving it to Module:parameters' generic "required" -- validation) so the namespace-aware custom error below actually gets a chance to run. if require_lang and not (ine(parent_args[1]) or deprecated) then local current_title = mw.title.getCurrentTitle() if not (current_title.namespace == 10 or page_should_be_ignored(current_title.fullText)) then require(languages_error_module)(nil, 1) end end local alias_of_t = {alias_of = "t"} local boolean = {type = "boolean"} local language_sublist = {type = "language", sublist = true} local list_allow_holes = {list = true, allow_holes = true} local script = {type = "script"} local function alias_list_allow_holes(canon) return {alias_of = canon, list = true, allow_holes = true} end -- First, the "single" params that don't have FOO2 or FOOn versions. local params = { [deprecated and "lang" or 1] = {type = "language", sublist = true, default = "und"}, ["lang2"] = language_sublist, ["ziman2"] = {alias_of = "lang2", type = "language", sublist = true}, ["newversion"] = true, ["versiyona-nû"] = {alias_of = "newversion"}, ["author"] = list_allow_holes, ["nivîskar"] = alias_list_allow_holes("author"), ["2ndauthor"] = true, ["2nivîskar"] = {alias_of = "2ndauthor"}, ["trans-author"] = list_allow_holes, ["tercimeya-nivîskar"] = alias_list_allow_holes("trans-author"), ["authorlink"] = list_allow_holes, ["lînka-nivîskar"] = alias_list_allow_holes("authorlink"), ["2ndauthorlink"] = true, ["2lînka-nivîskar"] = {alias_of = "2ndauthorlink"}, ["trans-authorlink"] = list_allow_holes, ["lînka-tercimeya-nivîskar"] = alias_list_allow_holes("trans-authorlink"), ["first"] = list_allow_holes, ["pêşnav"] = alias_list_allow_holes("first"), ["2ndfirst"] = true, ["2pêşnav"] = {alias_of = "2ndfirst"}, ["trans-first"] = list_allow_holes, ["tercimeya-pêşnav"] = alias_list_allow_holes("trans-first"), ["last"] = list_allow_holes, ["paşnav"] = alias_list_allow_holes("last"), ["2ndlast"] = true, ["2paşnav"] = {alias_of = "2ndlast"}, ["trans-last"] = list_allow_holes, ["tercimeya-paşnav"] = alias_list_allow_holes("trans-last"), ["nocat"] = boolean, ["nekat"] = {alias_of = "nocat"}, ["nocolon"] = boolean, -- quote params text = true, passage = {alias_of = "text"}, ["jêgirtin"] = {alias_of = "text"}, ["jg"] = {alias_of = "text"}, tr = true, transliteration = {alias_of = "tr"}, ts = true, transcription = {alias_of = "ts"}, norm = true, normalization = {alias_of = "norm"}, sc = script, normsc = script, sort = true, subst = true, footer = true, lit = true, ["hrf"] = {alias_of = "lit"}, t = true, translation = alias_of_t, ["tercime"] = alias_of_t, ["werger"] = alias_of_t, ["w"] = alias_of_t, gloss = alias_of_t, lb = true, ["e"] = {alias_of = "lb"}, brackets = boolean, ["parantez"] = {alias_of = "brackets"}, -- original quote params origtext = true, ["metna-orîjînal"] = {alias_of = "origtext"}, origtr = true, ["tr-orîjînal"] = {alias_of = "origtr"}, origts = true, ["ts-orîjînal"] = {alias_of = "origts"}, orignorm = true, ["norm-orîjînal"] = {alias_of = "orignorm"}, origsc = script, ["sc-orîjînal"] = {alias_of = "origsc"}, orignormsc = script, ["normsc-orîjînal"] = {alias_of = "orignormsc"}, origsubst = true, ["subst-orîjînal"] = {alias_of = "origsubst"}, origlb = true, ["e-orîjînal"] = {alias_of = "origlb"}, usenodot = boolean, nodot = boolean, inline = boolean, asquote = boolean, ["wekjêgirtin"] = {alias_of = "asquote"}, ascite = boolean, ["wekçavkanî"] = {alias_of = "ascite"}, } -- ziman= is a deprecated Kurdish alias of the deprecated named lang= param (only meaningful once "lang" is -- actually a registered key, i.e. when deprecated is true; see the [deprecated and "lang" or 1] key above). if deprecated then params["ziman"] = {alias_of = "lang"} end -- Most params have PARAM2 variants for use with `newversion`. FIXME: We should generalize this to -- allow PARAMN variants for any N. local function add_with_2(param, value) params[param] = value params[param .. "2"] = value end local function alias_with_2(alias, canon) params[alias] = {alias_of = canon} params[alias .. "2"] = {alias_of = canon .. "2"} -- Record which alias was actually used, so error messages show e.g. |tarîx= instead of |date=. if cloned_args[alias] then alias_map[canon] = alias end if cloned_args[alias .. "2"] then alias_map[canon .. "2"] = alias .. "2" end end for _, param12 in ipairs{ "worklang", "termlang", "origlang", "origworklang" } do add_with_2(param12, language_sublist) end -- Then the newversion params (which have FOO2 versions). for _, param12 in ipairs{ -- author-like params; author params themselves are either list params (author=, last=, etc.) or single params -- (2ndauthor=, 2ndlast=, etc.) "coauthors", "quotee", "tlr", "editor", "editors", "mainauthor", "compiler", "compilers", "director", "directors", "lyricist", "lyrics-translator", "composer", "role", "actor", "artist", "feat", -- author control params "default-authorlabel", "authorlabel", -- title "title", "trans-title", "series", "seriesvolume", "notitle", -- entry "entry", "entryurl", "trans-entry", -- chapter "chapter", "chapterurl", "chapter_number", "chapter_plain", "chapter_series", "chapter_seriesvolume", "trans-chapter", "chapter_tlr", -- section "section", "sectionurl", "section_number", "section_plain", "section_series", "section_seriesvolume", "trans-section", -- other video-game params "system", "scene", "level", -- URL "url", "urls", "archiveurl", -- edition "edition", "edition_plain", -- ID params "bibcode", "doi", "isbn", "issn", "jstor", "lccn", "oclc", "ol", "pmid", "pmcid", "ssrn", "urn", "id", -- misc date params; most date params handled below "archivedate", "accessdate", "nodate", -- numeric params handled below -- other params "type", "genre", "format", "medium", "others", "quoted_in", "location", "publisher", "original", "by", "deriv", "note", "note_plain", "other", "source", "platform", } do add_with_2(param12, true) end -- Then the aliases of newversion params (which have FOO2 versions). for _, param12_aliased in ipairs{ {"role", "roles"}, {"role", "speaker"}, {"tlr", "tlrs"}, {"tlr", "translator"}, {"tlr", "translators"}, {"chapter_tlr", "chapter_tlrs"}, {"chapter_tlr", "chapter_translator"}, {"chapter_tlr", "chapter_translators"}, {"doi", "DOI"}, {"isbn", "ISBN"}, {"issn", "ISSN"}, {"jstor", "JSTOR"}, {"lccn", "LCCN"}, {"oclc", "OCLC"}, {"ol", "OL"}, {"pmid", "PMID"}, {"pmcid", "PMCID"}, {"ssrn", "SSRN"}, {"urn", "URN"}, } do local canon, alias = unpack(param12_aliased) alias_with_2(alias, canon) end -- tercimeyên Then the aliases of newversion params (which have FOO2 versions). for _, param12_aliased in ipairs{ {"role", "rol"}, {"role", "axivêr"}, {"tlr", "terciman"}, {"tlr", "wergêr"}, {"chapter_tlr", "tercimanên-beşê"}, {"chapter_tlr", "tercimanê-beşê"}, {"chapter_tlr", "tercimana-beşê"}, {"chapter_tlr", "wergêrên-beşê"}, {"chapter_tlr", "wergêrê-beşê"}, {"chapter_tlr", "wergêra-beşê"}, -- tercimeyên Then the newversion params (which have FOO2 versions). -- author-like params; author params themselves are either list params (author=, last=, etc.) or single params -- (2ndauthor=, 2ndlast=, etc.) {"coauthors", "hevnivîskar"}, {"quotee", "jê-tê-girtin"}, {"editor", "edîtor"}, {"editor", "amadekar"}, {"mainauthor", "nivîskarê-sereke"}, {"compiler", "berhevkar"}, {"director", "derhêner"}, {"lyricist", "gotinnivîs"}, {"lyrics-translator", "tercimanê-gotinan"}, {"lyrics-translator", "tercimana-gotinan"}, {"lyrics-translator", "wergêrê-gotinan"}, {"lyrics-translator", "wergêra-gotinan"}, {"composer", "bestekar"}, {"actor", "aktor"}, {"actor", "lîstikvan"}, {"artist", "hunermend"}, {"artist", "artîst"}, {"feat", "mêvan"}, --tercimeyên author control params {"default-authorlabel", "standard-etîketa-nivîskar"}, {"authorlabel", "etîketa-nivîskar"}, --tercimeyên title {"title", "sernav"}, {"trans-title", "tercimeya-sernav"}, {"trans-title", "wergera-sernav"}, {"series", "serî"}, {"series", "rêze"}, {"seriesvolume", "cildê-seriyê"}, {"seriesvolume", "cildê-rêzeyê"}, {"notitle", "bêsernav"}, --tercimeyên entry {"entry", "made"}, {"entryurl", "urlya-madeyê"}, {"trans-entry", "tercimeya-made"}, {"trans-entry", "wergera-madeyê"}, --tercimeyên chapter {"chapter", "beş"}, {"chapterurl", "urlya-beşê"}, {"chapter_number", "hejmara-beşê"}, {"chapter_plain", "beş-sade"}, {"chapter_series", "seriya-beşê"}, {"chapter_series", "rêzeya-beşê"}, {"chapter_seriesvolume", "cildê-seriya-beşê"}, {"chapter_seriesvolume", "cildê-rêzeya-beşê"}, {"trans-chapter", "tercimeya-beş"}, {"trans-chapter", "wergera-beşê"}, --tercimeyên section {"section", "qisim"}, {"section", "qism"}, {"sectionurl", "urlya-qismê"}, {"section_number", "hejmara-qismê"}, {"section_plain", "qisim-sade"}, {"section_plain", "qism-sade"}, {"section_series", "rêzeya-qismê"}, {"section_seriesvolume", "cildê-seriya-qismê"}, {"section_seriesvolume", "cildê-rêzeya-qismê"}, {"trans-section", "tercimeya-qism"}, {"trans-section", "tercimeya-qisim"}, --tercimeyên other video-game params {"system", "sîstem"}, {"system", "pergal"}, {"scene", "sehne"}, {"level", "seviye"}, --tercimeyên URL {"archiveurl", "urlya-arşîvê"}, -- tercimeyên edition {"edition", "çap"}, {"edition_plain", "çap-sade"}, --tercimeyên misc date params; most date params handled below {"archivedate", "roja-arşîvê"}, {"archivedate", "tarîxa-arşîvê"}, {"accessdate", "tarîxa-gihiştinê"}, {"accessdate", "roja-gihiştinê"}, {"nodate", "bêtarîx"}, --tercimeyên other params {"type", "cure"}, {"genre", "janr"}, {"medium", "medya"}, {"others", "kesên-din"}, {"others", "yên-din"}, {"quoted_in", "cihê-jêgirtinê"}, {"location", "cih"}, {"location", "cîh"}, {"publisher", "weşanxane"}, {"publisher", "weşanger"}, {"original", "orîjînal"}, {"original", "orjînal"}, {"by", "ji-aliyê"}, {"by", "ji-hêla"}, --{"deriv", ""}, {"note", "not"}, {"note_plain", "not-sade"}, {"other", "yê-din"}, {"source", "çavkanî"}, --tercimeyên {"worklang", "zimanê-eserê"}, {"termlang", "zimanê-termê"}, {"origlang", "zimanê-orîjînal"}, {"origworklang", "zimanê-esera-orîjînal"}, } do local canon, alias = unpack(param12_aliased) alias_with_2(alias, canon) end -- Then the date params. for _, datelike in ipairs{{"", ""}, {"orig", ""}, {"", "_published"}} do local pref, suf = unpack(datelike) for _, arg in ipairs{"date", "year", "month", "start_date", "start_year", "start_month"} do add_with_2(pref .. arg .. suf, true) end end -- Kurmancî aliases for the date params for _, date_aliased in ipairs{ {"date", "tarîx"}, {"date", "dîrok"}, {"year", "sal"}, {"month", "meh"}, {"start_date", "tarîxa-destpêkê"}, {"start_year", "sala-destpêkê"}, {"start_month", "meha-destpêkê"}, {"origdate", "tarîxa-orîjînal"}, {"origyear", "sala-orîjînal"}, {"origyear", "sala orîjînal"}, {"origmonth", "meha-orîjînal"}, {"origstart_date", "tarîxa-destpêkê-orîjînal"}, {"origstart_year", "sala-destpêkê-orîjînal"}, {"origstart_month", "meha-destpêkê-orîjînal"}, {"date_published", "tarîxa-weşandinê"}, {"year_published", "sala-weşandinê"}, {"year_published", "sala weşandinê"}, {"month_published", "meha-weşandinê"}, {"start_date_published", "tarîxa-destpêkê-weşandin"}, {"start_year_published", "sala_destpêkê-weşandin"}, {"start_month_published", "meha-destpêkê-weşandin"} } do local canon, alias = unpack(date_aliased) alias_with_2(alias, canon) end local numeric_param_suffixes = {"", "s", "_plain", "url", "_prefix"} -- Then the numeric params. for _, numeric in ipairs{"volume", "issue", "number", "line", "page", "column"} do for _, suf in ipairs(numeric_param_suffixes) do add_with_2(numeric .. suf, true) end end -- canon word -> Kurdish forms -- aliases : plain synonyms (maps straight to canon, e.g. "volume") -- sade : ezafe form used before "-sade" (canon .. "_plain") -- urlya : ezafe form used after "urlya-" (canon .. "url") local ku_numeric = { volume = {aliases = {"cild", "cîld"}, sade = "cild", urlya = "cild"}, issue = {aliases = {"hj", "hejmar"}, sade = "hejmar", urlya = "hejmarê"}, number = {aliases = {"nimare"}, sade = "nimare", urlya = "nimareyê"}, line = {aliases = {"rêz"}, sade = "rêz", urlya = "rêzê"}, page = {aliases = {"rûpel", "r"}, sade = "rûpel", urlya = "rûpelê"}, column = {aliases = {"stûn"}, sade = "stûn", urlya = "stûnê"}, } local ku_numeric_plural = { volume = "cildên", issue = "hejmarên", number = "nimareyên", line = "rêzên", page = "rûpelên", column = "stûnên", } for canon, t in pairs(ku_numeric) do for _, alias in ipairs(t.aliases) do alias_with_2(alias, canon) end alias_with_2(t.sade .. "-sade", canon .. "_plain") alias_with_2("urlya-" .. t.urlya, canon .. "url") alias_with_2("pêşgira-" .. t.urlya, canon .. "_prefix") end for canon, plural in pairs(ku_numeric_plural) do alias_with_2(plural, canon .. "s") end -- And the aliases of numeric params. for _, numeric_aliased in ipairs{{"volume", "vol"}} do local canon, alias = unpack(numeric_aliased) for _, suf in ipairs(numeric_param_suffixes) do alias_with_2(alias .. suf, canon .. suf) end end return process_params(cloned_args, params), alias_map, other_controls end local function get_origtext_params(args) local origtext, origtextlang, origsc, orignormsc if args.origtext then -- Wiktionary language codes have at least two lowercase letters followed possibly by lowercase letters and/or -- hyphens (there are more restrictions but this is close enough). Also check for nonstandard Latin etymology -- language codes (e.g. VL. or LL.). (There used to be more nonstandard codes but they have all been -- eliminated.) origtextlang, origtext = args.origtext:match("^(%l%l[%l-]*):([^ ].*)$") if not origtextlang then -- Special hack for Latin variants, which can have nonstandard etym codes, e.g. VL., LL. origtextlang, origtext = args.origtext:match("^(%uL%.):([^ ].*)$") end if not origtextlang then error("origtext= divê bi pêşgira koda zimên dest pê bike") end origtextlang = get_lang(origtextlang, nil, "allow etym") or error("origtext= divê bi pêşgira koda zimên dest pê bike") origsc = args.origsc orignormsc = args.orignormsc else for _, noparam in ipairs{"origtr", "origts", "origsc", "orignorm", "orignormsc", "origsubst", "origlb"} do if args[noparam] then error(("Nabe ku %s= bêyî origtext= were dayîn"):format(noparam)) end end end return origtext, origtextlang, origsc, orignormsc end local function get_quote(args, is_cite, source) local text = args.text local gloss = args.t local tr = args.tr local ts = args.ts local norm = args.norm local sc = args.sc local normsc = args.normsc -- Fetch original-text parameters. local origtext, origtextlang, origsc, orignormsc = get_origtext_params(args) -- If any quote-related args are present, display the actual quote; otherwise, display nothing. if text or gloss or tr or ts or norm or args.origtext then -- Pass "und" here rather than cause an error; there will be an error on mainspace, Citations, etc. pages -- in any case in source() if the language is omitted. local lang = get_first_lang(args[1] or args.lang) local termlang = args.termlang and get_first_lang(args.termlang) or lang local usex_data = { lang = lang, termlang = termlang, usex = text, sc = sc, translation = gloss, normalization = norm, normsc = normsc, transliteration = tr, transcription = ts, brackets = args.brackets, subst = args.subst, lit = args.lit, footer = args.footer, qq = parse_and_format_labels(args.lb, lang), quote = "quote-meta", orig = origtext, origlang = origtextlang, origsc = origsc, orignorm = args.orignorm, orignormsc = orignormsc, origtr = args.origtr, origts = args.origts, origsubst = args.origsubst, origqq = parse_and_format_labels(args.origlb, lang), noreq = args.noreq, nocat = is_cite or args.nocat, source = source } if args.inline then -- don't let usex format the footer, otherwise it gets inlined with the rest of the quoted text usex_data.footer = nil usex_data.inline = 1 text = format_usex(usex_data) if text then text = " “" .. text .. "”" else text = "" end if args.footer then text = text .. "<dl><dd>" .. args.footer .. "</dd></dl>" end else text = format_usex(usex_data) end elseif args.footer then text = "<dl><dd>" .. args.footer .. "</dd></dl>" end return text end -- External interface, meant to be called from a template. Replaces {{quote-meta}} and meant to be the primary -- interface for {{quote-*}} templates. function export.quote_t(frame) local args, alias_map, other_controls = get_args(frame.args, frame:getParent().args, "require_lang") if args.ascite then return export.cite_t(frame) end return show_quote(args, alias_map, other_controls) end function show_quote(args, alias_map, other_controls) local parts = {} -- kuwikt always hides the trailing colon on quote_t. args.nocolon = true insert(parts, get_quote(args, false, export.source(args, alias_map, nil, other_controls))) local retval = concat(parts) return deprecated and frame:expandTemplate({ title = "check deprecated lang param usage", args = {retval, lang = args.lang}, }) or retval end -- External interface, meant to be called from a template. Replaces {{cite-meta}} and meant to be the primary -- interface for {{cite-*}} templates. function export.cite_t(frame) local parent_args = {} for k, v in pairs(frame:getParent().args) do parent_args[k] = v end -- use "und" as lang if none provided at all (not even via the deprecated named lang=/ziman=). Don't synthesize -- this when lang=/ziman= was used, or the deprecated-shift logic in process_type_aliases() will misread this -- placeholder as a genuine shifted positional value (e.g. type=book's position-2-is-year), duplicating it into -- a real alias like sal=. if parent_args[1] == nil and not (ine(parent_args.lang) or ine(parent_args.ziman)) then parent_args[1] = "und" end local args, alias_map, other_controls = get_args(frame.args, parent_args) if args.asquote then return show_quote(args, alias_map, other_controls) end return show_cite(args, alias_map, other_controls) end function show_cite(args, alias_map, other_controls) local parts = {} -- don't nag for translations if args.text and not args.t then args.noreq = 1 end local len_visible = args.text and ulen((args.text:gsub("<[^<>]+>", ""))) or 0 if len_visible == 0 then if not args.t or args.t == "-" then args.nocolon = true end elseif args.inline == nil then args.inline = not ( args.block_text or len_visible > 300 or (args.t and not args.t == "-" and len_visible < 80) or string.match(args.text, "<br>") ) end insert(parts, '<span class="citation-whole"><span class="cited-source">') insert(parts, export.source(args, alias_map, "format_as_cite", other_controls)) insert(parts, "</span>") insert(parts, get_quote(args, "is_cite")) insert(parts, "</span>") local retval = concat(parts) return deprecated and frame:expandTemplate({ title = "check deprecated lang param usage", args = {retval, lang = args.lang}, }) or retval end -- External interface, meant to be called from a template. function export.call_quote_template(frame) return export.call_template(frame) end -- External interface, for calling a template with overloaded parameters. function export.overload(frame) local iargs, overloaded_args = process_params(frame.args, { [1] = {required = true} }, true) local parent_args = frame:getParent().args for k, v in pairs(parent_args) do overloaded_args[k] = v end return frame:expandTemplate{title = iargs[1], args = overloaded_args} end -- External interface, meant to be called from a template. function export.call_template(frame) local parameter_sublist = {type = "parameter", sublist = true} local iargs, other_direct_args = process_params(frame.args, { ["template"] = true, ["textparam"] = parameter_sublist, ["pageparam"] = parameter_sublist, ["propagateparams"] = parameter_sublist, ["allowparams"] = {sublist = true}, -- Doesn't use type = "parameter", because any that end in :list get processed differently. }, true) local function fetch_param(source, params) for _, param in ipairs(params) do if source[param] then return source[param] end end return nil end local params = { ["text"] = true, ["passage"] = true, ["jêgirtin"] = true, ["footer"] = true, -- always propagates, but gets special formatting } -- paramaters that can be used during template declaration or included in template calls -- if the template is called with param=- it will set any declared value to nil local always_propagate = { ["brackets"] = true, ["usenodot"] = true, ["nodot"] = true, ["ascite"] = true, ["asquote"] = true, } for k,v in pairs(always_propagate) do params[k] = v end local textparam = iargs.textparam or {} for _, param in ipairs(textparam) do params[param] = true end local pageparam = iargs.pageparam or {} local pageparam1 = pageparam[1] if pageparam1 ~= nil then params["page"], params["pages"] = true, true for _, param in ipairs(pageparam) do params[param] = true end end local allowparams, allow_all, list = iargs.allowparams, false if allowparams ~= nil then for _, allow in ipairs(allowparams) do local param = allow:match("^(.*):list$") if param then if list == nil then list = {list = true} end params[scribunto_parameter_key(param)] = list elseif allow == "*" then track("no parameter checking") allow_all = true else params[scribunto_parameter_key(allow)] = true end end else local parent = frame:getParent() local template_name = parent:getTitle() local template_title = new_title(template_name) local content = template_title:getContent() local allowed_params, seen = {}, {} -- Detect all params used by the parent template. param:get_name() takes the -- parent frame arg table as an argument so that preprocessing will take -- them into account, since it will matter if the name contains another -- parameter (e.g. the outer param in "{{{foo{{{bar}}}baz}}}" will change -- depending on the value for bar=). `seen` memoizes results based on the -- raw parameter text (which is stored as a string in the parameter object), -- which avoids unnecessary param:get_name() calls, which are non-trivial. for param in find_parameters(content) do local raw = param.raw if not seen[raw] then allow = param:get_name(template_args) params[scribunto_parameter_key(allow)] = true seen[raw] = true end end end local propagateparams = iargs.propagateparams or {} for _, param in ipairs(propagateparams) do params[param] = true end local parent_args = frame:getParent().args local args = process_params(parent_args, params, allow_all) parent_args = shallow_copy(parent_args) if textparam[1] ~= "-" then other_direct_args.passage = args.text or args.passage or args["jêgirtin"] or fetch_param(args, textparam) end if not (pageparam1 == nil or pageparam1 == "-") then other_direct_args.page = fetch_param(args, pageparam) or args.page or other_direct_args.page or nil other_direct_args.pages = args.pages or other_direct_args.pages or nil if other_direct_args.page == "-" then other_direct_args.page = nil end if other_direct_args.pages == "-" then other_direct_args.pages = nil end end if args.footer then other_direct_args.footer = frame:expandTemplate{title = "small", args = {args.footer}} end for param, _ in pairs(always_propagate) do if args[param] == "-" then other_direct_args[param] = nil else other_direct_args[param] = args[param] or other_direct_args[param] or nil end end -- authorlink=- can be used to prevent copying of author= to authorlink= but we don't want to propagate this to -- the actual {{quote-*}} code. if other_direct_args.authorlink == "-" then other_direct_args.authorlink = nil end for _, param in ipairs(propagateparams) do if args[param] then other_direct_args[param] = args[param] end end return frame:expandTemplate{title = iargs.template or "quote-book", args = other_direct_args} end local paramdoc_param_replacements = { passage = { param_with_synonym = "<<synonym>>, {{para|text}}, or {{para|passage}}", param_no_synonym = "{{para|text}} or {{para|passage}}", text = [=[ * <<params>> – the passage to be quoted.]=], }, page = { param_with_synonym = "<<synonym>> or {{para|page}}, or {{para|pages}}", param_no_synonym = "{{para|page}} or {{para|pages}}", text = [=[ * <<params>> – '''mandatory in some cases''': the page number(s) quoted from. When quoting a range of pages, note the following: ** Separate the first and last pages of the range with an [[en dash]], like this: {{para|pages|10–11}}. ** You must also use {{para|pageref}} to indicate the page to be linked to (usually the page on which the Wiktionary entry appears). : This parameter must be specified to have the template link to the online version of the work.]=], }, page_with_roman_preface = { param_with_synonym = {"inherit", "page"}, param_no_synonym = {"inherit", "page"}, text = [=[ * <<params>> – '''mandatory in some cases''': the page number(s) quoted from. If quoting from the preface, specify the page number(s) in lowercase Roman numerals. When quoting a range of pages, note the following: ** Separate the first and last page number of the range with an [[en dash]], like this: {{para|pages|10–11}} or {{para|pages|iii–iv}}. ** You must also use {{para|pageref}} to indicate the page to be linked to (usually the page on which the Wiktionary entry appears). : This parameter must be specified to have the template link to the online version of the work.]=], }, chapter = { param_with_synonym = "<<synonym>> or {{para|chapter}}", param_no_synonym = "{{para|chapter}}", text = [=[ * <<params>> – the name of the chapter quoted from.]=], }, roman_chapter = { param_with_synonym = {"inherit", "chapter"}, param_no_synonym = {"inherit", "chapter"}, text = [=[ * <<params>> – the chapter number quoted from in uppercase Roman numerals.]=], }, arabic_chapter = { param_with_synonym = {"inherit", "chapter"}, param_no_synonym = {"inherit", "chapter"}, text = [=[ * <<params>> – the chapter number quoted from in Arabic numerals.]=], }, trailing_params = { text = [=[ * {{para|footer}} – a comment on the passage quoted. * {{para|brackets}} – use {{para|brackets|on}} to surround a quotation with [[bracket#Noun|brackets]]. This indicates that the quotation either contains a mere mention of a term (for example, “some people find the word '''''manoeuvre''''' hard to spell”) rather than an actual use of it (for example, “we need to '''manoeuvre''' carefully to avoid causing upset”), or does not provide an actual instance of a term but provides information about related terms.]=], }, } function export.paramdoc(frame) local parargs = frame:getParent().args local args = process_params(parargs, { [1] = true, }) local text = args[1] local function do_param_with_optional_synonym(param, text_to_sub, paramtext_synonym, paramtext_no_synonym) local function sub_param(synonym) local subbed_paramtext if synonym then subbed_paramtext = paramtext_synonym:gsub("<<synonym>>", "{{para|" .. replacement_escape(synonym) .. "}}") else subbed_paramtext = paramtext_no_synonym end return frame:preprocess((text_to_sub:gsub("<<params>>", replacement_escape(subbed_paramtext)))) end text = text:gsub("<<" .. pattern_escape(param) .. ">>", function() return sub_param() end) text = text:gsub("<<" .. pattern_escape(param) .. ":(.-)>>", sub_param) end local function fetch_text(param_to_replace, key) local spec = paramdoc_param_replacements[param_to_replace] local val = spec[key] if type(val) == "string" then return val end if type(val) == "table" and val[1] == "inherit" then return fetch_text(val[2], key) end error( "Internal error: Unrecognized value for param '" .. param_to_replace .. "', key '" .. key .. "': " .. mw.dumpObject(val) ) end for param_to_replace, spec in pairs(paramdoc_param_replacements) do if not spec.param_no_synonym then -- Text to substitute directly. text = text:gsub("<<" .. pattern_escape(param_to_replace) .. ">>", function() return frame:preprocess(fetch_text(param_to_replace, "text")) end) else do_param_with_optional_synonym( param_to_replace, fetch_text(param_to_replace, "text"), fetch_text(param_to_replace, "param_with_synonym"), fetch_text(param_to_replace, "param_no_synonym") ) end end -- Remove final newline so template code can add a newline after invocation text = text:gsub("\n$", "") return text end return export cvfa2ky5isq6yew252yg28jkb3uyioz 6329852 6329844 2026-08-12T23:58:02Z Wikihez 7344 Restored revision 6329830 by [[Special:Contributions/Wikihez|Wikihez]] ([[User talk:Wikihez|talk]]) ([[:m:User:Xiplus/TwinkleGlobal|TwinkleGlobal]]) 6329852 Scribunto text/plain --[=[ This module contains functions to implement quote-* templates. Author: Benwing2; conversion into Lua of {{quote-meta/source}} template, written by Sgconlaw with some help from Erutuon and Benwing2. The main interface is quote_t(). Note that the source display is handled by source(), which reads both the arguments passed to it *and* the arguments passed to the parent template, with the former overriding the latter. ]=] local export = {} --[=[ FIXME: 1. Dates like `1 march 2025` with the day of the month being 1 and the month lowercased are treated as month-year-only. The relevant code checks for a capitalized word; it should probably instead check for the actual month names or abbrevs. ]=] -- Named constants for all modules used, to make it easier to swap out sandbox versions. local check_isxn_module = "Module:check isxn" local debug_track_module = "Module:debug/track" local en_utilities_module = "Module:en-utilities" local italics_module = "Module:italics" local labels_module = "Module:labels" local languages_module = "Module:languages" local languages_error_module = "Module:languages/error" local links_module = "Module:links" local number_utilities_module = "Module:number utilities" local parameters_module = "Module:parameters" local parse_utilities_module = "Module:parse utilities" local qualifier_module = "Module:qualifier" local roman_numerals_module = "Module:roman numerals" local scribunto_module = "Module:Scribunto" local script_utilities_module = "Module:script utilities" local scripts_module = "Module:scripts" local string_pattern_escape_module = "Module:string/patternEscape" local string_replacement_escape_module = "Module:string/replacementEscape" local string_utilities_module = "Module:string utilities" local table_module = "Module:table" local template_parser_module = "Module:template parser" local usex_module = "Module:usex" local usex_templates_module = "Module:usex/templates" local utilities_module = "Module:utilities" local yesno_module = "Module:yesno" local concat = table.concat local insert = table.insert local new_title = mw.title.new local remove = table.remove local require = require local sort = table.sort local u = mw.ustring.char local ugsub = mw.ustring.gsub local umatch = mw.ustring.match local unpack = unpack or table.unpack -- Lua 5.2 compatibility -- Use HTML entities here to avoid parsing issues (esp. with brackets) local SEMICOLON_SPACE = "&#59; " local SPACE_LBRAC = " &#91;" local RBRAC = "&#93;" local TEMP_LT = u(0xFFF1) local TEMP_GT = u(0xFFF2) local TEMP_LBRAC = u(0xFFF3) local TEMP_RBRAC = u(0xFFF4) local TEMP_SEMICOLON = u(0xFFF5) local function apply_subst(...) apply_subst = require(usex_module).apply_subst return apply_subst(...) end local function check_isbn(...) check_isbn = require(check_isxn_module).check_isbn return check_isbn(...) end local function check_issn(...) check_issn = require(check_isxn_module).check_issn return check_issn(...) end local function debug_track(...) debug_track = require(debug_track_module) return debug_track(...) end local function decode_entities(...) decode_entities = require(string_utilities_module).decode_entities return decode_entities(...) end local function embedded_language_links(...) embedded_language_links = require(links_module).embedded_language_links return embedded_language_links(...) end local function escape_wikicode(...) escape_wikicode = require(parse_utilities_module).escape_wikicode return escape_wikicode(...) end local function find_best_script_without_lang(...) find_best_script_without_lang = require(scripts_module).findBestScriptWithoutLang return find_best_script_without_lang(...) end local function find_parameters(...) find_parameters = require(template_parser_module).find_parameters return find_parameters(...) end local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function format_processed_labels(...) format_processed_labels = require(labels_module).format_processed_labels return format_processed_labels(...) end local function format_qualifier(...) format_qualifier = require(qualifier_module).format_qualifier return format_qualifier(...) end local function format_usex(...) format_usex = require(usex_module).format_usex return format_usex(...) end local function get_lang(...) get_lang = require(languages_module).getByCode return get_lang(...) end local function get_number(...) get_number = require(number_utilities_module).get_number return get_number(...) end local function get_script(...) get_script = require(scripts_module).getByCode return get_script(...) end local function gsplit(...) gsplit = require(string_utilities_module).gsplit return gsplit(...) end local function page_should_be_ignored(...) page_should_be_ignored = require(usex_templates_module).page_should_be_ignored return page_should_be_ignored(...) end local function parse_inline_modifiers(...) parse_inline_modifiers = require(parse_utilities_module).parse_inline_modifiers return parse_inline_modifiers(...) end local function parse_inline_modifiers_from_segments(...) parse_inline_modifiers_from_segments = require(parse_utilities_module).parse_inline_modifiers_from_segments return parse_inline_modifiers_from_segments(...) end local function parse_multi_delimiter_balanced_segment_run(...) parse_multi_delimiter_balanced_segment_run = require(parse_utilities_module).parse_multi_delimiter_balanced_segment_run return parse_multi_delimiter_balanced_segment_run(...) end local function parse_term_with_lang(...) parse_term_with_lang = require(parse_utilities_module).parse_term_with_lang return parse_term_with_lang(...) end local function pattern_escape(...) pattern_escape = require(string_pattern_escape_module) return pattern_escape(...) end local function pluralize(...) pluralize = require(en_utilities_module).pluralize return pluralize(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function remove_links(...) remove_links = require(links_module).remove_links return remove_links(...) end local function roman_to_arabic(...) roman_to_arabic = require(roman_numerals_module).roman_to_arabic return roman_to_arabic(...) end local function replacement_escape(...) replacement_escape = require(string_replacement_escape_module) return replacement_escape(...) end local function scribunto_parameter_key(...) scribunto_parameter_key = require(scribunto_module).scribunto_parameter_key return scribunto_parameter_key(...) end local function serial_comma_join(...) serial_comma_join = require(table_module).serialCommaJoin return serial_comma_join(...) end local function shallow_copy(...) shallow_copy = require(table_module).shallowCopy return shallow_copy(...) end local function split(...) split = require(string_utilities_module).split return split(...) end local function split_alternating_runs(...) split_alternating_runs = require(parse_utilities_module).split_alternating_runs return split_alternating_runs(...) end local function split_and_process_raw_labels(...) split_and_process_raw_labels = require(labels_module).split_and_process_raw_labels return split_and_process_raw_labels(...) end local function split_on_comma(...) split_on_comma = require(parse_utilities_module).split_on_comma return split_on_comma(...) end local function tag_text(...) tag_text = require(script_utilities_module).tag_text return tag_text(...) end local function tag_transcription(...) tag_transcription = require(script_utilities_module).tag_transcription return tag_transcription(...) end local function tag_translit(...) tag_translit = require(script_utilities_module).tag_translit return tag_translit(...) end local function ulen(...) ulen = require(string_utilities_module).len return ulen(...) end local function unitalicize_brackets(...) unitalicize_brackets = require(italics_module).unitalicize_brackets return unitalicize_brackets(...) end local function upper(...) upper = require(string_utilities_module).upper return upper(...) end local function usub(...) usub = require(string_utilities_module).sub return usub(...) end local function yesno(...) yesno = require(yesno_module) return yesno(...) end local function track(page) debug_track("quote/" .. page) end local function maintenance_line(text) return '<span class="maintenance-line">(' .. text .. ")</span>" end local function isbn(text) return "[[Special:BookSources/" .. text .. "|→ISBN]]" .. check_isbn( text, '&nbsp;<span class="error" style="font-size:88%">Invalid&nbsp;ISBN</span>[[Category:Pages with ISBN errors]]' ) end local function issn(text) return "[https://www.worldcat.org/issn/" .. text .. " →ISSN]" .. check_issn( text, '&nbsp;<span class="error" style="font-size:88%">Invalid&nbsp;ISSN</span>[[Category:Pages with ISSN errors]]' ) end local function lccn(text) text = text:gsub(" ", "") if text:find("-") then -- old-style LCCN; reformat per request by [[User:The Editor's Apprentice]] local prefix, part1, part2 = text:match("^(.-)(%d+)%-(%d+)$") if prefix then if ulen(part2) < 6 then part2 = ("0"):rep(6 - ulen(part2)) .. part2 end text = prefix .. part1 .. part2 end end return "[https://lccn.loc.gov/" .. mw.uri.encode(text) .. " →LCCN]" end local function format_date(text) -- Localized formatDate translates month names, unlike {{#formatdate:}}. local language = mw.getContentLanguage() local ok, date = pcall(language.formatDate, language, "j F Y", text) if ok then return date end return mw.getCurrentFrame():callParserFunction("#formatdate", text, "dmy") end -- Parse a raw lb= param (or nil) to individual label info objects and then concatenate them appropriately into a -- qualifier input, respecting flags like `omit_preComma` and `omit_postSpace` in the label specs. local function parse_and_format_labels(raw_lb, lang) if not raw_lb then return nil end local labels = split_and_process_raw_labels{labels = raw_lb, lang = lang, nocat = true} labels = format_processed_labels{labels = labels, lang = lang, no_ib_content = true} if labels ~= "" then -- not sure labels can be an empty string but it seems possible in some circumstances return {labels} end end -- Convert a comma-separated list of language codes to a comma-separated list of language names. `fullname` is the -- name of the parameter from which the list of language codes was fetched. local function format_langs(langs) local names = {} for i, lang in ipairs(langs) do names[i] = lang:getCanonicalName() end if #names == 1 then return names[1] end return serial_comma_join(names) end local function get_first_lang(langs) return langs[1] or get_lang("und") end --[=[ Normally we parse off inline modifiers and language code prefixes in various places, e.g. he:מרים<tr:Miryem>. But we exclude HTML entries with <span ...>, <i ...>, <br/> or similar in it, caused by wrapping an argument in {{l|...}}, {{lang|...}} or similar. Basically, all tags of the sort we parse here should consist of a less-than sign, plus letters, plus a colon, e.g. <tr:...>, so if we see a tag on the outer level that isn't in this format, we don't try to parse it. The restriction to the outer level is to allow generated HTML inside of e.g. qualifier modifiers, such as foo<q:similar to {{m|fr|bar}}> (if we end up supporting such modifiers). Also exclude things that look like URL's from being parsed as having language code prefixes. ]=] local function val_should_not_be_parsed_for_annotations(val) return val:find("^[^<]*<%l*[^%l:]") or val:find("^%l+://") end local param_mods = { t = { -- <t:...> and <gloss:...> are aliases. item_dest = "gloss", }, gloss = {}, -- Kurmanji aliases of <t:...>/<gloss:...>. w = { item_dest = "gloss", }, werger = { item_dest = "gloss", }, tercime = { item_dest = "gloss", }, alt = {}, -- Kurmanji alias of <alt:...>. cuda = { item_dest = "alt", }, tr = {}, ts = {}, subst = {}, sc = {type = "script"}, f = { convert = function(arg, parse_err) local prefix, val = arg:match("^(.-):([^ ].*)$") if not prefix then prefix = "" val = arg end local tags, sc_code, sc = prefix:match("^(.*)/(.-)$") if sc_code then sc = get_script(sc_code) or require(languages_error_module)(sc_code, parse_err, "script code", nil, "not real lang") else tags = prefix end local quals if tags ~= "" then quals = split_on_comma(tags) for i, qual in ipairs(quals) do local obj = get_lang(qual, nil, "allow etym") or get_script(qual) quals[i] = obj or qual end end return { quals = quals, sc = sc, val = val, } end, store = "insert", }, q = {}, qq = {}, } local function generate_obj_annotated_text(text, parse_err, paramname) local obj = {} if text:find(":[^ ]") or text:find("%[%[") then local display, is_wikipedia_wikisource obj.text, obj.lang, obj.link, display, is_wikipedia_wikisource = parse_term_with_lang { term = text, parse_err = parse_err, paramname = paramname } -- HACK: If object is a Wikipedia or Wikisource link, we need to convert it to a two-part link -- to avoid the w: or s: prefix showing. We should probably avoid this by calling -- language_link() (in [[Module:links]]) in format_annotated_text() instead of the hacky stuff -- that we currently do; but we need to test that carefully to make sure it doesn't do things like -- munge % signs. if is_wikipedia_wikisource and not obj.text:find("%[%[") and not obj.text:find("%]%]") then -- Don't directly set .alt, because then if the user specifies <alt:...>, it will cause an error in -- parse_inline_modifiers(). obj.display = display end else obj.text = text obj.link = text end return obj end --[=[ Parse a textual property that may be in a foreign language or script and may be annotated with a language prefix and/or inline modifiers. `val` is the value of the parameter and `fullname` is the name of the parameter from which the value was retrieved. `explicit_gloss`, if specified and non-nil, overrides any gloss specified using the <t:...> or <gloss:...> inline modifier. If `val` is nil, the return value of this function is nil. Otherwise it is parsed for a language prefix (e.g. 'ar:مُؤَلِّف') and inline modifiers (e.g. 'ar:مُؤَلِّف<t:Author>'), and the return value is an object with the following fields: `lang`: The language object corresponding to the language prefix, if specified, or nil if no language prefix is given. `text`: The text after stripping off any language prefix and inline modifiers. `link`: The link part of the text if it consists of a two-part link; otherwise, same as `text`. `alt`: Display text specified using the <alt:...> modifier, if given; otherwise, nil. `subst`: Substitutions used to generate the transliteration, in the same format as the subst= parameter. `sc`: The script object corresponding to the <sc:...> modifier, if given; otherwise nil. `tr`: The transliteration corresponding to the <tr:...> modifier, if given; otherwise nil. `ts`: The transcription corresponding to the <ts:...> modifier, if given; otherwise nil. `gloss`: The gloss/translation corresponding to the `explicit_gloss` parameter (if given and non-nil), otherwise the <t:...> or <gloss:...> modifiers if given, otherwise nil. `f`: Foreign versions of the text. `q`: Left qualifiers. `qq`: Right qualifiers. Note that as a special case, if `val` contains HTML tags at the top level (e.g. '<span class="Arab">...</span>', as might be generated by specifying {{lang|ar|مُؤَلِّف}}), no language prefix or inline modifiers are parsed, and the return value has the `noscript` field set to true, which tells format_annotated_text() not to try to identify the script of the text and CSS-tag the text accordingly, but to leave the text untagged. This object can be passed to format_annotated_text() to format a string displaying the text (appropriately script-tagged, unless `noscript` is set, as described above) and modifiers. ]=] local function parse_annotated_text(val, fullname, explicit_gloss) if not val then return nil end -- When checking for inline modifiers, exclude HTML entry with <span ...>, <i ...>, <br/> or similar in it, caused -- by wrapping an argument in {{l|...}}, {{lang|...}} or similar. Also exclude URL's from being parsed as having -- language code prefixes. See val_should_not_be_parsed_for_annotations() for more information. If we find a -- parameter value with top-level HTML in it, add 'noscript = true' to indicate that we should not try to do script -- inference and tagging. (Otherwise, e.g. if you specify {{lang|ar|مُؤَلِّف}} as the author, you'll get an extra big -- font coming from the fact that {{lang|...}} wraps the Arabic text in CSS that increases the size from the -- default, and then we do script detection and again wrap the text in the same CSS, which increases the size even -- more.) if val_should_not_be_parsed_for_annotations(val) then return {text = val, link = val, noscript = true, gloss = explicit_gloss} end local obj if val:find("<") then -- Check for inline modifier. obj = parse_inline_modifiers(val, { paramname = fullname, param_mods = param_mods, generate_obj = generate_obj_annotated_text, }) else obj = generate_obj_annotated_text(val, nil, fullname) end if explicit_gloss then obj.gloss = explicit_gloss end return obj end local html_entity_char_to_replacement = { ["<"] = TEMP_LT, [">"] = TEMP_GT, ["["] = TEMP_LBRAC, ["]"] = TEMP_RBRAC, } local function html_entity_replacement(entity, code_without_semicolon, hash, xcode, x, code) -- Try to decode the entity. If successful, Replace certain special HTML entities (those that are bracket-like) -- with single Unicode characters; otherwise, replace the semicolon with a special character so it won't get -- interpreted as a delimiter. local ch = decode_entities(entity) if ch ~= entity then return html_entity_char_to_replacement[ch] or code_without_semicolon .. TEMP_SEMICOLON end -- If the entity doesn't decode, escape it anyway iff it follows a valid format. if hash == "" then -- Any nonstandard MediaWiki-only entities have now been filtered off, so treat any non-ASCII characters as -- invalid. return xcode:match("^[^\128-\255]+$") and code_without_semicolon .. TEMP_SEMICOLON or entity elseif x == "" then return xcode:match("^%d+$") and code_without_semicolon .. TEMP_SEMICOLON or entity end return code:match("^%x+$") and code_without_semicolon .. TEMP_SEMICOLON or entity end local html_entity_replacement_to_char = { [TEMP_LT] = "&lt;", [TEMP_GT] = "&gt;", [TEMP_LBRAC] = "&#91;", [TEMP_RBRAC] = "&#93;", [TEMP_SEMICOLON] = ";", } local function undo_html_entity_replacement(txt) -- Pattern covers everything in html_entity_replacement_to_char. return (txt:gsub("\239\191[\177-\181]", html_entity_replacement_to_char)) end -- NOTE: We try hard to optimize this function for the common cases and avoid loading [[Module:parse utilities]] -- in such cases. The cases we can handle without loading [[Module:parse utilities]] are single values (no -- semicolons present) without inline modifiers or language prefixes, and multi-entity values (semicolons present) -- without (a) brackets of any kind (including parens, braces and angle brackets; angle brackets typically indicate -- inline modifiers and other brackets may protect a semicolon from being interpreted as a delimiter); -- (b) ampersands (which may indicate HTML entities, which protect a semicolon from being interpreted as a -- delimiter); and (c) colons not followed by a space (which may indicate a language prefix). local function generate_obj_multivalued_annotated_text(text, parse_err, paramname, no_undo_html_entity_replacement) local obj = generate_obj_annotated_text(text, parse_err, paramname) if not no_undo_html_entity_replacement then obj.text = undo_html_entity_replacement(obj.text) obj.link = undo_html_entity_replacement(obj.link) end return obj end --[=[ Similar to parse_annotated_text() but the parameter value may contain multiple semicolon-separated entities, each with their own inline modifiers. Some examples: * mainauthor=Paula Pattengale; Terea Sonsthagen * author=Katie Brick; J. Cody Nielsen; Greg Jao; Eric Paul Rogers; John A. Monson * author=Suzanne Brockmann; Patrick G. Lawlor (Patrick Girard); Melanie Ewbank * author=G Ristori; et al. * author=Jason Scott; zh:王晰宁<t:Wang Xining> * editors=zh:包文俊; zh:金心雯 * quotee=zh:張福運<t:Chang Fu-yun>; zh:張景文<t:Chang Ching-wen> There may be embedded semicolons within brackets, braces or parens that should not be treated as delimiters, e.g.: * author=Oliver Optic [pseudonym; {{w|William Taylor Adams}}] * author=author=Shannon Drake (pen name; {{w|Heather Graham Pozzessere}}) * author=James (the Elder;) Humphrys There may also be HTML entities with semicolons in them: * author=&#91;{{w|Gilbert Clerke}}&#93; * 2ndauthor=Martin Biddle &amp; Sally Badham * author=Peter Christen Asbj&oslash;rnsen There may be both embedded semicolons and HTML entities with semicolons in them: * author=&#91;{{w|Voltaire}} [pseudonym; François-Marie Arouet]&#93; In general we want to treat &#91; like an opening bracket and &#93; like a closing bracket. Beware that they may be mismatched: * author=Anonymous &#91;{{w|Karl Maria Kertbeny}}] Here, `val` is the value of the parameter and `fullname` is the name of the parameter from which the value was retrieved. `explicit_gloss`, if specified and non-nil, overrides any gloss specified using the <t:...> or <gloss:...> inline modifier, and `explicit_gloss_fullname` is the name of the parameter from which this value was retrieved. (If `explicit_gloss` is specified and multiple values were seen, an error results.) Return value is a list of objects of the same sort as returned by parse_annotated_text(). ]=] local function parse_multivalued_annotated_text(val, fullname, explicit_gloss, explicit_gloss_fullname) if not val then return nil end -- NOTE: In the code that follows, we use `entity` most of the time to refer to one of the semicolon-separated -- values in the multivalued param. Entities are most commonly people (typically authors, editors, translators or -- the like), but may be the names of publishers, locations, or other entities. "Entity" can also refer to HTML -- entities; in the places where this occurs, the variable name contains 'html' in it. local splitchar, english_delim if val:find("^,") then splitchar = "," english_delim = "comma" val = val:gsub("^,", "") else splitchar = ";" english_delim = "semicolon" end -- Optimization #1: No semicolons/commas or angle brackets (indicating inline modifiers). if not val:find("[<" .. splitchar .. "]") then if val_should_not_be_parsed_for_annotations(val) then return {{text = val, link = val, noscript = true}} else return {generate_obj_multivalued_annotated_text(val, nil, fullname, "no undo html entity replacement")} end end -- Optimization #2: Semicolons/commas but no angle brackets (indicating inline modifiers), braces, brackets, or -- parens (any of which would protect the semicolon/comma from interpretation as a delimiter), and no ampersand -- (which might indicate an HTML entity with a terminating semicolon, which should not be interpreted as a -- delimiter). if not val:find("[<>%[%](){}&]") then local entity_objs = {} for entity in gsplit(val, "%s*" .. splitchar .. "%s*") do if val_should_not_be_parsed_for_annotations(entity) then insert(entity_objs, { text = entity, link = entity, noscript = true }) else insert(entity_objs, generate_obj_multivalued_annotated_text(entity, nil, fullname, "no undo html entity replacement")) end end return entity_objs end -- Escape HTML entities, and get rid of directionality markers. local amp = val:find("&", nil, true) if amp then -- The pattern is more permissive than the usual entity pattern, as MediaWiki has some nonstandard entities -- that have non-ASCII characters in their codes. val = val:gsub("((&(#?)(([xX]?)([%w\128-\255]+)));)", html_entity_replacement) end -- Pattern covers left-to-right (U+200E) and right-to-left (U+200F). val = val:gsub("\226\128[\142\143]", "") -- Parse balanced segment runs, treating HTML entities for left and right bracket and left and right angle bracket -- as matching literal versions of the same characters. local entity_runs = parse_multi_delimiter_balanced_segment_run( val, {{"[" .. TEMP_LBRAC, "]" .. TEMP_RBRAC}, {"(", ")"}, {"{", "}"}, {"<" .. TEMP_LT, ">" .. TEMP_GT}}, true ) if type(entity_runs) == "string" then local undo_val = undo_html_entity_replacement(val) -- Parse error due to unbalanced delimiters. Don't throw an error here; instead, don't attempt to parse off -- any annotations, but return the value directly, maybe allowing script tagging (not allowing it if it appears -- the text is already script-tagged). return {{text = undo_val, link = undo_val, noscript = not not val_should_not_be_parsed_for_annotations(val)}} end -- Split on semicolon (or comma), possibly surrounded by whitespace. local separated_groups = split_alternating_runs(entity_runs, "%s*" .. splitchar .. "%s*") -- Process each value. local entity_objs = {} for _, entity_group in ipairs(separated_groups) do -- Rejoin runs that don't involve <...>. local j = 2 while j <= #entity_group do if not entity_group[j]:find("^<.*>$") then entity_group[j - 1] = entity_group[j - 1] .. entity_group[j] .. entity_group[j + 1] remove(entity_group, j) remove(entity_group, j) else j = j + 2 end end local oneval = undo_html_entity_replacement(concat(entity_group)) -- When checking for inline modifiers, exclude HTML entry with <span ...>, <i ...>, <br/> or similar in it, -- caused by wrapping an argument in {{l|...}}, {{lang|...}} or similar. Also exclude URL's from being parsed -- as having language code prefixes. This works analogously to parse_annotated_text(); see there for more. if val_should_not_be_parsed_for_annotations(oneval) then insert(entity_objs, { text = oneval, link = oneval, noscript = true }) else local obj if #entity_group > 1 then -- Check for inline modifier. obj = parse_inline_modifiers_from_segments({ group = entity_group, arg = oneval, props = { paramname = fullname, param_mods = param_mods, generate_obj = generate_obj_multivalued_annotated_text, }, }) else obj = generate_obj_multivalued_annotated_text(entity_group[1], nil, fullname) end insert(entity_objs, obj) end end if explicit_gloss then if #entity_objs > 1 then error( ( "Nabe ku |%s= digel çend unsirên ku bi %s ve hatine veqetandin di |%s= de bi hev re were bikaranîn; " .. "ji bo her unsirê modîfîkatora hundirîn a <t:...> bi kar bîne" ):format(explicit_gloss_fullname, english_delim, fullname) ) end entity_objs[1].gloss = explicit_gloss end return entity_objs end --[=[ Format a text property that may be in a foreign language or script, along with annotations. This is conceptually similar to the full_link() function in [[Module:links]], but displays the annotations in a different format that is more appropriate for bibliographic entries. The output looks like this: TEXT [TRANSLIT /TRANSCRIPTION/, GLOSS] `textobj` is as returned by parse_annotated_text(). `tag_text_func`, if supplied, is a function of one argument to further wrap the text after it has been processed and CSS-tagged appropriately, directly before insertion. `tag_gloss_func` is a similar function for the gloss. ]=] local function format_annotated_text(textobj, tag_text_func, tag_gloss_func) if not textobj then return nil end local text, link = textobj.text, textobj.link local subst, tr, ts, f, gloss = textobj.subst, textobj.tr, textobj.ts, textobj.f, textobj.gloss -- Retrieve the display text, either specified by the user (.alt) or by parse_annotated_text() (.display) when a -- Wikipedia link is given. local alt = textobj.alt or textobj.display if alt then if link:find("%[%[") or link:find("%]%]") then local errmsg = ("Niha lînkên di hundirê '%s' de, digel nivîsa <alt:...> '%s', nayên piştgirîkirin"):format(link, alt) error(escape_wikicode(errmsg)) end text = ("[[%s|%s]]"):format(link, alt) end -- See above for `noscript`, meaning HTML was found in the text value, probably generated using {{lang|...}}. -- {{lang}} already script-tags the text and processes embedded language links, so we don't want to do it again (in -- fact, the code below within the if-clause is similar to what {{lang}} does). In such a case, an explicit language -- won't be available and find_best_script_without_lang() may not be accurate, so we can't do automatic transliteration. if not textobj.noscript then local lang = textobj.lang -- As an optimization, don't do script detection on an argument that contains only ASCII. local sc = textobj.sc or lang and lang:findBestScript(text) or not text:find("^[ -~]$") and find_best_script_without_lang(text) or nil -- As an optimization, don't do any of the following if there's no language, script, translit or transcription, -- as will be the case with simple ASCII values. if lang or sc or tr or ts then if not lang then lang = get_lang("und") end if tr == "-" then tr = nil elseif not tr and sc and not sc:getCode():find("Lat") then -- Latn, Latf, Latg, pjt-Latn -- might return nil local text_for_tr = text if subst then text_for_tr = apply_subst(text_for_tr, subst) else text_for_tr = remove_links(text) end tr = (lang:transliterate(text_for_tr, sc)) end if text:find("%[%[") then -- FIXME: embedded_language_links() replaces % signs with their URL-encoded equivalents, -- which messes up URL's that may be present (e.g. if chapterurl= is given). IMO this -- should not happen, and embedded_language_links() should do nothing if no embedded links -- are present. To work around this, only call embedded_language_links() when there are -- embedded links present. text = embedded_language_links({ term = text, lang = lang, sc = sc, }) end if lang:getCode() ~= "und" or sc:getCode() ~= "Latn" then text = tag_text(text, lang, sc) end if tr then -- Should we link to the transliteration of languages with lang:link_tr()? Probably not because `text` is not -- likely to be a term that has an entry. tr = tag_translit(tr, lang, "usex") end if ts then ts = tag_transcription(ts, lang, "usex") end end end text = unitalicize_brackets(text) if tag_text_func then text = tag_text_func(text) end local parts = {} if textobj.q then insert(parts, format_qualifier(textobj.q) .. " ") end insert(parts, text) if tr or ts or f or gloss then insert(parts, SPACE_LBRAC) local subparts = {} if tr or ts then local tr_ts if ts then ts = "/" .. ts .. "/" end if tr and ts then tr_ts = tr .. " " .. ts else tr_ts = tr or ts end insert(subparts, tr_ts) end if f then for _, ff in ipairs(f) do local sc = ff.sc local lang if not sc and ff.quals then local qual = ff.quals[1] if type(qual) == "string" then -- do nothing; we'll do script detection farther down elseif qual:hasType("script") then sc = qual else -- language sc = qual:findBestScript(ff.val) lang = qual end end if not lang then lang = get_lang("und") end sc = sc or find_best_script_without_lang(ff.val) local val = embedded_language_links({ term = ff.val, lang = lang, sc = sc, }) if lang:getCode() ~= "und" or sc:getCode() ~= "Latn" then val = tag_text(val, lang, sc) end local qual_prefix if ff.quals then for i, qual in ipairs(ff.quals) do if type(qual) ~= "string" and (qual:hasType("script") or qual:hasType("language")) then ff.quals[i] = qual:getCanonicalName() end end qual_prefix = concat(ff.quals, "/") .. ": " else qual_prefix = "" end insert(subparts, qual_prefix .. val) end end if gloss then gloss = '<span class="e-translation">' .. gloss .. "</span>" gloss = unitalicize_brackets(gloss) if tag_gloss_func then gloss = tag_gloss_func(gloss) end insert(subparts, gloss) end insert(parts, concat(subparts, ", ")) insert(parts, RBRAC) end if textobj.qq then insert(parts, " " .. format_qualifier(textobj.qq)) end return concat(parts) end --[=[ Format a multivalued text property that may be in a foreign language or script, along with annotations. This is the multivalued analog to format_annotated_text(), and formats each individual entity using format_annotated_text(), joining the results with `delimiter`, which defaults to ", ". It `delimiter` is "and" or "or", join the results using serial_comma_join() with the specified conjunction. `textobjs` is as returned by parse_multivalued_annotated_text(). `tag_text_func` and `tag_gloss_func` are as in format_annotated_text(). ]=] local function format_multivalued_annotated_text(textobjs, delimiter, tag_text_func, tag_gloss_func) if not textobjs then return nil end if #textobjs == 1 then return format_annotated_text(textobjs[1], tag_text_func, tag_gloss_func) end local parts = {} for _, textobj in ipairs(textobjs) do insert(parts, format_annotated_text(textobj, tag_text_func, tag_gloss_func)) end -- Change delimiter to semicolon if the items themselves contain commas (e.g., in ", Jr.") local use_semicolon = false for _, obj in ipairs(textobjs) do -- Use remove_links to ignore commas in links if obj.text and remove_links(obj.text):find(", ") then use_semicolon = true break end end local n = #parts if n > 0 and parts[n]:match("^'*et al[.']*$") then -- Special handling for 'et al.' parts[n] = "''et al.''" if n == 2 then -- author et al. return concat(parts, " ") else -- author 1, author 2, et al. return concat(parts, (use_semicolon and "; ") or ", ") end if delimiter == "and" or delimiter == "or" then delimiter = ", " end return concat(parts, delimiter) end if delimiter == "and" or delimiter == "or" then local conj_translations = {["and"] = "û", ["or"] = "an"} return serial_comma_join(parts, {conj = conj_translations[delimiter]}) end return concat(parts, delimiter or ((use_semicolon and "; ") or ", ")) end -- Fancy version of ine() (if-not-empty). Converts empty string to nil, but also strips leading/trailing space. local function ine(arg) if not arg then return nil elseif type(arg) ~= "string" then return arg end arg = mw.text.trim(arg) if arg == "" then return nil end return arg end local abbrs = { ["a."] = {anchor = "a.", display = "a.", full = "ante"}, ["c."] = {anchor = "c.", display = "~", full = "nêzîkî"}, ["p."] = {anchor = "p.", display = "p.", full = "post"}, } -- Patterns recognized at the start of a date/year spec, each mapped to the key into `abbrs` it stands for. -- Checked in order, so longer/more specific prefixes should come before shorter ones that could be a substring -- of them. local abbr_prefix_patterns = { {pattern = "^nêzîkî%s+", key = "c."}, {pattern = "^c%.%s*", key = "c."}, {pattern = "^a%.%s*", key = "a."}, {pattern = "^p%.%s*", key = "p."}, } -- Process prefixes 'a.' (ante), 'c.' (circa; also recognizes the Kurdish word 'nêzîkî') and 'p.' (post) at the -- beginning of an arbitrary date or year spec. Returns two values, the formatted version of the prefix and the -- date spec minus the prefix. If no prefix is found, returns an empty string and the full date. local function process_ante_circa_post(date) for _, prefix_spec in ipairs(abbr_prefix_patterns) do if umatch(date, prefix_spec.pattern) then local abbr = abbrs[prefix_spec.key] local abbr_prefix = "''[[Appendix:Glossary#" .. abbr.anchor .. '|<abbr title="' .. abbr.full .. '">' .. abbr.display .. "</abbr>]]'' " -- Remove the matched prefix (letter/word, period if any, and trailing space) from the date parameter. date = ugsub(date, prefix_spec.pattern, "") return abbr_prefix, date end end return "", date end -- Format the arguments that specify the date of the quotation. These include the following: -- |date=: The date. If |start_date= is given, this is the end date. -- |year=, |month=: Year and month of quotation date or end of range, if |date= isn't given. -- |start_date=: The start date, to specify a range. -- |start_year=, |start_month=: Year and month of start of range, if |start_date= isn't given. -- |accessdate=: Date a website was accessed; processed if no other date was given. -- |nodate=: Indicate that no date is present; otherwise a maintenance line will be displayed if there is no date. -- -- If `parampref` and/or `paramsuf` are given, this modifies all the date arguments accordingly. For example, if -- `parampref` == "orig" and `paramsuf` is omitted, the date is specified using |origdate= or |origyear=/|origmonth=, -- and the start of the range is |origstart_date=, etc. Similarly, if `parampref` is omitted and `paramsuf` is -- "_published", the date is specified using |date_published= or |year_published=/|month_published=, and the start of -- the range is |start_date_published=, etc. -- -- `a` and `get_full_paramname` are functions with the same interpretation as the local functions of the same name in -- source(). These are used to fetch parameters and get their full names. Note that this may cause all arguments to -- have an index added to them (|date2=, |year2=, |month2=, etc.). -- -- `alias_map` is as in source() and is used to map canonical arguments to their aliases when aliases were used. -- -- If `bold_year` is given, displayed years are boldfaced unless boldface is present in the parameter value. -- -- If `maintenance_line_no_date` is specified, it should be a string that will be returned if no date is found (i.e. -- neither |date= nor |year=, or their appropriate equivalents per `parampref` and `paramsuf`, are specified, and -- neither |nodate= is given to indicate that there is no date, or |accessdate= is given). -- -- Kurdish month names, for translating dates typed with a Kurdish month (e.g. |date=9 tebax 2011) into something -- MediaWiki's date parser (which only understands English month names) can parse. -- Calendar order, {Kurdish, English} pairs. Single source of truth for both directions (Kurdish->English for -- parsing, index->English for building a date from a bare month number). local months = { {"kanûna paşîn", "January"}, {"sibat", "February"}, {"adar", "March"}, {"nîsan", "April"}, {"gulan", "May"}, {"hezîran", "June"}, {"tîrmeh", "July"}, {"tebax", "August"}, {"îlon", "September"}, {"çiriya pêşîn", "October"}, {"çiriya paşîn", "November"}, {"kanûna pêşîn", "December"}, } local kurdish_month_to_english = {} for _, pair in ipairs(months) do kurdish_month_to_english[pair[1]] = pair[2] end -- Returns two values: the formatted date and a boolean indicating whether to add a maintenance category -- [[:Category:Requests for date in LANG entries]]. The first return value will be nil if nothing is to be added -- (in which case the scond return value will always be nil). local function format_date_args( a, get_full_paramname, alias_map, parampref, paramsuf, bold_year, maintenance_line_no_date, year_last ) local output = {} parampref = parampref or "" paramsuf = paramsuf or "" local function getp(param) return a(parampref .. param .. paramsuf) end local function pname(param) local fullname = get_full_paramname(parampref .. param .. paramsuf) return alias_map[fullname] or fullname end -- Format `timestamp` (a timestamp referencing a date) according to the spec in `code`. `param` is the base name of -- the parameter from which the timestamp was fetched, for error messages. local function format_date_with_code(code, timestamp, param) local language = mw.getContentLanguage() local ok, date = pcall(language.formatDate, language, code, timestamp) if ok then return date else -- All the formats used in format_date_args() are fine, so the timestamp must be at fault. error( ( "Wextê |%s=%s (dibe ku ji forma xwe ya orjînal hatibe standardîzekirin) naxebite; li " .. "[[mw:Help:Extension:ParserFunctions##time|belgekirina fonksiyona #time]] binêre" ):format(pname(param), tostring(timestamp)) ) end end -- Try to figure out if the given timestamp has the day of the month explicitly given. We use the following -- algorithm: -- 1. Format as year-month-day; if the day is not 1, the day was explicitly given, since if only the year/month are -- given, the day shows up as 1. -- 2. If the day shows up as 1 and there isn't a 1 or 01 in the timestamp, the day wasn't explicitly given. -- 3. Otherwise, if there are three separate numbers (e.g. 2022-07-01), or two separate numbers plus a capitalized -- letter (taken as an English month, e.g. 2022 July 1), the day was explicitly given, otherwise not. -- -- `param` is the base name of the parameter from which the timestamp was fetched. local function date_has_day_specified(timestamp, param) local day = format_date_with_code("j", timestamp, param) if day ~= "1" then return true end local english_month = timestamp:find("%u") local canon_timestamp = mw.text.trim((timestamp:gsub("%D+", " "))) local seen_nums = split(canon_timestamp, " ", true) local saw_one = false for _, num in ipairs(seen_nums) do if num == "1" or num == "01" then saw_one = true break end end if not saw_one then return false end return #seen_nums >= 3 or english_month and #seen_nums >= 2 end -- Format a date with boldfaced year, as e.g. '''2023''' August 3. `explicit_day_given` indicates whether to include -- the day; if false, the return value will be e.g. '''2023''' August. `date_param` is the base name of the param -- from which the date was fetched, for error messages. local function format_bold_date(date, explicit_day_given, date_param) local day_month_code = explicit_day_given and "j F" or "F" local month_day_code = explicit_day_given and "F j" or "F" if year_last then if bold_year then -- This formats like "3 August '''2023'''" (or "August '''2023'''" if day not explicitly given). return format_date_with_code(day_month_code .. " '''Y'''", date, date_param) else -- This formats like "3 August 2023" (or "August 2023" if day not explicitly given). return format_date_with_code(day_month_code .. " Y", date, date_param) end else if bold_year then -- This formats like "'''2023''' August 3" (or "'''2023''' August" if day not explicitly given). return format_date_with_code("'''Y''' " .. month_day_code, date, date_param) else -- This formats like "2023 August 3" (or "2023 August" if day not explicitly given). return format_date_with_code("Y " .. month_day_code, date, date_param) end end end -- The formatDate method of the mw.language object behaves like the {{#time:}} parser function, which doesn't -- accept the formats "monthday monthname, year" or "year monthname monthday", but outputs garbage when it receives -- them, behavior inherited from PHP. {{#formatdate:}} magic word is more forgiving. Fix dates so that, for -- instance, the |date= parameter of {{quote-journal}} (which uses this code) and the |accessdate= parameter (which -- uses {{#formatdate:}}) accept similar date formats. See: -- * [[mw:Extension:Scribunto/Lua_reference_manual#mw.language:formatDate]] -- * [[mw:Help:Extension:ParserFunctions##time]] -- * [[mw:Help:Magic_words#Formatting]] -- `date` is the date spec from the user, which is assumed to come from a parameter whose base name ends in "date"; -- `parampref` is the prefix added to "date" to get the parameter name. local function fix_date(date, param_pref) if date then for ku, en in pairs(kurdish_month_to_english) do date = ugsub(date, ku, en) end end if tonumber(date) ~= nil then error( ("|%s= divê tarîxa temam (sal-meh-roj) bi kar bîne; ji bo salê |%s= bi kar bîne"):format( pname(param_pref .. "date"), pname(param_pref .. "year") ) ) elseif date and date:find("%s*%a+,%s*%d+%s*$") then error( ("|%s= divê tarîxa temam (sal-meh-roj) bi kar bîne; ji bo mehê |%s= û ji bo salê |%s= bikar bîne"):format( pname(param_pref .. "date"), pname(param_pref .. "month"), pname(param_pref .. "year") ) ) end if date then -- Commas are replaced with spaces to prevent parsing issues local fixed_date = ugsub(date, ", *", " ") return (ugsub(ugsub(fixed_date or date, "(%d+ %a+),", "%1"), "^(%d%d%d%d) (%a+ %d%d?)$", "%2 %1")) end end local start_date, date = fix_date(getp("start_date"), "start_"), fix_date(getp("date"), "") local year = getp("year") local month = getp("month") local start_year = getp("start_year") local start_month = getp("start_month") -- Accept M/YYYY or MM/YYYY in year= (e.g. "6/2007" or "06/2007") as a month+year date, so it renders with a -- localized month name (e.g. "2007 hezîran") instead of literally. if year and not date then local mon, yr = umatch(year, "^(%d%d?)/(%d%d%d%d)$") local mon_num = mon and tonumber(mon) if mon_num and mon_num >= 1 and mon_num <= 12 then date = months[mon_num][2] .. " " .. yr year = nil end end if date and year then error(("Divê tenê yek ji |%s= an |%s= were dayîn"):format(pname("date"), pname("year"))) end if date and month then error( ("|%s= divê tenê digel |%s= were dayîn, ne digel |%s="):format( pname("month"), pname("year"), pname("date") ) ) end if start_date and start_year then error(("Divê tenê yek ji |%s= an |%s= were dayîn"):format(pname("start_date"), pname("start_year"))) end if start_date and start_month then error( ("|%s= divê tenê digel |%s= were dayîn, ne digel |%s="):format( pname("start_month"), pname("start_year"), pname("start_date") ) ) end if (start_date or start_year) and not (date or year) then error( ("Bêyî ku |%s= an |%s=/|%s= were dayîn, |%s= an |%s=/|%s= nayê dayîn"):format( pname("start_date"), pname("start_year"), pname("start_month"), pname("date"), pname("year"), pname("month") ) ) end local dash = "&nbsp;– " local day_explicitly_given = date and date_has_day_specified(date, "date") local start_day_explicitly_given = start_date and date_has_day_specified(start_date, "start_date") -- Format a date with boldfaced year, as e.g. '''2023''' August 3 (if `explicit_day_given` specified) or -- '''2023''' August (if `explicit_day_given` not specified). If no date specified, fall back to formatting based -- on the year and (optionally) month params given in `yearobj` and `monthobj`, boldfacing the year if not already. -- `date_param` is the base name of the param from which the date was fetched, for error messages. local function format_date_or_year_month(date, yearobj, monthobj, explicit_day_given, date_param) if date then return format_bold_date(date, explicit_day_given, date_param) else -- Boldface a year spec if it's not already boldface. if bold_year and not yearobj.text:find("'''") then -- Clone the year object before modifying it because we may use it later to check against the current -- year (if we're dealing with start_year). yearobj = shallow_copy(yearobj) yearobj.text = "'''" .. yearobj.text .. "'''" if yearobj.alt then yearobj.alt = "'''" .. yearobj.alt .. "'''" end end if year_last then return (monthobj and format_annotated_text(monthobj) .. " " or "") .. format_annotated_text(yearobj) else return format_annotated_text(yearobj) .. (monthobj and " " .. format_annotated_text(monthobj) or "") end end end local yearobj = parse_annotated_text(year, pname("year")) local monthobj = parse_annotated_text(month, pname("month")) local start_yearobj = parse_annotated_text(start_year, pname("start_year")) local start_monthobj = parse_annotated_text(start_month, pname("start_month")) if start_yearobj then local abbr_prefix abbr_prefix, start_yearobj.text = process_ante_circa_post(start_yearobj.text) start_yearobj.link = select(2, process_ante_circa_post(start_yearobj.link)) insert(output, abbr_prefix) elseif yearobj then local abbr_prefix abbr_prefix, yearobj.text = process_ante_circa_post(yearobj.text) yearobj.link = select(2, process_ante_circa_post(yearobj.link)) insert(output, abbr_prefix) end if start_date or start_year then local cur_year = yearobj and yearobj.text or format_date_with_code("Y", date, "date") local cur_month = monthobj and monthobj.text or date and format_date_with_code("F", date, "date") or nil local cur_day = date and day_explicitly_given and format_date_with_code("j", date, "date") or nil local beg_year = start_yearobj and start_yearobj.text or format_date_with_code("Y", start_date, "start_date") local beg_month = start_monthobj and start_monthobj.text or start_date and format_date_with_code("F", start_date, "start_date") or nil local beg_day = start_date and start_day_explicitly_given and format_date_with_code("j", start_date, "start_date") or nil if year_last then if beg_day then insert(output, beg_day .. " " .. beg_month) else insert(output, beg_month) end if beg_year ~= cur_year then insert(output, " " .. beg_year) end else insert(output, format_date_or_year_month( start_date, start_yearobj, start_monthobj, start_day_explicitly_given, "start_date" )) end if cur_year ~= beg_year then -- Different years; insert current date in full. if beg_month or cur_month then insert(output, dash) else insert(output, "–") end insert(output, format_date_or_year_month(date, yearobj, monthobj, day_explicitly_given, "date")) elseif cur_month and cur_month ~= beg_month then local month_ins = monthobj and format_annotated_text(monthobj) or cur_month -- Same year but different months; insert current month and (if available) current day. if cur_day then insert(output, dash) if year_last then insert(output, cur_day .. " " .. month_ins) else insert(output, month_ins .. " " .. cur_day) end else if beg_day then insert(output, dash) else insert(output, "–") end insert(output, month_ins) end elseif cur_day and cur_day ~= beg_day then -- Same year and month but different days; insert current day. insert(output, "–") insert(output, cur_day) else -- Same year, month and day; or same year and month, and day not available; or same year, and month and -- day not available. Do nothing. FIXME: Should we throw an error? end if year_last and beg_year == cur_year then if cur_month then insert(output, " " .. cur_year) else insert(output, " " .. cur_year) end end elseif date or yearobj then insert(output, format_date_or_year_month(date, yearobj, monthobj, day_explicitly_given, "date")) elseif not maintenance_line_no_date then -- Not main quote date. Return nil, caller will handle. return nil, nil elseif not getp("nodate") then local accessdate = getp("accessdate") if accessdate then local explicit_day_given = date_has_day_specified(accessdate, "accessdate") insert(output, format_bold_date(accessdate, explicit_day_given, "accessdate") .. " (cara dawî hate gihiştin)") else if mw.title.getCurrentTitle().namespace ~= 10 then return maintenance_line(maintenance_line_no_date), true end return nil, nil end end return ine(concat(output)), nil end local function tag_with_cite(txt) return "<cite>" .. txt .. "</cite>" end -- Display the source line of the quote, above the actual quote text. This contains the majority of the logic of this -- module (formerly contained in {{quote-meta/source}}). function export.source(args, alias_map, format_as_cite, other_controls) local tracking_categories = {} local argslang = args[1] or args.lang if not argslang then -- For the moment, only trigger an error on mainspace pages and -- other pages that are not user pages or pages containing discussions. -- These are the same pages that appear in the appropriate tracking -- categories. User and discussion pages have not generally been -- fixed up to include a language code and so it's more helpful -- to use a maintenance line than signal an error. local current_title = mw.title.getCurrentTitle() if not (current_title.namespace == 10 or page_should_be_ignored(current_title.fullText)) then require(languages_error_module)(nil, 1) end end -- Single resolved language object for categorization at the end of this function (format_categories() needs an -- object with e.g. :makeSortKey(), not the raw argslang list). local lang = argslang and get_first_lang(argslang) -- Given a canonical param, convert it to the original parameter specified by the user (which may have been an -- alias). local function alias(param) return alias_map[param] or param end -- Wrap contributor names (authors, editors, translators, compilers, etc.) and the bolded publication year in a -- span so they can be styled distinctly (e.g. Kurdish Wiktionary's "j-pewist" highlighting). local function j_lazim(text) if not text then return nil end return '<span class="j-pewist">' .. text .. "</span>" end local output, sep = {} local overrides = other_controls and other_controls.overrides or {} -- Add text to the output. The text goes into a list, and we concatenate all the list components together at the -- end. To make it easier to handle comma-separated items, we keep track (in `sep`) of the separator (if any) that -- needs to be inserted before the next item added. For example, if we're in the "newversion" code (ind ~= ""), and -- there's no title and no URL, then the first time we add anything after the title, we don't want to add a -- separating comma because the preceding text will say "republished " or "republished as " or "translated as " or -- similar. In all- other cases, we do want to add a separating comma. The bare add() function reset the separator -- to be nothing, while the add_with_sep() function resets the separator to be the value of `next_sep` (defaulting -- to ", "), so the next time around we do add a comma to separate `text` from the preceding piece of text. local function add(text) if sep then insert(output, sep) end insert(output, text) sep = nil end local function add_with_sep(text, next_sep) add(text) sep = next_sep or ", " end -- FIXME: This is all very over-engineered, which makes it slow and memory-inefficient. -- Return a function that generates the actual parameter name associated with a base param (e.g. "author", "last"). -- The actual parameter name may have an index added (an empty string for the first set of params, e.g. author=, -- last=, or a numeric index for further sets of params, e.g. author2=, last2=, etc.). local function make_get_full_paramname(ind) return function(param) return param .. ind end end -- Function to fetch the actual parameter name associated with a base param (see make_get_full_paramname() above). -- Assigned at various times below by calling make_get_full_paramname(). We do it this way so that we can have -- wrapper functions that access params and define them only once. local get_full_paramname -- Return two values: the value of a parameter given the base param name (which may have a numeric index added), -- and the parameter name from which the value was fetched (which may be an alias, i.e. you can't necessarily fetch -- the parameter value from args[] given this name). The base parameter can be a list of such base params, which -- are checked in turn, or nil, in which case nil is returned. local function a_with_name(param) if not param then return nil elseif type(param) ~= "table" then local fullname = get_full_paramname(param) return args[fullname], alias(fullname) end for _, par in ipairs(param) do local val, fullname = a_with_name(par) if val then return val, alias(fullname) end end return nil end -- Fetch the value of a parameter given the base param name (which may have a numeric index added). The base -- parameter can be a list of such base params, which are checked in turn, or nil, in which case nil is returned. local function a(param) return (a_with_name(param)) end -- Identical to a_with_name(param) except that it verifies that no space is present. Should be used for URL's. local function aurl_with_name(param) local value, fullname = a_with_name(param) if value and value:find(" ") and not value:find("%[") then error(("URL nikare valahiyê tê de bihewîne, lê |%s=%s hate dîtin"):format(fullname, value)) end return value, fullname end -- Identical to a(param) except that it verifies that no space is present. Should be used for URL's. local function aurl(param) return (aurl_with_name(param)) end -- Convenience function to fetch a parameter that may be in a foreign language or text (and may consequently have -- a language prefix and/or inline modifiers), parse the annotations and convert the result into a formatted string. -- This is the same as parse_and_format_annotated_text() below but also returns the full param name as the second -- return value. local function parse_and_format_annotated_text_with_name(param, tag_text_func, tag_gloss_func) local val, fullname = a_with_name(param) local obj = parse_annotated_text(val, fullname) return format_annotated_text(obj, tag_text_func, tag_gloss_func), fullname end -- Convenience function to fetch a parameter that may be in a foreign language or text (and may consequently have -- a language prefix and/or inline modifiers), parse the modifiers and convert the result into a formatted string. -- This is a wrapper around parse_annotated_text() and format_annotated_text(). `param` is the base parameter name (see -- a_with_name()), `tag_text_func` is an optional function to tag the parameter text after all other processing (e.g. -- wrap in <cite>...</cite> tags), and `tag_gloss_func` is a similar function for the parameter translation/gloss. local function parse_and_format_annotated_text(param, tag_text_func, tag_gloss_func) return (parse_and_format_annotated_text_with_name(param, tag_text_func, tag_gloss_func)) end -- Convenience function to fetch a multivalued parameter that may be in a foreign language or text (and may -- consequently have a language prefix and/or inline modifiers), parse the modifiers and convert the result into a -- formatted string. This is the multivalued analog to parse_and_format_annotated_text_with_name() and returns two -- values, the formatted string and the full name of the parameter fetched. `delimiter` is as in -- format_multivalued_annotated_text(). local function parse_and_format_multivalued_annotated_text_with_name(param, delimiter, tag_text_func, tag_gloss_func) local val, fullname = a_with_name(param) local objs = parse_multivalued_annotated_text(val, fullname) local num_objs = objs and #objs or 0 return format_multivalued_annotated_text(objs, delimiter, tag_text_func, tag_gloss_func), fullname, num_objs end -- Convenience function to fetch a multivalued parameter that may be in a foreign language or text (and may -- consequently have a language prefix and/or inline modifiers), parse the modifiers and convert the result into a -- formatted string. This is the multivalued analog to parse_and_format_annotated_text(). `delimiter` is as in -- format_multivalued_annotated_text(). local function parse_and_format_multivalued_annotated_text(param, delimiter, tag_text_func, tag_gloss_func) return (parse_and_format_multivalued_annotated_text_with_name(param, delimiter, tag_text_func, tag_gloss_func)) end -- This determines whether to display "Mary Bloggs, transl." (if there's no author preceding) or "translated by -- Mary Bloggs" (if there's an author preceding). local author_outputted = false -- When formatting as a citation, the priority is to display a name and a date before the book/chapter title -- this tracks whether or not the author/date has been displayed local date_outputted, formatted_date, formatted_origdate, need_date = false local function add_date(no_paren) if not date_outputted then if no_paren then sep = ", " else sep = " " end if formatted_date then if no_paren then add(formatted_date) else add("(" .. formatted_date .. ")") end end if formatted_origdate then add(SPACE_LBRAC .. formatted_origdate .. RBRAC) end sep = ", " date_outputted = true end end local function is_anonymous(val) return val:match("^[Aa]non[yî]mo?u?s?$") or val:match("^[Aa]non%.?$") end -- Add a formatted author (whose values may be specified using `author` or, for compatibility purposes, split -- among various parameters): -- * `author` is the value of the author param (e.g. "author", "author2" or "2ndauthor"), and `author_fullname` is -- the full parameter name holding that value; -- * `trans_author` is the optional value of the param holding the gloss/translation of the author, and -- `trans_author_fullname` is the full parameter name holding that value (or nil for no such parameter); -- * `authorlink` is the value of the authorlink param, which holds the Wikipedia link of the author(s) in `author`, -- and `authorlink_fullname` is the full parameter name holding that value; -- * `trans_authorlink` is the optional value of the param holding the Wikipedia link of the gloss/translation of -- the author, and `trans_authorlink_fullname` is the full parameter name holding that value (or nil for no such -- parameter); -- * `first` is the value of the parameter holding the first name of the author, and `first_fullname` is the full -- parameter name holding that value; -- * `trans_first` is the value of the corresponding parameter holding the gloss/translation of the first name -- (e.g. "trans-first"), and `trans_first_fullname` is the full parameter name holding that value (or nil for -- no such parameter); -- * `last` is the value of the parameter holding the last name of the author, and `last_fullname` is the full -- parameter name holding that value; -- * `trans_last` is the value of the corresponding parameter holding the gloss/translation of the last name -- (e.g. "trans-last"), and `trans_last_fullname` is the full parameter name holding that value (or nil for -- no such parameter). -- * `last_first` if set, when parameters `first` and `last` are used, display the author name as "last, first" local function add_author( author, author_fullname, trans_author, trans_author_fullname, authorlink, authorlink_fullname, trans_authorlink, trans_authorlink_fullname, first, first_fullname, trans_first, trans_first_fullname, last, last_fullname, trans_last, trans_last_fullname, last_first ) local function make_author_with_url(txt, txtparam, authorlink, authorlink_param) if authorlink then if authorlink:find("%[%[") then error(("Nabe ku lînk di |%s=%s de were dayîn"):format(authorlink_param, authorlink)) end if txt:find("%[%[") then error(("Nabe ku lînk di %s=%s de were dayîn"):format(txtparam, txt)) end return "[[w:" .. authorlink .. "|" .. txt .. "]]" else return txt end end local num_authorobjs if author then local authorobjs = parse_multivalued_annotated_text(author, author_fullname, trans_author, trans_author_fullname) num_authorobjs = #authorobjs if num_authorobjs == 1 then if is_anonymous(authorobjs[1].text) then authorobjs[1].text = "nivîskarê anonîm" authorobjs[1].link = "nivîskarê anonîm" end if authorlink then authorobjs[1].text = make_author_with_url( authorobjs[1].text, "|" .. author_fullname, authorlink, "|" .. authorlink_fullname ) authorobjs[1].link = make_author_with_url( authorobjs[1].link, "|" .. author_fullname, authorlink, "|" .. authorlink_fullname ) end if authorobjs[1].gloss and trans_authorlink then authorobjs[1].gloss = make_author_with_url( authorobjs[1].gloss, ("<t:...> in |%s"):format(author_fullname), trans_authorlink, "|" .. trans_author_fullname ) end add(j_lazim(format_multivalued_annotated_text(authorobjs))) elseif trans_authorlink then error( ( "Nabe ku |%s= digel çend unsirên ku bi bernavekê ve hatine veqetandin di |%s= de bi hev re " .. "were bikaranîn; ji bo her unsirê modîfîkatora hundirîn a <t:...> bi kar bîne û lînkê " .. "rasterast têxe nirxa modîfîkatorê hundirîn" ):format(trans_authorlink_fullname, author_fullname) ) else -- Allow an authorlink with multiple authors, e.g. for use with |author=Max Mills; Harvey Mills -- with |authorlink=Max and Harvey. For this we have to generate the entire text and link it -- all. local formatted_text = format_multivalued_annotated_text(authorobjs) if authorlink then formatted_text = make_author_with_url( formatted_text, "|" .. author_fullname, authorlink, "|" .. authorlink_fullname ) end add(j_lazim(formatted_text)) end else num_authorobjs = 1 -- Author separated into first name + last name. We don't currently support non-Latin-script -- authors separated this way and probably never will. if first then if last_first then author = last .. ", " .. first else author = first .. " " .. last end else author = last end if authorlink then local authorparam = first and ("|%s |%s"):format(first_fullname, last_fullname) or "|" .. last_fullname author = make_author_with_url(author, authorparam, authorlink, authorlink_fullname) end local trans_author if trans_last then if trans_first then trans_author = trans_first .. " " .. trans_last else trans_author = trans_last end if trans_authorlink then local trans_authorparam = trans_first and ("|%s |%s"):format(trans_first_fullname, trans_last_fullname) or "|" .. trans_last_fullname trans_author = make_author_with_url( trans_author, trans_authorparam, trans_authorlink, trans_authorlink_fullname ) end end add(j_lazim(author)) if trans_author then add(SPACE_LBRAC) add(trans_author) add(RBRAC) end end author_outputted = true return num_authorobjs end local function add_authorlike( param, prefix_with_preceding_authors, suffix_without_preceding_authors, suffix_if_multiple, anonymous_suffix ) local delimiter = author_outputted and "and" or ", " local entities, _, num_entities = parse_and_format_multivalued_annotated_text_with_name(param, delimiter) if not entities then return end if is_anonymous(entities) then -- If tlr=anonymous or similar given, display as "anonymous translator" or similar. If a specific -- anonymous suffix not given, try to derive the anonymous suffix from the non-preceding-author suffix. if not anonymous_suffix then local cleaned_suffix = suffix_without_preceding_authors :gsub("&#32;", " ") :gsub("&nbsp;", " ") :gsub("&#160;", " ") :gsub("&#91;", "[") :gsub("&#93;", "]") cleaned_suffix = mw.text.trim(cleaned_suffix) if not anonymous_suffix then anonymous_suffix = " " .. cleaned_suffix:match("^, (.*)$") end if not anonymous_suffix then anonymous_suffix = " " .. cleaned_suffix:match("^%((.*)%)$") end if not anonymous_suffix then anonymous_suffix = " " .. cleaned_suffix:match("^%[(.*)%]$") end if not anonymous_suffix then anonymous_suffix = suffix_without_preceding_authors end end add_with_sep(j_lazim("anonîm" .. anonymous_suffix)) else entities = j_lazim(entities) if prefix_with_preceding_authors and (author_outputted or not suffix_without_preceding_authors) then add_with_sep(prefix_with_preceding_authors .. entities) elseif suffix_if_multiple and num_entities > 1 then add_with_sep(entities .. suffix_if_multiple) else add_with_sep(entities .. suffix_without_preceding_authors) end end author_outputted = true end local function add_authorlabel() local default_authorlabel = a("default-authorlabel") if default_authorlabel and yesno(a("authorlabel"), true) then sep = nil add_with_sep(" " .. default_authorlabel) end end local function has_new_title_or_author() return args["2ndauthor"] or args["2ndlast"] or args.chapter2 or args.title2 or args.tlr2 or args.mainauthor2 or args.editor2 or args.editors2 or args.compiler2 or args.compilers2 or args.director2 or args.directors2 end local function has_newversion() return args.newversion or args.location2 or has_new_title_or_author() end -- Handle chapter=, section=, etc. `param` is the base name of the parameter in question, e.g. "chapter" or -- "section". If numeric (either Arabic or Roman), add `numeric_prefix`; otherwise, parse as textual (allowing for -- language prefixes, inline modifiers, etc.), prefix with `textual_prefix` (if given) and suffix with -- `textual_suffix` (if given). Also checks for and handles the following (assuming param == "chapter"): -- * chapterurl=: URL of the chapter. -- * trans-chapter=: Chapter translation (can be given using an inline modifier <t:...>). -- * chapter_number=: Chapter number, when chapter= is also given (otherwise put the chapter number in chapter=). -- * chapter_plain=: Plain version of the chapter number; the "chapter " prefix isn't added. -- * chapter_series=: Series that the chapter is within (used e.g. for journal articles part of a series). -- * chapter_seriesvolume=: Volume of the series (compare seriesvolume=). -- -- Returns nil if no value specified for the main parameter, otherwise the formatted value. local function format_chapterlike(param, numeric_prefix, textual_prefix, textual_suffix) local chap, chap_fullname = a_with_name(param) local chap_num, chap_num_fullname = a_with_name(param .. "_number") local chap_plain, chap_plain_fullname = parse_and_format_annotated_text_with_name(param .. "_plain") if chap_num and chap_plain then error(("Divê tenê yek ji |%s= an %s= were dayîn"):format(chap_num_fullname, chap_plain_fullname)) end local chap_series, chap_series_fullname = parse_and_format_annotated_text_with_name(param .. "_series", tag_with_cite, tag_with_cite) local chap_seriesvolume, chap_seriesvolume_fullname = parse_and_format_annotated_text_with_name(param .. "_seriesvolume") if chap_series then chap_series = ", " .. chap_series end if chap_seriesvolume then if not chap_series then error(("Ji bo |%s= ev %s= lazim e"):format(chap_series_fullname, chap_seriesvolume_fullname)) end chap_series = chap_series .. " (" .. chap_seriesvolume .. ")" end local chapterurl local function make_chapter_with_url(chap) if chapterurl then return "[" .. chapterurl .. " " .. chap .. "]" else return chap end end if not chap then if chap_num then error( ("Ji bo |%s= ev |%s= lazim e; nirxa hejmarî li |%s= binivîse"):format( chap_num_fullname, chap_fullname, chap_fullname ) ) end if chap_plain then chapterurl = aurl(param .. "url") return make_chapter_with_url(chap_plain .. (chap_series or "")) end return nil end local cleaned_chap = chap:gsub("<sup>[^<>]*</sup>", ""):gsub("[*+#]", "") chapterurl = aurl(param .. "url") local formatted if numeric_prefix and get_number(cleaned_chap) then -- Arabic chapter number formatted = numeric_prefix .. make_chapter_with_url(chap) elseif numeric_prefix and cleaned_chap:match("^[mdclxviMDCLXVI]+$") and roman_to_arabic(cleaned_chap, true) and (not overrides[param] or not overrides[param].noroman) then -- Roman chapter number formatted = numeric_prefix .. make_chapter_with_url(upper(chap)) else -- strip leading ! (used to force text-mode for titles that look like Roman numerals like "mil" and "dill") if chap:find("^!") then chap = chap:gsub("^!", "") end -- Must be a chapter name local chapterobj = parse_annotated_text(chap, chap_fullname, a("trans-" .. param)) chapterobj.text = make_chapter_with_url(chapterobj.text) chapterobj.link = make_chapter_with_url(chapterobj.link) formatted = (textual_prefix or "") .. format_annotated_text(chapterobj) .. (textual_suffix or "") end if chap_num or chap_plain then -- NOTE: Up above we throw an error if both chap_num and chap_plain are specified. formatted = formatted .. " (" .. (chap_plain or numeric_prefix .. chap_num) .. ")" end if chap_series then formatted = formatted .. chap_series end return formatted end -- This handles everything after displaying the author, starting with the chapter and ending with page, column, -- line and then other=. It is currently called twice: Once to handle the main portion of the citation, and once to -- handle a "newversion" citation. `ind` is either "" for the main portion or a number (currently only 2) for a -- "newversion" citation. In a few places we conditionalize on `ind` to take actions depending on its value. local function postauthor(ind, num_authors, format_as_cite) get_full_paramname = make_get_full_paramname(ind) -- Set to true by add_entry()/add_chapter() when a chapter/entry title has been added and "li ser " (lit. -- "on/in") is owed to whatever comes next. It's consumed either by mainauthor= (attached directly in front -- of it) or, if there's no mainauthor=, by the work's title= later on. Fields in between (translator, -- editor, compiler, director) don't consume it, but the first of them printed while it's still pending gets -- a "bi " (lit. "with/by") prefix instead, since otherwise e.g. "edîtoriya X" would read as a bare noun -- phrase with nothing to attach it to the sentence. local pending_li_ser = false if author_outputted then add_authorlabel() end local coauthors = parse_and_format_multivalued_annotated_text("coauthors", "and") coauthors = j_lazim(coauthors) if coauthors then local with_prefix = "" if author_outputted then with_prefix = "li gel " if num_authors == 1 then sep = " " end end add_with_sep(with_prefix .. coauthors) author_outputted = true end add_authorlike("quotee", "quoting ", ", quotee", ", quotees") if format_as_cite and author_outputted and not date_outputted then add_date() sep = ", " end add_authorlike("chapter_tlr", "tercimeya ", nil, nil, " terciman") local function add_labeled_editor() local editor, editor_fullname = a_with_name("editor") local editors, editors_fullname = a_with_name("editors") if editor and editors then error(("Nabe ku hem |%s= hem jî |%s= were bikaranîn"):format(editor_fullname, editors_fullname)) end local val, fullname, param = editor, editor_fullname, "editor" if editors then val, fullname, param = editors, editors_fullname, "editors" end if not val then return end local entities = parse_and_format_multivalued_annotated_text(param, "and") local label if fullname == "amadekar" or fullname == "amadekar2" then label = "amadekariya" else -- covers "editor", "editor2", "edîtor", "edîtor2", etc. label = "edîtoriya" end local bi_prefix = (pending_li_ser and not author_outputted) and "bi " or "" if is_anonymous(entities) then add_with_sep(j_lazim(bi_prefix .. label .. " kesekî nenas")) else add_with_sep(bi_prefix .. label .. " " .. j_lazim(entities)) end author_outputted = true end local function add_sg_and_pl_authorlike(noun, verbed) local sgparam = noun local plparam = noun .. "s" local sgval, sgval_fullname = a_with_name(sgparam) local plval, plval_fullname = a_with_name(plparam) if sgval and plval then error(("Nabe ku hem |%s= hem jî |%s= were bikaranîn"):format(sgval_fullname, plval_fullname)) end if sgval or plval then local verbed_by = verbed .. " ji hêla " local comma_sgnoun = ", " .. noun local comma_plnoun = ", " .. noun .. "s" add_authorlike(sgparam, verbed_by, comma_sgnoun, comma_plnoun) add_authorlike(plparam, verbed_by, comma_plnoun) end end local formatted_entry = format_chapterlike("entry", nil, "“", "”") local formatted_chapter = format_chapterlike("chapter", "beşa ", "“", "”") local function add_entry() if formatted_entry then add_with_sep(formatted_entry) if not a("notitle") then pending_li_ser = true author_outputted = false else author_outputted = true end formatted_entry = nil end end local function add_chapter() add_entry() if formatted_chapter then add_with_sep(formatted_chapter) if not a("notitle") then pending_li_ser = true author_outputted = false end formatted_chapter = nil end end local function add_actor_role(format_as_cite) local role = parse_and_format_multivalued_annotated_text("role", "and") role = j_lazim(role) local actor_val, actor_fullname = a_with_name("actor") local actor_objs = parse_multivalued_annotated_text(actor_val, actor_fullname) local actor = format_multivalued_annotated_text(actor_objs, "and") actor = j_lazim(actor) if format_as_cite then if role then if actor then add_with_sep(actor .. " wekî ") end sep = nil add_with_sep(role) elseif actor then add_with_sep(actor .. " (aktor)") end else if role then add_with_sep("xeberdan ji aliyê " .. role .. " ve") if actor then sep = nil add_with_sep(" (" .. actor .. ")") end elseif actor then add_with_sep(actor .. " (aktor)") end end end if format_as_cite then if date_outputted then add_chapter() end local output_len = #output local mainauthor = parse_and_format_multivalued_annotated_text("mainauthor") mainauthor = j_lazim(mainauthor) if mainauthor then add_with_sep(mainauthor) end -- quote-* templates display "jobbed by name" after the author, controlled by the author_outputted flag author_outputted = false add_authorlike("tlr", "tercimeya ", nil, nil, " terciman") author_outputted = false add_labeled_editor() add_sg_and_pl_authorlike("compiler", "berhevkirin") add_sg_and_pl_authorlike("director", "derhênan") add_authorlike("lyricist", nil, " (gotin)", nil, " gotinnivîs") add_authorlike("lyrics-translator", nil, " (tercime)", nil, " tercimanê gotinan") add_authorlike("composer", nil, " (muzîk)", nil, " bestekar") add_actor_role("format_as_cite") -- if the output length has changed, a credit name has been printed -- and we can print the date if output_len ~= #output then author_outputted = true add_date() end add_chapter() else add_chapter() local mainauthor = parse_and_format_multivalued_annotated_text("mainauthor") mainauthor = j_lazim(mainauthor) if mainauthor then -- Label mainauthor explicitly when another credit (translator, editor, compiler, director) follows -- it, so e.g. "li ser Kurt Gödel, edîtoriya X" doesn't read as if Kurt Gödel were the editor. if a("tlr") or a("editor") or a("editors") or a("compiler") or a("compilers") or a("director") or a("directors") then mainauthor = mainauthor .. " (nivîskarê sereke)" end if pending_li_ser then add_with_sep("li ser " .. mainauthor) pending_li_ser = false else add_with_sep(mainauthor) end author_outputted = true end do local tlr_prefix = "tercimekirina " if pending_li_ser and not author_outputted then tlr_prefix = "bi tercimekirina " end add_authorlike("tlr", tlr_prefix, nil, nil, " terciman") end add_labeled_editor() add_sg_and_pl_authorlike("compiler", "berhevkirin") add_sg_and_pl_authorlike("director", "derhênan") add_authorlike("lyricist", nil, " (gotin)", nil, " gotinnivîs") add_authorlike("lyrics-translator", nil, " (tercime)", nil, " tercimanê gotinan") add_authorlike("composer", nil, " (muzîk)", nil, " bestekar") end local title, title_fullname = a_with_name("title") local need_comma = false if title then local titleobj = parse_annotated_text(title, title_fullname, a("trans-title")) local title_text = format_annotated_text(titleobj, tag_with_cite, tag_with_cite) -- No author/editor/etc. given: the title (malper/kovar/etc.) is the primary entity, so highlight it -- the same way mainauthor would be. if not author_outputted then title_text = j_lazim(title_text) end if pending_li_ser then title_text = "li ser " .. title_text pending_li_ser = false end add(title_text) local series = parse_and_format_annotated_text("series") if series then add(" (" .. series) local seriesvolume = parse_and_format_annotated_text("seriesvolume") if seriesvolume then add(SEMICOLON_SPACE .. seriesvolume) end add(")") end need_comma = true elseif ind == "" then if not a("notitle") then local maint_text = maintenance_line("jkx sernavê kitêb an kovarê binivîse") if pending_li_ser then maint_text = "li ser " .. maint_text pending_li_ser = false end add(maint_text) need_comma = true end end local archiveurl, archiveurl_fullname = aurl_with_name("archiveurl") local url, url_fullname = aurl_with_name("url") local urls, urls_fullname = aurl_with_name("urls") if url and urls then error(("Divê tenê yek ji |%s= an |%s= were dayîn"):format(url_fullname, urls_fullname)) end local function verify_title_supplied(url_name) -- There are too many cases of this to throw an error at this time. -- if not title then -- error(("If |%s= is given, |%s= must also be supplied"):format(url_name, title_fullname)) -- end end if archiveurl or url then verify_title_supplied(archiveurl and archiveurl_fullname or url_fullname) sep = nil add("&lrm;<sup>[" .. (archiveurl or url) .. "]</sup>") elseif urls then verify_title_supplied(urls_fullname) sep = nil add("&lrm;<sup>" .. urls .. "</sup>") end -- display (in Language) if language is provided and is not English and not overriden by termlang or worklang if format_as_cite and ind == "" and not (args.termlang or args.worklang) and (args[1] or args.lang) then local lang = get_first_lang(args[1] or args.lang) if lang then local langcode = lang:getCode() if not (langcode == "und" or langcode == "ku") then local langs = format_langs(args[1] or args.lang) if langs then add(" (bi " .. langs .. ")") end end end end if need_comma then sep = ", " end local edition, edition_fullname = parse_and_format_annotated_text_with_name("edition") local edition_plain, edition_plain_fullname = parse_and_format_annotated_text_with_name("edition_plain") if edition and edition_plain then error(("Divê tenê yek ji |%s= an |%s= were dayîn"):format(edition_fullname, edition_plain_fullname)) end local function ordinal_suffix(n) n = tonumber(n) if not n then return nil end if n % 100 == 11 then return "an" elseif n % 10 == 1 then return "ê" else return "an" end end if edition then local edStr = tostring(edition) local numPart = edStr:match("^(%d+)%s*[Ss][Tt]$") or edStr:match("^(%d+)%s*[Nn][Dd]$") or edStr:match("^(%d+)%s*[Rr][Dd]$") or edStr:match("^(%d+)%s*[Tt][Hh]$") or edStr:match("^(%d+)$") if numPart then add_with_sep("çapa " .. numPart .. ordinal_suffix(numPart)) else add_with_sep("çapa " .. edition) end end if edition_plain then add_with_sep(edition_plain) end -- Display a numeric param such as page=, volume=, column=. For each `paramname`, four params are actually -- recognized, e.g. for paramname == "page", the params page=, pages=, page_plain= and pageurl= are recognized -- and checked (or the same with an index, e.g. page2=, pages2=, page_plain2= and pageurl2= respectively if -- ind == "2"). Only one of the first three can be specified; an error results if more than one are given. -- If none are given, the return value is nil; otherwise it is a string. The numeric spec is taken directly -- from e.g. page_plain= if given; otherwise if e.g. pages= is given, or if page= is given and looks like a -- combination of numbers (i.e. it has a hyphen or dash in it, a comma, or the word " and "), it is prefixed -- by `singular_desc` + "s" (e.g. "pages "), otherwise it is prefixed by just `singular_desc` (e.g. "page "). -- (As a special case, if either e.g. page=unnumbered or pages=unnumbered is given, the numeric spec is -- "unnumbered page".) The resulting spec is returned directly unless e.g. pageurl= is given, in which case -- it is linked to the specified URL. Note that any of the specs can be foreign text, e.g. foreign numbers -- (including with optional inline modifiers), and such text is handled appropriately. local function format_numeric_param(paramname, singular_desc) local sgval = a_with_name(paramname) local sgobj = parse_annotated_text(sgval, paramname) local plparamname = paramname .. "s" local plval = a_with_name(plparamname) local plobj = parse_annotated_text(plval, plparamname) local plainval, plain_fullname = parse_and_format_annotated_text_with_name(paramname .. "_plain") local numspec if not sgval and not plval and not plainval then return elseif plainval and (sgval or plval) then error(("Nabe ku " .. plain_fullname .. " digel " .. paramname .. " an " .. plparamname .. " were dayîn")) elseif sgval and plval then -- if both singular and plural, display "page 1 of 1-10" numspec = singular_desc .. " " .. sgval .. " ji " .. plval else -- Merge page= and pages= and treat alike because people often mix them up in both directions. if plainval then numspec = plainval else local val = sgobj and sgobj.text or plobj.text if val == "unnumbered" then numspec = "bêhejmar " .. singular_desc else local desc if val:find("^!") then val = val:gsub("^!", "") desc = sgval and singular_desc or (singular_desc .. "ên") else local check_val = val if check_val:find("%[") then check_val = remove_links(check_val) -- convert URL's of the form [URL DISPLAY] to the displayed value check_val = check_val:gsub("%[[^ %[%]]* ([^%[%]]*)%]", "%1") end -- in case of negative page numbers (do they exist?), don't treat as multiple pages check_val = check_val:gsub("^%-", "") -- replace HTML entity en-dashes and em-dashes with their literal codes check_val = check_val:gsub("&ndash;", "–") check_val = check_val:gsub("&#8211;", "–") check_val = check_val:gsub("&mdash;", "—") check_val = check_val:gsub("&#8212;", "—") -- Check for en-dash or em-dash, or two numbers (possibly with stuff after like 12a-15b) -- separated by a hyphen or by comma a followed by a space (to avoid firing on thousands separators). if umatch(check_val, "[–—]") or check_val:find(" and ") or check_val:match("%d+[^ ]* *%- *%d+") or check_val:match("%d+[^ ]* *, +%d+") then desc = singular_desc .. "ên" else desc = singular_desc end end local obj = sgobj or plobj obj.text = val if obj.link:find("^!") then obj.link = obj.link:gsub("^!", "") end val = format_annotated_text(obj) numspec = desc .. " " .. val end end end local url = a(paramname .. "url") if url then return "[" .. url .. " " .. numspec .. "]" else return numspec end end local volume = format_numeric_param("volume", a("volume_prefix") or "cild") if volume then add_with_sep(volume) end local issue = format_numeric_param("issue", a("issue_prefix") or "hejmar") if issue then add_with_sep(issue) end -- number= is an alias for issue= (except in {{quote-av}}, where it is the episode number) local number = format_numeric_param("number", a("number_prefix") or "nimare") if number then add_with_sep(number) end local annotations = {} local genre = a("genre") if genre then insert(annotations, genre) end local format = a("format") if format then insert(annotations, format) end local medium = a("medium") if medium then insert(annotations, medium) end -- Now handle the display of language annotations like "(in French)" or -- "(quotation in Nauruan; overall work in German)". local quotelang = args[1] or args.lang if not quotelang then if ind == "" then -- This can only happen for certain non-mainspace pages, e.g. Talk pages; otherwise an error is thrown -- above. insert(annotations, maintenance_line("Ji kerema xwe zimanê vê jêgirtinê bi |1= diyar bike")) else -- do nothing in newversion= portion end elseif ind == "" then local worklang = a("worklang") local termlang = a("termlang") worklang = worklang or quotelang termlang = termlang or quotelang if worklang == quotelang then if worklang == termlang then -- do nothing else insert(annotations, "bi " .. format_langs(quotelang)) end else if quotelang ~= termlang then insert(annotations, "jêgirtin bi " .. format_langs(quotelang)) end insert(annotations, "bi giştî eser bi " .. format_langs(worklang)) end else local lang2 = a("lang2") if lang2 then insert(annotations, "bi " .. format_langs(lang2)) end end if #annotations > 0 then sep = nil add_with_sep(" (" .. concat(annotations, SEMICOLON_SPACE) .. ")") end local artist = parse_and_format_multivalued_annotated_text("artist", "and") artist = j_lazim(artist) if artist then add_with_sep("hunermend: " .. artist) end local feat = parse_and_format_multivalued_annotated_text("feat", "and") feat = j_lazim(feat) if feat then sep = " " add_with_sep("digel " .. feat) end if not format_as_cite then add_actor_role() end local others = parse_and_format_annotated_text("others") others = j_lazim(others) if others then add_with_sep(others) end local quoted_in = parse_and_format_annotated_text("quoted_in", tag_with_cite, tag_with_cite) if quoted_in then add_with_sep("hate jêgirtin di " .. quoted_in .. " de") insert(tracking_categories, "Jêgirtin bi parametreya quoted-in") end local location = parse_and_format_multivalued_annotated_text("location", "; ") local publisher = parse_and_format_multivalued_annotated_text("publisher", "; ") if publisher then if location then add_with_sep(location) -- colon sep = "&#58; " -- colon end add_with_sep(publisher) elseif location then add_with_sep(location) end if not date_outputted then add_date("no_paren") end local source = parse_and_format_multivalued_annotated_text("source", "and") if source then add_with_sep("ji " .. source .. " hatiye wergirtin") end local original = parse_and_format_annotated_text("original", tag_with_cite, tag_with_cite) local by = parse_and_format_multivalued_annotated_text("by", "and") by = j_lazim(by) local origtype = a("deriv") or "tercimeya" if original or by then add_with_sep(origtype .. " " .. (original or "orîjînal") .. (by and " ji hêla " .. by .. " ve" or "")) end -- Handle origlang=, origworklang=. How we handle them depends on whether the original title or author are explicitly -- given. local origlang = a("origlang") local origworklang = a("origworklang") local origlangtext, origworklangtext if origlang then origlangtext = "bi " .. format_langs(origlang) end if origworklang then origworklangtext = "bi giştî eser bi " .. format_langs(origworklang) end if origlang or origworklang then if original or by then local orig_annotations = {} if origlangtext then insert(orig_annotations, origlangtext) end if origworklangtext then insert(orig_annotations, origworklangtext) end sep = nil add_with_sep(" (" .. concat(orig_annotations, SEMICOLON_SPACE) .. ")") else add_with_sep(origtype .. " orîjînal" .. (origlangtext and " " .. origlangtext or "")) if origworklangtext then sep = nil add_with_sep(" (" .. origworklangtext .. ")") end end end if ind ~= "" and has_newversion() then local formatted_new_date = format_date_args(a, get_full_paramname, alias_map, "", "", nil, "Ji kerema xwe tarîx an salekê binivîse", true) if formatted_new_date then add_with_sep(formatted_new_date) end end -- Fetch date_published=/year_published=/month_published= and format appropriately. local formatted_date_published = format_date_args(a, get_full_paramname, alias_map, "", "_published", nil, nil, true) local platform = parse_and_format_multivalued_annotated_text("platform", "and") if formatted_date_published then add_with_sep("di " .. formatted_date_published .. " de hate weşandin" .. (platform and " li ser " .. platform or "")) elseif platform then add_with_sep("li ser " .. platform) end -- From here on out, there should always be a preceding item, so we -- can dispense with add_with_sep() and always insert the comma. sep = nil local function small(txt) add(", <small>") add(txt) add("</small>") end -- Add an identifier to a book or article database such as DOI, ISBN, JSTOR, etc. `param_or_params` -- is a string identifying the base param, or a list of such strings to check in turn. If found, the value -- of the parameter is processed using `process` (a function of one argument, defaulting to mw.uri.encode()), -- and then the actual URL to insert is generated by preceding with `pretext`, following with `posttext`, -- and running the resulting string through small(), which first adds a comma and then the URL in small font. local function add_identifier(param_or_params, pretext, posttext, process) local val = a(param_or_params) if val then val = (process or mw.uri.encode)(val) small(pretext .. val .. posttext) end end add_identifier("bibcode", "[https://adsabs.harvard.edu/abs/", " →Bibcode]") add_identifier("doi", '<span class="neverexpand">[https://doi.org/', " →DOI]</span>") add_identifier("isbn", "", "", isbn) add_identifier("issn", "", "", issn) add_identifier("jstor", "[https://www.jstor.org/stable/", " →JSTOR]") add_identifier("lccn", "", "", lccn) add_identifier("oclc", "[https://search.worldcat.org/title/", " →OCLC]") add_identifier("ol", "[https://openlibrary.org/works/OL", "/ →OL]") add_identifier("pmid", "[https://www.ncbi.nlm.nih.gov/pubmed/", " →PMID]") add_identifier("pmcid", "[https://www.ncbi.nlm.nih.gov/pmc/articles/", "/ →PMCID]") add_identifier("ssrn", "[https://ssrn.com/abstract=", " →SSRN]") -- add_identifier("urn", "", "", urn) local id = a("id") if id then small(id) end archiveurl, archiveurl_fullname = aurl_with_name("archiveurl") if archiveurl then local url, url_fullname = aurl_with_name("url") if not url then -- attempt to infer original URL from archive URL; this works at -- least for Wayback Machine (web.archive.org) URL's url = archiveurl:match("/(https?:.*)$") if not url then error( ("Gava |%s= tê dayîn, divê |%s= jî were dayîn"):format(archiveurl_fullname, url_fullname) ) end end add(", ji [" .. url .. " orjînalê] di ") local archivedate, archivedate_fullname = a_with_name("archivedate") if archivedate then add(format_date(archivedate)) elseif string.sub(archiveurl, 1, 28) == "https://web.archive.org/web/" then -- If the archive is from the Wayback Machine, then it already contains the date -- Get the date and format it local wayback_date = string.sub(archiveurl, 29, 29 + 7) wayback_date = string.sub(wayback_date, 1, 4) .. "-" .. string.sub(wayback_date, 5, 6) .. "-" .. string.sub(wayback_date, 7, 8) add(format_date(wayback_date)) else error( ("Gava |%s= tê dayîn, divê |%s= jî were dayîn"):format( archiveurl_fullname, archivedate_fullname ) ) end add(" de hatiye arşîvkirin") end if a("accessdate") then --Otherwise do not display here, as already used as a fallback for missing date= or year= earlier. if (a("date") or a("nodate") or a("year")) and not a("archivedate") then add(", di " .. format_date(a("accessdate")) .. " de hatiye gihiştin") end end local formatted_section = format_chapterlike("section", "qismê ") if formatted_section then add(", ") add(formatted_section) end -- video game stuff local system = parse_and_format_annotated_text("system") if system then add(", " .. system) end local scene = parse_and_format_annotated_text("scene") if scene then add(", sehne: " .. scene) end local level = parse_and_format_annotated_text("level") if level then add(", seviye/herêm: " .. level) end local note = parse_and_format_annotated_text("note") if note then add(", " .. note) end local note_plain = parse_and_format_annotated_text("note_plain") if note_plain then add(" " .. note_plain) end -- Wrapper around format_numeric_param that inserts the formatted text with optional preceding text. local function handle_numeric_param(paramname, singular_desc, pretext) local numspec = format_numeric_param(paramname, singular_desc) if numspec then add((pretext or "") .. numspec) end end handle_numeric_param("page", a("page_prefix") or "rûpel", ", ") handle_numeric_param("column", a("column_prefix") or "stûn", ", ") handle_numeric_param("line", a("line_prefix") or "rêz", ", ") -- FIXME: Does this make sense? What is other=? local other = parse_and_format_annotated_text("other") if other then add(", " .. other) end end local function add_authors(args, last_first) -- Find maximum indexed author or last name. local maxind = math.max(args.author.maxindex, args.last.maxindex) -- Include max index of ancillary params so we get an error message about their use without the primary params. local ancillary_params = {"trans-author", "authorlink", "trans-authorlink", "first", "trans-first", "trans-last"} for _, ancillary in ipairs(ancillary_params) do maxind = math.max(maxind, args[ancillary].maxindex) end local num_authors = 0 for i = 1, maxind do local ind = i == 1 and "" or i local author, last = args.author[i], args.last[i] if author or last then local this_num_authors = add_author( author, "author" .. ind, args["trans-author"][i], "trans-author" .. ind, args.authorlink[i], "authorlink" .. ind, args["trans-authorlink"][i], "trans-authorlink" .. ind, args.first[i], "first" .. ind, args["trans-first"][i], "trans-first" .. ind, last, "last" .. ind, args["trans-last"][i], "trans-last" .. ind, last_first ) num_authors = num_authors + this_num_authors sep = last_first and "; " or ", " else for _, cant_have in ipairs(ancillary_params) do if args[cant_have][i] then error(("Nabe ku |%s%s= bêyî |author%s= an |last%s= were dayîn"):format(cant_have, ind, ind, ind)) end end end end return num_authors end local function add_newversion() -- If there's a "newversion" section, add the new-version text. if has_newversion() then sep = nil --Test for new version of work. add(SEMICOLON_SPACE) if args.newversion then -- newversion= is intended for English text, e.g. "hate jêgirtin di" or "ji nû ve hatiye weşandin wekî". add(args.newversion) elseif not args.edition2 then if has_new_title_or_author() then add("ji nû ve hatiye weşandin wekî") else add("ji nû ve hatiye weşandin") end end add(" ") return "" else return ", " end end ------------------- Now we start outputting text ---------------------- local need_comma = false -- Set this now so a() works just below. get_full_paramname = make_get_full_paramname("") if args.brackets then add("[") end bold_year = not format_as_cite year_last = format_as_cite formatted_date, need_date = format_date_args( a, get_full_paramname, alias_map, nil, nil, bold_year, "Tu dikarî tarîxa vê jêgirtinê [[:Category:Daxwazên tarîxê|binivîsî]]?", year_last ) -- format_date_args bolds the year here (via bold_year = not format_as_cite), so this is the only date variable -- we wrap; origdate=, date_published= and the newversion date are left unwrapped. formatted_date = j_lazim(formatted_date) -- Fetch origdate=/origyear=/origmonth= and format appropriately. formatted_origdate = format_date_args(a, get_full_paramname, alias_map, "orig", nil, nil, nil, year_last) local num_authors if format_as_cite then num_authors = add_authors(args, "last_first") if author_outputted then sep = " " end -- Display all the text that comes after the author, for the main portion. postauthor("", num_authors, "format_as_cite") author_outputted = false sep = add_newversion() -- Add the newversion author(s). if args["2ndauthor"] or args["2ndlast"] then num_authors = add_author( args["2ndauthor"], "2ndauthor", nil, nil, args["2ndauthorlink"], "2ndauthorlink", nil, nil, args["2ndfirst"], "2ndfirst", nil, nil, args["2ndlast"], "2ndlast", nil, nil, "last_first" ) sep = ", " else for _, cant_have in ipairs{"2ndauthorlink", "2ndfirst"} do if args[cant_have] then error(("Nabe ku |%s= bêyî |2ndauthor= an |2ndlast= were dayîn"):format(cant_have)) end end end -- Display all the text that comes after the author, for the "newversion" section. postauthor(2, num_authors, "format_as_cite") else if formatted_date then need_comma = true add(formatted_date) end if formatted_origdate then need_comma = true add(SPACE_LBRAC .. formatted_origdate .. RBRAC) end if need_comma then sep = ", " end date_outputted = true num_authors = add_authors(args) -- Display all the text that comes after the author, for the main portion. postauthor("", num_authors) author_outputted = false sep = add_newversion() -- Add the newversion author(s). if args["2ndauthor"] or args["2ndlast"] then num_authors = add_author( args["2ndauthor"], "2ndauthor", nil, nil, args["2ndauthorlink"], "2ndauthorlink", nil, nil, args["2ndfirst"], "2ndfirst", nil, nil, args["2ndlast"], "2ndlast", nil, nil ) sep = ", " else for _, cant_have in ipairs{"2ndauthorlink", "2ndfirst"} do if args[cant_have] then error(("Nabe ku |%s= bêyî |2ndauthor= an |2ndlast= were dayîn"):format(cant_have)) end end end -- Display all the text that comes after the author, for the "newversion" section. postauthor(2, num_authors) end if not args.nocolon then sep = nil add(":") elseif args.usenodot and not args.nodot then add(".") end -- Concatenate output portions to form output text. local output_text = concat(output) -- Remainder of code handles adding categories. We add one or more of the following categories: -- -- 1. [[Category:LANG terms with quotations]], based on the first language code in termlang= or 1=. Added to -- mainspace, Reconstruction: and Appendix: pages as well as Citations: pages if the corresponding mainspace -- page exists. Not added if nocat= is given. Note that [[Module:usex]] adds the same category using the same -- logic, but we do it here too because we may not have a quotation to format. (We add in those circumstances -- because typically when there's no quotation to format, it's because it's formatted manually underneath the -- citation, or using {{ja-x}}, {{th-x}} or similar.) -- 2. [[Category:Requests for date in LANG entries]], based on the first language code in 1=. Added to mainspace, -- Reconstruction:, Appendix: and Citations: pages unless nocat= is given. -- 3. [[Category:Quotations using nocat parameter]], if nocat= is given. Added to mainspace, Reconstruction:, -- Appendix: and Citations: pages. local categories = {} local termlang = get_first_lang(args.termlang or argslang) if args.nocat then if format_as_cite then insert(tracking_categories, "Çavkanî bi parametreya nekat") else insert(tracking_categories, "Jêgirtin bi parametreya nekat") end else -- don't create language tracking categories for citations if not format_as_cite then local title if args.pagename then -- for testing, doc pages, etc. title = mw.title.new(args.pagename) if not title then error(("Nirxa `args.pagename` xelet e: '%s'"):format(args.pagename)) end else title = mw.title.getCurrentTitle() end -- Only add [[Citations:foo]] to [[:Category:LANG terms with quotations]] if [[foo]] exists. local ok_to_add_cat if title.nsText ~= "Citations" then ok_to_add_cat = true else local mainspace_title = mw.title.new(title.text) if mainspace_title and mainspace_title.exists then ok_to_add_cat = true end end if ok_to_add_cat then insert(categories, "Jêgirtin bi " .. termlang:getFullName()) end end if need_date then local argslangobj = get_first_lang(argslang) insert(categories, "Daxwazên tarîxê bi " .. argslangobj:getCanonicalName()) end end return output_text .. ( not lang and "" or (#categories > 0 and format_categories(categories, lang, args.sort) or "") .. ( #tracking_categories > 0 and format_categories( tracking_categories, lang, args.sort, nil, not page_should_be_ignored(mw.title.getCurrentTitle().fullText) ) or "" ) ) end -- Alias specs for type= and type2=. Each spec is `{canon, aliases, with_newversion}` where `canon` is the canonical -- parameter (with "2" added if type2= is being handled), `aliases` is a comma-separated string of aliases (with "2" -- added if type2= is being handled, except for numeric params), and `with_newversion` indicates whether we should -- process this spec if type2= is being handled. local type_alias_specs = { av = { {"author", "writer,writers", true}, {"chapter", "episode", true}, {"chapterurl", "episodeurl", true}, {"trans-chapter", "trans-episode", true}, {"chapter_tlr", "episode_tlr,episode_tlrs,episode_translator,episode_translators", true}, {"chapter_series", "episode_series", true}, {"chapter_seriesvolume", "episode_seriesvolume", true}, {"chapter_number", "episode_number", true}, {"chapter_plain", "episode_plain", true}, {"volume", "season", true}, {"volumes", "seasons", true}, {"volume_plain", "season_plain", true}, {"volumeurl", "seasonurl", true}, {"platform", "network", true}, }, book = { {"author", "3"}, {"editor", "amadekar"}, {"title", ",4"}, {"url", "5"}, {"year", "2"}, {"page", "6"}, {"text", "7"}, {"t", "8"}, }, journal = { {"year", "2"}, {"author", "3"}, {"chapter", "title,sernav,article,meqale,4", true}, {"chapterurl", "titleurl,articleurl,urlya-sernav,urlya-meqaleyê", true}, {"trans-chapter", "trans-title,trans-article,tercimeya-sernav,tercimeya-meqale", true}, {"chapter_tlr", "title_tlr,title_tlrs,title_translator,title_translators,article_tlr,article_tlrs,article_translator,article_translators,tercimanê-sernav,tercimanên-sernav,tercimanên-meqaleyê,tercimanê-meqaleyê", true}, {"chapter_series", "title_series,article_series,seriya-sernav,seriya-meqaleyê", true}, {"chapter_seriesvolume", "title_seriesvolume,article_seriesvolume,cildê-seriya-sernav,cildê-seriya-meqaleyê", true}, {"chapter_number", "title_number,article_number,hejmara-sernav,hejmara-meqaleyê", true}, {"chapter_plain", "title_plain,article_plain,sernav-sade,meqale-sade", true}, {"title", "journal,kovar,magazine,newspaper,work,xebat,xezete,rojname,5", true}, {"trans-title", "trans-journal,tercimeya-kovar,trans-magazine,trans-newspaper,tercimeya-xezete,tercimeya-rojname,trans-work,tercimeya-xebat", true}, {"tlr", "journal_tlr,tercimanê-kovarê,journal_tlrs,journal_translator,journal_translators,magazine_tlr,magazine_tlrs,magazine_translator,magazine_translators,newspaper_tlr,newspaper_tlrs,newspaper_translator,tercimanê-xezeteyê,tercimanê-rojnameyê,newspaper_translators,work_tlr,tercimanê-xebatê,work_tlrs,work_translator,work_translators", true}, {"url", "6,journalurl,urlya-kovarê,magazineurl,newspaperurl,urlya-xezeteyê,urlya-rojnameyê,workurl,urlya-xebatê", true}, {"page", "7"}, {"source", "newsagency,ajans,news_agency", true}, {"text", "8"}, {"t", "9"}, }, } -- Process interally-handled aliases related to type= or type2=. `args` is a table of arguments; `typ` is the value of -- type= or type2=; newversion=true if we're dealing with type2=; alias_map is used to keep track of alias mappings -- seen. local function process_type_aliases(args, typ, newversion, alias_map) local ind = newversion and "2" or "" local deprecated = ine(args.lang) or ine(args.ziman) if not type_alias_specs[typ] then local possible_values = {} for possible, _ in pairs(type_alias_specs) do insert(possible_values, possible) end sort(possible_values) error( ("Nirxa '%s' ji bo type%s= nayê naskirin; nirxên mihtemel ev in: %s"):format( typ, ind, concat(possible_values, ",") ) ) end for _, alias_spec in ipairs(type_alias_specs[typ]) do local canon, aliases, with_newversion = unpack(alias_spec) if with_newversion or not newversion then canon = canon .. ind aliases = split(aliases, ",", true) local saw_alias = nil for _, alias in ipairs(aliases) do if alias:match("^%d+$") then alias = tonumber(alias) if deprecated then alias = alias - 1 end else alias = alias .. ind end if args[alias] then if saw_alias == nil then saw_alias = alias else error(("|%s= û |%s= bernav in; nabe ku nirx ji bo herduyan were dayîn"):format(saw_alias, alias)) end end end if saw_alias and (not newversion or type(saw_alias) == "string") then if args[canon] then error(("|%s= bernavê |%s= ye; nabe ku nirx ji bo herduyan were dayîn"):format(saw_alias, canon)) end args[canon] = args[saw_alias] -- Wipe out the original after copying. This is important in case of a param that has general significance -- but has been redefined (e.g. {{quote-av}} redefines number= for the episode number, and -- {{quote-journal}} redefines title= for the chapter= (article). It's also important due to unhandled -- parameter checking. args[saw_alias] = nil alias_map[canon] = saw_alias end end end end -- Clone and combine frame's and parent's args while also assigning nil to empty strings. Handle aliases and ignores. local function clone_args(direct_args, parent_args) local args = {} -- Processing parent args must come first so that direct args override parent args. Note that if a direct arg is -- specified but is blank, it will still override the parent arg (with nil). for pname, param in pairs(parent_args) do -- [[Special:WhatLinksHere/Wiktionary:Tracking/quote/param/PARAM]] track("param/" .. pname) args[pname] = ine(param) end -- Process ignores. The value of `ignore` is a comma-separated list of parameter names to ignore (erase). We need to -- do this before aliases due to {{quote-song}}, which sets chapter= to the value of title= in the direct params and -- sets title= to the value of album= using an alias. If we do the ignores after aliases, we get an error during alias -- processing, saying that title= and its alias album= are both present. local ignores = ine(direct_args.ignore) if ignores then for ignore in gsplit(ignores, "%s*,%s*") do args[ignore] = nil end end local alias_map = {} local other_controls = {} -- noroman local noroman = ine(direct_args.noroman) if noroman then other_controls.overrides = other_controls.overrides or {} for param in gsplit(noroman, "%s*,%s*") do other_controls.overrides[param] = (other_controls.overrides[param] or {}) other_controls.overrides[param].noroman = true end end -- Process internally-specified aliases using type= or type2=. local typ = args.type or direct_args.type or args.cure or direct_args.cure if typ then process_type_aliases(args, typ, false, alias_map) end local typ2 = args.type2 or direct_args.type2 or args.cure2 or direct_args.cure2 if typ2 then process_type_aliases(args, typ2, true, alias_map) end -- Process externally-specified aliases. The value of `alias` is a list of semicolon-separated specs, each of which -- is of the form DEST:SOURCE,SOURCE,... where DEST is the canonical name of a parameter and SOURCE refers to an -- alias. Whitespace is allowed between all delimiters. The order of aliases may be important. For example, for -- {{quote-journal}}, title= contains the article name and is an alias of underlying chapter=, while journal= or -- work= contains the journal name and is an alias of underlying title=. As a result, the title -> chapter alias -- must be specified before the journal/work -> title alias. -- -- Whenever we copy a value from argument SOURCE to argument DEST, we record an entry for the pair in alias_map, so -- that when we would display an error message about DEST, we display SOURCE instead. -- -- Do alias processing (and ignore and error_if processing) before processing direct_args so that e.g. we can set up -- an alias of title -> chapter and then set title= to something else in the direct args ({{quote-hansard}} does -- this). -- -- FIXME: Delete this once we've converted all alias processing to internal. local aliases = ine(direct_args.alias) if aliases then -- Allow and discard a trailing semicolon, to make managing multiple aliases easier. aliases = ugsub(aliases, "%s*;$", "") for alias_spec in gsplit(aliases, "%s*;%s*") do local alias_spec_parts = split(alias_spec, "%s*:%s*") if #alias_spec_parts ~= 2 then error(("Ji bo bernav '%s' divê (:) tê de hebe"):format(alias_spec)) -- ("Alias spec '%s' should have one colon in it"):format(alias_spec) ev çi dibêje? end local dest, sources = unpack(alias_spec_parts) sources = split(sources, "%s*,%s*") local saw_source = nil for _, source in ipairs(sources) do if source:match("^%d+$") then source = tonumber(source) end if args[source] then if saw_source == nil then saw_source = source else error(("|%s= û |%s= bernav in; nabe ku nirx ji bo herduyan were dayîn"):format(saw_source, source)) end end end if saw_source then if args[dest] then error(("|%s= bernavê |%s= ye; nabe ku nirx ji bo herduyan were dayîn"):format(saw_source, dest)) end args[dest] = args[saw_source] -- Wipe out the original after copying. This important in case of a param that has general significance -- but has been redefined (e.g. {{quote-av}} redefines number= for the episode number, and -- {{quote-journal}} redefines title= for the chapter= (article). It's also important due to unhandled -- parameter checking. args[saw_source] = nil alias_map[dest] = saw_source end end end -- Process error_if. The value of `error_if` is a comma-separated list of parameter names to throw an error if seen -- in parent_args (they are params we overwrite in the direct args). local error_ifs = ine(direct_args.error_if) if error_ifs then for error_if in gsplit(error_ifs, "%s*,%s*") do if ine(parent_args[error_if]) then error( ("Nabe ku nirxek ji bo |%s=%s were dayîn, ji ber ku dê were guhartin an paşguhkirin"):format( error_if, ine(parent_args[error_if]) ) ) end end end for pname, param in pairs(direct_args) do -- ignore control params if pname ~= "ignore" and pname ~= "alias" and pname ~= "error_if" and pname ~= "noroman" then args[pname] = ine(param) end end return args, alias_map, other_controls end local function get_args(frame_args, parent_args, require_lang) -- FIXME: We are processing arguments twice, once in clone_args() and then again in [[Module:parameters]]. This is -- wasteful of memory. local cloned_args, alias_map, other_controls = clone_args(frame_args, parent_args) local deprecated = ine(parent_args.lang) or ine(parent_args.ziman) if ine(parent_args[1]) and deprecated then error("Nikarî hem parametreya 1. (koda zimên) hem jî |lang=/|ziman= bi hev re bi kar bînî; tenê yekê ji wan bi kar bîne.") end -- Enforce the language requirement here (instead of leaving it to Module:parameters' generic "required" -- validation) so the namespace-aware custom error below actually gets a chance to run. if require_lang and not (ine(parent_args[1]) or deprecated) then local current_title = mw.title.getCurrentTitle() if not (current_title.namespace == 10 or page_should_be_ignored(current_title.fullText)) then require(languages_error_module)(nil, 1) end end local alias_of_t = {alias_of = "t"} local boolean = {type = "boolean"} local language_sublist = {type = "language", sublist = true} local list_allow_holes = {list = true, allow_holes = true} local script = {type = "script"} local function alias_list_allow_holes(canon) return {alias_of = canon, list = true, allow_holes = true} end -- First, the "single" params that don't have FOO2 or FOOn versions. local params = { [deprecated and "lang" or 1] = {type = "language", sublist = true, default = "und"}, ["lang2"] = language_sublist, ["ziman2"] = {alias_of = "lang2", type = "language", sublist = true}, ["newversion"] = true, ["versiyona-nû"] = {alias_of = "newversion"}, ["author"] = list_allow_holes, ["nivîskar"] = alias_list_allow_holes("author"), ["2ndauthor"] = true, ["2nivîskar"] = {alias_of = "2ndauthor"}, ["trans-author"] = list_allow_holes, ["tercimeya-nivîskar"] = alias_list_allow_holes("trans-author"), ["authorlink"] = list_allow_holes, ["lînka-nivîskar"] = alias_list_allow_holes("authorlink"), ["2ndauthorlink"] = true, ["2lînka-nivîskar"] = {alias_of = "2ndauthorlink"}, ["trans-authorlink"] = list_allow_holes, ["lînka-tercimeya-nivîskar"] = alias_list_allow_holes("trans-authorlink"), ["first"] = list_allow_holes, ["pêşnav"] = alias_list_allow_holes("first"), ["2ndfirst"] = true, ["2pêşnav"] = {alias_of = "2ndfirst"}, ["trans-first"] = list_allow_holes, ["tercimeya-pêşnav"] = alias_list_allow_holes("trans-first"), ["last"] = list_allow_holes, ["paşnav"] = alias_list_allow_holes("last"), ["2ndlast"] = true, ["2paşnav"] = {alias_of = "2ndlast"}, ["trans-last"] = list_allow_holes, ["tercimeya-paşnav"] = alias_list_allow_holes("trans-last"), ["nocat"] = boolean, ["nekat"] = {alias_of = "nocat"}, ["nocolon"] = boolean, -- quote params text = true, passage = {alias_of = "text"}, ["jêgirtin"] = {alias_of = "text"}, ["jg"] = {alias_of = "text"}, tr = true, transliteration = {alias_of = "tr"}, ts = true, transcription = {alias_of = "ts"}, norm = true, normalization = {alias_of = "norm"}, sc = script, normsc = script, sort = true, subst = true, footer = true, lit = true, ["hrf"] = {alias_of = "lit"}, t = true, translation = alias_of_t, ["tercime"] = alias_of_t, ["werger"] = alias_of_t, ["w"] = alias_of_t, gloss = alias_of_t, lb = true, ["e"] = {alias_of = "lb"}, brackets = boolean, ["parantez"] = {alias_of = "brackets"}, -- original quote params origtext = true, ["metna-orîjînal"] = {alias_of = "origtext"}, origtr = true, ["tr-orîjînal"] = {alias_of = "origtr"}, origts = true, ["ts-orîjînal"] = {alias_of = "origts"}, orignorm = true, ["norm-orîjînal"] = {alias_of = "orignorm"}, origsc = script, ["sc-orîjînal"] = {alias_of = "origsc"}, orignormsc = script, ["normsc-orîjînal"] = {alias_of = "orignormsc"}, origsubst = true, ["subst-orîjînal"] = {alias_of = "origsubst"}, origlb = true, ["e-orîjînal"] = {alias_of = "origlb"}, usenodot = boolean, nodot = boolean, inline = boolean, asquote = boolean, ["wekjêgirtin"] = {alias_of = "asquote"}, ascite = boolean, ["wekçavkanî"] = {alias_of = "ascite"}, } -- ziman= is a deprecated Kurdish alias of the deprecated named lang= param (only meaningful once "lang" is -- actually a registered key, i.e. when deprecated is true; see the [deprecated and "lang" or 1] key above). if deprecated then params["ziman"] = {alias_of = "lang"} end -- Most params have PARAM2 variants for use with `newversion`. FIXME: We should generalize this to -- allow PARAMN variants for any N. local function add_with_2(param, value) params[param] = value params[param .. "2"] = value end local function alias_with_2(alias, canon) params[alias] = {alias_of = canon} params[alias .. "2"] = {alias_of = canon .. "2"} -- Record which alias was actually used, so error messages show e.g. |tarîx= instead of |date=. if cloned_args[alias] then alias_map[canon] = alias end if cloned_args[alias .. "2"] then alias_map[canon .. "2"] = alias .. "2" end end for _, param12 in ipairs{ "worklang", "termlang", "origlang", "origworklang" } do add_with_2(param12, language_sublist) end -- Then the newversion params (which have FOO2 versions). for _, param12 in ipairs{ -- author-like params; author params themselves are either list params (author=, last=, etc.) or single params -- (2ndauthor=, 2ndlast=, etc.) "coauthors", "quotee", "tlr", "editor", "editors", "mainauthor", "compiler", "compilers", "director", "directors", "lyricist", "lyrics-translator", "composer", "role", "actor", "artist", "feat", -- author control params "default-authorlabel", "authorlabel", -- title "title", "trans-title", "series", "seriesvolume", "notitle", -- entry "entry", "entryurl", "trans-entry", -- chapter "chapter", "chapterurl", "chapter_number", "chapter_plain", "chapter_series", "chapter_seriesvolume", "trans-chapter", "chapter_tlr", -- section "section", "sectionurl", "section_number", "section_plain", "section_series", "section_seriesvolume", "trans-section", -- other video-game params "system", "scene", "level", -- URL "url", "urls", "archiveurl", -- edition "edition", "edition_plain", -- ID params "bibcode", "doi", "isbn", "issn", "jstor", "lccn", "oclc", "ol", "pmid", "pmcid", "ssrn", "urn", "id", -- misc date params; most date params handled below "archivedate", "accessdate", "nodate", -- numeric params handled below -- other params "type", "genre", "format", "medium", "others", "quoted_in", "location", "publisher", "original", "by", "deriv", "note", "note_plain", "other", "source", "platform", } do add_with_2(param12, true) end -- Then the aliases of newversion params (which have FOO2 versions). for _, param12_aliased in ipairs{ {"role", "roles"}, {"role", "speaker"}, {"tlr", "tlrs"}, {"tlr", "translator"}, {"tlr", "translators"}, {"chapter_tlr", "chapter_tlrs"}, {"chapter_tlr", "chapter_translator"}, {"chapter_tlr", "chapter_translators"}, {"doi", "DOI"}, {"isbn", "ISBN"}, {"issn", "ISSN"}, {"jstor", "JSTOR"}, {"lccn", "LCCN"}, {"oclc", "OCLC"}, {"ol", "OL"}, {"pmid", "PMID"}, {"pmcid", "PMCID"}, {"ssrn", "SSRN"}, {"urn", "URN"}, } do local canon, alias = unpack(param12_aliased) alias_with_2(alias, canon) end -- tercimeyên Then the aliases of newversion params (which have FOO2 versions). for _, param12_aliased in ipairs{ {"role", "rol"}, {"role", "axivêr"}, {"tlr", "terciman"}, {"tlr", "wergêr"}, {"chapter_tlr", "tercimanên-beşê"}, {"chapter_tlr", "tercimanê-beşê"}, {"chapter_tlr", "tercimana-beşê"}, {"chapter_tlr", "wergêrên-beşê"}, {"chapter_tlr", "wergêrê-beşê"}, {"chapter_tlr", "wergêra-beşê"}, -- tercimeyên Then the newversion params (which have FOO2 versions). -- author-like params; author params themselves are either list params (author=, last=, etc.) or single params -- (2ndauthor=, 2ndlast=, etc.) {"coauthors", "hevnivîskar"}, {"quotee", "jê-tê-girtin"}, {"editor", "edîtor"}, {"editor", "amadekar"}, {"mainauthor", "nivîskarê-sereke"}, {"compiler", "berhevkar"}, {"director", "derhêner"}, {"lyricist", "gotinnivîs"}, {"lyrics-translator", "tercimanê-gotinan"}, {"lyrics-translator", "tercimana-gotinan"}, {"lyrics-translator", "wergêrê-gotinan"}, {"lyrics-translator", "wergêra-gotinan"}, {"composer", "bestekar"}, {"actor", "aktor"}, {"actor", "lîstikvan"}, {"artist", "hunermend"}, {"artist", "artîst"}, {"feat", "mêvan"}, --tercimeyên author control params {"default-authorlabel", "standard-etîketa-nivîskar"}, {"authorlabel", "etîketa-nivîskar"}, --tercimeyên title {"title", "sernav"}, {"trans-title", "tercimeya-sernav"}, {"trans-title", "wergera-sernav"}, {"series", "serî"}, {"series", "rêze"}, {"seriesvolume", "cildê-seriyê"}, {"seriesvolume", "cildê-rêzeyê"}, {"notitle", "bêsernav"}, --tercimeyên entry {"entry", "made"}, {"entryurl", "urlya-madeyê"}, {"trans-entry", "tercimeya-made"}, {"trans-entry", "wergera-madeyê"}, --tercimeyên chapter {"chapter", "beş"}, {"chapterurl", "urlya-beşê"}, {"chapter_number", "hejmara-beşê"}, {"chapter_plain", "beş-sade"}, {"chapter_series", "seriya-beşê"}, {"chapter_series", "rêzeya-beşê"}, {"chapter_seriesvolume", "cildê-seriya-beşê"}, {"chapter_seriesvolume", "cildê-rêzeya-beşê"}, {"trans-chapter", "tercimeya-beş"}, {"trans-chapter", "wergera-beşê"}, --tercimeyên section {"section", "qisim"}, {"section", "qism"}, {"sectionurl", "urlya-qismê"}, {"section_number", "hejmara-qismê"}, {"section_plain", "qisim-sade"}, {"section_plain", "qism-sade"}, {"section_series", "rêzeya-qismê"}, {"section_seriesvolume", "cildê-seriya-qismê"}, {"section_seriesvolume", "cildê-rêzeya-qismê"}, {"trans-section", "tercimeya-qism"}, {"trans-section", "tercimeya-qisim"}, --tercimeyên other video-game params {"system", "sîstem"}, {"system", "pergal"}, {"scene", "sehne"}, {"level", "seviye"}, --tercimeyên URL {"archiveurl", "urlya-arşîvê"}, -- tercimeyên edition {"edition", "çap"}, {"edition_plain", "çap-sade"}, --tercimeyên misc date params; most date params handled below {"archivedate", "roja-arşîvê"}, {"archivedate", "tarîxa-arşîvê"}, {"accessdate", "tarîxa-gihiştinê"}, {"accessdate", "roja-gihiştinê"}, {"nodate", "bêtarîx"}, --tercimeyên other params {"type", "cure"}, {"genre", "janr"}, {"medium", "medya"}, {"others", "kesên-din"}, {"others", "yên-din"}, {"quoted_in", "cihê-jêgirtinê"}, {"location", "cih"}, {"location", "cîh"}, {"publisher", "weşanxane"}, {"publisher", "weşanger"}, {"original", "orîjînal"}, {"original", "orjînal"}, {"by", "ji-aliyê"}, {"by", "ji-hêla"}, --{"deriv", ""}, {"note", "not"}, {"note_plain", "not-sade"}, {"other", "yê-din"}, {"source", "çavkanî"}, --tercimeyên {"worklang", "zimanê-eserê"}, {"termlang", "zimanê-termê"}, {"origlang", "zimanê-orîjînal"}, {"origworklang", "zimanê-esera-orîjînal"}, } do local canon, alias = unpack(param12_aliased) alias_with_2(alias, canon) end -- Then the date params. for _, datelike in ipairs{{"", ""}, {"orig", ""}, {"", "_published"}} do local pref, suf = unpack(datelike) for _, arg in ipairs{"date", "year", "month", "start_date", "start_year", "start_month"} do add_with_2(pref .. arg .. suf, true) end end -- Kurmancî aliases for the date params for _, date_aliased in ipairs{ {"date", "tarîx"}, {"date", "dîrok"}, {"year", "sal"}, {"month", "meh"}, {"start_date", "tarîxa-destpêkê"}, {"start_year", "sala-destpêkê"}, {"start_month", "meha-destpêkê"}, {"origdate", "tarîxa-orîjînal"}, {"origyear", "sala-orîjînal"}, {"origyear", "sala orîjînal"}, {"origmonth", "meha-orîjînal"}, {"origstart_date", "tarîxa-destpêkê-orîjînal"}, {"origstart_year", "sala-destpêkê-orîjînal"}, {"origstart_month", "meha-destpêkê-orîjînal"}, {"date_published", "tarîxa-weşandinê"}, {"year_published", "sala-weşandinê"}, {"year_published", "sala weşandinê"}, {"month_published", "meha-weşandinê"}, {"start_date_published", "tarîxa-destpêkê-weşandin"}, {"start_year_published", "sala_destpêkê-weşandin"}, {"start_month_published", "meha-destpêkê-weşandin"} } do local canon, alias = unpack(date_aliased) alias_with_2(alias, canon) end local numeric_param_suffixes = {"", "s", "_plain", "url", "_prefix"} -- Then the numeric params. for _, numeric in ipairs{"volume", "issue", "number", "line", "page", "column"} do for _, suf in ipairs(numeric_param_suffixes) do add_with_2(numeric .. suf, true) end end -- canon word -> Kurdish forms -- aliases : plain synonyms (maps straight to canon, e.g. "volume") -- sade : ezafe form used before "-sade" (canon .. "_plain") -- urlya : ezafe form used after "urlya-" (canon .. "url") local ku_numeric = { volume = {aliases = {"cild", "cîld"}, sade = "cild", urlya = "cild"}, issue = {aliases = {"hj", "hejmar"}, sade = "hejmar", urlya = "hejmarê"}, number = {aliases = {"nimare"}, sade = "nimare", urlya = "nimareyê"}, line = {aliases = {"rêz"}, sade = "rêz", urlya = "rêzê"}, page = {aliases = {"rûpel", "r"}, sade = "rûpel", urlya = "rûpelê"}, column = {aliases = {"stûn"}, sade = "stûn", urlya = "stûnê"}, } local ku_numeric_plural = { volume = "cildên", issue = "hejmarên", number = "nimareyên", line = "rêzên", page = "rûpelên", column = "stûnên", } for canon, t in pairs(ku_numeric) do for _, alias in ipairs(t.aliases) do alias_with_2(alias, canon) end alias_with_2(t.sade .. "-sade", canon .. "_plain") alias_with_2("urlya-" .. t.urlya, canon .. "url") alias_with_2("pêşgira-" .. t.urlya, canon .. "_prefix") end for canon, plural in pairs(ku_numeric_plural) do alias_with_2(plural, canon .. "s") end -- And the aliases of numeric params. for _, numeric_aliased in ipairs{{"volume", "vol"}} do local canon, alias = unpack(numeric_aliased) for _, suf in ipairs(numeric_param_suffixes) do alias_with_2(alias .. suf, canon .. suf) end end return process_params(cloned_args, params), alias_map, other_controls end local function get_origtext_params(args) local origtext, origtextlang, origsc, orignormsc if args.origtext then -- Wiktionary language codes have at least two lowercase letters followed possibly by lowercase letters and/or -- hyphens (there are more restrictions but this is close enough). Also check for nonstandard Latin etymology -- language codes (e.g. VL. or LL.). (There used to be more nonstandard codes but they have all been -- eliminated.) origtextlang, origtext = args.origtext:match("^(%l%l[%l-]*):([^ ].*)$") if not origtextlang then -- Special hack for Latin variants, which can have nonstandard etym codes, e.g. VL., LL. origtextlang, origtext = args.origtext:match("^(%uL%.):([^ ].*)$") end if not origtextlang then error("origtext= divê bi pêşgira koda zimên dest pê bike") end origtextlang = get_lang(origtextlang, nil, "allow etym") or error("origtext= divê bi pêşgira koda zimên dest pê bike") origsc = args.origsc orignormsc = args.orignormsc else for _, noparam in ipairs{"origtr", "origts", "origsc", "orignorm", "orignormsc", "origsubst", "origlb"} do if args[noparam] then error(("Nabe ku %s= bêyî origtext= were dayîn"):format(noparam)) end end end return origtext, origtextlang, origsc, orignormsc end local function get_quote(args, is_cite, source) local text = args.text local gloss = args.t local tr = args.tr local ts = args.ts local norm = args.norm local sc = args.sc local normsc = args.normsc -- Fetch original-text parameters. local origtext, origtextlang, origsc, orignormsc = get_origtext_params(args) -- If any quote-related args are present, display the actual quote; otherwise, display nothing. if text or gloss or tr or ts or norm or args.origtext then -- Pass "und" here rather than cause an error; there will be an error on mainspace, Citations, etc. pages -- in any case in source() if the language is omitted. local lang = get_first_lang(args[1] or args.lang) local termlang = args.termlang and get_first_lang(args.termlang) or lang local usex_data = { lang = lang, termlang = termlang, usex = text, sc = sc, translation = gloss, normalization = norm, normsc = normsc, transliteration = tr, transcription = ts, brackets = args.brackets, subst = args.subst, lit = args.lit, footer = args.footer, qq = parse_and_format_labels(args.lb, lang), quote = "quote-meta", orig = origtext, origlang = origtextlang, origsc = origsc, orignorm = args.orignorm, orignormsc = orignormsc, origtr = args.origtr, origts = args.origts, origsubst = args.origsubst, origqq = parse_and_format_labels(args.origlb, lang), noreq = args.noreq, nocat = is_cite or args.nocat, source = source } if args.inline then -- don't let usex format the footer, otherwise it gets inlined with the rest of the quoted text usex_data.footer = nil usex_data.inline = 1 text = format_usex(usex_data) if text then text = " “" .. text .. "”" else text = "" end if args.footer then text = text .. "<dl><dd>" .. args.footer .. "</dd></dl>" end else text = format_usex(usex_data) end elseif args.footer then text = "<dl><dd>" .. args.footer .. "</dd></dl>" end return text end -- External interface, meant to be called from a template. Replaces {{quote-meta}} and meant to be the primary -- interface for {{quote-*}} templates. function export.quote_t(frame) local args, alias_map, other_controls = get_args(frame.args, frame:getParent().args, "require_lang") if args.ascite then return export.cite_t(frame) end return show_quote(args, alias_map, other_controls) end function show_quote(args, alias_map, other_controls) local parts = {} -- kuwikt always hides the trailing colon on quote_t. args.nocolon = true insert(parts, get_quote(args, false, export.source(args, alias_map, nil, other_controls))) local retval = concat(parts) return deprecated and frame:expandTemplate({ title = "check deprecated lang param usage", args = {retval, lang = args.lang}, }) or retval end -- External interface, meant to be called from a template. Replaces {{cite-meta}} and meant to be the primary -- interface for {{cite-*}} templates. function export.cite_t(frame) local parent_args = {} for k, v in pairs(frame:getParent().args) do parent_args[k] = v end -- use "und" as lang if none provided at all (not even via the deprecated named lang=/ziman=). Don't synthesize -- this when lang=/ziman= was used, or the deprecated-shift logic in process_type_aliases() will misread this -- placeholder as a genuine shifted positional value (e.g. type=book's position-2-is-year), duplicating it into -- a real alias like sal=. if parent_args[1] == nil and not (ine(parent_args.lang) or ine(parent_args.ziman)) then parent_args[1] = "und" end local args, alias_map, other_controls = get_args(frame.args, parent_args) if args.asquote then return show_quote(args, alias_map, other_controls) end return show_cite(args, alias_map, other_controls) end function show_cite(args, alias_map, other_controls) local parts = {} -- don't nag for translations if args.text and not args.t then args.noreq = 1 end local len_visible = args.text and ulen((args.text:gsub("<[^<>]+>", ""))) or 0 if len_visible == 0 then if not args.t or args.t == "-" then args.nocolon = true end elseif args.inline == nil then args.inline = not ( args.block_text or len_visible > 300 or (args.t and not args.t == "-" and len_visible < 80) or string.match(args.text, "<br>") ) end insert(parts, '<span class="citation-whole"><span class="cited-source">') insert(parts, export.source(args, alias_map, "format_as_cite", other_controls)) insert(parts, "</span>") insert(parts, get_quote(args, "is_cite")) insert(parts, "</span>") local retval = concat(parts) return deprecated and frame:expandTemplate({ title = "check deprecated lang param usage", args = {retval, lang = args.lang}, }) or retval end -- External interface, meant to be called from a template. function export.call_quote_template(frame) return export.call_template(frame) end -- External interface, for calling a template with overloaded parameters. function export.overload(frame) local iargs, overloaded_args = process_params(frame.args, { [1] = {required = true} }, true) local parent_args = frame:getParent().args for k, v in pairs(parent_args) do overloaded_args[k] = v end return frame:expandTemplate{title = iargs[1], args = overloaded_args} end -- External interface, meant to be called from a template. function export.call_template(frame) local parameter_sublist = {type = "parameter", sublist = true} local iargs, other_direct_args = process_params(frame.args, { ["template"] = true, ["textparam"] = parameter_sublist, ["pageparam"] = parameter_sublist, ["propagateparams"] = parameter_sublist, ["allowparams"] = {sublist = true}, -- Doesn't use type = "parameter", because any that end in :list get processed differently. }, true) local function fetch_param(source, params) for _, param in ipairs(params) do if source[param] then return source[param] end end return nil end local params = { ["text"] = true, ["passage"] = true, ["jêgirtin"] = true, ["footer"] = true, -- always propagates, but gets special formatting } -- paramaters that can be used during template declaration or included in template calls -- if the template is called with param=- it will set any declared value to nil local always_propagate = { ["brackets"] = true, ["usenodot"] = true, ["nodot"] = true, ["ascite"] = true, ["asquote"] = true, } for k,v in pairs(always_propagate) do params[k] = v end local textparam = iargs.textparam or {} for _, param in ipairs(textparam) do params[param] = true end local pageparam = iargs.pageparam or {} local pageparam1 = pageparam[1] if pageparam1 ~= nil then params["page"], params["pages"] = true, true for _, param in ipairs(pageparam) do params[param] = true end end local allowparams, allow_all, list = iargs.allowparams, false if allowparams ~= nil then for _, allow in ipairs(allowparams) do local param = allow:match("^(.*):list$") if param then if list == nil then list = {list = true} end params[scribunto_parameter_key(param)] = list elseif allow == "*" then track("no parameter checking") allow_all = true else params[scribunto_parameter_key(allow)] = true end end else local parent = frame:getParent() local template_name = parent:getTitle() local template_title = new_title(template_name) local content = template_title:getContent() local allowed_params, seen = {}, {} -- Detect all params used by the parent template. param:get_name() takes the -- parent frame arg table as an argument so that preprocessing will take -- them into account, since it will matter if the name contains another -- parameter (e.g. the outer param in "{{{foo{{{bar}}}baz}}}" will change -- depending on the value for bar=). `seen` memoizes results based on the -- raw parameter text (which is stored as a string in the parameter object), -- which avoids unnecessary param:get_name() calls, which are non-trivial. for param in find_parameters(content) do local raw = param.raw if not seen[raw] then allow = param:get_name(template_args) params[scribunto_parameter_key(allow)] = true seen[raw] = true end end end local propagateparams = iargs.propagateparams or {} for _, param in ipairs(propagateparams) do params[param] = true end local parent_args = frame:getParent().args local args = process_params(parent_args, params, allow_all) parent_args = shallow_copy(parent_args) if textparam[1] ~= "-" then other_direct_args.passage = args.text or args.passage or args["jêgirtin"] or fetch_param(args, textparam) end if not (pageparam1 == nil or pageparam1 == "-") then other_direct_args.page = fetch_param(args, pageparam) or args.page or other_direct_args.page or nil other_direct_args.pages = args.pages or other_direct_args.pages or nil if other_direct_args.page == "-" then other_direct_args.page = nil end if other_direct_args.pages == "-" then other_direct_args.pages = nil end end if args.footer then other_direct_args.footer = frame:expandTemplate{title = "small", args = {args.footer}} end for param, _ in pairs(always_propagate) do if args[param] == "-" then other_direct_args[param] = nil else other_direct_args[param] = args[param] or other_direct_args[param] or nil end end -- authorlink=- can be used to prevent copying of author= to authorlink= but we don't want to propagate this to -- the actual {{quote-*}} code. if other_direct_args.authorlink == "-" then other_direct_args.authorlink = nil end for _, param in ipairs(propagateparams) do if args[param] then other_direct_args[param] = args[param] end end return frame:expandTemplate{title = iargs.template or "quote-book", args = other_direct_args} end local paramdoc_param_replacements = { passage = { param_with_synonym = "<<synonym>>, {{para|text}}, or {{para|passage}}", param_no_synonym = "{{para|text}} or {{para|passage}}", text = [=[ * <<params>> – the passage to be quoted.]=], }, page = { param_with_synonym = "<<synonym>> or {{para|page}}, or {{para|pages}}", param_no_synonym = "{{para|page}} or {{para|pages}}", text = [=[ * <<params>> – '''mandatory in some cases''': the page number(s) quoted from. When quoting a range of pages, note the following: ** Separate the first and last pages of the range with an [[en dash]], like this: {{para|pages|10–11}}. ** You must also use {{para|pageref}} to indicate the page to be linked to (usually the page on which the Wiktionary entry appears). : This parameter must be specified to have the template link to the online version of the work.]=], }, page_with_roman_preface = { param_with_synonym = {"inherit", "page"}, param_no_synonym = {"inherit", "page"}, text = [=[ * <<params>> – '''mandatory in some cases''': the page number(s) quoted from. If quoting from the preface, specify the page number(s) in lowercase Roman numerals. When quoting a range of pages, note the following: ** Separate the first and last page number of the range with an [[en dash]], like this: {{para|pages|10–11}} or {{para|pages|iii–iv}}. ** You must also use {{para|pageref}} to indicate the page to be linked to (usually the page on which the Wiktionary entry appears). : This parameter must be specified to have the template link to the online version of the work.]=], }, chapter = { param_with_synonym = "<<synonym>> or {{para|chapter}}", param_no_synonym = "{{para|chapter}}", text = [=[ * <<params>> – the name of the chapter quoted from.]=], }, roman_chapter = { param_with_synonym = {"inherit", "chapter"}, param_no_synonym = {"inherit", "chapter"}, text = [=[ * <<params>> – the chapter number quoted from in uppercase Roman numerals.]=], }, arabic_chapter = { param_with_synonym = {"inherit", "chapter"}, param_no_synonym = {"inherit", "chapter"}, text = [=[ * <<params>> – the chapter number quoted from in Arabic numerals.]=], }, trailing_params = { text = [=[ * {{para|footer}} – a comment on the passage quoted. * {{para|brackets}} – use {{para|brackets|on}} to surround a quotation with [[bracket#Noun|brackets]]. This indicates that the quotation either contains a mere mention of a term (for example, “some people find the word '''''manoeuvre''''' hard to spell”) rather than an actual use of it (for example, “we need to '''manoeuvre''' carefully to avoid causing upset”), or does not provide an actual instance of a term but provides information about related terms.]=], }, } function export.paramdoc(frame) local parargs = frame:getParent().args local args = process_params(parargs, { [1] = true, }) local text = args[1] local function do_param_with_optional_synonym(param, text_to_sub, paramtext_synonym, paramtext_no_synonym) local function sub_param(synonym) local subbed_paramtext if synonym then subbed_paramtext = paramtext_synonym:gsub("<<synonym>>", "{{para|" .. replacement_escape(synonym) .. "}}") else subbed_paramtext = paramtext_no_synonym end return frame:preprocess((text_to_sub:gsub("<<params>>", replacement_escape(subbed_paramtext)))) end text = text:gsub("<<" .. pattern_escape(param) .. ">>", function() return sub_param() end) text = text:gsub("<<" .. pattern_escape(param) .. ":(.-)>>", sub_param) end local function fetch_text(param_to_replace, key) local spec = paramdoc_param_replacements[param_to_replace] local val = spec[key] if type(val) == "string" then return val end if type(val) == "table" and val[1] == "inherit" then return fetch_text(val[2], key) end error( "Internal error: Unrecognized value for param '" .. param_to_replace .. "', key '" .. key .. "': " .. mw.dumpObject(val) ) end for param_to_replace, spec in pairs(paramdoc_param_replacements) do if not spec.param_no_synonym then -- Text to substitute directly. text = text:gsub("<<" .. pattern_escape(param_to_replace) .. ">>", function() return frame:preprocess(fetch_text(param_to_replace, "text")) end) else do_param_with_optional_synonym( param_to_replace, fetch_text(param_to_replace, "text"), fetch_text(param_to_replace, "param_with_synonym"), fetch_text(param_to_replace, "param_no_synonym") ) end end -- Remove final newline so template code can add a newline after invocation text = text:gsub("\n$", "") return text end return export 99rzvf50qfcslltek1nakuge9y0j84x 6329853 6329852 2026-08-13T00:01:47Z Wikihez 7344 6329853 Scribunto text/plain --[=[ This module contains functions to implement quote-* templates. Author: Benwing2; conversion into Lua of {{quote-meta/source}} template, written by Sgconlaw with some help from Erutuon and Benwing2. The main interface is quote_t(). Note that the source display is handled by source(), which reads both the arguments passed to it *and* the arguments passed to the parent template, with the former overriding the latter. ]=] local export = {} --[=[ FIXME: 1. Dates like `1 march 2025` with the day of the month being 1 and the month lowercased are treated as month-year-only. The relevant code checks for a capitalized word; it should probably instead check for the actual month names or abbrevs. ]=] -- Named constants for all modules used, to make it easier to swap out sandbox versions. local check_isxn_module = "Module:check isxn" local debug_track_module = "Module:debug/track" local en_utilities_module = "Module:en-utilities" local italics_module = "Module:italics" local labels_module = "Module:labels" local languages_module = "Module:languages" local languages_error_module = "Module:languages/error" local links_module = "Module:links" local number_utilities_module = "Module:number utilities" local parameters_module = "Module:parameters" local parse_utilities_module = "Module:parse utilities" local qualifier_module = "Module:qualifier" local roman_numerals_module = "Module:roman numerals" local scribunto_module = "Module:Scribunto" local script_utilities_module = "Module:script utilities" local scripts_module = "Module:scripts" local string_pattern_escape_module = "Module:string/patternEscape" local string_replacement_escape_module = "Module:string/replacementEscape" local string_utilities_module = "Module:string utilities" local table_module = "Module:table" local template_parser_module = "Module:template parser" local usex_module = "Module:usex" local usex_templates_module = "Module:usex/templates" local utilities_module = "Module:utilities" local yesno_module = "Module:yesno" local concat = table.concat local insert = table.insert local new_title = mw.title.new local remove = table.remove local require = require local sort = table.sort local u = mw.ustring.char local ugsub = mw.ustring.gsub local umatch = mw.ustring.match local unpack = unpack or table.unpack -- Lua 5.2 compatibility -- Use HTML entities here to avoid parsing issues (esp. with brackets) local SEMICOLON_SPACE = "&#59; " local SPACE_LBRAC = " &#91;" local RBRAC = "&#93;" local TEMP_LT = u(0xFFF1) local TEMP_GT = u(0xFFF2) local TEMP_LBRAC = u(0xFFF3) local TEMP_RBRAC = u(0xFFF4) local TEMP_SEMICOLON = u(0xFFF5) local function apply_subst(...) apply_subst = require(usex_module).apply_subst return apply_subst(...) end local function check_isbn(...) check_isbn = require(check_isxn_module).check_isbn return check_isbn(...) end local function check_issn(...) check_issn = require(check_isxn_module).check_issn return check_issn(...) end local function debug_track(...) debug_track = require(debug_track_module) return debug_track(...) end local function decode_entities(...) decode_entities = require(string_utilities_module).decode_entities return decode_entities(...) end local function embedded_language_links(...) embedded_language_links = require(links_module).embedded_language_links return embedded_language_links(...) end local function escape_wikicode(...) escape_wikicode = require(parse_utilities_module).escape_wikicode return escape_wikicode(...) end local function find_best_script_without_lang(...) find_best_script_without_lang = require(scripts_module).findBestScriptWithoutLang return find_best_script_without_lang(...) end local function find_parameters(...) find_parameters = require(template_parser_module).find_parameters return find_parameters(...) end local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function format_processed_labels(...) format_processed_labels = require(labels_module).format_processed_labels return format_processed_labels(...) end local function format_qualifier(...) format_qualifier = require(qualifier_module).format_qualifier return format_qualifier(...) end local function format_usex(...) format_usex = require(usex_module).format_usex return format_usex(...) end local function get_lang(...) get_lang = require(languages_module).getByCode return get_lang(...) end local function get_number(...) get_number = require(number_utilities_module).get_number return get_number(...) end local function get_script(...) get_script = require(scripts_module).getByCode return get_script(...) end local function gsplit(...) gsplit = require(string_utilities_module).gsplit return gsplit(...) end local function page_should_be_ignored(...) page_should_be_ignored = require(usex_templates_module).page_should_be_ignored return page_should_be_ignored(...) end local function parse_inline_modifiers(...) parse_inline_modifiers = require(parse_utilities_module).parse_inline_modifiers return parse_inline_modifiers(...) end local function parse_inline_modifiers_from_segments(...) parse_inline_modifiers_from_segments = require(parse_utilities_module).parse_inline_modifiers_from_segments return parse_inline_modifiers_from_segments(...) end local function parse_multi_delimiter_balanced_segment_run(...) parse_multi_delimiter_balanced_segment_run = require(parse_utilities_module).parse_multi_delimiter_balanced_segment_run return parse_multi_delimiter_balanced_segment_run(...) end local function parse_term_with_lang(...) parse_term_with_lang = require(parse_utilities_module).parse_term_with_lang return parse_term_with_lang(...) end local function pattern_escape(...) pattern_escape = require(string_pattern_escape_module) return pattern_escape(...) end local function pluralize(...) pluralize = require(en_utilities_module).pluralize return pluralize(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function remove_links(...) remove_links = require(links_module).remove_links return remove_links(...) end local function roman_to_arabic(...) roman_to_arabic = require(roman_numerals_module).roman_to_arabic return roman_to_arabic(...) end local function replacement_escape(...) replacement_escape = require(string_replacement_escape_module) return replacement_escape(...) end local function scribunto_parameter_key(...) scribunto_parameter_key = require(scribunto_module).scribunto_parameter_key return scribunto_parameter_key(...) end local function serial_comma_join(...) serial_comma_join = require(table_module).serialCommaJoin return serial_comma_join(...) end local function shallow_copy(...) shallow_copy = require(table_module).shallowCopy return shallow_copy(...) end local function split(...) split = require(string_utilities_module).split return split(...) end local function split_alternating_runs(...) split_alternating_runs = require(parse_utilities_module).split_alternating_runs return split_alternating_runs(...) end local function split_and_process_raw_labels(...) split_and_process_raw_labels = require(labels_module).split_and_process_raw_labels return split_and_process_raw_labels(...) end local function split_on_comma(...) split_on_comma = require(parse_utilities_module).split_on_comma return split_on_comma(...) end local function tag_text(...) tag_text = require(script_utilities_module).tag_text return tag_text(...) end local function tag_transcription(...) tag_transcription = require(script_utilities_module).tag_transcription return tag_transcription(...) end local function tag_translit(...) tag_translit = require(script_utilities_module).tag_translit return tag_translit(...) end local function ulen(...) ulen = require(string_utilities_module).len return ulen(...) end local function unitalicize_brackets(...) unitalicize_brackets = require(italics_module).unitalicize_brackets return unitalicize_brackets(...) end local function upper(...) upper = require(string_utilities_module).upper return upper(...) end local function usub(...) usub = require(string_utilities_module).sub return usub(...) end local function yesno(...) yesno = require(yesno_module) return yesno(...) end local function track(page) debug_track("quote/" .. page) end local function maintenance_line(text) return '<span class="maintenance-line">(' .. text .. ")</span>" end local function isbn(text) return "[[Special:BookSources/" .. text .. "|→ISBN]]" .. check_isbn( text, '&nbsp;<span class="error" style="font-size:88%">Invalid&nbsp;ISBN</span>[[Category:Pages with ISBN errors]]' ) end local function issn(text) return "[https://www.worldcat.org/issn/" .. text .. " →ISSN]" .. check_issn( text, '&nbsp;<span class="error" style="font-size:88%">Invalid&nbsp;ISSN</span>[[Category:Pages with ISSN errors]]' ) end local function lccn(text) text = text:gsub(" ", "") if text:find("-") then -- old-style LCCN; reformat per request by [[User:The Editor's Apprentice]] local prefix, part1, part2 = text:match("^(.-)(%d+)%-(%d+)$") if prefix then if ulen(part2) < 6 then part2 = ("0"):rep(6 - ulen(part2)) .. part2 end text = prefix .. part1 .. part2 end end return "[https://lccn.loc.gov/" .. mw.uri.encode(text) .. " →LCCN]" end local function format_date(text) -- Localized formatDate translates month names, unlike {{#formatdate:}}. local language = mw.getContentLanguage() local ok, date = pcall(language.formatDate, language, "j F Y", text) if ok then return date end return mw.getCurrentFrame():callParserFunction("#formatdate", text, "dmy") end -- Parse a raw lb= param (or nil) to individual label info objects and then concatenate them appropriately into a -- qualifier input, respecting flags like `omit_preComma` and `omit_postSpace` in the label specs. local function parse_and_format_labels(raw_lb, lang) if not raw_lb then return nil end local labels = split_and_process_raw_labels{labels = raw_lb, lang = lang, nocat = true} labels = format_processed_labels{labels = labels, lang = lang, no_ib_content = true} if labels ~= "" then -- not sure labels can be an empty string but it seems possible in some circumstances return {labels} end end -- Convert a comma-separated list of language codes to a comma-separated list of language names. `fullname` is the -- name of the parameter from which the list of language codes was fetched. local function format_langs(langs) local names = {} for i, lang in ipairs(langs) do names[i] = lang:getCanonicalName() end if #names == 1 then return names[1] end return serial_comma_join(names) end local function get_first_lang(langs) return langs[1] or get_lang("und") end --[=[ Normally we parse off inline modifiers and language code prefixes in various places, e.g. he:מרים<tr:Miryem>. But we exclude HTML entries with <span ...>, <i ...>, <br/> or similar in it, caused by wrapping an argument in {{l|...}}, {{lang|...}} or similar. Basically, all tags of the sort we parse here should consist of a less-than sign, plus letters, plus a colon, e.g. <tr:...>, so if we see a tag on the outer level that isn't in this format, we don't try to parse it. The restriction to the outer level is to allow generated HTML inside of e.g. qualifier modifiers, such as foo<q:similar to {{m|fr|bar}}> (if we end up supporting such modifiers). Also exclude things that look like URL's from being parsed as having language code prefixes. ]=] local function val_should_not_be_parsed_for_annotations(val) return val:find("^[^<]*<%l*[^%l:]") or val:find("^%l+://") end local param_mods = { t = { -- <t:...> and <gloss:...> are aliases. item_dest = "gloss", }, gloss = {}, -- Kurmanji aliases of <t:...>/<gloss:...>. w = { item_dest = "gloss", }, werger = { item_dest = "gloss", }, tercime = { item_dest = "gloss", }, alt = {}, -- Kurmanji alias of <alt:...>. cuda = { item_dest = "alt", }, tr = {}, ts = {}, subst = {}, sc = {type = "script"}, f = { convert = function(arg, parse_err) local prefix, val = arg:match("^(.-):([^ ].*)$") if not prefix then prefix = "" val = arg end local tags, sc_code, sc = prefix:match("^(.*)/(.-)$") if sc_code then sc = get_script(sc_code) or require(languages_error_module)(sc_code, parse_err, "script code", nil, "not real lang") else tags = prefix end local quals if tags ~= "" then quals = split_on_comma(tags) for i, qual in ipairs(quals) do local obj = get_lang(qual, nil, "allow etym") or get_script(qual) quals[i] = obj or qual end end return { quals = quals, sc = sc, val = val, } end, store = "insert", }, q = {}, qq = {}, } local function generate_obj_annotated_text(text, parse_err, paramname) local obj = {} if text:find(":[^ ]") or text:find("%[%[") then local display, is_wikipedia_wikisource obj.text, obj.lang, obj.link, display, is_wikipedia_wikisource = parse_term_with_lang { term = text, parse_err = parse_err, paramname = paramname } -- HACK: If object is a Wikipedia or Wikisource link, we need to convert it to a two-part link -- to avoid the w: or s: prefix showing. We should probably avoid this by calling -- language_link() (in [[Module:links]]) in format_annotated_text() instead of the hacky stuff -- that we currently do; but we need to test that carefully to make sure it doesn't do things like -- munge % signs. if is_wikipedia_wikisource and not obj.text:find("%[%[") and not obj.text:find("%]%]") then -- Don't directly set .alt, because then if the user specifies <alt:...>, it will cause an error in -- parse_inline_modifiers(). obj.display = display end else obj.text = text obj.link = text end return obj end --[=[ Parse a textual property that may be in a foreign language or script and may be annotated with a language prefix and/or inline modifiers. `val` is the value of the parameter and `fullname` is the name of the parameter from which the value was retrieved. `explicit_gloss`, if specified and non-nil, overrides any gloss specified using the <t:...> or <gloss:...> inline modifier. If `val` is nil, the return value of this function is nil. Otherwise it is parsed for a language prefix (e.g. 'ar:مُؤَلِّف') and inline modifiers (e.g. 'ar:مُؤَلِّف<t:Author>'), and the return value is an object with the following fields: `lang`: The language object corresponding to the language prefix, if specified, or nil if no language prefix is given. `text`: The text after stripping off any language prefix and inline modifiers. `link`: The link part of the text if it consists of a two-part link; otherwise, same as `text`. `alt`: Display text specified using the <alt:...> modifier, if given; otherwise, nil. `subst`: Substitutions used to generate the transliteration, in the same format as the subst= parameter. `sc`: The script object corresponding to the <sc:...> modifier, if given; otherwise nil. `tr`: The transliteration corresponding to the <tr:...> modifier, if given; otherwise nil. `ts`: The transcription corresponding to the <ts:...> modifier, if given; otherwise nil. `gloss`: The gloss/translation corresponding to the `explicit_gloss` parameter (if given and non-nil), otherwise the <t:...> or <gloss:...> modifiers if given, otherwise nil. `f`: Foreign versions of the text. `q`: Left qualifiers. `qq`: Right qualifiers. Note that as a special case, if `val` contains HTML tags at the top level (e.g. '<span class="Arab">...</span>', as might be generated by specifying {{lang|ar|مُؤَلِّف}}), no language prefix or inline modifiers are parsed, and the return value has the `noscript` field set to true, which tells format_annotated_text() not to try to identify the script of the text and CSS-tag the text accordingly, but to leave the text untagged. This object can be passed to format_annotated_text() to format a string displaying the text (appropriately script-tagged, unless `noscript` is set, as described above) and modifiers. ]=] local function parse_annotated_text(val, fullname, explicit_gloss) if not val then return nil end -- When checking for inline modifiers, exclude HTML entry with <span ...>, <i ...>, <br/> or similar in it, caused -- by wrapping an argument in {{l|...}}, {{lang|...}} or similar. Also exclude URL's from being parsed as having -- language code prefixes. See val_should_not_be_parsed_for_annotations() for more information. If we find a -- parameter value with top-level HTML in it, add 'noscript = true' to indicate that we should not try to do script -- inference and tagging. (Otherwise, e.g. if you specify {{lang|ar|مُؤَلِّف}} as the author, you'll get an extra big -- font coming from the fact that {{lang|...}} wraps the Arabic text in CSS that increases the size from the -- default, and then we do script detection and again wrap the text in the same CSS, which increases the size even -- more.) if val_should_not_be_parsed_for_annotations(val) then return {text = val, link = val, noscript = true, gloss = explicit_gloss} end local obj if val:find("<") then -- Check for inline modifier. obj = parse_inline_modifiers(val, { paramname = fullname, param_mods = param_mods, generate_obj = generate_obj_annotated_text, }) else obj = generate_obj_annotated_text(val, nil, fullname) end if explicit_gloss then obj.gloss = explicit_gloss end return obj end local html_entity_char_to_replacement = { ["<"] = TEMP_LT, [">"] = TEMP_GT, ["["] = TEMP_LBRAC, ["]"] = TEMP_RBRAC, } local function html_entity_replacement(entity, code_without_semicolon, hash, xcode, x, code) -- Try to decode the entity. If successful, Replace certain special HTML entities (those that are bracket-like) -- with single Unicode characters; otherwise, replace the semicolon with a special character so it won't get -- interpreted as a delimiter. local ch = decode_entities(entity) if ch ~= entity then return html_entity_char_to_replacement[ch] or code_without_semicolon .. TEMP_SEMICOLON end -- If the entity doesn't decode, escape it anyway iff it follows a valid format. if hash == "" then -- Any nonstandard MediaWiki-only entities have now been filtered off, so treat any non-ASCII characters as -- invalid. return xcode:match("^[^\128-\255]+$") and code_without_semicolon .. TEMP_SEMICOLON or entity elseif x == "" then return xcode:match("^%d+$") and code_without_semicolon .. TEMP_SEMICOLON or entity end return code:match("^%x+$") and code_without_semicolon .. TEMP_SEMICOLON or entity end local html_entity_replacement_to_char = { [TEMP_LT] = "&lt;", [TEMP_GT] = "&gt;", [TEMP_LBRAC] = "&#91;", [TEMP_RBRAC] = "&#93;", [TEMP_SEMICOLON] = ";", } local function undo_html_entity_replacement(txt) -- Pattern covers everything in html_entity_replacement_to_char. return (txt:gsub("\239\191[\177-\181]", html_entity_replacement_to_char)) end -- NOTE: We try hard to optimize this function for the common cases and avoid loading [[Module:parse utilities]] -- in such cases. The cases we can handle without loading [[Module:parse utilities]] are single values (no -- semicolons present) without inline modifiers or language prefixes, and multi-entity values (semicolons present) -- without (a) brackets of any kind (including parens, braces and angle brackets; angle brackets typically indicate -- inline modifiers and other brackets may protect a semicolon from being interpreted as a delimiter); -- (b) ampersands (which may indicate HTML entities, which protect a semicolon from being interpreted as a -- delimiter); and (c) colons not followed by a space (which may indicate a language prefix). local function generate_obj_multivalued_annotated_text(text, parse_err, paramname, no_undo_html_entity_replacement) local obj = generate_obj_annotated_text(text, parse_err, paramname) if not no_undo_html_entity_replacement then obj.text = undo_html_entity_replacement(obj.text) obj.link = undo_html_entity_replacement(obj.link) end return obj end --[=[ Similar to parse_annotated_text() but the parameter value may contain multiple semicolon-separated entities, each with their own inline modifiers. Some examples: * mainauthor=Paula Pattengale; Terea Sonsthagen * author=Katie Brick; J. Cody Nielsen; Greg Jao; Eric Paul Rogers; John A. Monson * author=Suzanne Brockmann; Patrick G. Lawlor (Patrick Girard); Melanie Ewbank * author=G Ristori; et al. * author=Jason Scott; zh:王晰宁<t:Wang Xining> * editors=zh:包文俊; zh:金心雯 * quotee=zh:張福運<t:Chang Fu-yun>; zh:張景文<t:Chang Ching-wen> There may be embedded semicolons within brackets, braces or parens that should not be treated as delimiters, e.g.: * author=Oliver Optic [pseudonym; {{w|William Taylor Adams}}] * author=author=Shannon Drake (pen name; {{w|Heather Graham Pozzessere}}) * author=James (the Elder;) Humphrys There may also be HTML entities with semicolons in them: * author=&#91;{{w|Gilbert Clerke}}&#93; * 2ndauthor=Martin Biddle &amp; Sally Badham * author=Peter Christen Asbj&oslash;rnsen There may be both embedded semicolons and HTML entities with semicolons in them: * author=&#91;{{w|Voltaire}} [pseudonym; François-Marie Arouet]&#93; In general we want to treat &#91; like an opening bracket and &#93; like a closing bracket. Beware that they may be mismatched: * author=Anonymous &#91;{{w|Karl Maria Kertbeny}}] Here, `val` is the value of the parameter and `fullname` is the name of the parameter from which the value was retrieved. `explicit_gloss`, if specified and non-nil, overrides any gloss specified using the <t:...> or <gloss:...> inline modifier, and `explicit_gloss_fullname` is the name of the parameter from which this value was retrieved. (If `explicit_gloss` is specified and multiple values were seen, an error results.) Return value is a list of objects of the same sort as returned by parse_annotated_text(). ]=] local function parse_multivalued_annotated_text(val, fullname, explicit_gloss, explicit_gloss_fullname) if not val then return nil end -- NOTE: In the code that follows, we use `entity` most of the time to refer to one of the semicolon-separated -- values in the multivalued param. Entities are most commonly people (typically authors, editors, translators or -- the like), but may be the names of publishers, locations, or other entities. "Entity" can also refer to HTML -- entities; in the places where this occurs, the variable name contains 'html' in it. local splitchar, english_delim if val:find("^,") then splitchar = "," english_delim = "comma" val = val:gsub("^,", "") else splitchar = ";" english_delim = "semicolon" end -- Optimization #1: No semicolons/commas or angle brackets (indicating inline modifiers). if not val:find("[<" .. splitchar .. "]") then if val_should_not_be_parsed_for_annotations(val) then return {{text = val, link = val, noscript = true}} else return {generate_obj_multivalued_annotated_text(val, nil, fullname, "no undo html entity replacement")} end end -- Optimization #2: Semicolons/commas but no angle brackets (indicating inline modifiers), braces, brackets, or -- parens (any of which would protect the semicolon/comma from interpretation as a delimiter), and no ampersand -- (which might indicate an HTML entity with a terminating semicolon, which should not be interpreted as a -- delimiter). if not val:find("[<>%[%](){}&]") then local entity_objs = {} for entity in gsplit(val, "%s*" .. splitchar .. "%s*") do if val_should_not_be_parsed_for_annotations(entity) then insert(entity_objs, { text = entity, link = entity, noscript = true }) else insert(entity_objs, generate_obj_multivalued_annotated_text(entity, nil, fullname, "no undo html entity replacement")) end end return entity_objs end -- Escape HTML entities, and get rid of directionality markers. local amp = val:find("&", nil, true) if amp then -- The pattern is more permissive than the usual entity pattern, as MediaWiki has some nonstandard entities -- that have non-ASCII characters in their codes. val = val:gsub("((&(#?)(([xX]?)([%w\128-\255]+)));)", html_entity_replacement) end -- Pattern covers left-to-right (U+200E) and right-to-left (U+200F). val = val:gsub("\226\128[\142\143]", "") -- Parse balanced segment runs, treating HTML entities for left and right bracket and left and right angle bracket -- as matching literal versions of the same characters. local entity_runs = parse_multi_delimiter_balanced_segment_run( val, {{"[" .. TEMP_LBRAC, "]" .. TEMP_RBRAC}, {"(", ")"}, {"{", "}"}, {"<" .. TEMP_LT, ">" .. TEMP_GT}}, true ) if type(entity_runs) == "string" then local undo_val = undo_html_entity_replacement(val) -- Parse error due to unbalanced delimiters. Don't throw an error here; instead, don't attempt to parse off -- any annotations, but return the value directly, maybe allowing script tagging (not allowing it if it appears -- the text is already script-tagged). return {{text = undo_val, link = undo_val, noscript = not not val_should_not_be_parsed_for_annotations(val)}} end -- Split on semicolon (or comma), possibly surrounded by whitespace. local separated_groups = split_alternating_runs(entity_runs, "%s*" .. splitchar .. "%s*") -- Process each value. local entity_objs = {} for _, entity_group in ipairs(separated_groups) do -- Rejoin runs that don't involve <...>. local j = 2 while j <= #entity_group do if not entity_group[j]:find("^<.*>$") then entity_group[j - 1] = entity_group[j - 1] .. entity_group[j] .. entity_group[j + 1] remove(entity_group, j) remove(entity_group, j) else j = j + 2 end end local oneval = undo_html_entity_replacement(concat(entity_group)) -- When checking for inline modifiers, exclude HTML entry with <span ...>, <i ...>, <br/> or similar in it, -- caused by wrapping an argument in {{l|...}}, {{lang|...}} or similar. Also exclude URL's from being parsed -- as having language code prefixes. This works analogously to parse_annotated_text(); see there for more. if val_should_not_be_parsed_for_annotations(oneval) then insert(entity_objs, { text = oneval, link = oneval, noscript = true }) else local obj if #entity_group > 1 then -- Check for inline modifier. obj = parse_inline_modifiers_from_segments({ group = entity_group, arg = oneval, props = { paramname = fullname, param_mods = param_mods, generate_obj = generate_obj_multivalued_annotated_text, }, }) else obj = generate_obj_multivalued_annotated_text(entity_group[1], nil, fullname) end insert(entity_objs, obj) end end if explicit_gloss then if #entity_objs > 1 then error( ( "Nabe ku |%s= digel çend unsirên ku bi %s ve hatine veqetandin di |%s= de bi hev re were bikaranîn; " .. "ji bo her unsirê modîfîkatora hundirîn a <t:...> bi kar bîne" ):format(explicit_gloss_fullname, english_delim, fullname) ) end entity_objs[1].gloss = explicit_gloss end return entity_objs end --[=[ Format a text property that may be in a foreign language or script, along with annotations. This is conceptually similar to the full_link() function in [[Module:links]], but displays the annotations in a different format that is more appropriate for bibliographic entries. The output looks like this: TEXT [TRANSLIT /TRANSCRIPTION/, GLOSS] `textobj` is as returned by parse_annotated_text(). `tag_text_func`, if supplied, is a function of one argument to further wrap the text after it has been processed and CSS-tagged appropriately, directly before insertion. `tag_gloss_func` is a similar function for the gloss. ]=] local function format_annotated_text(textobj, tag_text_func, tag_gloss_func) if not textobj then return nil end local text, link = textobj.text, textobj.link local subst, tr, ts, f, gloss = textobj.subst, textobj.tr, textobj.ts, textobj.f, textobj.gloss -- Retrieve the display text, either specified by the user (.alt) or by parse_annotated_text() (.display) when a -- Wikipedia link is given. local alt = textobj.alt or textobj.display if alt then if link:find("%[%[") or link:find("%]%]") then local errmsg = ("Niha lînkên di hundirê '%s' de, digel nivîsa <alt:...> '%s', nayên piştgirîkirin"):format(link, alt) error(escape_wikicode(errmsg)) end text = ("[[%s|%s]]"):format(link, alt) end -- See above for `noscript`, meaning HTML was found in the text value, probably generated using {{lang|...}}. -- {{lang}} already script-tags the text and processes embedded language links, so we don't want to do it again (in -- fact, the code below within the if-clause is similar to what {{lang}} does). In such a case, an explicit language -- won't be available and find_best_script_without_lang() may not be accurate, so we can't do automatic transliteration. if not textobj.noscript then local lang = textobj.lang -- As an optimization, don't do script detection on an argument that contains only ASCII. local sc = textobj.sc or lang and lang:findBestScript(text) or not text:find("^[ -~]$") and find_best_script_without_lang(text) or nil -- As an optimization, don't do any of the following if there's no language, script, translit or transcription, -- as will be the case with simple ASCII values. if lang or sc or tr or ts then if not lang then lang = get_lang("und") end if tr == "-" then tr = nil elseif not tr and sc and not sc:getCode():find("Lat") then -- Latn, Latf, Latg, pjt-Latn -- might return nil local text_for_tr = text if subst then text_for_tr = apply_subst(text_for_tr, subst) else text_for_tr = remove_links(text) end tr = (lang:transliterate(text_for_tr, sc)) end if text:find("%[%[") then -- FIXME: embedded_language_links() replaces % signs with their URL-encoded equivalents, -- which messes up URL's that may be present (e.g. if chapterurl= is given). IMO this -- should not happen, and embedded_language_links() should do nothing if no embedded links -- are present. To work around this, only call embedded_language_links() when there are -- embedded links present. text = embedded_language_links({ term = text, lang = lang, sc = sc, }) end if lang:getCode() ~= "und" or sc:getCode() ~= "Latn" then text = tag_text(text, lang, sc) end if tr then -- Should we link to the transliteration of languages with lang:link_tr()? Probably not because `text` is not -- likely to be a term that has an entry. tr = tag_translit(tr, lang, "usex") end if ts then ts = tag_transcription(ts, lang, "usex") end end end text = unitalicize_brackets(text) if tag_text_func then text = tag_text_func(text) end local parts = {} if textobj.q then insert(parts, format_qualifier(textobj.q) .. " ") end insert(parts, text) if tr or ts or f or gloss then insert(parts, SPACE_LBRAC) local subparts = {} if tr or ts then local tr_ts if ts then ts = "/" .. ts .. "/" end if tr and ts then tr_ts = tr .. " " .. ts else tr_ts = tr or ts end insert(subparts, tr_ts) end if f then for _, ff in ipairs(f) do local sc = ff.sc local lang if not sc and ff.quals then local qual = ff.quals[1] if type(qual) == "string" then -- do nothing; we'll do script detection farther down elseif qual:hasType("script") then sc = qual else -- language sc = qual:findBestScript(ff.val) lang = qual end end if not lang then lang = get_lang("und") end sc = sc or find_best_script_without_lang(ff.val) local val = embedded_language_links({ term = ff.val, lang = lang, sc = sc, }) if lang:getCode() ~= "und" or sc:getCode() ~= "Latn" then val = tag_text(val, lang, sc) end local qual_prefix if ff.quals then for i, qual in ipairs(ff.quals) do if type(qual) ~= "string" and (qual:hasType("script") or qual:hasType("language")) then ff.quals[i] = qual:getCanonicalName() end end qual_prefix = concat(ff.quals, "/") .. ": " else qual_prefix = "" end insert(subparts, qual_prefix .. val) end end if gloss then gloss = '<span class="e-translation">' .. gloss .. "</span>" gloss = unitalicize_brackets(gloss) if tag_gloss_func then gloss = tag_gloss_func(gloss) end insert(subparts, gloss) end insert(parts, concat(subparts, ", ")) insert(parts, RBRAC) end if textobj.qq then insert(parts, " " .. format_qualifier(textobj.qq)) end return concat(parts) end --[=[ Format a multivalued text property that may be in a foreign language or script, along with annotations. This is the multivalued analog to format_annotated_text(), and formats each individual entity using format_annotated_text(), joining the results with `delimiter`, which defaults to ", ". It `delimiter` is "and" or "or", join the results using serial_comma_join() with the specified conjunction. `textobjs` is as returned by parse_multivalued_annotated_text(). `tag_text_func` and `tag_gloss_func` are as in format_annotated_text(). ]=] local function format_multivalued_annotated_text(textobjs, delimiter, tag_text_func, tag_gloss_func) if not textobjs then return nil end if #textobjs == 1 then return format_annotated_text(textobjs[1], tag_text_func, tag_gloss_func) end local parts = {} for _, textobj in ipairs(textobjs) do insert(parts, format_annotated_text(textobj, tag_text_func, tag_gloss_func)) end -- Change delimiter to semicolon if the items themselves contain commas (e.g., in ", Jr.") local use_semicolon = false for _, obj in ipairs(textobjs) do -- Use remove_links to ignore commas in links if obj.text and remove_links(obj.text):find(", ") then use_semicolon = true break end end local n = #parts if n > 0 and parts[n]:match("^'*et al[.']*$") then -- Special handling for 'et al.' parts[n] = "''et al.''" if n == 2 then -- author et al. return concat(parts, " ") else -- author 1, author 2, et al. return concat(parts, (use_semicolon and "; ") or ", ") end if delimiter == "and" or delimiter == "or" then delimiter = ", " end return concat(parts, delimiter) end if delimiter == "and" or delimiter == "or" then local conj_translations = {["and"] = "û", ["or"] = "an"} return serial_comma_join(parts, {conj = conj_translations[delimiter]}) end return concat(parts, delimiter or ((use_semicolon and "; ") or ", ")) end -- Fancy version of ine() (if-not-empty). Converts empty string to nil, but also strips leading/trailing space. local function ine(arg) if not arg then return nil elseif type(arg) ~= "string" then return arg end arg = mw.text.trim(arg) if arg == "" then return nil end return arg end local abbrs = { ["a."] = {anchor = "a.", display = "a.", full = "ante"}, ["c."] = {anchor = "c.", display = "~", full = "nêzîkî"}, ["p."] = {anchor = "p.", display = "p.", full = "post"}, } -- Patterns recognized at the start of a date/year spec, each mapped to the key into `abbrs` it stands for. -- Checked in order, so longer/more specific prefixes should come before shorter ones that could be a substring -- of them. local abbr_prefix_patterns = { {pattern = "^nêzîkî%s+", key = "c."}, {pattern = "^c%.%s*", key = "c."}, {pattern = "^a%.%s*", key = "a."}, {pattern = "^p%.%s*", key = "p."}, } -- Process prefixes 'a.' (ante), 'c.' (circa; also recognizes the Kurdish word 'nêzîkî') and 'p.' (post) at the -- beginning of an arbitrary date or year spec. Returns two values, the formatted version of the prefix and the -- date spec minus the prefix. If no prefix is found, returns an empty string and the full date. local function process_ante_circa_post(date) for _, prefix_spec in ipairs(abbr_prefix_patterns) do if umatch(date, prefix_spec.pattern) then local abbr = abbrs[prefix_spec.key] local abbr_prefix = "''[[Appendix:Glossary#" .. abbr.anchor .. '|<abbr title="' .. abbr.full .. '">' .. abbr.display .. "</abbr>]]'' " -- Remove the matched prefix (letter/word, period if any, and trailing space) from the date parameter. date = ugsub(date, prefix_spec.pattern, "") return abbr_prefix, date end end return "", date end -- Format the arguments that specify the date of the quotation. These include the following: -- |date=: The date. If |start_date= is given, this is the end date. -- |year=, |month=: Year and month of quotation date or end of range, if |date= isn't given. -- |start_date=: The start date, to specify a range. -- |start_year=, |start_month=: Year and month of start of range, if |start_date= isn't given. -- |accessdate=: Date a website was accessed; processed if no other date was given. -- |nodate=: Indicate that no date is present; otherwise a maintenance line will be displayed if there is no date. -- -- If `parampref` and/or `paramsuf` are given, this modifies all the date arguments accordingly. For example, if -- `parampref` == "orig" and `paramsuf` is omitted, the date is specified using |origdate= or |origyear=/|origmonth=, -- and the start of the range is |origstart_date=, etc. Similarly, if `parampref` is omitted and `paramsuf` is -- "_published", the date is specified using |date_published= or |year_published=/|month_published=, and the start of -- the range is |start_date_published=, etc. -- -- `a` and `get_full_paramname` are functions with the same interpretation as the local functions of the same name in -- source(). These are used to fetch parameters and get their full names. Note that this may cause all arguments to -- have an index added to them (|date2=, |year2=, |month2=, etc.). -- -- `alias_map` is as in source() and is used to map canonical arguments to their aliases when aliases were used. -- -- If `bold_year` is given, displayed years are boldfaced unless boldface is present in the parameter value. -- -- If `maintenance_line_no_date` is specified, it should be a string that will be returned if no date is found (i.e. -- neither |date= nor |year=, or their appropriate equivalents per `parampref` and `paramsuf`, are specified, and -- neither |nodate= is given to indicate that there is no date, or |accessdate= is given). -- -- Kurdish month names, for translating dates typed with a Kurdish month (e.g. |date=9 tebax 2011) into something -- MediaWiki's date parser (which only understands English month names) can parse. -- Calendar order, {Kurdish, English} pairs. Single source of truth for both directions (Kurdish->English for -- parsing, index->English for building a date from a bare month number). local months = { {"kanûna paşîn", "January"}, {"sibat", "February"}, {"adar", "March"}, {"nîsan", "April"}, {"gulan", "May"}, {"hezîran", "June"}, {"tîrmeh", "July"}, {"tebax", "August"}, {"îlon", "September"}, {"çiriya pêşîn", "October"}, {"çiriya paşîn", "November"}, {"kanûna pêşîn", "December"}, } local kurdish_month_to_english = {} for _, pair in ipairs(months) do kurdish_month_to_english[pair[1]] = pair[2] end -- Returns two values: the formatted date and a boolean indicating whether to add a maintenance category -- [[:Category:Requests for date in LANG entries]]. The first return value will be nil if nothing is to be added -- (in which case the scond return value will always be nil). local function format_date_args( a, get_full_paramname, alias_map, parampref, paramsuf, bold_year, maintenance_line_no_date, year_last ) local output = {} parampref = parampref or "" paramsuf = paramsuf or "" local function getp(param) return a(parampref .. param .. paramsuf) end local function pname(param) local fullname = get_full_paramname(parampref .. param .. paramsuf) local alias = alias_map[fullname] -- A positional alias (e.g. from type=book/journal) is stored as a bare number; showing that in an error -- ("|2=") is confusing, so fall back to the canonical name instead. if type(alias) == "string" then return alias end return fullname end -- Format `timestamp` (a timestamp referencing a date) according to the spec in `code`. `param` is the base name of -- the parameter from which the timestamp was fetched, for error messages. local function format_date_with_code(code, timestamp, param) local language = mw.getContentLanguage() local ok, date = pcall(language.formatDate, language, code, timestamp) if ok then return date else -- All the formats used in format_date_args() are fine, so the timestamp must be at fault. error( ( "Wextê |%s=%s (dibe ku ji forma xwe ya orjînal hatibe standardîzekirin) naxebite; li " .. "[[mw:Help:Extension:ParserFunctions##time|belgekirina fonksiyona #time]] binêre" ):format(pname(param), tostring(timestamp)) ) end end -- Try to figure out if the given timestamp has the day of the month explicitly given. We use the following -- algorithm: -- 1. Format as year-month-day; if the day is not 1, the day was explicitly given, since if only the year/month are -- given, the day shows up as 1. -- 2. If the day shows up as 1 and there isn't a 1 or 01 in the timestamp, the day wasn't explicitly given. -- 3. Otherwise, if there are three separate numbers (e.g. 2022-07-01), or two separate numbers plus a capitalized -- letter (taken as an English month, e.g. 2022 July 1), the day was explicitly given, otherwise not. -- -- `param` is the base name of the parameter from which the timestamp was fetched. local function date_has_day_specified(timestamp, param) local day = format_date_with_code("j", timestamp, param) if day ~= "1" then return true end local english_month = timestamp:find("%u") local canon_timestamp = mw.text.trim((timestamp:gsub("%D+", " "))) local seen_nums = split(canon_timestamp, " ", true) local saw_one = false for _, num in ipairs(seen_nums) do if num == "1" or num == "01" then saw_one = true break end end if not saw_one then return false end return #seen_nums >= 3 or english_month and #seen_nums >= 2 end -- Format a date with boldfaced year, as e.g. '''2023''' August 3. `explicit_day_given` indicates whether to include -- the day; if false, the return value will be e.g. '''2023''' August. `date_param` is the base name of the param -- from which the date was fetched, for error messages. local function format_bold_date(date, explicit_day_given, date_param) local day_month_code = explicit_day_given and "j F" or "F" local month_day_code = explicit_day_given and "F j" or "F" if year_last then if bold_year then -- This formats like "3 August '''2023'''" (or "August '''2023'''" if day not explicitly given). return format_date_with_code(day_month_code .. " '''Y'''", date, date_param) else -- This formats like "3 August 2023" (or "August 2023" if day not explicitly given). return format_date_with_code(day_month_code .. " Y", date, date_param) end else if bold_year then -- This formats like "'''2023''' August 3" (or "'''2023''' August" if day not explicitly given). return format_date_with_code("'''Y''' " .. month_day_code, date, date_param) else -- This formats like "2023 August 3" (or "2023 August" if day not explicitly given). return format_date_with_code("Y " .. month_day_code, date, date_param) end end end -- The formatDate method of the mw.language object behaves like the {{#time:}} parser function, which doesn't -- accept the formats "monthday monthname, year" or "year monthname monthday", but outputs garbage when it receives -- them, behavior inherited from PHP. {{#formatdate:}} magic word is more forgiving. Fix dates so that, for -- instance, the |date= parameter of {{quote-journal}} (which uses this code) and the |accessdate= parameter (which -- uses {{#formatdate:}}) accept similar date formats. See: -- * [[mw:Extension:Scribunto/Lua_reference_manual#mw.language:formatDate]] -- * [[mw:Help:Extension:ParserFunctions##time]] -- * [[mw:Help:Magic_words#Formatting]] -- `date` is the date spec from the user, which is assumed to come from a parameter whose base name ends in "date"; -- `parampref` is the prefix added to "date" to get the parameter name. local function fix_date(date, param_pref) if date then for ku, en in pairs(kurdish_month_to_english) do date = ugsub(date, ku, en) end end if tonumber(date) ~= nil then error( ("|%s= divê tarîxa temam (sal-meh-roj) bi kar bîne; ji bo salê |%s= bi kar bîne"):format( pname(param_pref .. "date"), pname(param_pref .. "year") ) ) elseif date and date:find("%s*%a+,%s*%d+%s*$") then error( ("|%s= divê tarîxa temam (sal-meh-roj) bi kar bîne; ji bo mehê |%s= û ji bo salê |%s= bikar bîne"):format( pname(param_pref .. "date"), pname(param_pref .. "month"), pname(param_pref .. "year") ) ) end if date then -- Commas are replaced with spaces to prevent parsing issues local fixed_date = ugsub(date, ", *", " ") return (ugsub(ugsub(fixed_date or date, "(%d+ %a+),", "%1"), "^(%d%d%d%d) (%a+ %d%d?)$", "%2 %1")) end end local start_date, date = fix_date(getp("start_date"), "start_"), fix_date(getp("date"), "") local year = getp("year") local month = getp("month") local start_year = getp("start_year") local start_month = getp("start_month") -- Accept M/YYYY or MM/YYYY in year= (e.g. "6/2007" or "06/2007") as a month+year date, so it renders with a -- localized month name (e.g. "2007 hezîran") instead of literally. if year and not date then local mon, yr = umatch(year, "^(%d%d?)/(%d%d%d%d)$") local mon_num = mon and tonumber(mon) if mon_num and mon_num >= 1 and mon_num <= 12 then date = months[mon_num][2] .. " " .. yr year = nil end end if date and year then error(("Divê tenê yek ji |%s= an |%s= were dayîn"):format(pname("date"), pname("year"))) end if date and month then error( ("|%s= divê tenê digel |%s= were dayîn, ne digel |%s="):format( pname("month"), pname("year"), pname("date") ) ) end if start_date and start_year then error(("Divê tenê yek ji |%s= an |%s= were dayîn"):format(pname("start_date"), pname("start_year"))) end if start_date and start_month then error( ("|%s= divê tenê digel |%s= were dayîn, ne digel |%s="):format( pname("start_month"), pname("start_year"), pname("start_date") ) ) end if (start_date or start_year) and not (date or year) then error( ("Bêyî ku |%s= an |%s=/|%s= were dayîn, |%s= an |%s=/|%s= nayê dayîn"):format( pname("start_date"), pname("start_year"), pname("start_month"), pname("date"), pname("year"), pname("month") ) ) end local dash = "&nbsp;– " local day_explicitly_given = date and date_has_day_specified(date, "date") local start_day_explicitly_given = start_date and date_has_day_specified(start_date, "start_date") -- Format a date with boldfaced year, as e.g. '''2023''' August 3 (if `explicit_day_given` specified) or -- '''2023''' August (if `explicit_day_given` not specified). If no date specified, fall back to formatting based -- on the year and (optionally) month params given in `yearobj` and `monthobj`, boldfacing the year if not already. -- `date_param` is the base name of the param from which the date was fetched, for error messages. local function format_date_or_year_month(date, yearobj, monthobj, explicit_day_given, date_param) if date then return format_bold_date(date, explicit_day_given, date_param) else -- Boldface a year spec if it's not already boldface. if bold_year and not yearobj.text:find("'''") then -- Clone the year object before modifying it because we may use it later to check against the current -- year (if we're dealing with start_year). yearobj = shallow_copy(yearobj) yearobj.text = "'''" .. yearobj.text .. "'''" if yearobj.alt then yearobj.alt = "'''" .. yearobj.alt .. "'''" end end if year_last then return (monthobj and format_annotated_text(monthobj) .. " " or "") .. format_annotated_text(yearobj) else return format_annotated_text(yearobj) .. (monthobj and " " .. format_annotated_text(monthobj) or "") end end end local yearobj = parse_annotated_text(year, pname("year")) local monthobj = parse_annotated_text(month, pname("month")) local start_yearobj = parse_annotated_text(start_year, pname("start_year")) local start_monthobj = parse_annotated_text(start_month, pname("start_month")) if start_yearobj then local abbr_prefix abbr_prefix, start_yearobj.text = process_ante_circa_post(start_yearobj.text) start_yearobj.link = select(2, process_ante_circa_post(start_yearobj.link)) insert(output, abbr_prefix) elseif yearobj then local abbr_prefix abbr_prefix, yearobj.text = process_ante_circa_post(yearobj.text) yearobj.link = select(2, process_ante_circa_post(yearobj.link)) insert(output, abbr_prefix) end if start_date or start_year then local cur_year = yearobj and yearobj.text or format_date_with_code("Y", date, "date") local cur_month = monthobj and monthobj.text or date and format_date_with_code("F", date, "date") or nil local cur_day = date and day_explicitly_given and format_date_with_code("j", date, "date") or nil local beg_year = start_yearobj and start_yearobj.text or format_date_with_code("Y", start_date, "start_date") local beg_month = start_monthobj and start_monthobj.text or start_date and format_date_with_code("F", start_date, "start_date") or nil local beg_day = start_date and start_day_explicitly_given and format_date_with_code("j", start_date, "start_date") or nil if year_last then if beg_day then insert(output, beg_day .. " " .. beg_month) else insert(output, beg_month) end if beg_year ~= cur_year then insert(output, " " .. beg_year) end else insert(output, format_date_or_year_month( start_date, start_yearobj, start_monthobj, start_day_explicitly_given, "start_date" )) end if cur_year ~= beg_year then -- Different years; insert current date in full. if beg_month or cur_month then insert(output, dash) else insert(output, "–") end insert(output, format_date_or_year_month(date, yearobj, monthobj, day_explicitly_given, "date")) elseif cur_month and cur_month ~= beg_month then local month_ins = monthobj and format_annotated_text(monthobj) or cur_month -- Same year but different months; insert current month and (if available) current day. if cur_day then insert(output, dash) if year_last then insert(output, cur_day .. " " .. month_ins) else insert(output, month_ins .. " " .. cur_day) end else if beg_day then insert(output, dash) else insert(output, "–") end insert(output, month_ins) end elseif cur_day and cur_day ~= beg_day then -- Same year and month but different days; insert current day. insert(output, "–") insert(output, cur_day) else -- Same year, month and day; or same year and month, and day not available; or same year, and month and -- day not available. Do nothing. FIXME: Should we throw an error? end if year_last and beg_year == cur_year then if cur_month then insert(output, " " .. cur_year) else insert(output, " " .. cur_year) end end elseif date or yearobj then insert(output, format_date_or_year_month(date, yearobj, monthobj, day_explicitly_given, "date")) elseif not maintenance_line_no_date then -- Not main quote date. Return nil, caller will handle. return nil, nil elseif not getp("nodate") then local accessdate = getp("accessdate") if accessdate then local explicit_day_given = date_has_day_specified(accessdate, "accessdate") insert(output, format_bold_date(accessdate, explicit_day_given, "accessdate") .. " (cara dawî hate gihiştin)") else if mw.title.getCurrentTitle().namespace ~= 10 then return maintenance_line(maintenance_line_no_date), true end return nil, nil end end return ine(concat(output)), nil end local function tag_with_cite(txt) return "<cite>" .. txt .. "</cite>" end -- Display the source line of the quote, above the actual quote text. This contains the majority of the logic of this -- module (formerly contained in {{quote-meta/source}}). function export.source(args, alias_map, format_as_cite, other_controls) local tracking_categories = {} local argslang = args[1] or args.lang if not argslang then -- For the moment, only trigger an error on mainspace pages and -- other pages that are not user pages or pages containing discussions. -- These are the same pages that appear in the appropriate tracking -- categories. User and discussion pages have not generally been -- fixed up to include a language code and so it's more helpful -- to use a maintenance line than signal an error. local current_title = mw.title.getCurrentTitle() if not (current_title.namespace == 10 or page_should_be_ignored(current_title.fullText)) then require(languages_error_module)(nil, 1) end end -- Single resolved language object for categorization at the end of this function (format_categories() needs an -- object with e.g. :makeSortKey(), not the raw argslang list). local lang = argslang and get_first_lang(argslang) -- Given a canonical param, convert it to the original parameter specified by the user (which may have been an -- alias). local function alias(param) local aliasname = alias_map[param] -- A positional alias (e.g. from type=book/journal) is stored as a bare number; showing that in an error -- ("|2=") is confusing, so fall back to the canonical name instead. if type(aliasname) == "string" then return aliasname end return param end -- Wrap contributor names (authors, editors, translators, compilers, etc.) and the bolded publication year in a -- span so they can be styled distinctly (e.g. Kurdish Wiktionary's "j-pewist" highlighting). local function j_lazim(text) if not text then return nil end return '<span class="j-pewist">' .. text .. "</span>" end local output, sep = {} local overrides = other_controls and other_controls.overrides or {} -- Add text to the output. The text goes into a list, and we concatenate all the list components together at the -- end. To make it easier to handle comma-separated items, we keep track (in `sep`) of the separator (if any) that -- needs to be inserted before the next item added. For example, if we're in the "newversion" code (ind ~= ""), and -- there's no title and no URL, then the first time we add anything after the title, we don't want to add a -- separating comma because the preceding text will say "republished " or "republished as " or "translated as " or -- similar. In all- other cases, we do want to add a separating comma. The bare add() function reset the separator -- to be nothing, while the add_with_sep() function resets the separator to be the value of `next_sep` (defaulting -- to ", "), so the next time around we do add a comma to separate `text` from the preceding piece of text. local function add(text) if sep then insert(output, sep) end insert(output, text) sep = nil end local function add_with_sep(text, next_sep) add(text) sep = next_sep or ", " end -- FIXME: This is all very over-engineered, which makes it slow and memory-inefficient. -- Return a function that generates the actual parameter name associated with a base param (e.g. "author", "last"). -- The actual parameter name may have an index added (an empty string for the first set of params, e.g. author=, -- last=, or a numeric index for further sets of params, e.g. author2=, last2=, etc.). local function make_get_full_paramname(ind) return function(param) return param .. ind end end -- Function to fetch the actual parameter name associated with a base param (see make_get_full_paramname() above). -- Assigned at various times below by calling make_get_full_paramname(). We do it this way so that we can have -- wrapper functions that access params and define them only once. local get_full_paramname -- Return two values: the value of a parameter given the base param name (which may have a numeric index added), -- and the parameter name from which the value was fetched (which may be an alias, i.e. you can't necessarily fetch -- the parameter value from args[] given this name). The base parameter can be a list of such base params, which -- are checked in turn, or nil, in which case nil is returned. local function a_with_name(param) if not param then return nil elseif type(param) ~= "table" then local fullname = get_full_paramname(param) return args[fullname], alias(fullname) end for _, par in ipairs(param) do local val, fullname = a_with_name(par) if val then return val, alias(fullname) end end return nil end -- Fetch the value of a parameter given the base param name (which may have a numeric index added). The base -- parameter can be a list of such base params, which are checked in turn, or nil, in which case nil is returned. local function a(param) return (a_with_name(param)) end -- Identical to a_with_name(param) except that it verifies that no space is present. Should be used for URL's. local function aurl_with_name(param) local value, fullname = a_with_name(param) if value and value:find(" ") and not value:find("%[") then error(("URL nikare valahiyê tê de bihewîne, lê |%s=%s hate dîtin"):format(fullname, value)) end return value, fullname end -- Identical to a(param) except that it verifies that no space is present. Should be used for URL's. local function aurl(param) return (aurl_with_name(param)) end -- Convenience function to fetch a parameter that may be in a foreign language or text (and may consequently have -- a language prefix and/or inline modifiers), parse the annotations and convert the result into a formatted string. -- This is the same as parse_and_format_annotated_text() below but also returns the full param name as the second -- return value. local function parse_and_format_annotated_text_with_name(param, tag_text_func, tag_gloss_func) local val, fullname = a_with_name(param) local obj = parse_annotated_text(val, fullname) return format_annotated_text(obj, tag_text_func, tag_gloss_func), fullname end -- Convenience function to fetch a parameter that may be in a foreign language or text (and may consequently have -- a language prefix and/or inline modifiers), parse the modifiers and convert the result into a formatted string. -- This is a wrapper around parse_annotated_text() and format_annotated_text(). `param` is the base parameter name (see -- a_with_name()), `tag_text_func` is an optional function to tag the parameter text after all other processing (e.g. -- wrap in <cite>...</cite> tags), and `tag_gloss_func` is a similar function for the parameter translation/gloss. local function parse_and_format_annotated_text(param, tag_text_func, tag_gloss_func) return (parse_and_format_annotated_text_with_name(param, tag_text_func, tag_gloss_func)) end -- Convenience function to fetch a multivalued parameter that may be in a foreign language or text (and may -- consequently have a language prefix and/or inline modifiers), parse the modifiers and convert the result into a -- formatted string. This is the multivalued analog to parse_and_format_annotated_text_with_name() and returns two -- values, the formatted string and the full name of the parameter fetched. `delimiter` is as in -- format_multivalued_annotated_text(). local function parse_and_format_multivalued_annotated_text_with_name(param, delimiter, tag_text_func, tag_gloss_func) local val, fullname = a_with_name(param) local objs = parse_multivalued_annotated_text(val, fullname) local num_objs = objs and #objs or 0 return format_multivalued_annotated_text(objs, delimiter, tag_text_func, tag_gloss_func), fullname, num_objs end -- Convenience function to fetch a multivalued parameter that may be in a foreign language or text (and may -- consequently have a language prefix and/or inline modifiers), parse the modifiers and convert the result into a -- formatted string. This is the multivalued analog to parse_and_format_annotated_text(). `delimiter` is as in -- format_multivalued_annotated_text(). local function parse_and_format_multivalued_annotated_text(param, delimiter, tag_text_func, tag_gloss_func) return (parse_and_format_multivalued_annotated_text_with_name(param, delimiter, tag_text_func, tag_gloss_func)) end -- This determines whether to display "Mary Bloggs, transl." (if there's no author preceding) or "translated by -- Mary Bloggs" (if there's an author preceding). local author_outputted = false -- When formatting as a citation, the priority is to display a name and a date before the book/chapter title -- this tracks whether or not the author/date has been displayed local date_outputted, formatted_date, formatted_origdate, need_date = false local function add_date(no_paren) if not date_outputted then if no_paren then sep = ", " else sep = " " end if formatted_date then if no_paren then add(formatted_date) else add("(" .. formatted_date .. ")") end end if formatted_origdate then add(SPACE_LBRAC .. formatted_origdate .. RBRAC) end sep = ", " date_outputted = true end end local function is_anonymous(val) return val:match("^[Aa]non[yî]mo?u?s?$") or val:match("^[Aa]non%.?$") end -- Add a formatted author (whose values may be specified using `author` or, for compatibility purposes, split -- among various parameters): -- * `author` is the value of the author param (e.g. "author", "author2" or "2ndauthor"), and `author_fullname` is -- the full parameter name holding that value; -- * `trans_author` is the optional value of the param holding the gloss/translation of the author, and -- `trans_author_fullname` is the full parameter name holding that value (or nil for no such parameter); -- * `authorlink` is the value of the authorlink param, which holds the Wikipedia link of the author(s) in `author`, -- and `authorlink_fullname` is the full parameter name holding that value; -- * `trans_authorlink` is the optional value of the param holding the Wikipedia link of the gloss/translation of -- the author, and `trans_authorlink_fullname` is the full parameter name holding that value (or nil for no such -- parameter); -- * `first` is the value of the parameter holding the first name of the author, and `first_fullname` is the full -- parameter name holding that value; -- * `trans_first` is the value of the corresponding parameter holding the gloss/translation of the first name -- (e.g. "trans-first"), and `trans_first_fullname` is the full parameter name holding that value (or nil for -- no such parameter); -- * `last` is the value of the parameter holding the last name of the author, and `last_fullname` is the full -- parameter name holding that value; -- * `trans_last` is the value of the corresponding parameter holding the gloss/translation of the last name -- (e.g. "trans-last"), and `trans_last_fullname` is the full parameter name holding that value (or nil for -- no such parameter). -- * `last_first` if set, when parameters `first` and `last` are used, display the author name as "last, first" local function add_author( author, author_fullname, trans_author, trans_author_fullname, authorlink, authorlink_fullname, trans_authorlink, trans_authorlink_fullname, first, first_fullname, trans_first, trans_first_fullname, last, last_fullname, trans_last, trans_last_fullname, last_first ) local function make_author_with_url(txt, txtparam, authorlink, authorlink_param) if authorlink then if authorlink:find("%[%[") then error(("Nabe ku lînk di |%s=%s de were dayîn"):format(authorlink_param, authorlink)) end if txt:find("%[%[") then error(("Nabe ku lînk di %s=%s de were dayîn"):format(txtparam, txt)) end return "[[w:" .. authorlink .. "|" .. txt .. "]]" else return txt end end local num_authorobjs if author then local authorobjs = parse_multivalued_annotated_text(author, author_fullname, trans_author, trans_author_fullname) num_authorobjs = #authorobjs if num_authorobjs == 1 then if is_anonymous(authorobjs[1].text) then authorobjs[1].text = "nivîskarê anonîm" authorobjs[1].link = "nivîskarê anonîm" end if authorlink then authorobjs[1].text = make_author_with_url( authorobjs[1].text, "|" .. author_fullname, authorlink, "|" .. authorlink_fullname ) authorobjs[1].link = make_author_with_url( authorobjs[1].link, "|" .. author_fullname, authorlink, "|" .. authorlink_fullname ) end if authorobjs[1].gloss and trans_authorlink then authorobjs[1].gloss = make_author_with_url( authorobjs[1].gloss, ("<t:...> in |%s"):format(author_fullname), trans_authorlink, "|" .. trans_author_fullname ) end add(j_lazim(format_multivalued_annotated_text(authorobjs))) elseif trans_authorlink then error( ( "Nabe ku |%s= digel çend unsirên ku bi bernavekê ve hatine veqetandin di |%s= de bi hev re " .. "were bikaranîn; ji bo her unsirê modîfîkatora hundirîn a <t:...> bi kar bîne û lînkê " .. "rasterast têxe nirxa modîfîkatorê hundirîn" ):format(trans_authorlink_fullname, author_fullname) ) else -- Allow an authorlink with multiple authors, e.g. for use with |author=Max Mills; Harvey Mills -- with |authorlink=Max and Harvey. For this we have to generate the entire text and link it -- all. local formatted_text = format_multivalued_annotated_text(authorobjs) if authorlink then formatted_text = make_author_with_url( formatted_text, "|" .. author_fullname, authorlink, "|" .. authorlink_fullname ) end add(j_lazim(formatted_text)) end else num_authorobjs = 1 -- Author separated into first name + last name. We don't currently support non-Latin-script -- authors separated this way and probably never will. if first then if last_first then author = last .. ", " .. first else author = first .. " " .. last end else author = last end if authorlink then local authorparam = first and ("|%s |%s"):format(first_fullname, last_fullname) or "|" .. last_fullname author = make_author_with_url(author, authorparam, authorlink, authorlink_fullname) end local trans_author if trans_last then if trans_first then trans_author = trans_first .. " " .. trans_last else trans_author = trans_last end if trans_authorlink then local trans_authorparam = trans_first and ("|%s |%s"):format(trans_first_fullname, trans_last_fullname) or "|" .. trans_last_fullname trans_author = make_author_with_url( trans_author, trans_authorparam, trans_authorlink, trans_authorlink_fullname ) end end add(j_lazim(author)) if trans_author then add(SPACE_LBRAC) add(trans_author) add(RBRAC) end end author_outputted = true return num_authorobjs end local function add_authorlike( param, prefix_with_preceding_authors, suffix_without_preceding_authors, suffix_if_multiple, anonymous_suffix ) local delimiter = author_outputted and "and" or ", " local entities, _, num_entities = parse_and_format_multivalued_annotated_text_with_name(param, delimiter) if not entities then return end if is_anonymous(entities) then -- If tlr=anonymous or similar given, display as "anonymous translator" or similar. If a specific -- anonymous suffix not given, try to derive the anonymous suffix from the non-preceding-author suffix. if not anonymous_suffix then local cleaned_suffix = suffix_without_preceding_authors :gsub("&#32;", " ") :gsub("&nbsp;", " ") :gsub("&#160;", " ") :gsub("&#91;", "[") :gsub("&#93;", "]") cleaned_suffix = mw.text.trim(cleaned_suffix) if not anonymous_suffix then anonymous_suffix = " " .. cleaned_suffix:match("^, (.*)$") end if not anonymous_suffix then anonymous_suffix = " " .. cleaned_suffix:match("^%((.*)%)$") end if not anonymous_suffix then anonymous_suffix = " " .. cleaned_suffix:match("^%[(.*)%]$") end if not anonymous_suffix then anonymous_suffix = suffix_without_preceding_authors end end add_with_sep(j_lazim("anonîm" .. anonymous_suffix)) else entities = j_lazim(entities) if prefix_with_preceding_authors and (author_outputted or not suffix_without_preceding_authors) then add_with_sep(prefix_with_preceding_authors .. entities) elseif suffix_if_multiple and num_entities > 1 then add_with_sep(entities .. suffix_if_multiple) else add_with_sep(entities .. suffix_without_preceding_authors) end end author_outputted = true end local function add_authorlabel() local default_authorlabel = a("default-authorlabel") if default_authorlabel and yesno(a("authorlabel"), true) then sep = nil add_with_sep(" " .. default_authorlabel) end end local function has_new_title_or_author() return args["2ndauthor"] or args["2ndlast"] or args.chapter2 or args.title2 or args.tlr2 or args.mainauthor2 or args.editor2 or args.editors2 or args.compiler2 or args.compilers2 or args.director2 or args.directors2 end local function has_newversion() return args.newversion or args.location2 or has_new_title_or_author() end -- Handle chapter=, section=, etc. `param` is the base name of the parameter in question, e.g. "chapter" or -- "section". If numeric (either Arabic or Roman), add `numeric_prefix`; otherwise, parse as textual (allowing for -- language prefixes, inline modifiers, etc.), prefix with `textual_prefix` (if given) and suffix with -- `textual_suffix` (if given). Also checks for and handles the following (assuming param == "chapter"): -- * chapterurl=: URL of the chapter. -- * trans-chapter=: Chapter translation (can be given using an inline modifier <t:...>). -- * chapter_number=: Chapter number, when chapter= is also given (otherwise put the chapter number in chapter=). -- * chapter_plain=: Plain version of the chapter number; the "chapter " prefix isn't added. -- * chapter_series=: Series that the chapter is within (used e.g. for journal articles part of a series). -- * chapter_seriesvolume=: Volume of the series (compare seriesvolume=). -- -- Returns nil if no value specified for the main parameter, otherwise the formatted value. local function format_chapterlike(param, numeric_prefix, textual_prefix, textual_suffix) local chap, chap_fullname = a_with_name(param) local chap_num, chap_num_fullname = a_with_name(param .. "_number") local chap_plain, chap_plain_fullname = parse_and_format_annotated_text_with_name(param .. "_plain") if chap_num and chap_plain then error(("Divê tenê yek ji |%s= an %s= were dayîn"):format(chap_num_fullname, chap_plain_fullname)) end local chap_series, chap_series_fullname = parse_and_format_annotated_text_with_name(param .. "_series", tag_with_cite, tag_with_cite) local chap_seriesvolume, chap_seriesvolume_fullname = parse_and_format_annotated_text_with_name(param .. "_seriesvolume") if chap_series then chap_series = ", " .. chap_series end if chap_seriesvolume then if not chap_series then error(("Ji bo |%s= ev %s= lazim e"):format(chap_series_fullname, chap_seriesvolume_fullname)) end chap_series = chap_series .. " (" .. chap_seriesvolume .. ")" end local chapterurl local function make_chapter_with_url(chap) if chapterurl then return "[" .. chapterurl .. " " .. chap .. "]" else return chap end end if not chap then if chap_num then error( ("Ji bo |%s= ev |%s= lazim e; nirxa hejmarî li |%s= binivîse"):format( chap_num_fullname, chap_fullname, chap_fullname ) ) end if chap_plain then chapterurl = aurl(param .. "url") return make_chapter_with_url(chap_plain .. (chap_series or "")) end return nil end local cleaned_chap = chap:gsub("<sup>[^<>]*</sup>", ""):gsub("[*+#]", "") chapterurl = aurl(param .. "url") local formatted if numeric_prefix and get_number(cleaned_chap) then -- Arabic chapter number formatted = numeric_prefix .. make_chapter_with_url(chap) elseif numeric_prefix and cleaned_chap:match("^[mdclxviMDCLXVI]+$") and roman_to_arabic(cleaned_chap, true) and (not overrides[param] or not overrides[param].noroman) then -- Roman chapter number formatted = numeric_prefix .. make_chapter_with_url(upper(chap)) else -- strip leading ! (used to force text-mode for titles that look like Roman numerals like "mil" and "dill") if chap:find("^!") then chap = chap:gsub("^!", "") end -- Must be a chapter name local chapterobj = parse_annotated_text(chap, chap_fullname, a("trans-" .. param)) chapterobj.text = make_chapter_with_url(chapterobj.text) chapterobj.link = make_chapter_with_url(chapterobj.link) formatted = (textual_prefix or "") .. format_annotated_text(chapterobj) .. (textual_suffix or "") end if chap_num or chap_plain then -- NOTE: Up above we throw an error if both chap_num and chap_plain are specified. formatted = formatted .. " (" .. (chap_plain or numeric_prefix .. chap_num) .. ")" end if chap_series then formatted = formatted .. chap_series end return formatted end -- This handles everything after displaying the author, starting with the chapter and ending with page, column, -- line and then other=. It is currently called twice: Once to handle the main portion of the citation, and once to -- handle a "newversion" citation. `ind` is either "" for the main portion or a number (currently only 2) for a -- "newversion" citation. In a few places we conditionalize on `ind` to take actions depending on its value. local function postauthor(ind, num_authors, format_as_cite) get_full_paramname = make_get_full_paramname(ind) -- Set to true by add_entry()/add_chapter() when a chapter/entry title has been added and "li ser " (lit. -- "on/in") is owed to whatever comes next. It's consumed either by mainauthor= (attached directly in front -- of it) or, if there's no mainauthor=, by the work's title= later on. Fields in between (translator, -- editor, compiler, director) don't consume it, but the first of them printed while it's still pending gets -- a "bi " (lit. "with/by") prefix instead, since otherwise e.g. "edîtoriya X" would read as a bare noun -- phrase with nothing to attach it to the sentence. local pending_li_ser = false if author_outputted then add_authorlabel() end local coauthors = parse_and_format_multivalued_annotated_text("coauthors", "and") coauthors = j_lazim(coauthors) if coauthors then local with_prefix = "" if author_outputted then with_prefix = "li gel " if num_authors == 1 then sep = " " end end add_with_sep(with_prefix .. coauthors) author_outputted = true end add_authorlike("quotee", "quoting ", ", quotee", ", quotees") if format_as_cite and author_outputted and not date_outputted then add_date() sep = ", " end add_authorlike("chapter_tlr", "tercimeya ", nil, nil, " terciman") local function add_labeled_editor() local editor, editor_fullname = a_with_name("editor") local editors, editors_fullname = a_with_name("editors") if editor and editors then error(("Nabe ku hem |%s= hem jî |%s= were bikaranîn"):format(editor_fullname, editors_fullname)) end local val, fullname, param = editor, editor_fullname, "editor" if editors then val, fullname, param = editors, editors_fullname, "editors" end if not val then return end local entities = parse_and_format_multivalued_annotated_text(param, "and") local label if fullname == "amadekar" or fullname == "amadekar2" then label = "amadekariya" else -- covers "editor", "editor2", "edîtor", "edîtor2", etc. label = "edîtoriya" end local bi_prefix = (pending_li_ser and not author_outputted) and "bi " or "" if is_anonymous(entities) then add_with_sep(j_lazim(bi_prefix .. label .. " kesekî nenas")) else add_with_sep(bi_prefix .. label .. " " .. j_lazim(entities)) end author_outputted = true end local function add_sg_and_pl_authorlike(noun, verbed) local sgparam = noun local plparam = noun .. "s" local sgval, sgval_fullname = a_with_name(sgparam) local plval, plval_fullname = a_with_name(plparam) if sgval and plval then error(("Nabe ku hem |%s= hem jî |%s= were bikaranîn"):format(sgval_fullname, plval_fullname)) end if sgval or plval then local verbed_by = verbed .. " ji hêla " local comma_sgnoun = ", " .. noun local comma_plnoun = ", " .. noun .. "s" add_authorlike(sgparam, verbed_by, comma_sgnoun, comma_plnoun) add_authorlike(plparam, verbed_by, comma_plnoun) end end local formatted_entry = format_chapterlike("entry", nil, "“", "”") local formatted_chapter = format_chapterlike("chapter", "beşa ", "“", "”") local function add_entry() if formatted_entry then add_with_sep(formatted_entry) if not a("notitle") then pending_li_ser = true author_outputted = false else author_outputted = true end formatted_entry = nil end end local function add_chapter() add_entry() if formatted_chapter then add_with_sep(formatted_chapter) if not a("notitle") then pending_li_ser = true author_outputted = false end formatted_chapter = nil end end local function add_actor_role(format_as_cite) local role = parse_and_format_multivalued_annotated_text("role", "and") role = j_lazim(role) local actor_val, actor_fullname = a_with_name("actor") local actor_objs = parse_multivalued_annotated_text(actor_val, actor_fullname) local actor = format_multivalued_annotated_text(actor_objs, "and") actor = j_lazim(actor) if format_as_cite then if role then if actor then add_with_sep(actor .. " wekî ") end sep = nil add_with_sep(role) elseif actor then add_with_sep(actor .. " (aktor)") end else if role then add_with_sep("xeberdan ji aliyê " .. role .. " ve") if actor then sep = nil add_with_sep(" (" .. actor .. ")") end elseif actor then add_with_sep(actor .. " (aktor)") end end end if format_as_cite then if date_outputted then add_chapter() end local output_len = #output local mainauthor = parse_and_format_multivalued_annotated_text("mainauthor") mainauthor = j_lazim(mainauthor) if mainauthor then add_with_sep(mainauthor) end -- quote-* templates display "jobbed by name" after the author, controlled by the author_outputted flag author_outputted = false add_authorlike("tlr", "tercimeya ", nil, nil, " terciman") author_outputted = false add_labeled_editor() add_sg_and_pl_authorlike("compiler", "berhevkirin") add_sg_and_pl_authorlike("director", "derhênan") add_authorlike("lyricist", nil, " (gotin)", nil, " gotinnivîs") add_authorlike("lyrics-translator", nil, " (tercime)", nil, " tercimanê gotinan") add_authorlike("composer", nil, " (muzîk)", nil, " bestekar") add_actor_role("format_as_cite") -- if the output length has changed, a credit name has been printed -- and we can print the date if output_len ~= #output then author_outputted = true add_date() end add_chapter() else add_chapter() local mainauthor = parse_and_format_multivalued_annotated_text("mainauthor") mainauthor = j_lazim(mainauthor) if mainauthor then -- Label mainauthor explicitly when another credit (translator, editor, compiler, director) follows -- it, so e.g. "li ser Kurt Gödel, edîtoriya X" doesn't read as if Kurt Gödel were the editor. if a("tlr") or a("editor") or a("editors") or a("compiler") or a("compilers") or a("director") or a("directors") then mainauthor = mainauthor .. " (nivîskarê sereke)" end if pending_li_ser then add_with_sep("li ser " .. mainauthor) pending_li_ser = false else add_with_sep(mainauthor) end author_outputted = true end do local tlr_prefix = "tercimekirina " if pending_li_ser and not author_outputted then tlr_prefix = "bi tercimekirina " end add_authorlike("tlr", tlr_prefix, nil, nil, " terciman") end add_labeled_editor() add_sg_and_pl_authorlike("compiler", "berhevkirin") add_sg_and_pl_authorlike("director", "derhênan") add_authorlike("lyricist", nil, " (gotin)", nil, " gotinnivîs") add_authorlike("lyrics-translator", nil, " (tercime)", nil, " tercimanê gotinan") add_authorlike("composer", nil, " (muzîk)", nil, " bestekar") end local title, title_fullname = a_with_name("title") local need_comma = false if title then local titleobj = parse_annotated_text(title, title_fullname, a("trans-title")) local title_text = format_annotated_text(titleobj, tag_with_cite, tag_with_cite) -- No author/editor/etc. given: the title (malper/kovar/etc.) is the primary entity, so highlight it -- the same way mainauthor would be. if not author_outputted then title_text = j_lazim(title_text) end if pending_li_ser then title_text = "li ser " .. title_text pending_li_ser = false end add(title_text) local series = parse_and_format_annotated_text("series") if series then add(" (" .. series) local seriesvolume = parse_and_format_annotated_text("seriesvolume") if seriesvolume then add(SEMICOLON_SPACE .. seriesvolume) end add(")") end need_comma = true elseif ind == "" then if not a("notitle") then local maint_text = maintenance_line("jkx sernavê kitêb an kovarê binivîse") if pending_li_ser then maint_text = "li ser " .. maint_text pending_li_ser = false end add(maint_text) need_comma = true end end local archiveurl, archiveurl_fullname = aurl_with_name("archiveurl") local url, url_fullname = aurl_with_name("url") local urls, urls_fullname = aurl_with_name("urls") if url and urls then error(("Divê tenê yek ji |%s= an |%s= were dayîn"):format(url_fullname, urls_fullname)) end local function verify_title_supplied(url_name) -- There are too many cases of this to throw an error at this time. -- if not title then -- error(("If |%s= is given, |%s= must also be supplied"):format(url_name, title_fullname)) -- end end if archiveurl or url then verify_title_supplied(archiveurl and archiveurl_fullname or url_fullname) sep = nil add("&lrm;<sup>[" .. (archiveurl or url) .. "]</sup>") elseif urls then verify_title_supplied(urls_fullname) sep = nil add("&lrm;<sup>" .. urls .. "</sup>") end -- display (in Language) if language is provided and is not English and not overriden by termlang or worklang if format_as_cite and ind == "" and not (args.termlang or args.worklang) and (args[1] or args.lang) then local lang = get_first_lang(args[1] or args.lang) if lang then local langcode = lang:getCode() if not (langcode == "und" or langcode == "ku") then local langs = format_langs(args[1] or args.lang) if langs then add(" (bi " .. langs .. ")") end end end end if need_comma then sep = ", " end local edition, edition_fullname = parse_and_format_annotated_text_with_name("edition") local edition_plain, edition_plain_fullname = parse_and_format_annotated_text_with_name("edition_plain") if edition and edition_plain then error(("Divê tenê yek ji |%s= an |%s= were dayîn"):format(edition_fullname, edition_plain_fullname)) end local function ordinal_suffix(n) n = tonumber(n) if not n then return nil end if n % 100 == 11 then return "an" elseif n % 10 == 1 then return "ê" else return "an" end end if edition then local edStr = tostring(edition) local numPart = edStr:match("^(%d+)%s*[Ss][Tt]$") or edStr:match("^(%d+)%s*[Nn][Dd]$") or edStr:match("^(%d+)%s*[Rr][Dd]$") or edStr:match("^(%d+)%s*[Tt][Hh]$") or edStr:match("^(%d+)$") if numPart then add_with_sep("çapa " .. numPart .. ordinal_suffix(numPart)) else add_with_sep("çapa " .. edition) end end if edition_plain then add_with_sep(edition_plain) end -- Display a numeric param such as page=, volume=, column=. For each `paramname`, four params are actually -- recognized, e.g. for paramname == "page", the params page=, pages=, page_plain= and pageurl= are recognized -- and checked (or the same with an index, e.g. page2=, pages2=, page_plain2= and pageurl2= respectively if -- ind == "2"). Only one of the first three can be specified; an error results if more than one are given. -- If none are given, the return value is nil; otherwise it is a string. The numeric spec is taken directly -- from e.g. page_plain= if given; otherwise if e.g. pages= is given, or if page= is given and looks like a -- combination of numbers (i.e. it has a hyphen or dash in it, a comma, or the word " and "), it is prefixed -- by `singular_desc` + "s" (e.g. "pages "), otherwise it is prefixed by just `singular_desc` (e.g. "page "). -- (As a special case, if either e.g. page=unnumbered or pages=unnumbered is given, the numeric spec is -- "unnumbered page".) The resulting spec is returned directly unless e.g. pageurl= is given, in which case -- it is linked to the specified URL. Note that any of the specs can be foreign text, e.g. foreign numbers -- (including with optional inline modifiers), and such text is handled appropriately. local function format_numeric_param(paramname, singular_desc) local sgval = a_with_name(paramname) local sgobj = parse_annotated_text(sgval, paramname) local plparamname = paramname .. "s" local plval = a_with_name(plparamname) local plobj = parse_annotated_text(plval, plparamname) local plainval, plain_fullname = parse_and_format_annotated_text_with_name(paramname .. "_plain") local numspec if not sgval and not plval and not plainval then return elseif plainval and (sgval or plval) then error(("Nabe ku " .. plain_fullname .. " digel " .. paramname .. " an " .. plparamname .. " were dayîn")) elseif sgval and plval then -- if both singular and plural, display "page 1 of 1-10" numspec = singular_desc .. " " .. sgval .. " ji " .. plval else -- Merge page= and pages= and treat alike because people often mix them up in both directions. if plainval then numspec = plainval else local val = sgobj and sgobj.text or plobj.text if val == "unnumbered" then numspec = "bêhejmar " .. singular_desc else local desc if val:find("^!") then val = val:gsub("^!", "") desc = sgval and singular_desc or (singular_desc .. "ên") else local check_val = val if check_val:find("%[") then check_val = remove_links(check_val) -- convert URL's of the form [URL DISPLAY] to the displayed value check_val = check_val:gsub("%[[^ %[%]]* ([^%[%]]*)%]", "%1") end -- in case of negative page numbers (do they exist?), don't treat as multiple pages check_val = check_val:gsub("^%-", "") -- replace HTML entity en-dashes and em-dashes with their literal codes check_val = check_val:gsub("&ndash;", "–") check_val = check_val:gsub("&#8211;", "–") check_val = check_val:gsub("&mdash;", "—") check_val = check_val:gsub("&#8212;", "—") -- Check for en-dash or em-dash, or two numbers (possibly with stuff after like 12a-15b) -- separated by a hyphen or by comma a followed by a space (to avoid firing on thousands separators). if umatch(check_val, "[–—]") or check_val:find(" and ") or check_val:match("%d+[^ ]* *%- *%d+") or check_val:match("%d+[^ ]* *, +%d+") then desc = singular_desc .. "ên" else desc = singular_desc end end local obj = sgobj or plobj obj.text = val if obj.link:find("^!") then obj.link = obj.link:gsub("^!", "") end val = format_annotated_text(obj) numspec = desc .. " " .. val end end end local url = a(paramname .. "url") if url then return "[" .. url .. " " .. numspec .. "]" else return numspec end end local volume = format_numeric_param("volume", a("volume_prefix") or "cild") if volume then add_with_sep(volume) end local issue = format_numeric_param("issue", a("issue_prefix") or "hejmar") if issue then add_with_sep(issue) end -- number= is an alias for issue= (except in {{quote-av}}, where it is the episode number) local number = format_numeric_param("number", a("number_prefix") or "nimare") if number then add_with_sep(number) end local annotations = {} local genre = a("genre") if genre then insert(annotations, genre) end local format = a("format") if format then insert(annotations, format) end local medium = a("medium") if medium then insert(annotations, medium) end -- Now handle the display of language annotations like "(in French)" or -- "(quotation in Nauruan; overall work in German)". local quotelang = args[1] or args.lang if not quotelang then if ind == "" then -- This can only happen for certain non-mainspace pages, e.g. Talk pages; otherwise an error is thrown -- above. insert(annotations, maintenance_line("Ji kerema xwe zimanê vê jêgirtinê bi |1= diyar bike")) else -- do nothing in newversion= portion end elseif ind == "" then local worklang = a("worklang") local termlang = a("termlang") worklang = worklang or quotelang termlang = termlang or quotelang if worklang == quotelang then if worklang == termlang then -- do nothing else insert(annotations, "bi " .. format_langs(quotelang)) end else if quotelang ~= termlang then insert(annotations, "jêgirtin bi " .. format_langs(quotelang)) end insert(annotations, "bi giştî eser bi " .. format_langs(worklang)) end else local lang2 = a("lang2") if lang2 then insert(annotations, "bi " .. format_langs(lang2)) end end if #annotations > 0 then sep = nil add_with_sep(" (" .. concat(annotations, SEMICOLON_SPACE) .. ")") end local artist = parse_and_format_multivalued_annotated_text("artist", "and") artist = j_lazim(artist) if artist then add_with_sep("hunermend: " .. artist) end local feat = parse_and_format_multivalued_annotated_text("feat", "and") feat = j_lazim(feat) if feat then sep = " " add_with_sep("digel " .. feat) end if not format_as_cite then add_actor_role() end local others = parse_and_format_annotated_text("others") others = j_lazim(others) if others then add_with_sep(others) end local quoted_in = parse_and_format_annotated_text("quoted_in", tag_with_cite, tag_with_cite) if quoted_in then add_with_sep("hate jêgirtin di " .. quoted_in .. " de") insert(tracking_categories, "Jêgirtin bi parametreya quoted-in") end local location = parse_and_format_multivalued_annotated_text("location", "; ") local publisher = parse_and_format_multivalued_annotated_text("publisher", "; ") if publisher then if location then add_with_sep(location) -- colon sep = "&#58; " -- colon end add_with_sep(publisher) elseif location then add_with_sep(location) end if not date_outputted then add_date("no_paren") end local source = parse_and_format_multivalued_annotated_text("source", "and") if source then add_with_sep("ji " .. source .. " hatiye wergirtin") end local original = parse_and_format_annotated_text("original", tag_with_cite, tag_with_cite) local by = parse_and_format_multivalued_annotated_text("by", "and") by = j_lazim(by) local origtype = a("deriv") or "tercimeya" if original or by then add_with_sep(origtype .. " " .. (original or "orîjînal") .. (by and " ji hêla " .. by .. " ve" or "")) end -- Handle origlang=, origworklang=. How we handle them depends on whether the original title or author are explicitly -- given. local origlang = a("origlang") local origworklang = a("origworklang") local origlangtext, origworklangtext if origlang then origlangtext = "bi " .. format_langs(origlang) end if origworklang then origworklangtext = "bi giştî eser bi " .. format_langs(origworklang) end if origlang or origworklang then if original or by then local orig_annotations = {} if origlangtext then insert(orig_annotations, origlangtext) end if origworklangtext then insert(orig_annotations, origworklangtext) end sep = nil add_with_sep(" (" .. concat(orig_annotations, SEMICOLON_SPACE) .. ")") else add_with_sep(origtype .. " orîjînal" .. (origlangtext and " " .. origlangtext or "")) if origworklangtext then sep = nil add_with_sep(" (" .. origworklangtext .. ")") end end end if ind ~= "" and has_newversion() then local formatted_new_date = format_date_args(a, get_full_paramname, alias_map, "", "", nil, "Ji kerema xwe tarîx an salekê binivîse", true) if formatted_new_date then add_with_sep(formatted_new_date) end end -- Fetch date_published=/year_published=/month_published= and format appropriately. local formatted_date_published = format_date_args(a, get_full_paramname, alias_map, "", "_published", nil, nil, true) local platform = parse_and_format_multivalued_annotated_text("platform", "and") if formatted_date_published then add_with_sep("di " .. formatted_date_published .. " de hate weşandin" .. (platform and " li ser " .. platform or "")) elseif platform then add_with_sep("li ser " .. platform) end -- From here on out, there should always be a preceding item, so we -- can dispense with add_with_sep() and always insert the comma. sep = nil local function small(txt) add(", <small>") add(txt) add("</small>") end -- Add an identifier to a book or article database such as DOI, ISBN, JSTOR, etc. `param_or_params` -- is a string identifying the base param, or a list of such strings to check in turn. If found, the value -- of the parameter is processed using `process` (a function of one argument, defaulting to mw.uri.encode()), -- and then the actual URL to insert is generated by preceding with `pretext`, following with `posttext`, -- and running the resulting string through small(), which first adds a comma and then the URL in small font. local function add_identifier(param_or_params, pretext, posttext, process) local val = a(param_or_params) if val then val = (process or mw.uri.encode)(val) small(pretext .. val .. posttext) end end add_identifier("bibcode", "[https://adsabs.harvard.edu/abs/", " →Bibcode]") add_identifier("doi", '<span class="neverexpand">[https://doi.org/', " →DOI]</span>") add_identifier("isbn", "", "", isbn) add_identifier("issn", "", "", issn) add_identifier("jstor", "[https://www.jstor.org/stable/", " →JSTOR]") add_identifier("lccn", "", "", lccn) add_identifier("oclc", "[https://search.worldcat.org/title/", " →OCLC]") add_identifier("ol", "[https://openlibrary.org/works/OL", "/ →OL]") add_identifier("pmid", "[https://www.ncbi.nlm.nih.gov/pubmed/", " →PMID]") add_identifier("pmcid", "[https://www.ncbi.nlm.nih.gov/pmc/articles/", "/ →PMCID]") add_identifier("ssrn", "[https://ssrn.com/abstract=", " →SSRN]") -- add_identifier("urn", "", "", urn) local id = a("id") if id then small(id) end archiveurl, archiveurl_fullname = aurl_with_name("archiveurl") if archiveurl then local url, url_fullname = aurl_with_name("url") if not url then -- attempt to infer original URL from archive URL; this works at -- least for Wayback Machine (web.archive.org) URL's url = archiveurl:match("/(https?:.*)$") if not url then error( ("Gava |%s= tê dayîn, divê |%s= jî were dayîn"):format(archiveurl_fullname, url_fullname) ) end end add(", ji [" .. url .. " orjînalê] di ") local archivedate, archivedate_fullname = a_with_name("archivedate") if archivedate then add(format_date(archivedate)) elseif string.sub(archiveurl, 1, 28) == "https://web.archive.org/web/" then -- If the archive is from the Wayback Machine, then it already contains the date -- Get the date and format it local wayback_date = string.sub(archiveurl, 29, 29 + 7) wayback_date = string.sub(wayback_date, 1, 4) .. "-" .. string.sub(wayback_date, 5, 6) .. "-" .. string.sub(wayback_date, 7, 8) add(format_date(wayback_date)) else error( ("Gava |%s= tê dayîn, divê |%s= jî were dayîn"):format( archiveurl_fullname, archivedate_fullname ) ) end add(" de hatiye arşîvkirin") end if a("accessdate") then --Otherwise do not display here, as already used as a fallback for missing date= or year= earlier. if (a("date") or a("nodate") or a("year")) and not a("archivedate") then add(", di " .. format_date(a("accessdate")) .. " de hatiye gihiştin") end end local formatted_section = format_chapterlike("section", "qismê ") if formatted_section then add(", ") add(formatted_section) end -- video game stuff local system = parse_and_format_annotated_text("system") if system then add(", " .. system) end local scene = parse_and_format_annotated_text("scene") if scene then add(", sehne: " .. scene) end local level = parse_and_format_annotated_text("level") if level then add(", seviye/herêm: " .. level) end local note = parse_and_format_annotated_text("note") if note then add(", " .. note) end local note_plain = parse_and_format_annotated_text("note_plain") if note_plain then add(" " .. note_plain) end -- Wrapper around format_numeric_param that inserts the formatted text with optional preceding text. local function handle_numeric_param(paramname, singular_desc, pretext) local numspec = format_numeric_param(paramname, singular_desc) if numspec then add((pretext or "") .. numspec) end end handle_numeric_param("page", a("page_prefix") or "rûpel", ", ") handle_numeric_param("column", a("column_prefix") or "stûn", ", ") handle_numeric_param("line", a("line_prefix") or "rêz", ", ") -- FIXME: Does this make sense? What is other=? local other = parse_and_format_annotated_text("other") if other then add(", " .. other) end end local function add_authors(args, last_first) -- Find maximum indexed author or last name. local maxind = math.max(args.author.maxindex, args.last.maxindex) -- Include max index of ancillary params so we get an error message about their use without the primary params. local ancillary_params = {"trans-author", "authorlink", "trans-authorlink", "first", "trans-first", "trans-last"} for _, ancillary in ipairs(ancillary_params) do maxind = math.max(maxind, args[ancillary].maxindex) end local num_authors = 0 for i = 1, maxind do local ind = i == 1 and "" or i local author, last = args.author[i], args.last[i] if author or last then local this_num_authors = add_author( author, "author" .. ind, args["trans-author"][i], "trans-author" .. ind, args.authorlink[i], "authorlink" .. ind, args["trans-authorlink"][i], "trans-authorlink" .. ind, args.first[i], "first" .. ind, args["trans-first"][i], "trans-first" .. ind, last, "last" .. ind, args["trans-last"][i], "trans-last" .. ind, last_first ) num_authors = num_authors + this_num_authors sep = last_first and "; " or ", " else for _, cant_have in ipairs(ancillary_params) do if args[cant_have][i] then error(("Nabe ku |%s%s= bêyî |author%s= an |last%s= were dayîn"):format(cant_have, ind, ind, ind)) end end end end return num_authors end local function add_newversion() -- If there's a "newversion" section, add the new-version text. if has_newversion() then sep = nil --Test for new version of work. add(SEMICOLON_SPACE) if args.newversion then -- newversion= is intended for English text, e.g. "hate jêgirtin di" or "ji nû ve hatiye weşandin wekî". add(args.newversion) elseif not args.edition2 then if has_new_title_or_author() then add("ji nû ve hatiye weşandin wekî") else add("ji nû ve hatiye weşandin") end end add(" ") return "" else return ", " end end ------------------- Now we start outputting text ---------------------- local need_comma = false -- Set this now so a() works just below. get_full_paramname = make_get_full_paramname("") if args.brackets then add("[") end bold_year = not format_as_cite year_last = format_as_cite formatted_date, need_date = format_date_args( a, get_full_paramname, alias_map, nil, nil, bold_year, "Tu dikarî tarîxa vê jêgirtinê [[:Category:Daxwazên tarîxê|binivîsî]]?", year_last ) -- format_date_args bolds the year here (via bold_year = not format_as_cite), so this is the only date variable -- we wrap; origdate=, date_published= and the newversion date are left unwrapped. formatted_date = j_lazim(formatted_date) -- Fetch origdate=/origyear=/origmonth= and format appropriately. formatted_origdate = format_date_args(a, get_full_paramname, alias_map, "orig", nil, nil, nil, year_last) local num_authors if format_as_cite then num_authors = add_authors(args, "last_first") if author_outputted then sep = " " end -- Display all the text that comes after the author, for the main portion. postauthor("", num_authors, "format_as_cite") author_outputted = false sep = add_newversion() -- Add the newversion author(s). if args["2ndauthor"] or args["2ndlast"] then num_authors = add_author( args["2ndauthor"], "2ndauthor", nil, nil, args["2ndauthorlink"], "2ndauthorlink", nil, nil, args["2ndfirst"], "2ndfirst", nil, nil, args["2ndlast"], "2ndlast", nil, nil, "last_first" ) sep = ", " else for _, cant_have in ipairs{"2ndauthorlink", "2ndfirst"} do if args[cant_have] then error(("Nabe ku |%s= bêyî |2ndauthor= an |2ndlast= were dayîn"):format(cant_have)) end end end -- Display all the text that comes after the author, for the "newversion" section. postauthor(2, num_authors, "format_as_cite") else if formatted_date then need_comma = true add(formatted_date) end if formatted_origdate then need_comma = true add(SPACE_LBRAC .. formatted_origdate .. RBRAC) end if need_comma then sep = ", " end date_outputted = true num_authors = add_authors(args) -- Display all the text that comes after the author, for the main portion. postauthor("", num_authors) author_outputted = false sep = add_newversion() -- Add the newversion author(s). if args["2ndauthor"] or args["2ndlast"] then num_authors = add_author( args["2ndauthor"], "2ndauthor", nil, nil, args["2ndauthorlink"], "2ndauthorlink", nil, nil, args["2ndfirst"], "2ndfirst", nil, nil, args["2ndlast"], "2ndlast", nil, nil ) sep = ", " else for _, cant_have in ipairs{"2ndauthorlink", "2ndfirst"} do if args[cant_have] then error(("Nabe ku |%s= bêyî |2ndauthor= an |2ndlast= were dayîn"):format(cant_have)) end end end -- Display all the text that comes after the author, for the "newversion" section. postauthor(2, num_authors) end if not args.nocolon then sep = nil add(":") elseif args.usenodot and not args.nodot then add(".") end -- Concatenate output portions to form output text. local output_text = concat(output) -- Remainder of code handles adding categories. We add one or more of the following categories: -- -- 1. [[Category:LANG terms with quotations]], based on the first language code in termlang= or 1=. Added to -- mainspace, Reconstruction: and Appendix: pages as well as Citations: pages if the corresponding mainspace -- page exists. Not added if nocat= is given. Note that [[Module:usex]] adds the same category using the same -- logic, but we do it here too because we may not have a quotation to format. (We add in those circumstances -- because typically when there's no quotation to format, it's because it's formatted manually underneath the -- citation, or using {{ja-x}}, {{th-x}} or similar.) -- 2. [[Category:Requests for date in LANG entries]], based on the first language code in 1=. Added to mainspace, -- Reconstruction:, Appendix: and Citations: pages unless nocat= is given. -- 3. [[Category:Quotations using nocat parameter]], if nocat= is given. Added to mainspace, Reconstruction:, -- Appendix: and Citations: pages. local categories = {} local termlang = get_first_lang(args.termlang or argslang) if args.nocat then if format_as_cite then insert(tracking_categories, "Çavkanî bi parametreya nekat") else insert(tracking_categories, "Jêgirtin bi parametreya nekat") end else -- don't create language tracking categories for citations if not format_as_cite then local title if args.pagename then -- for testing, doc pages, etc. title = mw.title.new(args.pagename) if not title then error(("Nirxa `args.pagename` xelet e: '%s'"):format(args.pagename)) end else title = mw.title.getCurrentTitle() end -- Only add [[Citations:foo]] to [[:Category:LANG terms with quotations]] if [[foo]] exists. local ok_to_add_cat if title.nsText ~= "Citations" then ok_to_add_cat = true else local mainspace_title = mw.title.new(title.text) if mainspace_title and mainspace_title.exists then ok_to_add_cat = true end end if ok_to_add_cat then insert(categories, "Jêgirtin bi " .. termlang:getFullName()) end end if need_date then local argslangobj = get_first_lang(argslang) insert(categories, "Daxwazên tarîxê bi " .. argslangobj:getCanonicalName()) end end return output_text .. ( not lang and "" or (#categories > 0 and format_categories(categories, lang, args.sort) or "") .. ( #tracking_categories > 0 and format_categories( tracking_categories, lang, args.sort, nil, not page_should_be_ignored(mw.title.getCurrentTitle().fullText) ) or "" ) ) end -- Alias specs for type= and type2=. Each spec is `{canon, aliases, with_newversion}` where `canon` is the canonical -- parameter (with "2" added if type2= is being handled), `aliases` is a comma-separated string of aliases (with "2" -- added if type2= is being handled, except for numeric params), and `with_newversion` indicates whether we should -- process this spec if type2= is being handled. local type_alias_specs = { av = { {"author", "writer,writers", true}, {"chapter", "episode", true}, {"chapterurl", "episodeurl", true}, {"trans-chapter", "trans-episode", true}, {"chapter_tlr", "episode_tlr,episode_tlrs,episode_translator,episode_translators", true}, {"chapter_series", "episode_series", true}, {"chapter_seriesvolume", "episode_seriesvolume", true}, {"chapter_number", "episode_number", true}, {"chapter_plain", "episode_plain", true}, {"volume", "season", true}, {"volumes", "seasons", true}, {"volume_plain", "season_plain", true}, {"volumeurl", "seasonurl", true}, {"platform", "network", true}, }, book = { {"author", "3"}, {"editor", "amadekar"}, {"title", ",4"}, {"url", "5"}, {"year", "2"}, {"page", "6"}, {"text", "7"}, {"t", "8"}, }, journal = { {"year", "2"}, {"author", "3"}, {"chapter", "title,sernav,article,meqale,4", true}, {"chapterurl", "titleurl,articleurl,urlya-sernav,urlya-meqaleyê", true}, {"trans-chapter", "trans-title,trans-article,tercimeya-sernav,tercimeya-meqale", true}, {"chapter_tlr", "title_tlr,title_tlrs,title_translator,title_translators,article_tlr,article_tlrs,article_translator,article_translators,tercimanê-sernav,tercimanên-sernav,tercimanên-meqaleyê,tercimanê-meqaleyê", true}, {"chapter_series", "title_series,article_series,seriya-sernav,seriya-meqaleyê", true}, {"chapter_seriesvolume", "title_seriesvolume,article_seriesvolume,cildê-seriya-sernav,cildê-seriya-meqaleyê", true}, {"chapter_number", "title_number,article_number,hejmara-sernav,hejmara-meqaleyê", true}, {"chapter_plain", "title_plain,article_plain,sernav-sade,meqale-sade", true}, {"title", "journal,kovar,magazine,newspaper,work,xebat,xezete,rojname,5", true}, {"trans-title", "trans-journal,tercimeya-kovar,trans-magazine,trans-newspaper,tercimeya-xezete,tercimeya-rojname,trans-work,tercimeya-xebat", true}, {"tlr", "journal_tlr,tercimanê-kovarê,journal_tlrs,journal_translator,journal_translators,magazine_tlr,magazine_tlrs,magazine_translator,magazine_translators,newspaper_tlr,newspaper_tlrs,newspaper_translator,tercimanê-xezeteyê,tercimanê-rojnameyê,newspaper_translators,work_tlr,tercimanê-xebatê,work_tlrs,work_translator,work_translators", true}, {"url", "6,journalurl,urlya-kovarê,magazineurl,newspaperurl,urlya-xezeteyê,urlya-rojnameyê,workurl,urlya-xebatê", true}, {"page", "7"}, {"source", "newsagency,ajans,news_agency", true}, {"text", "8"}, {"t", "9"}, }, } -- Process interally-handled aliases related to type= or type2=. `args` is a table of arguments; `typ` is the value of -- type= or type2=; newversion=true if we're dealing with type2=; alias_map is used to keep track of alias mappings -- seen. local function process_type_aliases(args, typ, newversion, alias_map) local ind = newversion and "2" or "" local deprecated = ine(args.lang) or ine(args.ziman) if not type_alias_specs[typ] then local possible_values = {} for possible, _ in pairs(type_alias_specs) do insert(possible_values, possible) end sort(possible_values) error( ("Nirxa '%s' ji bo type%s= nayê naskirin; nirxên mihtemel ev in: %s"):format( typ, ind, concat(possible_values, ",") ) ) end for _, alias_spec in ipairs(type_alias_specs[typ]) do local canon, aliases, with_newversion = unpack(alias_spec) if with_newversion or not newversion then canon = canon .. ind aliases = split(aliases, ",", true) local saw_alias = nil for _, alias in ipairs(aliases) do if alias:match("^%d+$") then alias = tonumber(alias) if deprecated then alias = alias - 1 end else alias = alias .. ind end if args[alias] then if saw_alias == nil then saw_alias = alias else error(("|%s= û |%s= bernav in; nabe ku nirx ji bo herduyan were dayîn"):format(saw_alias, alias)) end end end if saw_alias and (not newversion or type(saw_alias) == "string") then if args[canon] then error(("|%s= bernavê |%s= ye; nabe ku nirx ji bo herduyan were dayîn"):format(saw_alias, canon)) end args[canon] = args[saw_alias] -- Wipe out the original after copying. This is important in case of a param that has general significance -- but has been redefined (e.g. {{quote-av}} redefines number= for the episode number, and -- {{quote-journal}} redefines title= for the chapter= (article). It's also important due to unhandled -- parameter checking. args[saw_alias] = nil alias_map[canon] = saw_alias end end end end -- Clone and combine frame's and parent's args while also assigning nil to empty strings. Handle aliases and ignores. local function clone_args(direct_args, parent_args) local args = {} -- Processing parent args must come first so that direct args override parent args. Note that if a direct arg is -- specified but is blank, it will still override the parent arg (with nil). for pname, param in pairs(parent_args) do -- [[Special:WhatLinksHere/Wiktionary:Tracking/quote/param/PARAM]] track("param/" .. pname) args[pname] = ine(param) end -- Process ignores. The value of `ignore` is a comma-separated list of parameter names to ignore (erase). We need to -- do this before aliases due to {{quote-song}}, which sets chapter= to the value of title= in the direct params and -- sets title= to the value of album= using an alias. If we do the ignores after aliases, we get an error during alias -- processing, saying that title= and its alias album= are both present. local ignores = ine(direct_args.ignore) if ignores then for ignore in gsplit(ignores, "%s*,%s*") do args[ignore] = nil end end local alias_map = {} local other_controls = {} -- noroman local noroman = ine(direct_args.noroman) if noroman then other_controls.overrides = other_controls.overrides or {} for param in gsplit(noroman, "%s*,%s*") do other_controls.overrides[param] = (other_controls.overrides[param] or {}) other_controls.overrides[param].noroman = true end end -- Process internally-specified aliases using type= or type2=. local typ = args.type or direct_args.type or args.cure or direct_args.cure if typ then process_type_aliases(args, typ, false, alias_map) end local typ2 = args.type2 or direct_args.type2 or args.cure2 or direct_args.cure2 if typ2 then process_type_aliases(args, typ2, true, alias_map) end -- Process externally-specified aliases. The value of `alias` is a list of semicolon-separated specs, each of which -- is of the form DEST:SOURCE,SOURCE,... where DEST is the canonical name of a parameter and SOURCE refers to an -- alias. Whitespace is allowed between all delimiters. The order of aliases may be important. For example, for -- {{quote-journal}}, title= contains the article name and is an alias of underlying chapter=, while journal= or -- work= contains the journal name and is an alias of underlying title=. As a result, the title -> chapter alias -- must be specified before the journal/work -> title alias. -- -- Whenever we copy a value from argument SOURCE to argument DEST, we record an entry for the pair in alias_map, so -- that when we would display an error message about DEST, we display SOURCE instead. -- -- Do alias processing (and ignore and error_if processing) before processing direct_args so that e.g. we can set up -- an alias of title -> chapter and then set title= to something else in the direct args ({{quote-hansard}} does -- this). -- -- FIXME: Delete this once we've converted all alias processing to internal. local aliases = ine(direct_args.alias) if aliases then -- Allow and discard a trailing semicolon, to make managing multiple aliases easier. aliases = ugsub(aliases, "%s*;$", "") for alias_spec in gsplit(aliases, "%s*;%s*") do local alias_spec_parts = split(alias_spec, "%s*:%s*") if #alias_spec_parts ~= 2 then error(("Ji bo bernav '%s' divê (:) tê de hebe"):format(alias_spec)) -- ("Alias spec '%s' should have one colon in it"):format(alias_spec) ev çi dibêje? end local dest, sources = unpack(alias_spec_parts) sources = split(sources, "%s*,%s*") local saw_source = nil for _, source in ipairs(sources) do if source:match("^%d+$") then source = tonumber(source) end if args[source] then if saw_source == nil then saw_source = source else error(("|%s= û |%s= bernav in; nabe ku nirx ji bo herduyan were dayîn"):format(saw_source, source)) end end end if saw_source then if args[dest] then error(("|%s= bernavê |%s= ye; nabe ku nirx ji bo herduyan were dayîn"):format(saw_source, dest)) end args[dest] = args[saw_source] -- Wipe out the original after copying. This important in case of a param that has general significance -- but has been redefined (e.g. {{quote-av}} redefines number= for the episode number, and -- {{quote-journal}} redefines title= for the chapter= (article). It's also important due to unhandled -- parameter checking. args[saw_source] = nil alias_map[dest] = saw_source end end end -- Process error_if. The value of `error_if` is a comma-separated list of parameter names to throw an error if seen -- in parent_args (they are params we overwrite in the direct args). local error_ifs = ine(direct_args.error_if) if error_ifs then for error_if in gsplit(error_ifs, "%s*,%s*") do if ine(parent_args[error_if]) then error( ("Nabe ku nirxek ji bo |%s=%s were dayîn, ji ber ku dê were guhartin an paşguhkirin"):format( error_if, ine(parent_args[error_if]) ) ) end end end for pname, param in pairs(direct_args) do -- ignore control params if pname ~= "ignore" and pname ~= "alias" and pname ~= "error_if" and pname ~= "noroman" then args[pname] = ine(param) end end return args, alias_map, other_controls end local function get_args(frame_args, parent_args, require_lang) -- FIXME: We are processing arguments twice, once in clone_args() and then again in [[Module:parameters]]. This is -- wasteful of memory. local cloned_args, alias_map, other_controls = clone_args(frame_args, parent_args) -- Use cloned_args (already merged: parent_args overridden by direct frame_args), not parent_args alone -- -- the language code may be a direct arg on the #invoke itself (e.g. a dedicated per-work reference template -- that hardcodes |ku directly), not something the transcluding page passes through. local deprecated = ine(cloned_args.lang) or ine(cloned_args.ziman) if ine(cloned_args[1]) and deprecated then error("Nikarî hem parametreya 1. (koda zimên) hem jî |lang=/|ziman= bi hev re bi kar bînî; tenê yekê ji wan bi kar bîne.") end -- Enforce the language requirement here (instead of leaving it to Module:parameters' generic "required" -- validation) so the namespace-aware custom error below actually gets a chance to run. if require_lang and not (ine(cloned_args[1]) or deprecated) then local current_title = mw.title.getCurrentTitle() if not (current_title.namespace == 10 or page_should_be_ignored(current_title.fullText)) then require(languages_error_module)(nil, 1) end end local alias_of_t = {alias_of = "t"} local boolean = {type = "boolean"} local language_sublist = {type = "language", sublist = true} local list_allow_holes = {list = true, allow_holes = true} local script = {type = "script"} local function alias_list_allow_holes(canon) return {alias_of = canon, list = true, allow_holes = true} end -- First, the "single" params that don't have FOO2 or FOOn versions. local params = { [deprecated and "lang" or 1] = {type = "language", sublist = true, default = "und"}, ["lang2"] = language_sublist, ["ziman2"] = {alias_of = "lang2", type = "language", sublist = true}, ["newversion"] = true, ["versiyona-nû"] = {alias_of = "newversion"}, ["author"] = list_allow_holes, ["nivîskar"] = alias_list_allow_holes("author"), ["2ndauthor"] = true, ["2nivîskar"] = {alias_of = "2ndauthor"}, ["trans-author"] = list_allow_holes, ["tercimeya-nivîskar"] = alias_list_allow_holes("trans-author"), ["authorlink"] = list_allow_holes, ["lînka-nivîskar"] = alias_list_allow_holes("authorlink"), ["2ndauthorlink"] = true, ["2lînka-nivîskar"] = {alias_of = "2ndauthorlink"}, ["trans-authorlink"] = list_allow_holes, ["lînka-tercimeya-nivîskar"] = alias_list_allow_holes("trans-authorlink"), ["first"] = list_allow_holes, ["pêşnav"] = alias_list_allow_holes("first"), ["2ndfirst"] = true, ["2pêşnav"] = {alias_of = "2ndfirst"}, ["trans-first"] = list_allow_holes, ["tercimeya-pêşnav"] = alias_list_allow_holes("trans-first"), ["last"] = list_allow_holes, ["paşnav"] = alias_list_allow_holes("last"), ["2ndlast"] = true, ["2paşnav"] = {alias_of = "2ndlast"}, ["trans-last"] = list_allow_holes, ["tercimeya-paşnav"] = alias_list_allow_holes("trans-last"), ["nocat"] = boolean, ["nekat"] = {alias_of = "nocat"}, ["nocolon"] = boolean, -- quote params text = true, passage = {alias_of = "text"}, ["jêgirtin"] = {alias_of = "text"}, ["jg"] = {alias_of = "text"}, tr = true, transliteration = {alias_of = "tr"}, ts = true, transcription = {alias_of = "ts"}, norm = true, normalization = {alias_of = "norm"}, sc = script, normsc = script, sort = true, subst = true, footer = true, lit = true, ["hrf"] = {alias_of = "lit"}, t = true, translation = alias_of_t, ["tercime"] = alias_of_t, ["werger"] = alias_of_t, ["w"] = alias_of_t, gloss = alias_of_t, lb = true, ["e"] = {alias_of = "lb"}, brackets = boolean, ["parantez"] = {alias_of = "brackets"}, -- original quote params origtext = true, ["metna-orîjînal"] = {alias_of = "origtext"}, origtr = true, ["tr-orîjînal"] = {alias_of = "origtr"}, origts = true, ["ts-orîjînal"] = {alias_of = "origts"}, orignorm = true, ["norm-orîjînal"] = {alias_of = "orignorm"}, origsc = script, ["sc-orîjînal"] = {alias_of = "origsc"}, orignormsc = script, ["normsc-orîjînal"] = {alias_of = "orignormsc"}, origsubst = true, ["subst-orîjînal"] = {alias_of = "origsubst"}, origlb = true, ["e-orîjînal"] = {alias_of = "origlb"}, usenodot = boolean, nodot = boolean, inline = boolean, asquote = boolean, ["wekjêgirtin"] = {alias_of = "asquote"}, ascite = boolean, ["wekçavkanî"] = {alias_of = "ascite"}, } -- ziman= is a deprecated Kurdish alias of the deprecated named lang= param (only meaningful once "lang" is -- actually a registered key, i.e. when deprecated is true; see the [deprecated and "lang" or 1] key above). if deprecated then params["ziman"] = {alias_of = "lang"} end -- Most params have PARAM2 variants for use with `newversion`. FIXME: We should generalize this to -- allow PARAMN variants for any N. local function add_with_2(param, value) params[param] = value params[param .. "2"] = value end local function alias_with_2(alias, canon) params[alias] = {alias_of = canon} params[alias .. "2"] = {alias_of = canon .. "2"} -- Record which alias was actually used, so error messages show e.g. |tarîx= instead of |date=. if cloned_args[alias] then alias_map[canon] = alias end if cloned_args[alias .. "2"] then alias_map[canon .. "2"] = alias .. "2" end end for _, param12 in ipairs{ "worklang", "termlang", "origlang", "origworklang" } do add_with_2(param12, language_sublist) end -- Then the newversion params (which have FOO2 versions). for _, param12 in ipairs{ -- author-like params; author params themselves are either list params (author=, last=, etc.) or single params -- (2ndauthor=, 2ndlast=, etc.) "coauthors", "quotee", "tlr", "editor", "editors", "mainauthor", "compiler", "compilers", "director", "directors", "lyricist", "lyrics-translator", "composer", "role", "actor", "artist", "feat", -- author control params "default-authorlabel", "authorlabel", -- title "title", "trans-title", "series", "seriesvolume", "notitle", -- entry "entry", "entryurl", "trans-entry", -- chapter "chapter", "chapterurl", "chapter_number", "chapter_plain", "chapter_series", "chapter_seriesvolume", "trans-chapter", "chapter_tlr", -- section "section", "sectionurl", "section_number", "section_plain", "section_series", "section_seriesvolume", "trans-section", -- other video-game params "system", "scene", "level", -- URL "url", "urls", "archiveurl", -- edition "edition", "edition_plain", -- ID params "bibcode", "doi", "isbn", "issn", "jstor", "lccn", "oclc", "ol", "pmid", "pmcid", "ssrn", "urn", "id", -- misc date params; most date params handled below "archivedate", "accessdate", "nodate", -- numeric params handled below -- other params "type", "genre", "format", "medium", "others", "quoted_in", "location", "publisher", "original", "by", "deriv", "note", "note_plain", "other", "source", "platform", } do add_with_2(param12, true) end -- Then the aliases of newversion params (which have FOO2 versions). for _, param12_aliased in ipairs{ {"role", "roles"}, {"role", "speaker"}, {"tlr", "tlrs"}, {"tlr", "translator"}, {"tlr", "translators"}, {"chapter_tlr", "chapter_tlrs"}, {"chapter_tlr", "chapter_translator"}, {"chapter_tlr", "chapter_translators"}, {"doi", "DOI"}, {"isbn", "ISBN"}, {"issn", "ISSN"}, {"jstor", "JSTOR"}, {"lccn", "LCCN"}, {"oclc", "OCLC"}, {"ol", "OL"}, {"pmid", "PMID"}, {"pmcid", "PMCID"}, {"ssrn", "SSRN"}, {"urn", "URN"}, } do local canon, alias = unpack(param12_aliased) alias_with_2(alias, canon) end -- tercimeyên Then the aliases of newversion params (which have FOO2 versions). for _, param12_aliased in ipairs{ {"role", "rol"}, {"role", "axivêr"}, {"tlr", "terciman"}, {"tlr", "wergêr"}, {"chapter_tlr", "tercimanên-beşê"}, {"chapter_tlr", "tercimanê-beşê"}, {"chapter_tlr", "tercimana-beşê"}, {"chapter_tlr", "wergêrên-beşê"}, {"chapter_tlr", "wergêrê-beşê"}, {"chapter_tlr", "wergêra-beşê"}, -- tercimeyên Then the newversion params (which have FOO2 versions). -- author-like params; author params themselves are either list params (author=, last=, etc.) or single params -- (2ndauthor=, 2ndlast=, etc.) {"coauthors", "hevnivîskar"}, {"quotee", "jê-tê-girtin"}, {"editor", "edîtor"}, {"editor", "amadekar"}, {"mainauthor", "nivîskarê-sereke"}, {"compiler", "berhevkar"}, {"director", "derhêner"}, {"lyricist", "gotinnivîs"}, {"lyrics-translator", "tercimanê-gotinan"}, {"lyrics-translator", "tercimana-gotinan"}, {"lyrics-translator", "wergêrê-gotinan"}, {"lyrics-translator", "wergêra-gotinan"}, {"composer", "bestekar"}, {"actor", "aktor"}, {"actor", "lîstikvan"}, {"artist", "hunermend"}, {"artist", "artîst"}, {"feat", "mêvan"}, --tercimeyên author control params {"default-authorlabel", "standard-etîketa-nivîskar"}, {"authorlabel", "etîketa-nivîskar"}, --tercimeyên title {"title", "sernav"}, {"trans-title", "tercimeya-sernav"}, {"trans-title", "wergera-sernav"}, {"series", "serî"}, {"series", "rêze"}, {"seriesvolume", "cildê-seriyê"}, {"seriesvolume", "cildê-rêzeyê"}, {"notitle", "bêsernav"}, --tercimeyên entry {"entry", "made"}, {"entryurl", "urlya-madeyê"}, {"trans-entry", "tercimeya-made"}, {"trans-entry", "wergera-madeyê"}, --tercimeyên chapter {"chapter", "beş"}, {"chapterurl", "urlya-beşê"}, {"chapter_number", "hejmara-beşê"}, {"chapter_plain", "beş-sade"}, {"chapter_series", "seriya-beşê"}, {"chapter_series", "rêzeya-beşê"}, {"chapter_seriesvolume", "cildê-seriya-beşê"}, {"chapter_seriesvolume", "cildê-rêzeya-beşê"}, {"trans-chapter", "tercimeya-beş"}, {"trans-chapter", "wergera-beşê"}, --tercimeyên section {"section", "qisim"}, {"section", "qism"}, {"sectionurl", "urlya-qismê"}, {"section_number", "hejmara-qismê"}, {"section_plain", "qisim-sade"}, {"section_plain", "qism-sade"}, {"section_series", "rêzeya-qismê"}, {"section_seriesvolume", "cildê-seriya-qismê"}, {"section_seriesvolume", "cildê-rêzeya-qismê"}, {"trans-section", "tercimeya-qism"}, {"trans-section", "tercimeya-qisim"}, --tercimeyên other video-game params {"system", "sîstem"}, {"system", "pergal"}, {"scene", "sehne"}, {"level", "seviye"}, --tercimeyên URL {"archiveurl", "urlya-arşîvê"}, -- tercimeyên edition {"edition", "çap"}, {"edition_plain", "çap-sade"}, --tercimeyên misc date params; most date params handled below {"archivedate", "roja-arşîvê"}, {"archivedate", "tarîxa-arşîvê"}, {"accessdate", "tarîxa-gihiştinê"}, {"accessdate", "roja-gihiştinê"}, {"nodate", "bêtarîx"}, --tercimeyên other params {"type", "cure"}, {"genre", "janr"}, {"medium", "medya"}, {"others", "kesên-din"}, {"others", "yên-din"}, {"quoted_in", "cihê-jêgirtinê"}, {"location", "cih"}, {"location", "cîh"}, {"publisher", "weşanxane"}, {"publisher", "weşanger"}, {"original", "orîjînal"}, {"original", "orjînal"}, {"by", "ji-aliyê"}, {"by", "ji-hêla"}, --{"deriv", ""}, {"note", "not"}, {"note_plain", "not-sade"}, {"other", "yê-din"}, {"source", "çavkanî"}, --tercimeyên {"worklang", "zimanê-eserê"}, {"termlang", "zimanê-termê"}, {"origlang", "zimanê-orîjînal"}, {"origworklang", "zimanê-esera-orîjînal"}, } do local canon, alias = unpack(param12_aliased) alias_with_2(alias, canon) end -- Then the date params. for _, datelike in ipairs{{"", ""}, {"orig", ""}, {"", "_published"}} do local pref, suf = unpack(datelike) for _, arg in ipairs{"date", "year", "month", "start_date", "start_year", "start_month"} do add_with_2(pref .. arg .. suf, true) end end -- Kurmancî aliases for the date params for _, date_aliased in ipairs{ {"date", "tarîx"}, {"date", "dîrok"}, {"year", "sal"}, {"month", "meh"}, {"start_date", "tarîxa-destpêkê"}, {"start_year", "sala-destpêkê"}, {"start_month", "meha-destpêkê"}, {"origdate", "tarîxa-orîjînal"}, {"origyear", "sala-orîjînal"}, {"origyear", "sala orîjînal"}, {"origmonth", "meha-orîjînal"}, {"origstart_date", "tarîxa-destpêkê-orîjînal"}, {"origstart_year", "sala-destpêkê-orîjînal"}, {"origstart_month", "meha-destpêkê-orîjînal"}, {"date_published", "tarîxa-weşandinê"}, {"year_published", "sala-weşandinê"}, {"year_published", "sala weşandinê"}, {"month_published", "meha-weşandinê"}, {"start_date_published", "tarîxa-destpêkê-weşandin"}, {"start_year_published", "sala_destpêkê-weşandin"}, {"start_month_published", "meha-destpêkê-weşandin"} } do local canon, alias = unpack(date_aliased) alias_with_2(alias, canon) end local numeric_param_suffixes = {"", "s", "_plain", "url", "_prefix"} -- Then the numeric params. for _, numeric in ipairs{"volume", "issue", "number", "line", "page", "column"} do for _, suf in ipairs(numeric_param_suffixes) do add_with_2(numeric .. suf, true) end end -- canon word -> Kurdish forms -- aliases : plain synonyms (maps straight to canon, e.g. "volume") -- sade : ezafe form used before "-sade" (canon .. "_plain") -- urlya : ezafe form used after "urlya-" (canon .. "url") local ku_numeric = { volume = {aliases = {"cild", "cîld"}, sade = "cild", urlya = "cild"}, issue = {aliases = {"hj", "hejmar"}, sade = "hejmar", urlya = "hejmarê"}, number = {aliases = {"nimare"}, sade = "nimare", urlya = "nimareyê"}, line = {aliases = {"rêz"}, sade = "rêz", urlya = "rêzê"}, page = {aliases = {"rûpel", "r"}, sade = "rûpel", urlya = "rûpelê"}, column = {aliases = {"stûn"}, sade = "stûn", urlya = "stûnê"}, } local ku_numeric_plural = { volume = "cildên", issue = "hejmarên", number = "nimareyên", line = "rêzên", page = "rûpelên", column = "stûnên", } for canon, t in pairs(ku_numeric) do for _, alias in ipairs(t.aliases) do alias_with_2(alias, canon) end alias_with_2(t.sade .. "-sade", canon .. "_plain") alias_with_2("urlya-" .. t.urlya, canon .. "url") alias_with_2("pêşgira-" .. t.urlya, canon .. "_prefix") end for canon, plural in pairs(ku_numeric_plural) do alias_with_2(plural, canon .. "s") end -- And the aliases of numeric params. for _, numeric_aliased in ipairs{{"volume", "vol"}} do local canon, alias = unpack(numeric_aliased) for _, suf in ipairs(numeric_param_suffixes) do alias_with_2(alias .. suf, canon .. suf) end end return process_params(cloned_args, params), alias_map, other_controls end local function get_origtext_params(args) local origtext, origtextlang, origsc, orignormsc if args.origtext then -- Wiktionary language codes have at least two lowercase letters followed possibly by lowercase letters and/or -- hyphens (there are more restrictions but this is close enough). Also check for nonstandard Latin etymology -- language codes (e.g. VL. or LL.). (There used to be more nonstandard codes but they have all been -- eliminated.) origtextlang, origtext = args.origtext:match("^(%l%l[%l-]*):([^ ].*)$") if not origtextlang then -- Special hack for Latin variants, which can have nonstandard etym codes, e.g. VL., LL. origtextlang, origtext = args.origtext:match("^(%uL%.):([^ ].*)$") end if not origtextlang then error("origtext= divê bi pêşgira koda zimên dest pê bike") end origtextlang = get_lang(origtextlang, nil, "allow etym") or error("origtext= divê bi pêşgira koda zimên dest pê bike") origsc = args.origsc orignormsc = args.orignormsc else for _, noparam in ipairs{"origtr", "origts", "origsc", "orignorm", "orignormsc", "origsubst", "origlb"} do if args[noparam] then error(("Nabe ku %s= bêyî origtext= were dayîn"):format(noparam)) end end end return origtext, origtextlang, origsc, orignormsc end local function get_quote(args, is_cite, source) local text = args.text local gloss = args.t local tr = args.tr local ts = args.ts local norm = args.norm local sc = args.sc local normsc = args.normsc -- Fetch original-text parameters. local origtext, origtextlang, origsc, orignormsc = get_origtext_params(args) -- If any quote-related args are present, display the actual quote; otherwise, display nothing. if text or gloss or tr or ts or norm or args.origtext then -- Pass "und" here rather than cause an error; there will be an error on mainspace, Citations, etc. pages -- in any case in source() if the language is omitted. local lang = get_first_lang(args[1] or args.lang) local termlang = args.termlang and get_first_lang(args.termlang) or lang local usex_data = { lang = lang, termlang = termlang, usex = text, sc = sc, translation = gloss, normalization = norm, normsc = normsc, transliteration = tr, transcription = ts, brackets = args.brackets, subst = args.subst, lit = args.lit, footer = args.footer, qq = parse_and_format_labels(args.lb, lang), quote = "quote-meta", orig = origtext, origlang = origtextlang, origsc = origsc, orignorm = args.orignorm, orignormsc = orignormsc, origtr = args.origtr, origts = args.origts, origsubst = args.origsubst, origqq = parse_and_format_labels(args.origlb, lang), noreq = args.noreq, nocat = is_cite or args.nocat, source = source } if args.inline then -- don't let usex format the footer, otherwise it gets inlined with the rest of the quoted text usex_data.footer = nil usex_data.inline = 1 text = format_usex(usex_data) if text then text = " “" .. text .. "”" else text = "" end if args.footer then text = text .. "<dl><dd>" .. args.footer .. "</dd></dl>" end else text = format_usex(usex_data) end elseif args.footer then text = "<dl><dd>" .. args.footer .. "</dd></dl>" end return text end -- External interface, meant to be called from a template. Replaces {{quote-meta}} and meant to be the primary -- interface for {{quote-*}} templates. function export.quote_t(frame) local args, alias_map, other_controls = get_args(frame.args, frame:getParent().args, "require_lang") if args.ascite then return export.cite_t(frame) end return show_quote(args, alias_map, other_controls) end function show_quote(args, alias_map, other_controls) local parts = {} -- kuwikt always hides the trailing colon on quote_t. args.nocolon = true insert(parts, get_quote(args, false, export.source(args, alias_map, nil, other_controls))) local retval = concat(parts) return deprecated and frame:expandTemplate({ title = "check deprecated lang param usage", args = {retval, lang = args.lang}, }) or retval end -- External interface, meant to be called from a template. Replaces {{cite-meta}} and meant to be the primary -- interface for {{cite-*}} templates. function export.cite_t(frame) local parent_args = {} for k, v in pairs(frame:getParent().args) do parent_args[k] = v end -- use "und" as lang if none provided at all (not even via the deprecated named lang=/ziman=). Don't synthesize -- this when lang=/ziman= was used, or the deprecated-shift logic in process_type_aliases() will misread this -- placeholder as a genuine shifted positional value (e.g. type=book's position-2-is-year), duplicating it into -- a real alias like sal=. if parent_args[1] == nil and not (ine(parent_args.lang) or ine(parent_args.ziman)) then parent_args[1] = "und" end local args, alias_map, other_controls = get_args(frame.args, parent_args) if args.asquote then return show_quote(args, alias_map, other_controls) end return show_cite(args, alias_map, other_controls) end function show_cite(args, alias_map, other_controls) local parts = {} -- don't nag for translations if args.text and not args.t then args.noreq = 1 end local len_visible = args.text and ulen((args.text:gsub("<[^<>]+>", ""))) or 0 if len_visible == 0 then if not args.t or args.t == "-" then args.nocolon = true end elseif args.inline == nil then args.inline = not ( args.block_text or len_visible > 300 or (args.t and not args.t == "-" and len_visible < 80) or string.match(args.text, "<br>") ) end insert(parts, '<span class="citation-whole"><span class="cited-source">') insert(parts, export.source(args, alias_map, "format_as_cite", other_controls)) insert(parts, "</span>") insert(parts, get_quote(args, "is_cite")) insert(parts, "</span>") local retval = concat(parts) return deprecated and frame:expandTemplate({ title = "check deprecated lang param usage", args = {retval, lang = args.lang}, }) or retval end -- External interface, meant to be called from a template. function export.call_quote_template(frame) return export.call_template(frame) end -- External interface, for calling a template with overloaded parameters. function export.overload(frame) local iargs, overloaded_args = process_params(frame.args, { [1] = {required = true} }, true) local parent_args = frame:getParent().args for k, v in pairs(parent_args) do overloaded_args[k] = v end return frame:expandTemplate{title = iargs[1], args = overloaded_args} end -- External interface, meant to be called from a template. function export.call_template(frame) local parameter_sublist = {type = "parameter", sublist = true} local iargs, other_direct_args = process_params(frame.args, { ["template"] = true, ["textparam"] = parameter_sublist, ["pageparam"] = parameter_sublist, ["propagateparams"] = parameter_sublist, ["allowparams"] = {sublist = true}, -- Doesn't use type = "parameter", because any that end in :list get processed differently. }, true) local function fetch_param(source, params) for _, param in ipairs(params) do if source[param] then return source[param] end end return nil end local params = { ["text"] = true, ["passage"] = true, ["jêgirtin"] = true, ["footer"] = true, -- always propagates, but gets special formatting } -- paramaters that can be used during template declaration or included in template calls -- if the template is called with param=- it will set any declared value to nil local always_propagate = { ["brackets"] = true, ["usenodot"] = true, ["nodot"] = true, ["ascite"] = true, ["asquote"] = true, } for k,v in pairs(always_propagate) do params[k] = v end local textparam = iargs.textparam or {} for _, param in ipairs(textparam) do params[param] = true end local pageparam = iargs.pageparam or {} local pageparam1 = pageparam[1] if pageparam1 ~= nil then params["page"], params["pages"] = true, true for _, param in ipairs(pageparam) do params[param] = true end end local allowparams, allow_all, list = iargs.allowparams, false if allowparams ~= nil then for _, allow in ipairs(allowparams) do local param = allow:match("^(.*):list$") if param then if list == nil then list = {list = true} end params[scribunto_parameter_key(param)] = list elseif allow == "*" then track("no parameter checking") allow_all = true else params[scribunto_parameter_key(allow)] = true end end else local parent = frame:getParent() local template_name = parent:getTitle() local template_title = new_title(template_name) local content = template_title:getContent() local allowed_params, seen = {}, {} -- Detect all params used by the parent template. param:get_name() takes the -- parent frame arg table as an argument so that preprocessing will take -- them into account, since it will matter if the name contains another -- parameter (e.g. the outer param in "{{{foo{{{bar}}}baz}}}" will change -- depending on the value for bar=). `seen` memoizes results based on the -- raw parameter text (which is stored as a string in the parameter object), -- which avoids unnecessary param:get_name() calls, which are non-trivial. for param in find_parameters(content) do local raw = param.raw if not seen[raw] then allow = param:get_name(template_args) params[scribunto_parameter_key(allow)] = true seen[raw] = true end end end local propagateparams = iargs.propagateparams or {} for _, param in ipairs(propagateparams) do params[param] = true end local parent_args = frame:getParent().args local args = process_params(parent_args, params, allow_all) parent_args = shallow_copy(parent_args) if textparam[1] ~= "-" then other_direct_args.passage = args.text or args.passage or args["jêgirtin"] or fetch_param(args, textparam) end if not (pageparam1 == nil or pageparam1 == "-") then other_direct_args.page = fetch_param(args, pageparam) or args.page or other_direct_args.page or nil other_direct_args.pages = args.pages or other_direct_args.pages or nil if other_direct_args.page == "-" then other_direct_args.page = nil end if other_direct_args.pages == "-" then other_direct_args.pages = nil end end if args.footer then other_direct_args.footer = frame:expandTemplate{title = "small", args = {args.footer}} end for param, _ in pairs(always_propagate) do if args[param] == "-" then other_direct_args[param] = nil else other_direct_args[param] = args[param] or other_direct_args[param] or nil end end -- authorlink=- can be used to prevent copying of author= to authorlink= but we don't want to propagate this to -- the actual {{quote-*}} code. if other_direct_args.authorlink == "-" then other_direct_args.authorlink = nil end for _, param in ipairs(propagateparams) do if args[param] then other_direct_args[param] = args[param] end end return frame:expandTemplate{title = iargs.template or "quote-book", args = other_direct_args} end local paramdoc_param_replacements = { passage = { param_with_synonym = "<<synonym>>, {{para|text}}, or {{para|passage}}", param_no_synonym = "{{para|text}} or {{para|passage}}", text = [=[ * <<params>> – the passage to be quoted.]=], }, page = { param_with_synonym = "<<synonym>> or {{para|page}}, or {{para|pages}}", param_no_synonym = "{{para|page}} or {{para|pages}}", text = [=[ * <<params>> – '''mandatory in some cases''': the page number(s) quoted from. When quoting a range of pages, note the following: ** Separate the first and last pages of the range with an [[en dash]], like this: {{para|pages|10–11}}. ** You must also use {{para|pageref}} to indicate the page to be linked to (usually the page on which the Wiktionary entry appears). : This parameter must be specified to have the template link to the online version of the work.]=], }, page_with_roman_preface = { param_with_synonym = {"inherit", "page"}, param_no_synonym = {"inherit", "page"}, text = [=[ * <<params>> – '''mandatory in some cases''': the page number(s) quoted from. If quoting from the preface, specify the page number(s) in lowercase Roman numerals. When quoting a range of pages, note the following: ** Separate the first and last page number of the range with an [[en dash]], like this: {{para|pages|10–11}} or {{para|pages|iii–iv}}. ** You must also use {{para|pageref}} to indicate the page to be linked to (usually the page on which the Wiktionary entry appears). : This parameter must be specified to have the template link to the online version of the work.]=], }, chapter = { param_with_synonym = "<<synonym>> or {{para|chapter}}", param_no_synonym = "{{para|chapter}}", text = [=[ * <<params>> – the name of the chapter quoted from.]=], }, roman_chapter = { param_with_synonym = {"inherit", "chapter"}, param_no_synonym = {"inherit", "chapter"}, text = [=[ * <<params>> – the chapter number quoted from in uppercase Roman numerals.]=], }, arabic_chapter = { param_with_synonym = {"inherit", "chapter"}, param_no_synonym = {"inherit", "chapter"}, text = [=[ * <<params>> – the chapter number quoted from in Arabic numerals.]=], }, trailing_params = { text = [=[ * {{para|footer}} – a comment on the passage quoted. * {{para|brackets}} – use {{para|brackets|on}} to surround a quotation with [[bracket#Noun|brackets]]. This indicates that the quotation either contains a mere mention of a term (for example, “some people find the word '''''manoeuvre''''' hard to spell”) rather than an actual use of it (for example, “we need to '''manoeuvre''' carefully to avoid causing upset”), or does not provide an actual instance of a term but provides information about related terms.]=], }, } function export.paramdoc(frame) local parargs = frame:getParent().args local args = process_params(parargs, { [1] = true, }) local text = args[1] local function do_param_with_optional_synonym(param, text_to_sub, paramtext_synonym, paramtext_no_synonym) local function sub_param(synonym) local subbed_paramtext if synonym then subbed_paramtext = paramtext_synonym:gsub("<<synonym>>", "{{para|" .. replacement_escape(synonym) .. "}}") else subbed_paramtext = paramtext_no_synonym end return frame:preprocess((text_to_sub:gsub("<<params>>", replacement_escape(subbed_paramtext)))) end text = text:gsub("<<" .. pattern_escape(param) .. ">>", function() return sub_param() end) text = text:gsub("<<" .. pattern_escape(param) .. ":(.-)>>", sub_param) end local function fetch_text(param_to_replace, key) local spec = paramdoc_param_replacements[param_to_replace] local val = spec[key] if type(val) == "string" then return val end if type(val) == "table" and val[1] == "inherit" then return fetch_text(val[2], key) end error( "Internal error: Unrecognized value for param '" .. param_to_replace .. "', key '" .. key .. "': " .. mw.dumpObject(val) ) end for param_to_replace, spec in pairs(paramdoc_param_replacements) do if not spec.param_no_synonym then -- Text to substitute directly. text = text:gsub("<<" .. pattern_escape(param_to_replace) .. ">>", function() return frame:preprocess(fetch_text(param_to_replace, "text")) end) else do_param_with_optional_synonym( param_to_replace, fetch_text(param_to_replace, "text"), fetch_text(param_to_replace, "param_with_synonym"), fetch_text(param_to_replace, "param_no_synonym") ) end end -- Remove final newline so template code can add a newline after invocation text = text:gsub("\n$", "") return text end return export 4lxvjd20ixke8cnxahlg7985rtvu22u Bikarhêner:Wikihez/Gadget-wikt.add-examples.js 2 1357893 6329628 6276922 2026-08-12T14:19:31Z Wikihez 7344 6329628 javascript text/javascript // <nowiki> // implicit dependencies: StorageUtils (ObjectStorage) /** * Formats a string. * @param var_args {...Object} The list of values to insert into the string. * @return {string} The formatted string. */ if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; //di van rûpelan de dê nexebite: if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "1.7"; // Pêşnûyisa (draft) vê formê bi karanîna [[MediaWiki:Gadget-StorageUtils.js]] // tê hilanîn (localStorage, an cookie eger localStorage ne berdest be), da ku // eger weşandin bi ser neketibe, nivîsa bikarhêner winda nebe. var draftStorage = new ObjectStorage("add_examples_draft", 1); // NOTE: Logîka Citoid (standin/veguherandina daneyên çavkaniyê) ji vê dosyeyê // hatiye derxistin bo [[MediaWiki:Gadget-citoid-helper.js]], da ku scriptên din jî // karibin wê bikar bînin. Li jêr, wikt.citoidHelper.ensure() ew rûpel bar dike heke // hewce be, û wikt.citoid.fetchJederFields() encaman dide me. Ji bo zêdetir agahî li // serê wê dosyeyê binêre. var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal" }, { "key": "sala weşandinê", "label": "Sala weşandinê" }, { "key": "çap", "label": "Çap" }, { "key": "rûpel", "label": "Rûpel" }, { "key": "isbn", "label": "ISBN" }, { "key": "url", "label": "URL" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild" }, { "key": "hejmar", "label": "Hejmar" }, { "key": "sal", "label": "Sal" }, { "key": "rûpel", "label": "Rûpel" }, { "key": "url", "label": "URL" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL" }, { "key": "arşîv", "label": "Arşîva URLê" }, { "key": "sal", "label": "Sal" }, { "key": "tarîx", "label": "Tarîx" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Navên şablonên ku wek "nimûneyeke rasteqîn" tên hesibandin (ango ew qonaxên ku // amûr dikare wan biguherîne an li pey wan zêde bike). Ev navnîşa "destûrê" ye, // li şûna navnîşa "qedexeyê" ya kevn — her şablonek din a "#:"/"#*" (hevmane, // dijmane, alt-r, hwd.) wek şîroveyek tê hesibandin, ne wek nimûneyek. var exampleTemplateNames = ["jêder", "nm"].concat(Object.keys(jederDefs)); /** * Navê şablona di rêzikeke "#:" an "#*" de vedigerîne, mînak "jêder" ji * "#* {{jêder|ku|...}}". Vedigere null eger rêzik bi şablonekê dest pê nekiribe. * @param line {string} * @return {string|null} */ function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } /** * Ji ber ku şablonek dikare çend rêzikan bigire (mînak {{jêder|...|jg=gotineke * dirêj\ndi çend rêzikan de...}}), ev fonksiyon ji rêzika ku şablon lê dest pê * dike heta rêzika ku qewsên wê "{{"/"}}" li hev tên (ango şablon xelas dibe) * dimeşe, û indeksa wê rêzika dawî vedigerîne. Bi vî awayî şablonên pir-rêzikî * wek yek blok tê hesibandin, ne ku li ser her rêzikekê bêne dabeşkirin. * @param lines {Array<string>} * @param startIndex {number} * @return {number} */ function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune: hesenê şablona kevn a [[Şablon:jêder]] (nîşaneke veşartî ya // bo vê amûrê). .h-usage-example/.h-quotation: konteynerên [[Modul:usex]] û // [[Modul:quote]] (bikaranîna wan a rasterast ji [[Şablon:nimûne]] û şablonên // jêder-* ve, ku êdî nîşaneke veşartî a cuda tune ye — em rasterast klasa wan a // h-* bikar tînin). $("ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation").each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang]: nîşaneke veşartî ya [[Şablon:jêder]]/[[Şablon:bênimûne]] ya kevn. // .e-example[lang]/.e-quotation[lang]: klasên [[Modul:usex]]/[[Modul:quote]] // ku niha "lang" rasterast li ser hêmana xuya datînin (li Şablon:nimûne û // şablonên jêder-* binêre), ji ber vê yekê nîşaneke veşartî a cuda ne hewce ye. var language = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0].lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // $definitionItem.index() dê hemû <li>yên xwişk-birayan bihesibîne, lê // carinan MediaWiki di navbera wan de <li class="mw-empty-elt">yên vala // çêdike (ji rêzikên vala yên di navbera hevokên "#"yê de di wîkîkodê de), // ku bi xwe di wîkîkodê de tune ne (bo nimûne li rûpelên bi "senseid"). // Divê ew ji hesabê bêne derxistin da ku indeks li gorî hejmartina // rêzikên "#" yên rasteqîn di wîkîkodê de bên (li submit() binêre). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // [[ji]] çima vê xeletiyê dide? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); /** * Constructor for the edit form. * @param $lastExample {jQuery} The element corresponding to the example right above the button. * @param $button {jQuery} The button that shows this form. * @param language {string} Language for the example. * @param definitionLevel {Array<string|number>} Indices of the associated definition. * @constructor */ function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); // Cureyê çavkaniyê: nivîsandineke serbest an jî yek ji şablonên jêder-* var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "", label: "Nivîsandina serbest" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Nivîsandina serbest", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); this._sourceURLInput = new OO.ui.TextInputWidget(); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Adresa webê ya nimûneyê An jî DOI/ISBNyeke jêderê binivîse û bişkoka jêrîn bikar bîne da ku agahî ji Citoid werin barkirin", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Ji Citoid tijî bike", title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* xweber tijî dike.", }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); var citoidButtonLayout = new OO.ui.FieldLayout(this._citoidButton, { label: " ", align: "top", }); // Qada ku qonaxên şablona jêder-* a hatiye hilbijartin lê tê danîn this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); this._jederFieldsFieldset.toggle(false); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); this._loadingImage = new OO.ui.LabelWidget({ label: $('<img src="https://upload.wikimedia.org/wikipedia/commons/7/7a/Ajax_loader_metal_512.gif" alt="loading" style="width: 1.5em">'), }); this._loadingImage.toggle(false); var content = [textInputLayout, sourceTypeLayout, this._sourceInputLayout, this._sourceURLInputLayout, citoidButtonLayout, this._jederFieldsFieldset]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } var fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ fieldsLayout, buttonsLayout, ], }); } Form.prototype = { /** * Returns the jQuery object for this form. * @return {jQuery} */ get $element() { return this._frame.$element; }, /** * Switches the çavkanî section between free text and a jêder-* template, * rebuilding the field list to match the chosen template's definition. * @param jederKey {string} Key into jederDefs, or "" for free text. */ _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; if (jederKey && jederDefs[jederKey]) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", })); }); this._jederFieldsFieldset.addItems(items); this._jederFieldsFieldset.toggle(true); this._sourceInputLayout.toggle(false); } else { this._jederFieldsFieldset.toggle(false); this._sourceInputLayout.toggle(true); } }, /** * Ji [[MediaWiki:Gadget-citoid-helper.js]] daneyan tîne, cureyê şablona jêder-* * a guncan hildibijêre, û qadên wê yên vala bi daneyên hatî wergirtin tijî dike. * Hemû mantiqa Citoid bi xwe (URL/DOI/ISBN → qonax) li wê dosyeyê ye; ev fonksiyon * tenê bi UI ya vê formê ve girêdide. */ _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoidHelper.ensure().then(function() { return wikt.citoid.fetchJederFields(query); }).then(function(result) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item && self._currentJederKey !== result.jederKey) { menu.chooseItem(item); // ev ê _setSourceType(jederKey) bixweber gazî bike } Object.keys(result.fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(result.fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, /** * Toggles the visibility of this form. * @param visible {boolean} */ setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, /** * Removes any saved draft of this form's fields (in localStorage/cookie, * via [[MediaWiki:Gadget-StorageUtils.js]]), so a failed or abandoned * submission can no longer resurface on other pages. */ _clearDraft: function() { draftStorage.Set({}); }, /** * Clears all fields contained in this forms. */ clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData(""); this._setSourceType(""); }, /** * Generates and submits the wikicode then inserts the resulting HTML element if no errors occured. */ submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // Ger şablonek jêder-* hatibe hilbijartin, qonaxên wê yên tijîkirî berhev bike var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // Şablona jêder-* bi xwe wek şablon tê bikaranîn, ne wek naveroka "2="ê minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nm"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); //şablona jêder-*, jêder an jî nimûne var code = listMarker + " {{" + sablon; // 1= koda zimanî code += "|" + this._language; if (usingJederTemplate) { // Qonaxên şablona jêder-* a hatiye hilbijartin, rasterast wek parametreyên wê jederParams.forEach(function(param) { code += "|" + param; }); } else { //2= çavkanî (nivîsandina serbest) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } //jêgirtin/nimûne code += "|"; if (sablon !== "nm") { code += "jêgirtin="; } //navê rûpelê bike stûr code += text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''"); if (this._language !== "ku") { var translation = this._translationInput.getValue().trim(); var transcription = this._transcriptionInput.getValue().trim(); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Check if the line includes the section number (if present) if (!matchedSectionNum || line.includes(" " + matchedSectionNum)) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Look for the right place to insert the new example within this // definition's block of "#:"/"#*" lines (real examples and/or // annotation templates like hevmane/dijmane/alt-r/etc.). // // Rêbaz: em ji rêzika piştî definîsyonê dest pê dikin û tenê di rêzikên // "#:"/"#*" de dimeşin (her rêzikek dikare şablonek pir-rêzikî be, ji ber // vê yekê em bi findBlockEnd() qewsên wê dişopînin). Ji bo her şablonekê // em kontrol dikin ka ew di navnîşa exampleTemplateNames de ye an na, da // ku em şîroveyan (hevmane, dijmane, alt-r, hwd.) ji nimûneyên rasteqîn // cuda bikin, li şûna ku em navekê bi taybetî "qedexe" bikin. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Derketin ji bloka "#:"/"#*" ya vê definîsyonê (mînak definîsyoneke // nû an beşeke nû dest pê dike). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // Nimûneyên cureyê jêder tên li dawiya hemû rêzikên "#:"/"#*" yên vê // definîsyonê (nimûneyên rasteqîn û şîroveyan jî tev de). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nm") { // Nimûneyên "nm" divê berî her rêzikeke "#*" bên danîn, lê piştî // rêzikên "#:". if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Here past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert new example (right after the definition itself if it had no // existing "#:"/"#*" lines yet, or after the relevant block otherwise) lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra «\u00a0{0}\u00a0» (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> 325er7ym9iyn28a8rb7l32xsbnwlnyg 6329631 6329628 2026-08-12T14:45:15Z Wikihez 7344 6329631 javascript text/javascript // <nowiki> // implicit dependencies: StorageUtils (ObjectStorage) /** * Formats a string. * @param var_args {...Object} The list of values to insert into the string. * @return {string} The formatted string. */ if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; //di van rûpelan de dê nexebite: if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "1.7"; // Pêşnûyisa (draft) vê formê bi karanîna [[MediaWiki:Gadget-StorageUtils.js]] // tê hilanîn (localStorage, an cookie eger localStorage ne berdest be), da ku // eger weşandin bi ser neketibe, nivîsa bikarhêner winda nebe. var draftStorage = new ObjectStorage("add_examples_draft", 1); // NOTE: Logîka Citoid (standin/veguherandina daneyên çavkaniyê) ji vê dosyeyê // hatiye derxistin bo [[MediaWiki:Gadget-citoid-helper.js]], da ku scriptên din jî // karibin wê bikar bînin. Li jêr, wikt.citoidHelper.ensure() ew rûpel bar dike heke // hewce be, û wikt.citoid.fetchJederFields() encaman dide me. Ji bo zêdetir agahî li // serê wê dosyeyê binêre. var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal" }, { "key": "sala weşandinê", "label": "Sala weşandinê" }, { "key": "çap", "label": "Çap" }, { "key": "rûpel", "label": "Rûpel" }, { "key": "isbn", "label": "ISBN" }, { "key": "url", "label": "URL" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild" }, { "key": "hejmar", "label": "Hejmar" }, { "key": "sal", "label": "Sal" }, { "key": "rûpel", "label": "Rûpel" }, { "key": "url", "label": "URL" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL" }, { "key": "arşîv", "label": "Arşîva URLê" }, { "key": "sal", "label": "Sal" }, { "key": "tarîx", "label": "Tarîx" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Navên şablonên ku wek "nimûneyeke rasteqîn" tên hesibandin (ango ew qonaxên ku // amûr dikare wan biguherîne an li pey wan zêde bike). Ev navnîşa "destûrê" ye, // li şûna navnîşa "qedexeyê" ya kevn — her şablonek din a "#:"/"#*" (hevmane, // dijmane, alt-r, hwd.) wek şîroveyek tê hesibandin, ne wek nimûneyek. var exampleTemplateNames = ["jêder", "nm"].concat(Object.keys(jederDefs)); /** * Navê şablona di rêzikeke "#:" an "#*" de vedigerîne, mînak "jêder" ji * "#* {{jêder|ku|...}}". Vedigere null eger rêzik bi şablonekê dest pê nekiribe. * @param line {string} * @return {string|null} */ function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } /** * Ji ber ku şablonek dikare çend rêzikan bigire (mînak {{jêder|...|jg=gotineke * dirêj\ndi çend rêzikan de...}}), ev fonksiyon ji rêzika ku şablon lê dest pê * dike heta rêzika ku qewsên wê "{{"/"}}" li hev tên (ango şablon xelas dibe) * dimeşe, û indeksa wê rêzika dawî vedigerîne. Bi vî awayî şablonên pir-rêzikî * wek yek blok tê hesibandin, ne ku li ser her rêzikekê bêne dabeşkirin. * @param lines {Array<string>} * @param startIndex {number} * @return {number} */ function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune: hesenê şablona kevn a [[Şablon:jêder]] (nîşaneke veşartî ya // bo vê amûrê). .h-usage-example/.h-quotation: konteynerên [[Modul:usex]] û // [[Modul:quote]] (bikaranîna wan a rasterast ji [[Şablon:nimûne]] û şablonên // jêder-* ve, ku êdî nîşaneke veşartî a cuda tune ye — em rasterast klasa wan a // h-* bikar tînin). $("ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation").each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang]: nîşaneke veşartî ya [[Şablon:jêder]]/[[Şablon:bênimûne]] ya kevn. // .e-example[lang]/.e-quotation[lang]: klasên [[Modul:usex]]/[[Modul:quote]] // ku niha "lang" rasterast li ser hêmana xuya datînin (li Şablon:nimûne û // şablonên jêder-* binêre), ji ber vê yekê nîşaneke veşartî a cuda ne hewce ye. var language = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0].lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // $definitionItem.index() dê hemû <li>yên xwişk-birayan bihesibîne, lê // carinan MediaWiki di navbera wan de <li class="mw-empty-elt">yên vala // çêdike (ji rêzikên vala yên di navbera hevokên "#"yê de di wîkîkodê de), // ku bi xwe di wîkîkodê de tune ne (bo nimûne li rûpelên bi "senseid"). // Divê ew ji hesabê bêne derxistin da ku indeks li gorî hejmartina // rêzikên "#" yên rasteqîn di wîkîkodê de bên (li submit() binêre). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // [[ji]] çima vê xeletiyê dide? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); /** * Constructor for the edit form. * @param $lastExample {jQuery} The element corresponding to the example right above the button. * @param $button {jQuery} The button that shows this form. * @param language {string} Language for the example. * @param definitionLevel {Array<string|number>} Indices of the associated definition. * @constructor */ function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); // Cureyê çavkaniyê: nivîsandineke serbest an jî yek ji şablonên jêder-* var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "", label: "Nivîsandina serbest" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Nivîsandina serbest", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Girêdan, DOI an ISBNya çavkaniyê", align: "top", help: "Vê tijî bike û “Ji Citoid tijî bike”yê bikar bîne da ku qadên jêrîn xweber werin dagirtin — an jî wan bi destan binivîse.", helpInline: true, }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Ji Citoid tijî bike", icon: "download", title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* xweber tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Qada ku qonaxên şablona jêder-* a hatiye hilbijartin lê tê danîn this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid + qadên şablona jêder-*: hemû di yek qutîkeke çarçoveyî // (framed) de, da ku wek gaveke cuda û zelal a "çavkaniyê" xuya bike, // ne tevlihev bi nivîsandina serbest re. Tenê ji bo şablonên jêder-* // tê nîşandan (li _setSourceType binêre); ji bo nivîsandina serbest // ne pêwîst e (tiştek tune ku Citoid xweber tijî bike). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), this._sourceURLInputLayout, this._citoidButton, this._jederFieldsFieldset, ], }); this._citoidBox.toggle(false); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Spînera barkirinê: CSS xwerû (li Gadget-wikt.add-examples.css binêre), // ne wêneyeke ji Commons were anîn — bi vî awayî ne girêdayî // girêdaneke torê ya derveyî ye, û bixweber li gorî moda tarî/ronî tê rengkirin. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); var content = [textInputLayout, sourceTypeLayout, this._sourceInputLayout, this._citoidBox]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } var fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ fieldsLayout, buttonsLayout, ], }); } Form.prototype = { /** * Returns the jQuery object for this form. * @return {jQuery} */ get $element() { return this._frame.$element; }, /** * Switches the çavkanî section between free text and a jêder-* template, * rebuilding the field list to match the chosen template's definition. * @param jederKey {string} Key into jederDefs, or "" for free text. */ _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; if (jederKey && jederDefs[jederKey]) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", })); }); this._jederFieldsFieldset.addItems(items); this._citoidBox.toggle(true); this._sourceInputLayout.toggle(false); } else { this._citoidBox.toggle(false); this._sourceInputLayout.toggle(true); } }, /** * Ji [[MediaWiki:Gadget-citoid-helper.js]] daneyan tîne, cureyê şablona jêder-* * a guncan hildibijêre, û qadên wê yên vala bi daneyên hatî wergirtin tijî dike. * Hemû mantiqa Citoid bi xwe (URL/DOI/ISBN → qonax) li wê dosyeyê ye; ev fonksiyon * tenê bi UI ya vê formê ve girêdide. */ _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoidHelper.ensure().then(function() { return wikt.citoid.fetchJederFields(query); }).then(function(result) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item && self._currentJederKey !== result.jederKey) { menu.chooseItem(item); // ev ê _setSourceType(jederKey) bixweber gazî bike } Object.keys(result.fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(result.fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, /** * Toggles the visibility of this form. * @param visible {boolean} */ setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, /** * Removes any saved draft of this form's fields (in localStorage/cookie, * via [[MediaWiki:Gadget-StorageUtils.js]]), so a failed or abandoned * submission can no longer resurface on other pages. */ _clearDraft: function() { draftStorage.Set({}); }, /** * Clears all fields contained in this forms. */ clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData(""); this._setSourceType(""); }, /** * Generates and submits the wikicode then inserts the resulting HTML element if no errors occured. */ submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // Ger şablonek jêder-* hatibe hilbijartin, qonaxên wê yên tijîkirî berhev bike var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // Şablona jêder-* bi xwe wek şablon tê bikaranîn, ne wek naveroka "2="ê minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nm"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); //şablona jêder-*, jêder an jî nimûne var code = listMarker + " {{" + sablon; // 1= koda zimanî code += "|" + this._language; if (usingJederTemplate) { // Qonaxên şablona jêder-* a hatiye hilbijartin, rasterast wek parametreyên wê jederParams.forEach(function(param) { code += "|" + param; }); } else { //2= çavkanî (nivîsandina serbest) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } //jêgirtin/nimûne code += "|"; if (sablon !== "nm") { code += "jêgirtin="; } //navê rûpelê bike stûr code += text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''"); if (this._language !== "ku") { var translation = this._translationInput.getValue().trim(); var transcription = this._transcriptionInput.getValue().trim(); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Check if the line includes the section number (if present) if (!matchedSectionNum || line.includes(" " + matchedSectionNum)) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Look for the right place to insert the new example within this // definition's block of "#:"/"#*" lines (real examples and/or // annotation templates like hevmane/dijmane/alt-r/etc.). // // Rêbaz: em ji rêzika piştî definîsyonê dest pê dikin û tenê di rêzikên // "#:"/"#*" de dimeşin (her rêzikek dikare şablonek pir-rêzikî be, ji ber // vê yekê em bi findBlockEnd() qewsên wê dişopînin). Ji bo her şablonekê // em kontrol dikin ka ew di navnîşa exampleTemplateNames de ye an na, da // ku em şîroveyan (hevmane, dijmane, alt-r, hwd.) ji nimûneyên rasteqîn // cuda bikin, li şûna ku em navekê bi taybetî "qedexe" bikin. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Derketin ji bloka "#:"/"#*" ya vê definîsyonê (mînak definîsyoneke // nû an beşeke nû dest pê dike). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // Nimûneyên cureyê jêder tên li dawiya hemû rêzikên "#:"/"#*" yên vê // definîsyonê (nimûneyên rasteqîn û şîroveyan jî tev de). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nm") { // Nimûneyên "nm" divê berî her rêzikeke "#*" bên danîn, lê piştî // rêzikên "#:". if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Here past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert new example (right after the definition itself if it had no // existing "#:"/"#*" lines yet, or after the relevant block otherwise) lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra «\u00a0{0}\u00a0» (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> lo2ydaohg33z5u1ytrdn10zk057vq17 6329634 6329631 2026-08-12T14:57:08Z Wikihez 7344 6329634 javascript text/javascript // <nowiki> // implicit dependencies: StorageUtils (ObjectStorage) /** * Formats a string. * @param var_args {...Object} The list of values to insert into the string. * @return {string} The formatted string. */ if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; //di van rûpelan de dê nexebite: if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "1.7"; // Pêşnûyisa (draft) vê formê bi karanîna [[MediaWiki:Gadget-StorageUtils.js]] // tê hilanîn (localStorage, an cookie eger localStorage ne berdest be), da ku // eger weşandin bi ser neketibe, nivîsa bikarhêner winda nebe. var draftStorage = new ObjectStorage("add_examples_draft", 1); // NOTE: Logîka Citoid (standin/veguherandina daneyên çavkaniyê) ji vê dosyeyê // hatiye derxistin bo [[MediaWiki:Gadget-citoid-helper.js]], da ku scriptên din jî // karibin wê bikar bînin. citoid-helper wek dependency ya vê gadgetê hatiye // qeydkirin (li Special:Gadgets binêre), loma her tim jixwe hatiye barkirin berî vê // skrîptê bixebite; li jêr rasterast wikt.citoid.fetchJederFields() tê gazîkirin. // Ji bo zêdetir agahî li serê wê dosyeyê binêre. // "width" ji bo layouta qadan tê bikaranîn (li _setSourceType binêre): // "narrow" = qadên kurt (sal, rûpel, hejmar, hwd.), çend heb li ser heman rêzê; // "wide" = qad her tim rêza xwe ya taybet digire (sernav, url, hwd.); // tinebe = firehiyeke navîn, du/sê heb li ser heman rêzê. var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "sala weşandinê", "label": "Sala weşandinê", "width": "narrow" }, { "key": "çap", "label": "Çap", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "isbn", "label": "ISBN", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild", "width": "narrow" }, { "key": "hejmar", "label": "Hejmar", "width": "narrow" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL", "width": "wide" }, { "key": "arşîv", "label": "Arşîva URLê", "width": "wide" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "tarîx", "label": "Tarîx", "width": "narrow" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Navên şablonên ku wek "nimûneyeke rasteqîn" tên hesibandin (ango ew qonaxên ku // amûr dikare wan biguherîne an li pey wan zêde bike). Ev navnîşa "destûrê" ye, // li şûna navnîşa "qedexeyê" ya kevn — her şablonek din a "#:"/"#*" (hevmane, // dijmane, alt-r, hwd.) wek şîroveyek tê hesibandin, ne wek nimûneyek. var exampleTemplateNames = ["jêder", "nm"].concat(Object.keys(jederDefs)); /** * Navê şablona di rêzikeke "#:" an "#*" de vedigerîne, mînak "jêder" ji * "#* {{jêder|ku|...}}". Vedigere null eger rêzik bi şablonekê dest pê nekiribe. * @param line {string} * @return {string|null} */ function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } /** * Ji ber ku şablonek dikare çend rêzikan bigire (mînak {{jêder|...|jg=gotineke * dirêj\ndi çend rêzikan de...}}), ev fonksiyon ji rêzika ku şablon lê dest pê * dike heta rêzika ku qewsên wê "{{"/"}}" li hev tên (ango şablon xelas dibe) * dimeşe, û indeksa wê rêzika dawî vedigerîne. Bi vî awayî şablonên pir-rêzikî * wek yek blok tê hesibandin, ne ku li ser her rêzikekê bêne dabeşkirin. * @param lines {Array<string>} * @param startIndex {number} * @return {number} */ function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune: hesenê şablona kevn a [[Şablon:jêder]] (nîşaneke veşartî ya // bo vê amûrê). .h-usage-example/.h-quotation: konteynerên [[Modul:usex]] û // [[Modul:quote]] (bikaranîna wan a rasterast ji [[Şablon:nimûne]] û şablonên // jêder-* ve, ku êdî nîşaneke veşartî a cuda tune ye — em rasterast klasa wan a // h-* bikar tînin). $("ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation").each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang]: nîşaneke veşartî ya [[Şablon:jêder]]/[[Şablon:bênimûne]] ya kevn. // .e-example[lang]/.e-quotation[lang]: klasên [[Modul:usex]]/[[Modul:quote]] // ku niha "lang" rasterast li ser hêmana xuya datînin (li Şablon:nimûne û // şablonên jêder-* binêre), ji ber vê yekê nîşaneke veşartî a cuda ne hewce ye. var language = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0].lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // $definitionItem.index() dê hemû <li>yên xwişk-birayan bihesibîne, lê // carinan MediaWiki di navbera wan de <li class="mw-empty-elt">yên vala // çêdike (ji rêzikên vala yên di navbera hevokên "#"yê de di wîkîkodê de), // ku bi xwe di wîkîkodê de tune ne (bo nimûne li rûpelên bi "senseid"). // Divê ew ji hesabê bêne derxistin da ku indeks li gorî hejmartina // rêzikên "#" yên rasteqîn di wîkîkodê de bên (li submit() binêre). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // [[ji]] çima vê xeletiyê dide? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); /** * Constructor for the edit form. * @param $lastExample {jQuery} The element corresponding to the example right above the button. * @param $button {jQuery} The button that shows this form. * @param language {string} Language for the example. * @param definitionLevel {Array<string|number>} Indices of the associated definition. * @constructor */ function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); // Cureyê çavkaniyê: nivîsandineke serbest an jî yek ji şablonên jêder-* // "citoid" ne mifteyeke jederDefs e; ew rewşeke pêş-tespîtkirinê ye — hîn // tu şablon nehatiye hilbijartin, bişkoka Citoid tê nîşandan bi tenê, û // gava daneyek were standin şablon xweber tê guhertin (li _fillFromCitoid // binêre). Ev jî mifteya pêşdanasîn (default) ya vê menuyê ye. var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Nivîsandina serbest" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Girêdan, DOI an ISBNya çavkaniyê", align: "top", help: "Vê tijî bike û “Ji Citoid tijî bike”yê bikar bîne da ku qadên jêrîn xweber werin dagirtin — an jî wan bi destan binivîse.", helpInline: true, }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Ji Citoid tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* xweber tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Qada girêdanê û qadên jêder-* yên hatine dagirtin (bi Citoid an bi // destan) vala dike, bêyî ku bandorê li metna nimûneyê/tercimeyê bike. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Girêdanê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); var citoidButtonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-citoid-buttons"], items: [this._citoidButton, this._citoidClearButton], }); // Qada ku qonaxên şablona jêder-* a hatiye hilbijartin lê tê danîn this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid + qadên şablona jêder-*: hemû di yek qutîkeke çarçoveyî // (framed) de, da ku wek gaveke cuda û zelal a "çavkaniyê" xuya bike, // ne tevlihev bi nivîsandina serbest re. Tenê ji bo şablonên jêder-* // tê nîşandan (li _setSourceType binêre); ji bo nivîsandina serbest // ne pêwîst e (tiştek tune ku Citoid xweber tijî bike). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), this._sourceURLInputLayout, citoidButtonsLayout, this._jederFieldsFieldset, ], }); this._citoidBox.toggle(false); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Spînera barkirinê: CSS xwerû (li Gadget-wikt.add-examples.css binêre), // ne wêneyeke ji Commons were anîn — bi vî awayî ne girêdayî // girêdaneke torê ya derveyî ye, û bixweber li gorî moda tarî/ronî tê rengkirin. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); var content = [textInputLayout, sourceTypeLayout, this._sourceInputLayout, this._citoidBox]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } var fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ fieldsLayout, buttonsLayout, ], }); // Pêşdanasîna (default) formê: rewşa "Bi Citoidê otomatîk zêde bike". // selectItemByData() bi xwe bûyera "choose"yê venagire (ew tenê ji bo // hilbijartina çalak/bikarhêner e), loma _setSourceType() jî divê // rasterast were gazîkirin da ku UI ya destpêkê rast were sazkirin. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { /** * Returns the jQuery object for this form. * @return {jQuery} */ get $element() { return this._frame.$element; }, /** * Switches the çavkanî section between free text, Citoid auto-detection * (no template chosen yet), and a specific jêder-* template — rebuilding * the field list to match the chosen template's definition. * @param jederKey {string} Key into jederDefs, "citoid" for not-yet-detected, or "" for free text. */ _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; if (jederKey && jederDefs[jederKey]) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var widthClass = field.width === "narrow" ? "add-example-field-narrow" : field.width === "wide" ? "add-example-field-wide" : "add-example-field-medium"; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: [widthClass], })); }); this._jederFieldsFieldset.addItems(items); this._jederFieldsFieldset.toggle(true); this._citoidBox.toggle(true); this._sourceInputLayout.toggle(false); } else if (jederKey === "citoid") { // Hîn tu şablon nehatiye tespîtkirin; tenê qada girêdanê + // bişkoka Citoid nîşan bide, ne qadên jêder-* yên vala. this._jederFieldsFieldset.toggle(false); this._citoidBox.toggle(true); this._sourceInputLayout.toggle(false); } else { this._citoidBox.toggle(false); this._sourceInputLayout.toggle(true); } }, /** * Ji [[MediaWiki:Gadget-citoid-helper.js]] daneyan tîne, cureyê şablona jêder-* * a guncan hildibijêre, û qadên wê yên vala bi daneyên hatî wergirtin tijî dike. * Hemû mantiqa Citoid bi xwe (URL/DOI/ISBN → qonax) li wê dosyeyê ye; ev fonksiyon * tenê bi UI ya vê formê ve girêdide. citoid-helper niha wek dependency ya vê * gadgetê hatiye qeydkirin (li Special:Gadgets binêre), loma her tim jixwe hatiye * barkirin berî vê skrîptê bixebite — wikt.citoidHelper.ensure() ne hewce ye. */ _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item && self._currentJederKey !== result.jederKey) { menu.chooseItem(item); // ev ê _setSourceType(jederKey) bixweber gazî bike } Object.keys(result.fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(result.fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, /** * Toggles the visibility of this form. * @param visible {boolean} */ setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, /** * Removes any saved draft of this form's fields (in localStorage/cookie, * via [[MediaWiki:Gadget-StorageUtils.js]]), so a failed or abandoned * submission can no longer resurface on other pages. */ _clearDraft: function() { draftStorage.Set({}); }, /** * Clears all fields contained in this forms. */ clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, /** * Generates and submits the wikicode then inserts the resulting HTML element if no errors occured. */ submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // Ger şablonek jêder-* hatibe hilbijartin, qonaxên wê yên tijîkirî berhev bike var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // Şablona jêder-* bi xwe wek şablon tê bikaranîn, ne wek naveroka "2="ê minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nm"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); //şablona jêder-*, jêder an jî nimûne var code = listMarker + " {{" + sablon; // 1= koda zimanî code += "|" + this._language; if (usingJederTemplate) { // Qonaxên şablona jêder-* a hatiye hilbijartin, rasterast wek parametreyên wê jederParams.forEach(function(param) { code += "|" + param; }); } else { //2= çavkanî (nivîsandina serbest) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } //jêgirtin/nimûne code += "|"; if (sablon !== "nm") { code += "jêgirtin="; } //navê rûpelê bike stûr code += text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''"); if (this._language !== "ku") { var translation = this._translationInput.getValue().trim(); var transcription = this._transcriptionInput.getValue().trim(); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Check if the line includes the section number (if present) if (!matchedSectionNum || line.includes(" " + matchedSectionNum)) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Look for the right place to insert the new example within this // definition's block of "#:"/"#*" lines (real examples and/or // annotation templates like hevmane/dijmane/alt-r/etc.). // // Rêbaz: em ji rêzika piştî definîsyonê dest pê dikin û tenê di rêzikên // "#:"/"#*" de dimeşin (her rêzikek dikare şablonek pir-rêzikî be, ji ber // vê yekê em bi findBlockEnd() qewsên wê dişopînin). Ji bo her şablonekê // em kontrol dikin ka ew di navnîşa exampleTemplateNames de ye an na, da // ku em şîroveyan (hevmane, dijmane, alt-r, hwd.) ji nimûneyên rasteqîn // cuda bikin, li şûna ku em navekê bi taybetî "qedexe" bikin. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Derketin ji bloka "#:"/"#*" ya vê definîsyonê (mînak definîsyoneke // nû an beşeke nû dest pê dike). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // Nimûneyên cureyê jêder tên li dawiya hemû rêzikên "#:"/"#*" yên vê // definîsyonê (nimûneyên rasteqîn û şîroveyan jî tev de). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nm") { // Nimûneyên "nm" divê berî her rêzikeke "#*" bên danîn, lê piştî // rêzikên "#:". if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Here past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert new example (right after the definition itself if it had no // existing "#:"/"#*" lines yet, or after the relevant block otherwise) lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra «\u00a0{0}\u00a0» (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> pzpac3acqlzrtmis3v3jms4vdkdctms 6329641 6329634 2026-08-12T15:14:47Z Wikihez 7344 6329641 javascript text/javascript // <nowiki> // implicit dependencies: StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "1.7"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "width" controls field layout below (see _setSourceType): "narrow" for short fields (year, pages, ...), "wide" for fields that always take their own row, unset for medium fields (two-ish per row). var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "sala weşandinê", "label": "Sala weşandinê", "width": "narrow" }, { "key": "çap", "label": "Çap", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "isbn", "label": "ISBN", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild", "width": "narrow" }, { "key": "hejmar", "label": "Hejmar", "width": "narrow" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL", "width": "wide" }, { "key": "arşîv", "label": "Arşîva URLê", "width": "wide" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "tarîx", "label": "Tarîx", "width": "narrow" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nm"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex/Modul:quote containers used directly by Şablon:nimûne and jêder-* templates now that the old marker is gone. $("ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation").each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. var language = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0].lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); // Constructor for the edit form; lastExample/button/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Nivîsandina serbest" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Girêdan, DOI an ISBNya çavkaniyê", align: "top", help: "Vê tijî bike û “Ji Citoid tijî bike”yê bikar bîne da ku qadên jêrîn xweber werin dagirtin — an jî wan bi destan binivîse.", helpInline: true, }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Ji Citoid tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* xweber tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Girêdanê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); var citoidButtonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-citoid-buttons"], items: [this._citoidButton, this._citoidClearButton], }); // Fieldset that holds the fields for whichever jêder-* template is selected. this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid + jêder-* fields live in one framed box, read as a distinct "source" step separate from free text; only shown for jêder-* templates (see _setSourceType). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), this._sourceURLInputLayout, citoidButtonsLayout, this._jederFieldsFieldset, ], }); this._citoidBox.toggle(false); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); var content = [textInputLayout, sourceTypeLayout, this._sourceInputLayout, this._citoidBox]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } var fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ fieldsLayout, buttonsLayout, ], }); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; if (jederKey && jederDefs[jederKey]) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var widthClass = field.width === "narrow" ? "add-example-field-narrow" : field.width === "wide" ? "add-example-field-wide" : "add-example-field-medium"; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: [widthClass], })); }); this._jederFieldsFieldset.addItems(items); this._jederFieldsFieldset.toggle(true); this._citoidBox.toggle(true); this._sourceInputLayout.toggle(false); } else if (jederKey === "citoid") { // No template detected yet; show only the URL field + Citoid button, not empty jêder-* fields. this._jederFieldsFieldset.toggle(false); this._citoidBox.toggle(true); this._sourceInputLayout.toggle(false); } else { this._citoidBox.toggle(false); this._sourceInputLayout.toggle(true); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item && self._currentJederKey !== result.jederKey) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } Object.keys(result.fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(result.fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nm"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nm") { code += "jêgirtin="; } // bold the page title code += text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''"); if (this._language !== "ku") { var translation = this._translationInput.getValue().trim(); var transcription = this._transcriptionInput.getValue().trim(); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Check if the line includes the section number (if present) if (!matchedSectionNum || line.includes(" " + matchedSectionNum)) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nm") { // "nm" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> 2rlkw47mse9h10oezalqu80rpfc8i0k 6329647 6329641 2026-08-12T15:32:00Z Wikihez 7344 6329647 javascript text/javascript // <nowiki> // implicit dependencies: StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "1.7"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "width" controls field layout below (see _setSourceType): "narrow" for short fields (year, pages, ...), "wide" for fields that always take their own row, unset for medium fields (two-ish per row). var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "sala weşandinê", "label": "Sala weşandinê", "width": "narrow" }, { "key": "çap", "label": "Çap", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "isbn", "label": "ISBN", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild", "width": "narrow" }, { "key": "hejmar", "label": "Hejmar", "width": "narrow" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL", "width": "wide" }, { "key": "arşîv", "label": "Arşîva URLê", "width": "wide" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "tarîx", "label": "Tarîx", "width": "narrow" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nm"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex/Modul:quote containers used directly by Şablon:nimûne and jêder-* templates now that the old marker is gone. $("ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation").each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. var language = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0].lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); // Constructor for the edit form; lastExample/button/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Nivîsandina serbest" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Girêdan, DOI an ISBNya çavkaniyê", align: "top", help: "Vê tijî bike û “Ji Citoid tijî bike”yê bikar bîne da ku qadên jêrîn xweber werin dagirtin — an jî wan bi destan binivîse.", helpInline: true, }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Ji Citoid tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* xweber tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Girêdanê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); var citoidButtonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-citoid-buttons"], items: [this._citoidButton, this._citoidClearButton], }); // Fieldset that holds the fields for whichever jêder-* template is selected. this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid + jêder-* fields live in one framed box, read as a distinct "source" step separate from free text; only shown for jêder-* templates (see _setSourceType). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), this._sourceURLInputLayout, citoidButtonsLayout, this._jederFieldsFieldset, ], }); this._citoidBox.toggle(false); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); var content = [textInputLayout, sourceTypeLayout, this._sourceInputLayout, this._citoidBox]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } var fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ fieldsLayout, buttonsLayout, ], }); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; if (jederKey && jederDefs[jederKey]) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var widthClass = field.width === "narrow" ? "add-example-field-narrow" : field.width === "wide" ? "add-example-field-wide" : "add-example-field-medium"; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: [widthClass], })); }); this._jederFieldsFieldset.addItems(items); this._jederFieldsFieldset.toggle(true); this._citoidBox.toggle(true); this._sourceInputLayout.toggle(false); } else if (jederKey === "citoid") { // No template detected yet; show only the URL field + Citoid button, not empty jêder-* fields. this._jederFieldsFieldset.toggle(false); this._citoidBox.toggle(true); this._sourceInputLayout.toggle(false); } else { this._citoidBox.toggle(false); this._sourceInputLayout.toggle(true); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item && self._currentJederKey !== result.jederKey) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } Object.keys(result.fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(result.fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nm"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nm") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Check if the line includes the section number (if present) if (!matchedSectionNum || line.includes(" " + matchedSectionNum)) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nm") { // "nm" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> fw9kmyfk0k0swsbpaf6tunmw2dasmwi 6329652 6329647 2026-08-12T15:41:24Z Wikihez 7344 6329652 javascript text/javascript // <nowiki> // implicit dependencies: StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "1.7"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "width" controls field layout below (see _setSourceType): "narrow" for short fields (year, pages, ...), "wide" for fields that always take their own row, unset for medium fields (two-ish per row). var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "sala weşandinê", "label": "Sala weşandinê", "width": "narrow" }, { "key": "çap", "label": "Çap", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "isbn", "label": "ISBN", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild", "width": "narrow" }, { "key": "hejmar", "label": "Hejmar", "width": "narrow" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL", "width": "wide" }, { "key": "arşîv", "label": "Arşîva URLê", "width": "wide" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "tarîx", "label": "Tarîx", "width": "narrow" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nm"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex/Modul:quote containers used directly by Şablon:nimûne and jêder-* templates now that the old marker is gone. $("ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation").each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. var language = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0].lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); // Constructor for the edit form; lastExample/button/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Nivîsandina serbest" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Girêdan, DOI an ISBNya çavkaniyê", align: "top", help: "Vê tijî bike û “Ji Citoid tijî bike”yê bikar bîne da ku qadên jêrîn xweber werin dagirtin — an jî wan bi destan binivîse.", helpInline: true, }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Ji Citoid tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* xweber tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Girêdanê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); var citoidButtonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-citoid-buttons"], items: [this._citoidButton, this._citoidClearButton], }); // Fieldset that holds the fields for whichever jêder-* template is selected. this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid + jêder-* fields live in one framed box, read as a distinct "source" step. Always visible regardless of mode — a URL can be attached to a free-text citation too (submit() reads sourceURLInput unconditionally) — only the manual jêder-* bibliographic fields inside it toggle with the selected template (see _setSourceType). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), this._sourceURLInputLayout, citoidButtonsLayout, this._jederFieldsFieldset, ], }); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); var content = [textInputLayout, sourceTypeLayout, this._sourceInputLayout, this._citoidBox]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } var fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ fieldsLayout, buttonsLayout, ], }); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The citoid box (URL field + Citoid button) itself is always visible in every mode — only the manual jêder-* fields and the free-text textarea toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var widthClass = field.width === "narrow" ? "add-example-field-narrow" : field.width === "wide" ? "add-example-field-wide" : "add-example-field-medium"; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: [widthClass], })); }); this._jederFieldsFieldset.addItems(items); } this._jederFieldsFieldset.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item && self._currentJederKey !== result.jederKey) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } Object.keys(result.fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(result.fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nm"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nm") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Check if the line includes the section number (if present) if (!matchedSectionNum || line.includes(" " + matchedSectionNum)) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nm") { // "nm" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> 6enegfy26hs1bkgie3w30iy0zi9cyoh 6329655 6329652 2026-08-12T15:52:38Z Wikihez 7344 6329655 javascript text/javascript // <nowiki> // implicit dependencies: StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "1.7"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "width" controls field layout below (see _setSourceType): "narrow" for short fields (year, pages, ...), "wide" for fields that always take their own row, unset for medium fields (two-ish per row). var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "sala weşandinê", "label": "Sala weşandinê", "width": "narrow" }, { "key": "çap", "label": "Çap", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "isbn", "label": "ISBN", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild", "width": "narrow" }, { "key": "hejmar", "label": "Hejmar", "width": "narrow" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL", "width": "wide" }, { "key": "arşîv", "label": "Arşîva URLê", "width": "wide" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "tarîx", "label": "Tarîx", "width": "narrow" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nm"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex/Modul:quote containers used directly by Şablon:nimûne and jêder-* templates now that the old marker is gone. $("ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation").each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. var language = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0].lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); // Constructor for the edit form; lastExample/button/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Nivîsandina serbest" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Girêdan, DOI an ISBNya çavkaniyê", align: "top", help: "Vê tijî bike û “Ji Citoid tijî bike”yê bikar bîne da ku qadên jêrîn xweber werin dagirtin — an jî wan bi destan binivîse.", helpInline: true, }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Ji Citoid tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* xweber tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Girêdanê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); var citoidButtonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-citoid-buttons"], items: [this._citoidButton, this._citoidClearButton], }); // Fieldset that holds the fields for whichever jêder-* template is selected. this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid + jêder-* fields live in one framed box, read as a distinct "source" step. Always visible regardless of mode — a URL can be attached to a free-text citation too (submit() reads sourceURLInput unconditionally) — only the manual jêder-* bibliographic fields inside it toggle with the selected template (see _setSourceType). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), this._sourceURLInputLayout, citoidButtonsLayout, this._jederFieldsFieldset, ], }); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); var content = [textInputLayout, sourceTypeLayout, this._sourceInputLayout, this._citoidBox]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } var fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ fieldsLayout, buttonsLayout, ], }); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The citoid box (URL field + Citoid button) itself is always visible in every mode — only the manual jêder-* fields and the free-text textarea toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var widthClass = field.width === "narrow" ? "add-example-field-narrow" : field.width === "wide" ? "add-example-field-wide" : "add-example-field-medium"; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: [widthClass], })); }); this._jederFieldsFieldset.addItems(items); } this._jederFieldsFieldset.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nm"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nm") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Check if the line includes the section number (if present) if (!matchedSectionNum || line.includes(" " + matchedSectionNum)) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nm") { // "nm" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> ogt2b79zm6kfh9r8k3zlel393d7cayd 6329659 6329655 2026-08-12T16:12:21Z Wikihez 7344 6329659 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "1.7"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "width" controls field layout below (see _setSourceType): "narrow" for short fields (year, pages, ...), "wide" for fields that always take their own row, unset for medium fields (two-ish per row). var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "sala weşandinê", "label": "Sala weşandinê", "width": "narrow" }, { "key": "çap", "label": "Çap", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "isbn", "label": "ISBN", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild", "width": "narrow" }, { "key": "hejmar", "label": "Hejmar", "width": "narrow" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL", "width": "wide" }, { "key": "arşîv", "label": "Arşîva URLê", "width": "wide" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "tarîx", "label": "Tarîx", "width": "narrow" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nm"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex/Modul:quote containers used directly by Şablon:nimûne and jêder-* templates now that the old marker is gone. $("ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation").each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. var language = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0].lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); // Constructor for the edit form; lastExample/button/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Nivîsandina serbest" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Girêdan, DOI an ISBNya çavkaniyê", align: "top", help: "Vê tijî bike û “Ji Citoid tijî bike”yê bikar bîne da ku qadên jêrîn xweber werin dagirtin — an jî wan bi destan binivîse.", helpInline: true, }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Ji Citoid tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* xweber tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Girêdanê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); var citoidButtonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-citoid-buttons"], items: [this._citoidButton, this._citoidClearButton], }); // Fieldset that holds the fields for whichever jêder-* template is selected. this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid + jêder-* fields live in one framed box, read as a distinct "source" step. Always visible regardless of mode — a URL can be attached to a free-text citation too (submit() reads sourceURLInput unconditionally) — only the manual jêder-* bibliographic fields inside it toggle with the selected template (see _setSourceType). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), this._sourceURLInputLayout, citoidButtonsLayout, this._jederFieldsFieldset, ], }); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); var content = [textInputLayout, sourceTypeLayout, this._sourceInputLayout, this._citoidBox]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } var fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ fieldsLayout, buttonsLayout, ], }); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The citoid box (URL field + Citoid button) itself is always visible in every mode — only the manual jêder-* fields and the free-text textarea toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var widthClass = field.width === "narrow" ? "add-example-field-narrow" : field.width === "wide" ? "add-example-field-wide" : "add-example-field-medium"; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: [widthClass], })); }); this._jederFieldsFieldset.addItems(items); } this._jederFieldsFieldset.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nm"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nm") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Check if the line includes the section number (if present) if (!matchedSectionNum || line.includes(" " + matchedSectionNum)) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nm") { // "nm" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> 86tejcj0519fswae2p2nazu3s26vygq 6329664 6329659 2026-08-12T16:33:44Z Wikihez 7344 6329664 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "1.7"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "width" controls field layout below (see _setSourceType): "narrow" for short fields (year, pages, ...), "wide" for fields that always take their own row, unset for medium fields (two-ish per row). var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "sala weşandinê", "label": "Sala weşandinê", "width": "narrow" }, { "key": "çap", "label": "Çap", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "isbn", "label": "ISBN", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild", "width": "narrow" }, { "key": "hejmar", "label": "Hejmar", "width": "narrow" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL", "width": "wide" }, { "key": "arşîv", "label": "Arşîva URLê", "width": "wide" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "tarîx", "label": "Tarîx", "width": "narrow" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nm"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex/Modul:quote containers used directly by Şablon:nimûne and jêder-* templates now that the old marker is gone. $("ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation").each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. var language = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0].lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); // Constructor for the edit form; lastExample/button/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Nivîsandina serbest" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter, and it's also the query field the Citoid button below fetches from. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Ji Citoid tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); var citoidButtonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-citoid-buttons"], items: [this._citoidButton, this._citoidClearButton], }); // Fieldset that holds the fields for whichever jêder-* template is selected. this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid button + jêder-* fields, framed as one "template" step — unlike the URL field above, this box only makes sense once a jêder-* template is active (there's nothing here for Citoid to fill in free-text mode, since it has no bibliographic fields to populate), so it's hidden for free text (see _setSourceType). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), citoidButtonsLayout, this._jederFieldsFieldset, ], }); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); var content = [textInputLayout, sourceTypeLayout, this._sourceInputLayout, this._sourceURLInputLayout, this._citoidBox]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } var fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ fieldsLayout, buttonsLayout, ], }); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid button box, and the manual jêder-* fields toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var widthClass = field.width === "narrow" ? "add-example-field-narrow" : field.width === "wide" ? "add-example-field-wide" : "add-example-field-medium"; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: [widthClass], })); }); this._jederFieldsFieldset.addItems(items); } this._jederFieldsFieldset.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid button box: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. this._citoidBox.toggle(jederKey !== ""); }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nm"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nm") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Check if the line includes the section number (if present) if (!matchedSectionNum || line.includes(" " + matchedSectionNum)) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nm") { // "nm" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> 0baa4jd8tecxbhn7xcn48s00xryqwhg 6329668 6329664 2026-08-12T16:45:41Z Wikihez 7344 6329668 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "1.7"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "width" controls field layout below (see _setSourceType): "narrow" for short fields (year, pages, ...), "wide" for fields that always take their own row, unset for medium fields (two-ish per row). var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "sala weşandinê", "label": "Sala weşandinê", "width": "narrow" }, { "key": "çap", "label": "Çap", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "isbn", "label": "ISBN", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild", "width": "narrow" }, { "key": "hejmar", "label": "Hejmar", "width": "narrow" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "sernavê orjînal", "label": "Sernavê orjînal", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL", "width": "wide" }, { "key": "arşîv", "label": "Arşîva URLê", "width": "wide" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "tarîx", "label": "Tarîx", "width": "narrow" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nm"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex/Modul:quote containers used directly by Şablon:nimûne and jêder-* templates now that the old marker is gone. $("ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation").each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. var language = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0].lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); // Constructor for the edit form; lastExample/button/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter, and it's also the query field the Citoid button below fetches from. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; this._citoidButton = new OO.ui.ButtonWidget({ label: "Ji Citoid tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); var citoidButtonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-citoid-buttons"], items: [this._citoidButton, this._citoidClearButton], }); // Fieldset that holds the fields for whichever jêder-* template is selected. this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid button + jêder-* fields, framed as one "template" step — unlike the URL field above, this box only makes sense once a jêder-* template is active (there's nothing here for Citoid to fill in free-text mode, since it has no bibliographic fields to populate), so it's hidden for free text (see _setSourceType). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), citoidButtonsLayout, this._jederFieldsFieldset, ], }); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); var content = [textInputLayout, sourceTypeLayout, this._sourceInputLayout, this._sourceURLInputLayout, this._citoidBox]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help wording in and out of it when switching to/from free text. this._fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ this._fieldsLayout, buttonsLayout, ], }); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid button box, and the manual jêder-* fields toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var widthClass = field.width === "narrow" ? "add-example-field-narrow" : field.width === "wide" ? "add-example-field-wide" : "add-example-field-medium"; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: [widthClass], })); }); this._jederFieldsFieldset.addItems(items); } this._jederFieldsFieldset.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid button box: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. this._citoidBox.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text (no Citoid box visible there to explain), Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; var index = this._fieldsLayout.items.indexOf(this._sourceURLInputLayout); this._fieldsLayout.removeItems([this._sourceURLInputLayout]); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); this._fieldsLayout.addItems([this._sourceURLInputLayout], index); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nm"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nm") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Check if the line includes the section number (if present) if (!matchedSectionNum || line.includes(" " + matchedSectionNum)) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nm") { // "nm" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> ts289rhrti7tv8u8yy5cco9wbm8jg13 Bikarhêner:Wikihez/Gadget-wikt.add-examples.css 2 1357894 6329632 6265482 2026-08-12T14:45:32Z Wikihez 7344 6329632 css text/css /* [[Şablon:bênimûne]]: nivîsa "Nimûneyekê bide" tê jê birin, ne hewce ye */ .mw-parser-output li:has(> .benimune) { display: none; } /* [[fr:MediaWiki:Gadget-wikt.add-examples.css ]] */ .add-example-form .oo-ui-inputWidget-input { font-family: monospace !important; font-size: 1.2em; } .add-example-form .add-example-fieldset { margin-bottom: 1em; } /* Panela gerşî ya formê: cîhek zelal a wê ji binyata rûpelê cuda bike. */ .add-example-form { max-width: 640px; margin-top: 0.5em; padding: 1em; border: 1px solid var(--border-color-base, #a2a9b1); border-radius: 4px; background-color: var(--background-color-neutral, #f8f9fa); } html.skin-theme-clientpref-night .add-example-form { background-color: var(--background-color-neutral, #27292d); } /* Qutîka Citoid + qadên şablona jêder-*: qutîkeke cuda ya "çavkaniyê", da ku ji qadên din bên cudakirin bi zelalî (li şûna ku hemû qad tev li hev bin). */ .add-example-citoid-box-title { font-weight: bold; margin-bottom: 0.5em; } .add-example-citoid-fetch { margin: 0.25em 0 0.75em; } /* Qadên şablonên jêder-* (Kitêb/Kovar/Malper) di forma "Nimûne zêde bike" de piçûktir bike. */ .add-example-jeder-fields .oo-ui-fieldLayout { margin: 2px 0; } .add-example-jeder-fields .oo-ui-fieldLayout-header, .add-example-jeder-fields .oo-ui-fieldLayout-header label { font-size: 0.85em; } .add-example-jeder-fields .oo-ui-textInputWidget { max-width: 260px; font-size: 0.85em; } .add-example-jeder-fields .oo-ui-textInputWidget input, .add-example-jeder-fields .oo-ui-textInputWidget textarea { font-size: 0.85em; padding: 2px 6px; min-height: 1.8em; line-height: 1.3; resize: vertical; } /* Çavkaniya azad (jêder) û URLê hinekî mezintir bike da ku bêtir bên xwendin. */ .add-example-form .add-example-jeder-fields ~ * textarea, .add-example-form textarea:not(.add-example-jeder-fields textarea) { font-size: 1.05em; } /* Rêzika bişkokan (Biweşîne/Betal bike/Paqij bike): valahiyeke sivik di navbera wan de, û tixûbeke jorîn da ku ji qadên jorîn bên cudakirin. */ .add-example-form .oo-ui-horizontalLayout { margin-top: 0.75em; padding-top: 0.75em; border-top: 1px solid var(--border-color-subtle, #c8ccd1); gap: 0.5em; } /* Spînera barkirinê: CSS xwerû, ne wêneyeke ji Commons, da ku bixweber li gorî moda tarî/ronî bê rengkirin û ne girêdayî torê ya derveyî be. */ .add-example-spinner { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: middle; border: 2px solid var(--border-color-subtle, #c8ccd1); border-top-color: var(--color-progressive, #36c); border-radius: 50%; animation: add-example-spin 0.8s linear infinite; } @keyframes add-example-spin { to { transform: rotate(360deg); } } da7u6er7tix1pxldeekml0io6bot851 6329635 6329632 2026-08-12T14:57:40Z Wikihez 7344 6329635 css text/css /* [[Şablon:bênimûne]]: nivîsa "Nimûneyekê bide" tê jê birin, ne hewce ye */ .mw-parser-output li:has(> .benimune) { display: none; } /* [[fr:MediaWiki:Gadget-wikt.add-examples.css ]] */ .add-example-form .oo-ui-inputWidget-input { font-family: monospace !important; font-size: 1.2em; } .add-example-form .add-example-fieldset { margin-bottom: 1em; } /* Panela gerşî ya formê: cîhek zelal a wê ji binyata rûpelê cuda bike. */ .add-example-form { max-width: 640px; margin-top: 0.5em; padding: 1em; border: 1px solid var(--border-color-base, #a2a9b1); border-radius: 4px; background-color: var(--background-color-neutral, #f8f9fa); } html.skin-theme-clientpref-night .add-example-form { background-color: var(--background-color-neutral, #27292d); } /* Qutîka Citoid + qadên şablona jêder-*: qutîkeke cuda ya "çavkaniyê", da ku ji qadên din bên cudakirin bi zelalî (li şûna ku hemû qad tev li hev bin). */ .add-example-citoid-box-title { font-weight: bold; margin-bottom: 0.5em; } .add-example-citoid-buttons { margin: 0.25em 0 0.75em; gap: 0.5em; } /* Qadên şablonên jêder-* (Kitêb/Kovar/Malper): berevajî guherîna berê, êdî qadên têkildar li tenişta hev in (inline-block + firehiyeke sabît li gorî cureyê qadê), û nivîs êdî pir piçûk nîne. */ .add-example-jeder-fields .oo-ui-fieldLayout { display: inline-block; vertical-align: top; box-sizing: border-box; margin: 4px 12px 4px 0; } .add-example-jeder-fields .add-example-field-narrow { width: 110px; } .add-example-jeder-fields .add-example-field-medium { width: 260px; } .add-example-jeder-fields .add-example-field-wide { display: block; width: 100%; } .add-example-jeder-fields .oo-ui-fieldLayout-header, .add-example-jeder-fields .oo-ui-fieldLayout-header label { font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget { width: 100%; font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget input, .add-example-jeder-fields .oo-ui-textInputWidget textarea { font-size: 0.95em; padding: 4px 8px; min-height: 2.2em; line-height: 1.4; resize: vertical; } /* Çavkaniya azad (jêder) û URLê hinekî mezintir bike da ku bêtir bên xwendin. */ .add-example-form .add-example-jeder-fields ~ * textarea, .add-example-form textarea:not(.add-example-jeder-fields textarea) { font-size: 1.05em; } /* Rêzika bişkokên sereke (Biweşîne/Betal bike/Paqij bike): valahiyeke sivik di navbera wan de, û tixûbeke jorîn da ku ji qadên jorîn bên cudakirin. (Ne .oo-ui-horizontalLayout bi giştî — ew jî rêzika piçûk a bişkokên Citoid dihewîne, ku ne hewceyî vê cudakirinê ye.) */ .add-example-main-buttons { margin-top: 0.75em; padding-top: 0.75em; border-top: 1px solid var(--border-color-subtle, #c8ccd1); gap: 0.5em; } /* Spînera barkirinê: CSS xwerû, ne wêneyeke ji Commons, da ku bixweber li gorî moda tarî/ronî bê rengkirin û ne girêdayî torê ya derveyî be. */ .add-example-spinner { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: middle; border: 2px solid var(--border-color-subtle, #c8ccd1); border-top-color: var(--color-progressive, #36c); border-radius: 50%; animation: add-example-spin 0.8s linear infinite; } @keyframes add-example-spin { to { transform: rotate(360deg); } } mbm59ogdms6w2tic72ap19m892oavh4 6329642 6329635 2026-08-12T15:15:40Z Wikihez 7344 6329642 css text/css /* [[Şablon:bênimûne]]: hides the "Add an example" prompt text, not needed here */ .mw-parser-output li:has(> .benimune) { display: none; } /* [[fr:MediaWiki:Gadget-wikt.add-examples.css ]] */ .add-example-form .oo-ui-inputWidget-input { font-family: monospace !important; font-size: 1.2em; } .add-example-form .add-example-fieldset { margin-bottom: 1em; } /* Overall form panel: gives it a clear visual boundary from the page content. */ .add-example-form { max-width: 640px; width: 100%; box-sizing: border-box; margin-top: 0.5em; padding: 1em; border: 1px solid var(--border-color-base, #a2a9b1); border-radius: 4px; background-color: var(--background-color-neutral, #f8f9fa); } html.skin-theme-clientpref-night .add-example-form { background-color: var(--background-color-neutral, #27292d); } /* Citoid box + jêder-* fields: a distinct "source" box, separate from the rest of the fields. */ .add-example-citoid-box-title { font-weight: bold; margin-bottom: 0.5em; } .add-example-citoid-buttons { margin: 0.25em 0 0.75em; gap: 0.5em; flex-wrap: wrap; /* keep the fetch/clear buttons from overflowing on narrow screens */ } /* jêder-* template fields (Book/Journal/Website): related fields sit side by side via inline-block + a width tier per field, instead of one full-width field per line. */ .add-example-jeder-fields .oo-ui-fieldLayout { display: inline-block; vertical-align: top; box-sizing: border-box; max-width: 100%; /* never wider than the container, even on narrow (mobile) screens */ margin: 4px 12px 4px 0; } .add-example-jeder-fields .add-example-field-narrow { width: 110px; } .add-example-jeder-fields .add-example-field-medium { width: 260px; } .add-example-jeder-fields .add-example-field-wide { display: block; width: 100%; } .add-example-jeder-fields .oo-ui-fieldLayout-header, .add-example-jeder-fields .oo-ui-fieldLayout-header label { font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget { max-width: 100%; width: 100%; font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget input, .add-example-jeder-fields .oo-ui-textInputWidget textarea { font-size: 0.95em; padding: 4px 8px; min-height: 2.2em; line-height: 1.4; resize: vertical; } /* Make the free-text source and URL fields a bit larger for readability. */ .add-example-form .add-example-jeder-fields ~ * textarea, .add-example-form textarea:not(.add-example-jeder-fields textarea) { font-size: 1.05em; } /* Main action row (Biweşîne/Betal bike/Paqij bike): light gap between buttons plus a top border to separate from the fields above; scoped to this class rather than .oo-ui-horizontalLayout generally, since that also matches the small Citoid button row, which doesn't need this treatment. */ .add-example-main-buttons { margin-top: 0.75em; padding-top: 0.75em; border-top: 1px solid var(--border-color-subtle, #c8ccd1); gap: 0.5em; flex-wrap: wrap; /* keep buttons from overflowing on narrow screens */ } /* Loading spinner: plain CSS, not a Commons image, so it needs no network request and matches dark/light mode. */ .add-example-spinner { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: middle; border: 2px solid var(--border-color-subtle, #c8ccd1); border-top-color: var(--color-progressive, #36c); border-radius: 50%; animation: add-example-spin 0.8s linear infinite; } @keyframes add-example-spin { to { transform: rotate(360deg); } } /* Small screens: the framed panels (form, Citoid box) get their own padding on top of the page's, which can push fixed-width fields past the viewport; keep everything full-width and let inline-block fields wrap freely instead. */ @media (max-width: 480px) { .add-example-form { padding: 0.75em; } .add-example-jeder-fields .oo-ui-fieldLayout { margin-right: 8px; } } leu2zyhv4f40clb8wdf49qx4f4ww8ro 6329643 6329642 2026-08-12T15:16:00Z Wikihez 7344 6329643 css text/css /* [[Şablon:bênimûne]]: nivîsa "Nimûneyekê bide" tê jê birin, ne hewce ye */ .mw-parser-output li:has(> .benimune) { display: none; } /* [[fr:MediaWiki:Gadget-wikt.add-examples.css ]] */ .add-example-form .oo-ui-inputWidget-input { font-family: monospace !important; font-size: 1.2em; } .add-example-form .add-example-fieldset { margin-bottom: 1em; } /* Overall form panel: gives it a clear visual boundary from the page content. */ .add-example-form { max-width: 640px; width: 100%; box-sizing: border-box; margin-top: 0.5em; padding: 1em; border: 1px solid var(--border-color-base, #a2a9b1); border-radius: 4px; background-color: var(--background-color-neutral, #f8f9fa); } html.skin-theme-clientpref-night .add-example-form { background-color: var(--background-color-neutral, #27292d); } /* Citoid box + jêder-* fields: a distinct "source" box, separate from the rest of the fields. */ .add-example-citoid-box-title { font-weight: bold; margin-bottom: 0.5em; } .add-example-citoid-buttons { margin: 0.25em 0 0.75em; gap: 0.5em; flex-wrap: wrap; /* keep the fetch/clear buttons from overflowing on narrow screens */ } /* jêder-* template fields (Book/Journal/Website): related fields sit side by side via inline-block + a width tier per field, instead of one full-width field per line. */ .add-example-jeder-fields .oo-ui-fieldLayout { display: inline-block; vertical-align: top; box-sizing: border-box; max-width: 100%; /* never wider than the container, even on narrow (mobile) screens */ margin: 4px 12px 4px 0; } .add-example-jeder-fields .add-example-field-narrow { width: 110px; } .add-example-jeder-fields .add-example-field-medium { width: 260px; } .add-example-jeder-fields .add-example-field-wide { display: block; width: 100%; } .add-example-jeder-fields .oo-ui-fieldLayout-header, .add-example-jeder-fields .oo-ui-fieldLayout-header label { font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget { max-width: 100%; width: 100%; font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget input, .add-example-jeder-fields .oo-ui-textInputWidget textarea { font-size: 0.95em; padding: 4px 8px; min-height: 2.2em; line-height: 1.4; resize: vertical; } /* Make the free-text source and URL fields a bit larger for readability. */ .add-example-form .add-example-jeder-fields ~ * textarea, .add-example-form textarea:not(.add-example-jeder-fields textarea) { font-size: 1.05em; } /* Main action row (Biweşîne/Betal bike/Paqij bike): light gap between buttons plus a top border to separate from the fields above; scoped to this class rather than .oo-ui-horizontalLayout generally, since that also matches the small Citoid button row, which doesn't need this treatment. */ .add-example-main-buttons { margin-top: 0.75em; padding-top: 0.75em; border-top: 1px solid var(--border-color-subtle, #c8ccd1); gap: 0.5em; flex-wrap: wrap; /* keep buttons from overflowing on narrow screens */ } /* Loading spinner: plain CSS, not a Commons image, so it needs no network request and matches dark/light mode. */ .add-example-spinner { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: middle; border: 2px solid var(--border-color-subtle, #c8ccd1); border-top-color: var(--color-progressive, #36c); border-radius: 50%; animation: add-example-spin 0.8s linear infinite; } @keyframes add-example-spin { to { transform: rotate(360deg); } } /* Small screens: the framed panels (form, Citoid box) get their own padding on top of the page's, which can push fixed-width fields past the viewport; keep everything full-width and let inline-block fields wrap freely instead. */ @media (max-width: 480px) { .add-example-form { padding: 0.75em; } .add-example-jeder-fields .oo-ui-fieldLayout { margin-right: 8px; } } foi8u1bqdvzs09xm7ongrvgl022r738 6329646 6329643 2026-08-12T15:31:34Z Wikihez 7344 6329646 css text/css /* [[Şablon:bênimûne]]: nivîsa "Nimûneyekê bide" tê jê birin, ne hewce ye */ .mw-parser-output li:has(> .benimune) { display: none; } /* [[fr:MediaWiki:Gadget-wikt.add-examples.css ]] */ .add-example-form .oo-ui-inputWidget-input { font-family: monospace !important; font-size: 1.2em; } .add-example-form .add-example-fieldset { margin-bottom: 1em; } /* Overall form panel: gives it a clear visual boundary from the page content. */ .add-example-form { max-width: 640px; width: 100%; box-sizing: border-box; margin-top: 0.5em; padding: 1em; border: 1px solid var(--border-color-base, #a2a9b1); border-radius: 4px; background-color: var(--background-color-neutral, #f8f9fa); } html.skin-theme-clientpref-night .add-example-form { background-color: var(--background-color-neutral, #27292d); } /* Citoid box + jêder-* fields: a distinct "source" box, separate from the rest of the fields. */ .add-example-citoid-box-title { font-weight: bold; margin-bottom: 0.5em; } .add-example-citoid-buttons { margin: 0.25em 0 0.75em; gap: 0.5em; flex-wrap: wrap; /* keep the fetch/clear buttons from overflowing on narrow screens */ } /* jêder-* template fields (Book/Journal/Website): related fields sit side by side via inline-block + a width tier per field, instead of one full-width field per line. */ .add-example-jeder-fields .oo-ui-fieldLayout { display: inline-block; vertical-align: top; box-sizing: border-box; max-width: 100%; /* never wider than the container, even on narrow (mobile) screens */ margin: 4px 12px 4px 0; } .add-example-jeder-fields .add-example-field-narrow { width: 110px; } .add-example-jeder-fields .add-example-field-medium { width: 260px; } .add-example-jeder-fields .add-example-field-wide { display: block; width: 100%; } .add-example-jeder-fields .oo-ui-fieldLayout-header, .add-example-jeder-fields .oo-ui-fieldLayout-header label { font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget { max-width: 100%; width: 100%; font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget input, .add-example-jeder-fields .oo-ui-textInputWidget textarea { font-size: 0.95em; padding: 4px 8px; min-height: 2.2em; line-height: 1.4; resize: vertical; } /* Make the free-text source and URL fields a bit larger for readability. */ .add-example-form .add-example-jeder-fields ~ * textarea, .add-example-form textarea:not(.add-example-jeder-fields textarea) { font-size: 1.05em; } /* Main action row (Biweşîne/Betal bike/Paqij bike): light gap between buttons plus a top border to separate from the fields above; scoped to this class rather than .oo-ui-horizontalLayout generally, since that also matches the small Citoid button row, which doesn't need this treatment. */ .add-example-main-buttons { margin-top: 0.75em; padding-top: 0.75em; border-top: 1px solid var(--border-color-subtle, #c8ccd1); gap: 0.5em; flex-wrap: wrap; /* keep buttons from overflowing on narrow screens */ } /* Loading spinner: plain CSS, not a Commons image, so it needs no network request and matches dark/light mode. */ .add-example-spinner { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: middle; border: 2px solid var(--border-color-subtle, #c8ccd1); border-top-color: var(--color-progressive, #36c); border-radius: 50%; animation: add-example-spin 0.8s linear infinite; } @keyframes add-example-spin { to { transform: rotate(360deg); } } /* Small screens: the framed panels (form, Citoid box) get their own padding on top of the page's, which can push fixed-width fields past the viewport; keep everything full-width and let inline-block fields wrap freely instead. */ @media (max-width: 480px) { .add-example-form { padding: 0.75em; } .add-example-jeder-fields .oo-ui-fieldLayout { margin-right: 8px; } } /* Ported from start.js/styles.css: warns when the example/translation/transcription boxes contain a literal linebreak, which submit() converts to <br> (see nlToBr in the JS) rather than letting it silently corrupt the single-line "#*" wikitext. */ .add-example-form textarea.add-example-has-linebreak { border-color: var(--wikt-palette-yellow6, #ac6600) !important; } /* Backdrop layer behind the textarea, mirroring its text with a marker at each break point; font/padding/box-sizing/line-height are copied from the textarea via computed style (see syncLinebreakBackdropMetrics in the JS), not shared CSS classes, since most of the textarea's own sizing rules target "textarea", which this <div> wouldn't match. Created lazily, only once a textarea actually has a break. */ .add-example-linebreak-backdrop { position: absolute; inset: 0; z-index: 0; margin: 0; overflow: hidden; white-space: pre-wrap; word-wrap: break-word; color: transparent; background: transparent !important; border-color: transparent !important; box-shadow: none !important; resize: none !important; pointer-events: none; display: none; } /* Raises the textarea itself above its backdrop and makes its own background see-through, so the backdrop's break marker shows through behind the typed text. */ .add-example-form textarea.add-example-has-linebreak-source { position: relative; z-index: 1; background-color: transparent !important; } /* The ↵ marker itself, placed right after each line that's followed by an actual typed/pasted linebreak. */ .add-example-linebreak-mark { background-color: var(--wikt-palette-yellow6, #ac6600); color: var(--wikt-palette-white, #fff); border-radius: 2px; } 90o6pd22apqs4lea6a0hp5tgxmsovcd 6329669 6329646 2026-08-12T16:51:15Z Wikihez 7344 6329669 css text/css /* [[Şablon:bênimûne]]: nivîsa "Nimûneyekê bide" tê jê birin, ne hewce ye */ .mw-parser-output li:has(> .benimune) { display: none; } /* [[fr:MediaWiki:Gadget-wikt.add-examples.css ]] */ .add-example-form .oo-ui-inputWidget-input { font-family: monospace !important; font-size: 1.2em; } .add-example-form .add-example-fieldset { margin-bottom: 1em; } /* Overall form panel: a white/near-white card lifted off the page with a soft shadow rather than a flat grey fill + hard border, so it reads as one modern panel instead of an old-style boxed form. */ .add-example-form { max-width: 640px; width: 100%; box-sizing: border-box; margin-top: 0.5em; padding: 1.25em; border: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); border-radius: 8px; background-color: var(--background-color-base, #fff); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); } html.skin-theme-clientpref-night .add-example-form { background-color: var(--background-color-base, #101418); border-color: rgba(255, 255, 255, 0.08); /* Shadows barely read on dark backgrounds, so this leans more on the border for separation, plus a darker/tighter shadow just to lift it off the page. */ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5); } /* Citoid box + jêder-* fields: previously its own fully-bordered card, which stacked "box inside a box" with the form panel above; now a lightweight section (top divider + faint tint) instead of a second card. */ .add-example-citoid-box.oo-ui-panelLayout-framed { border: none; border-top: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); border-radius: 0; background-color: var(--background-color-interactive-subtle, rgba(0, 0, 0, 0.02)); /* Negative margin matches .add-example-form's own padding (1.25em) so the tint bleeds to the card's edges instead of floating inset with a visible gap. */ padding: 1em 1.25em 0.25em; margin: 0.75em -1.25em 0; } html.skin-theme-clientpref-night .add-example-citoid-box.oo-ui-panelLayout-framed { border-top-color: rgba(255, 255, 255, 0.08); background-color: rgba(255, 255, 255, 0.03); } .add-example-citoid-box-title { font-weight: bold; margin-bottom: 0.5em; } .add-example-citoid-buttons { margin: 0.25em 0 0.75em; gap: 0.5em; flex-wrap: wrap; /* keep the fetch/clear buttons from overflowing on narrow screens */ } /* jêder-* template fields (Book/Journal/Website): related fields sit side by side via inline-block + a width tier per field, instead of one full-width field per line. */ .add-example-jeder-fields .oo-ui-fieldLayout { display: inline-block; vertical-align: top; box-sizing: border-box; max-width: 100%; /* never wider than the container, even on narrow (mobile) screens */ margin: 4px 12px 4px 0; } .add-example-jeder-fields .add-example-field-narrow { width: 110px; } .add-example-jeder-fields .add-example-field-medium { width: 260px; } .add-example-jeder-fields .add-example-field-wide { display: block; width: 100%; } .add-example-jeder-fields .oo-ui-fieldLayout-header, .add-example-jeder-fields .oo-ui-fieldLayout-header label { font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget { max-width: 100%; width: 100%; font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget input, .add-example-jeder-fields .oo-ui-textInputWidget textarea { font-size: 0.95em; padding: 4px 8px; min-height: 2.2em; line-height: 1.4; resize: vertical; } /* Make the free-text source and URL fields a bit larger for readability. */ .add-example-form .add-example-jeder-fields ~ * textarea, .add-example-form textarea:not(.add-example-jeder-fields textarea) { font-size: 1.05em; } /* Main action row (Biweşîne/Betal bike/Paqij bike): light gap between buttons plus a top border to separate from the fields above; scoped to this class rather than .oo-ui-horizontalLayout generally, since that also matches the small Citoid button row, which doesn't need this treatment. */ .add-example-main-buttons { margin-top: 0.75em; padding-top: 0.75em; border-top: 1px solid var(--border-color-subtle, #c8ccd1); gap: 0.5em; flex-wrap: wrap; /* keep buttons from overflowing on narrow screens */ } /* Loading spinner: plain CSS, not a Commons image, so it needs no network request and matches dark/light mode. */ .add-example-spinner { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: middle; border: 2px solid var(--border-color-subtle, #c8ccd1); border-top-color: var(--color-progressive, #36c); border-radius: 50%; animation: add-example-spin 0.8s linear infinite; } @keyframes add-example-spin { to { transform: rotate(360deg); } } /* Small screens: the framed panels (form, Citoid box) get their own padding on top of the page's, which can push fixed-width fields past the viewport; keep everything full-width and let inline-block fields wrap freely instead. */ @media (max-width: 480px) { .add-example-form { padding: 0.75em; } .add-example-jeder-fields .oo-ui-fieldLayout { margin-right: 8px; } } /* Ported from start.js/styles.css: warns when the example/translation/transcription boxes contain a literal linebreak, which submit() converts to <br> (see nlToBr in the JS) rather than letting it silently corrupt the single-line "#*" wikitext. */ .add-example-form textarea.add-example-has-linebreak { border-color: var(--wikt-palette-yellow6, #ac6600) !important; } /* Backdrop layer behind the textarea, mirroring its text with a marker at each break point; font/padding/box-sizing/line-height are copied from the textarea via computed style (see syncLinebreakBackdropMetrics in the JS), not shared CSS classes, since most of the textarea's own sizing rules target "textarea", which this <div> wouldn't match. Created lazily, only once a textarea actually has a break. */ .add-example-linebreak-backdrop { position: absolute; inset: 0; z-index: 0; margin: 0; overflow: hidden; white-space: pre-wrap; word-wrap: break-word; color: transparent; background: transparent !important; border-color: transparent !important; box-shadow: none !important; resize: none !important; pointer-events: none; display: none; } /* Raises the textarea itself above its backdrop and makes its own background see-through, so the backdrop's break marker shows through behind the typed text. */ .add-example-form textarea.add-example-has-linebreak-source { position: relative; z-index: 1; background-color: transparent !important; } /* The ↵ marker itself, placed right after each line that's followed by an actual typed/pasted linebreak. */ .add-example-linebreak-mark { background-color: var(--wikt-palette-yellow6, #ac6600); color: var(--wikt-palette-white, #fff); border-radius: 2px; } 6clezn9ws8j3h8fvmdypltw0fozf1p1 6329670 6329669 2026-08-12T16:57:03Z Wikihez 7344 6329670 css text/css /* [[Şablon:bênimûne]]: nivîsa "Nimûneyekê bide" tê jê birin, ne hewce ye */ .mw-parser-output li:has(> .benimune) { display: none; } /* [[fr:MediaWiki:Gadget-wikt.add-examples.css ]] */ .add-example-form .oo-ui-inputWidget-input { font-family: monospace !important; font-size: 1.2em; } .add-example-form .add-example-fieldset { margin-bottom: 1em; } /* Overall form panel: a white/near-white card lifted off the page with a soft shadow rather than a flat grey fill + hard border, so it reads as one modern panel instead of an old-style boxed form. */ .add-example-form { max-width: 640px; width: 100%; box-sizing: border-box; margin-top: 0.5em; padding: 1.25em; border: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); border-radius: 8px; background-color: var(--background-color-base, #fff); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); } html.skin-theme-clientpref-night .add-example-form { background-color: var(--background-color-base, #101418); border-color: rgba(255, 255, 255, 0.08); /* Shadows barely read on dark backgrounds, so this leans more on the border for separation, plus a darker/tighter shadow just to lift it off the page. */ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5); } /* Citoid box + jêder-* fields: previously its own fully-bordered card, which stacked "box inside a box" with the form panel above; now a lightweight section (top divider + faint tint) instead of a second card. */ .add-example-citoid-box.oo-ui-panelLayout-framed { border: none; border-top: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); border-radius: 0; background-color: var(--background-color-interactive-subtle, rgba(0, 0, 0, 0.04)); /* Negative margin matches .add-example-form's own padding (1.25em) so the tint bleeds to the card's edges instead of floating inset with a visible gap. */ padding: 1em 1.25em 0.25em; margin: 0.75em -1.25em 0; } html.skin-theme-clientpref-night .add-example-citoid-box.oo-ui-panelLayout-framed { border-top-color: rgba(255, 255, 255, 0.08); background-color: rgba(255, 255, 255, 0.05); } .add-example-citoid-box-title { font-weight: bold; margin-bottom: 0.5em; } .add-example-citoid-buttons { margin: 0.25em 0 0.75em; gap: 0.5em; flex-wrap: wrap; /* keep the fetch/clear buttons from overflowing on narrow screens */ } /* jêder-* template fields (Book/Journal/Website): related fields sit side by side via inline-block + a width tier per field, instead of one full-width field per line. */ .add-example-jeder-fields .oo-ui-fieldLayout { display: inline-block; vertical-align: top; box-sizing: border-box; max-width: 100%; /* never wider than the container, even on narrow (mobile) screens */ margin: 4px 12px 4px 0; } .add-example-jeder-fields .add-example-field-narrow { width: 110px; } .add-example-jeder-fields .add-example-field-medium { width: 260px; } .add-example-jeder-fields .add-example-field-wide { display: block; width: 100%; } .add-example-jeder-fields .oo-ui-fieldLayout-header, .add-example-jeder-fields .oo-ui-fieldLayout-header label { font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget { max-width: 100%; width: 100%; font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget input, .add-example-jeder-fields .oo-ui-textInputWidget textarea { font-size: 0.95em; padding: 4px 8px; min-height: 2.2em; line-height: 1.4; resize: vertical; } /* Make the free-text source and URL fields a bit larger for readability. */ .add-example-form .add-example-jeder-fields ~ * textarea, .add-example-form textarea:not(.add-example-jeder-fields textarea) { font-size: 1.05em; } /* Main action row (Biweşîne/Betal bike/Paqij bike): light gap between buttons plus a top border to separate from the fields above; scoped to this class rather than .oo-ui-horizontalLayout generally, since that also matches the small Citoid button row, which doesn't need this treatment. */ .add-example-main-buttons { margin-top: 0.75em; padding-top: 0.75em; border-top: 1px solid var(--border-color-subtle, #c8ccd1); gap: 0.5em; flex-wrap: wrap; /* keep buttons from overflowing on narrow screens */ } /* Loading spinner: plain CSS, not a Commons image, so it needs no network request and matches dark/light mode. */ .add-example-spinner { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: middle; border: 2px solid var(--border-color-subtle, #c8ccd1); border-top-color: var(--color-progressive, #36c); border-radius: 50%; animation: add-example-spin 0.8s linear infinite; } @keyframes add-example-spin { to { transform: rotate(360deg); } } /* Small screens: the framed panels (form, Citoid box) get their own padding on top of the page's, which can push fixed-width fields past the viewport; keep everything full-width and let inline-block fields wrap freely instead. */ @media (max-width: 480px) { .add-example-form { padding: 0.75em; } .add-example-jeder-fields .oo-ui-fieldLayout { margin-right: 8px; } } /* Ported from start.js/styles.css: warns when the example/translation/transcription boxes contain a literal linebreak, which submit() converts to <br> (see nlToBr in the JS) rather than letting it silently corrupt the single-line "#*" wikitext. */ .add-example-form textarea.add-example-has-linebreak { border-color: var(--wikt-palette-yellow6, #ac6600) !important; } /* Backdrop layer behind the textarea, mirroring its text with a marker at each break point; font/padding/box-sizing/line-height are copied from the textarea via computed style (see syncLinebreakBackdropMetrics in the JS), not shared CSS classes, since most of the textarea's own sizing rules target "textarea", which this <div> wouldn't match. Created lazily, only once a textarea actually has a break. */ .add-example-linebreak-backdrop { position: absolute; inset: 0; z-index: 0; margin: 0; overflow: hidden; white-space: pre-wrap; word-wrap: break-word; color: transparent; background: transparent !important; border-color: transparent !important; box-shadow: none !important; resize: none !important; pointer-events: none; display: none; } /* Raises the textarea itself above its backdrop and makes its own background see-through, so the backdrop's break marker shows through behind the typed text. */ .add-example-form textarea.add-example-has-linebreak-source { position: relative; z-index: 1; background-color: transparent !important; } /* The ↵ marker itself, placed right after each line that's followed by an actual typed/pasted linebreak. */ .add-example-linebreak-mark { background-color: var(--wikt-palette-yellow6, #ac6600); color: var(--wikt-palette-white, #fff); border-radius: 2px; } ovflq0xfwtds11roawee9ioys3xays1 Şablon:J:Shamdinani Stories I:2026 10 1357905 6329775 6265671 2026-08-12T21:41:00Z Wikihez 7344 6329775 wikitext text/x-wiki {{kitêb|nivîskar=Mela Seîd Şemdînanî|amadekar={{w|David N. MacKenzie}}; {{w|Ergin Öpengin}}|sernav=Shamdinani Stories I|weşanxane=Brill|cih=Leiden|sal=~1910|serî=Brill Kurdish Studies|cild=3|sala weşandinê=2026|çap=|rûpel={{{rûpel|{{{r|}}}}}}|isbn=978-90-04-75443-0|url=https://brill.com/edcollbook-oa/title/74006?language=en}}<noinclude>{{jgcat|ku}}<templatedata> { "params": { "rûpel": { "aliases": [ "r" ] } }, "description": "Mela Seîd Şemdînanî, Amadekar: David N. MacKenzie; Ergin Öpengin Shamdinani Stories I" } </templatedata></noinclude> kdyiozzu6sm6rvevw07nq66c2j50fal 6329776 6329775 2026-08-12T21:41:14Z Wikihez 7344 Wikihezî/ê navê [[Şablon:J:ku:Shamdinani Stories I:2026]] weke [[Şablon:J:Shamdinani Stories I:2026]] guhart 6329775 wikitext text/x-wiki {{kitêb|nivîskar=Mela Seîd Şemdînanî|amadekar={{w|David N. MacKenzie}}; {{w|Ergin Öpengin}}|sernav=Shamdinani Stories I|weşanxane=Brill|cih=Leiden|sal=~1910|serî=Brill Kurdish Studies|cild=3|sala weşandinê=2026|çap=|rûpel={{{rûpel|{{{r|}}}}}}|isbn=978-90-04-75443-0|url=https://brill.com/edcollbook-oa/title/74006?language=en}}<noinclude>{{jgcat|ku}}<templatedata> { "params": { "rûpel": { "aliases": [ "r" ] } }, "description": "Mela Seîd Şemdînanî, Amadekar: David N. MacKenzie; Ergin Öpengin Shamdinani Stories I" } </templatedata></noinclude> kdyiozzu6sm6rvevw07nq66c2j50fal MediaWiki:Gadget-citoid-helper.js 8 1358211 6329684 6291970 2026-08-12T18:24:32Z Bikarhêner 3719 6329684 javascript text/javascript /** * Gadget-citoid-helper.js * * Amûreke hevpar ji bo standina daneyên çavkaniyê ji Citoid û * veguherandina wan bo qadên şablonên jêder-* (jêder-kitêb, jêder-kovar, jêder-websîte). * * BIKARANÎN JI SCRIPTEKE DIN: * * 1) Riya herî baş: vê rûpelê wek dependency lê zêde bike di eyarên * gadgeta xwe de li ser [[Special:Gadgets]] (an jî MediaWiki:Gadgets-definition), * paşê: * * mw.loader.using("ext.gadget.citoid-helper").then(function () { * wikt.citoid.fetchJederFields(url).then(function (result) { * console.log(result.jederKey, result.fields); * }); * }); * * 2) An jî, heke ne mimkun be gadget bi vî awayî were qeydkirin, fonksiyona * alîkar a `wikt.citoidHelper.ensure()` a li jêr bikar bîne, ku bixweber * vê rûpelê bar dike heke jixwe nehatibe barkirin: * * wikt.citoidHelper.ensure().then(function () { * wikt.citoid.fetchJederFields(url).then(...); * }); * * API ya `window.wikt.citoid`: * - getRestUrl() → {string} URLya REST a Citoid a vê wîkiyê * - yearFromDate(dateStr) → {string} sala (4 reqem) ji rêzikeke tarîxê * - formatAuthors(authors) → {string} navên nivîskaran wek rêzikek yekane * - typeToJederKey(itemType) → {string} "jêder-kitêb" / "jêder-kovar" / "jêder-websîte" * - dataToJederFields(jederKey, data) → {Object<string,string>} merheleyên şablona jêder-* * - fetchData(query) → {jQuery.Promise<Object>} daneya xam a Citoid * - fetchJederFields(query) → {jQuery.Promise<{jederKey, fields, raw}>} hêsankirî * - TYPE_TO_JEDER → {Object} xerîteya itemType → jederKey */ window.wikt = window.wikt || {}; (function () { "use strict"; // Heke jixwe hatibe barkirin, dubare neke. if (window.wikt.citoid) { return; } // Xerîteya cureyên Citoid (itemType) li ser şablonên me yên jêder-* var CITOID_TYPE_TO_JEDER = { "book": "jêder-kitêb", "bookSection": "jêder-kitêb", "thesis": "jêder-kitêb", "report": "jêder-kitêb", "manuscript": "jêder-kitêb", "journalArticle": "jêder-kovar", "magazineArticle": "jêder-kovar", "newspaperArticle": "jêder-websîte", "webpage": "jêder-websîte", "blogPost": "jêder-websîte", "forumPost": "jêder-websîte", "videoRecording": "jêder-websîte", "podcast": "jêder-websîte", "encyclopediaArticle": "jêder-websîte" }; /** * Ji mantiqa [[:en:w:User:BrandonXLF/Citoid.js]] * Vedigere URLya REST a Citoid, li gorî eyarên vê wîkiyê. * @return {string} */ function getRestUrl() { var cfg = mw.config.get("wgCitoidConfig"); var vecfg = mw.config.get("wgVisualEditorConfig"); return (cfg && (cfg.fullRestbaseUrl || cfg.wbFullRestbaseUrl)) ? (cfg.fullRestbaseUrl || cfg.wbFullRestbaseUrl) + "v1/data/citation/mediawiki/" : (vecfg && vecfg.fullRestbaseUrl) ? vecfg.fullRestbaseUrl + "v1/data/citation/mediawiki/" : (cfg && cfg.citoidServiceUrl) ? cfg.citoidServiceUrl + "/mediawiki/" : "https://ku.wiktionary.org/api/rest_v1/data/citation/mediawiki/"; } /** * Ji tarîxa Citoid (rêzik an tarîxeke ISO) sala wê (4 reqem) derdixe. * @param dateStr {string} * @return {string} */ function yearFromDate(dateStr) { if (!dateStr) { return ""; } var match = /\d{4}/.exec(dateStr); return match ? match[0] : ""; } /** * Navên nivîskaran ên Citoid (rêzek [pêşnav, paşnav]) dike rêzikek yekane. * @param authors {Array<Array<string>>} * @return {string} */ function formatAuthors(authors) { if (!Array.isArray(authors)) { return ""; } return authors.map(function (pair) { return (pair || []).filter(function (part) { return !!part; }).join(" "); }).filter(function (name) { return !!name; }).join("; "); } function formatEditors(editors) { if (!Array.isArray(editors)) { return ""; } return editors.map(function (pair) { return (pair || []).filter(function (part) { return !!part; }).join(" "); }).filter(function (name) { return !!name; }).join("; "); } /** * Li gorî itemType a Citoid, navê şablona jêder-* a munasib vedigerîne. * @param itemType {string} * @return {string} Yek ji "jêder-kitêb", "jêder-kovar" an "jêder-websîte". */ function typeToJederKey(itemType) { return CITOID_TYPE_TO_JEDER[itemType] || "jêder-websîte"; } /** * Daneyên Citoid vediguherîne tabloyeke parametreyên şablona jêder-* (li gorî cureyê wê). * @param jederKey {string} Yek ji "jêder-kitêb", "jêder-kovar" an "jêder-websîte". * @param data {Object} Netîceya Citoid. * @return {Object<string, string>} */ function dataToJederFields(jederKey, data) { var out = {}; var author = formatAuthors(data.author); var editor = formatEditors(data.editor); if (author) { out["nivîskar"] = author; } if (editor) { out["amadekar"] = editor; } if (data.title) { out["sernav"] = data.title; } if (data.url) { out.url = data.url; } if (jederKey === "jêder-kitêb") { if (data.publisher) { out["weşanxane"] = data.publisher; } if (data.place) { out.cih = data.place; } if (data.date) { out.sal = yearFromDate(data.date); } if (data.ISBN) { out.isbn = Array.isArray(data.ISBN) ? data.ISBN[0] : data.ISBN; } if (data.edition) { out["çap"] = data.edition; } if (data.pages) { out["rûpel"] = data.pages; } } else if (jederKey === "jêder-kovar") { if (data.publicationTitle) { out.kovar = data.publicationTitle; } if (data.publisher) { out["weşanxane"] = data.publisher; } if (data.volume) { out.cild = data.volume; } if (data.issue) { out.hejmar = data.issue; } if (data.pages) { out["rûpel"] = data.pages; } if (data.date) { out.sal = yearFromDate(data.date); } } else if (jederKey === "jêder-websîte") { if (data.websiteTitle) { out["websîte"] = data.websiteTitle; } if (data.date) { out["tarîx"] = data.date; } } return out; } /** * Ji Citoid daneyên çavkaniyekê tîne (li gorî URL, DOI an ISBNyê). * @param query {string} * @return {jQuery.Promise} Bi daneya ewil a Citoid (Object) tê safîkirin. */ function fetchData(query) { var url; try { url = encodeURIComponent(decodeURIComponent(query)); } catch (e) { url = encodeURIComponent(query); } return $.get(getRestUrl() + url).then(function (res) { if (!res || !res[0]) { return $.Deferred().reject("Netîceya ji Citoidê vala ye.").promise(); } return res[0]; }); } /** * Fonksiyoneke hêsankirî: ji URL/DOI/ISBNyekê rasterast şablona jêder-* a munasib * û merheleyên wê yên tijîkirî vedigerîne (fetchData + typeToJederKey + dataToJederFields * bi hev re). * @param query {string} * @return {jQuery.Promise} Bi {jederKey: string, fields: Object<string,string>, raw: Object} tê safîkirin. */ function fetchJederFields(query) { return fetchData(query).then(function (data) { var jederKey = typeToJederKey(data.itemType); return { jederKey: jederKey, fields: dataToJederFields(jederKey, data), raw: data }; }); } window.wikt.citoid = { getRestUrl: getRestUrl, yearFromDate: yearFromDate, formatAuthors: formatAuthors, typeToJederKey: typeToJederKey, dataToJederFields: dataToJederFields, fetchData: fetchData, fetchJederFields: fetchJederFields, TYPE_TO_JEDER: CITOID_TYPE_TO_JEDER }; /** * Alîkar ji bo scriptên din: heke wikt.citoid hîn nehatibe barkirin, * vê rûpelê bixweber bar dike û pey re "resolve" dibe. * Bikaranîn: wikt.citoidHelper.ensure().then(function() { ... wikt.citoid ... }); */ window.wikt.citoidHelper = { ensure: function () { if (window.wikt.citoid) { return $.Deferred().resolve().promise(); } var url = mw.util.getUrl("MediaWiki:Gadget-citoid-helper.js", { action: "raw", ctype: "text/javascript" }); return mw.loader.getScript(mw.config.get("wgServer") + url); } }; })(); k26nwr4ixwgh6s7xji2sz4cx13uid2u Bikarhêner:Balyozbot/kontrol/rêzkirina beşan 2 1358302 6329619 6329541 2026-08-12T13:41:06Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: +1 xeta 6329619 wikitext text/x-wiki == Nenas beş == * [[bêl]]: nenas beş "Binêre herwiha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[cerd]]: nenas beş "Binêre herwiha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[cewr]]: nenas beş "Qafiye" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[dardekirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[darfiroş]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[daxme]]: nenas beş "Heriwha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[demjimêrk]]: nenas beş "Cûnên demjimêrkan" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[demjimêrk]]: nenas beş "Bi soranî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[deqkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[derbestkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[derdestkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[desperasyon]]: nenas beş "Têkilî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[destbilindkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[destpirtûk]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[devbeş]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[deverûkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[dey]]: nenas beş "Binere" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[dilxweşkirin]]: nenas beş "Dijmane" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[dilxweşkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[diyod]]: nenas beş "Rastnivîsî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[ferhenga zanistî]]: nenas beş "Pirjimar" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[fiqurî]]: nenas beş "ji" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[firoşxane]]: nenas beş "Binêre herwiha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[fort]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[gilîname]]: nenas beş "Bi soranî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[goganîbûnî]]: nenas beş "Bideber" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[guhlêbûn]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[hanek]]: nenas beş "Pirrjimar" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[hanek]]: nenas beş "Navê zanistî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[hevalkar]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[hevserî]]: nenas beş "Bi soranî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[hevxemî]]: nenas beş "Bi soranî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[hevîrkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[hêm]]: nenas beş "Binêre herwiha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[hûrbîn]]: nenas beş "Navder" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[jajerûn]]: nenas beş "Pîrepend" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[jornivîs]]: nenas beş "Binêre herwiha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[jêkvekirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[jêrnivîs]]: nenas beş "Binêre herwiha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[kalekol]]: nenas beş "Têkilî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[kannadayî]]: nenas beş "Alfabeya zimanê kannadayî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[katakanayî]]: nenas beş "[[kîte|Kîteyên]] katakanayî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[kelobîn]]: nenas beş "Ji wêjeyê" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[kirtîn]]: nenas beş "Binere" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[kirtînî]]: nenas beş "Binere" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[kêfkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[lêderkirin]]: nenas beş "Hevmane" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[lêkolînên meydanî]]: nenas beş "Yekjimar" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[lêkqelibîn]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[lûlav]]: nenas beş "Binêre herwiha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[marekirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[masîcank]]: nenas beş "Navê zanistî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[maytêkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[menber]]: nenas beş "Pirrjimar" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[mijxele]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[mêkut]]: nenas beş "Bi Elfabeyên Din" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[mêvanname]]: nenas beş "Bi soranî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[mît]]: nenas beş "Binêre herwiha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[navokî]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[neguhdarî]]: nenas beş "Bi alfabeya erebî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[nexwendewarî]]: nenas beş "Bi soranî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[nexweş]]: nenas beş "Rengêr" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[nezanî]]: nenas beş "Bi soranî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[neçarkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[nîşaste]]: nenas beş "Formûla molekûlî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[nûber]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[nûçename]]: nenas beş "Herwiha binere" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[otokrasî]]: nenas beş "Têkildar" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pandemî]]: nenas beş "Binêre herwiha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[parçeparçekirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[parîz]]: nenas beş "Têkil" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[peytkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pir]]: nenas beş "Diyarker" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pê]]: nenas beş "Pêşdaçek" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pêbîrhatinok]]: nenas beş "Minak" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pêkanîn]]: nenas beş "2. Mane qowet lê bûn" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pêlîstik]]: nenas beş "Cûnên pêlistikan" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pêmovkî]]: nenas beş "Pirjimarî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pêşbînîkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pîrek]]: nenas beş "3. kesa ne keç" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pîtepêkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pîvaza nemrûdê]]: nenas beş "Navê zanistî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[qotik]]: nenas beş "Jêrenot û çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[qurtalkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[raberîkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[ranêzîk]]: nenas beş "Jê" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[seat]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[serederîkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[silavkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[sinetkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[tawankirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[têwerkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[waiz]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[wexerkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[windakirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[xanekirin]]: nenas beş "Bi alfabeyên din" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[xaçkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[xelatkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[xirvekirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[xiyar]]: nenas beş "Name" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[xwecihkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[zirbarbûn]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[zirk]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[Îsmaîl]]: nenas beş "Formên alternatîv" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[Ûnis]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[çareserkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[şaşîkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[şîrfiroş]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[li]]: nenas beş "Pêşdaçek" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[Perman]]: nenas beş "Lêker (Sorani – Erdelanî)" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[پەرمان]]: nenas beş "Lêker (Sorani – Erdelanî)" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[gula hesretê]]: nenas beş "Navê zanistî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[fižol]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[qerqeşûn]]: nenas beş "Bi soranî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[me]]: nenas beş "Formekê lêkerê" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[şîrkî]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[qilqaldar]]: nenas beş "Jê" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[kanistan]]: nenas beş "Bi soranî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[bersorik]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[nava hefteyê]]: nenas beş "Pirrjimar" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[bi]]: nenas beş "Pêşdaçek" (ne hate rêzkirin, ne pos_section e lê binbeş hene) == Astengî di rêzkirinê de == * [[bariyer]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[bayist]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[bayist]]: astengî di rêzkirinê de ji ber binbeşa "Werger" (ne hate rêzkirin) * [[biyang]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[biyokîmya]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[biyoteknolojî]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[botanîk]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[bêemrî]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[bêfermanî]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[bêjename]]: astengî di rêzkirinê de ji ber binbeşa "Hevmane" (ne hate rêzkirin) * [[bêrîvan]]: astengî di rêzkirinê de ji ber binbeşa "Formên alternatîv" (ne hate rêzkirin) * [[bûk]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[cilxane]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[derbûn]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[derkirin]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[dualîtî]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[gir]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[gir]]: astengî di rêzkirinê de ji ber binbeşa "Werger" (ne hate rêzkirin) * [[gizing]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[hegemonî]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[heste]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[heywannasî]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[hezîran]]: astengî di rêzkirinê de ji ber binbeşa "Binêre herwiha" (ne hate rêzkirin) * [[hiyeroglîf]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[jêkirin]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[kanûna paşîn]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[kefalet]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[komparatîv]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[kronolojî]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[melû]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[meriçîn]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[mexel]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[neqişandin]]: astengî di rêzkirinê de ji ber binbeşa "Bi alfabeyên din" (ne hate rêzkirin) * [[nivistinxane]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[nîlûfer]]: astengî di rêzkirinê de ji ber binbeşa "Bi alfabeyên din" (ne hate rêzkirin) * [[nîsanok]]: astengî di rêzkirinê de ji ber binbeşa "Navê zanistî" (ne hate rêzkirin) * [[peryod]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[petrokîmya]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[peyîz]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[pifdank]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[pismam]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[pol]]: astengî di rêzkirinê de ji ber binbeşa "Binêre herwiha" (ne hate rêzkirin) * [[qap]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[qefa]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[qolanî]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[raber]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[raketinxane]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[rapelîn]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[razang]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[razanxane]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[revandin]]: astengî di rêzkirinê de ji ber binbeşa "Formên alternatîv" (ne hate rêzkirin) * [[rezber]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[rûniştinxane]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[serborî]]: astengî di rêzkirinê de ji ber binbeşa "Werger" (ne hate rêzkirin) * [[surprîz]]: astengî di rêzkirinê de ji ber binbeşa "Formên alternatîv" (ne hate rêzkirin) * [[sûperlatîv]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[tabloîd]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[texe]]: astengî di rêzkirinê de ji ber binbeşa "Formên alternatîv" (ne hate rêzkirin) * [[teyr]]: astengî di rêzkirinê de ji ber binbeşa "Hevmane" (ne hate rêzkirin) * [[tirp]]: astengî di rêzkirinê de ji ber binbeşa "Werger" (ne hate rêzkirin) * [[tîre]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[werkirin]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[weşanxane]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[wuşe]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[xwarin]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[zang]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[zirz]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[zoolojî]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[zêrandin]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[çiriya yekem]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[çîvçîv]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[şepilîn]]: astengî di rêzkirinê de ji ber binbeşa "Tewandin" (ne hate rêzkirin) * [[şor]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[şêl]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[şêwr]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[paş guhê xwe ve neavêtin]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[paşguh nekirin]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[piştguh nekirin]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[şehde]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[nahiye]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[zoolog]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[heywannas]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[bêdengahî]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[aya]]: astengî di rêzkirinê de ji ber binbeşa "Hevmane" (ne hate rêzkirin) * [[bijîşk]]: astengî di rêzkirinê de ji ber binbeşa "Formên alternatîv" (ne hate rêzkirin) * [[rolyef]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) == Şablona ku-tewîn-nav hat zêdekirin li binbeşa Tewandin ya heyî == * [[dest]]: şablona ku-tewîn-nav hat zêdekirin li binbeşa Tewandin ya heyî, ji kerema xwe kontrol bike, beş: "Navdêr" * [[pestandin]]: şablona ku-tewîn-nav hat zêdekirin li binbeşa Tewandin ya heyî, ji kerema xwe kontrol bike, beş: "Navdêr" * [[vewêrtin]]: şablona ku-tewîn-nav hat zêdekirin li binbeşa Tewandin ya heyî, ji kerema xwe kontrol bike, beş: "Navdêr" * [[xeriqandin]]: şablona ku-tewîn-nav hat zêdekirin li binbeşa Tewandin ya heyî, ji kerema xwe kontrol bike, beş: "Navdêr" * [[şepilîn]]: şablona ku-tewîn-nav hat zêdekirin li binbeşa Tewandin ya heyî, ji kerema xwe kontrol bike, beş: "Navdêr" 6ml4nmodxtiw7728dktaygnwb8i3ez5 6329895 6329619 2026-08-13T00:41:13Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: +1 xeta 6329895 wikitext text/x-wiki == Nenas beş == * [[bêl]]: nenas beş "Binêre herwiha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[cerd]]: nenas beş "Binêre herwiha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[cewr]]: nenas beş "Qafiye" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[dardekirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[darfiroş]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[daxme]]: nenas beş "Heriwha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[demjimêrk]]: nenas beş "Cûnên demjimêrkan" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[demjimêrk]]: nenas beş "Bi soranî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[deqkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[derbestkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[derdestkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[desperasyon]]: nenas beş "Têkilî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[destbilindkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[destpirtûk]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[devbeş]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[deverûkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[dey]]: nenas beş "Binere" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[dilxweşkirin]]: nenas beş "Dijmane" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[dilxweşkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[diyod]]: nenas beş "Rastnivîsî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[ferhenga zanistî]]: nenas beş "Pirjimar" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[fiqurî]]: nenas beş "ji" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[firoşxane]]: nenas beş "Binêre herwiha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[fort]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[gilîname]]: nenas beş "Bi soranî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[goganîbûnî]]: nenas beş "Bideber" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[guhlêbûn]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[hanek]]: nenas beş "Pirrjimar" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[hanek]]: nenas beş "Navê zanistî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[hevalkar]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[hevserî]]: nenas beş "Bi soranî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[hevxemî]]: nenas beş "Bi soranî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[hevîrkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[hêm]]: nenas beş "Binêre herwiha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[hûrbîn]]: nenas beş "Navder" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[jajerûn]]: nenas beş "Pîrepend" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[jornivîs]]: nenas beş "Binêre herwiha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[jêkvekirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[jêrnivîs]]: nenas beş "Binêre herwiha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[kalekol]]: nenas beş "Têkilî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[kannadayî]]: nenas beş "Alfabeya zimanê kannadayî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[katakanayî]]: nenas beş "[[kîte|Kîteyên]] katakanayî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[kelobîn]]: nenas beş "Ji wêjeyê" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[kirtîn]]: nenas beş "Binere" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[kirtînî]]: nenas beş "Binere" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[kêfkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[lêderkirin]]: nenas beş "Hevmane" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[lêkolînên meydanî]]: nenas beş "Yekjimar" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[lêkqelibîn]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[lûlav]]: nenas beş "Binêre herwiha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[marekirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[masîcank]]: nenas beş "Navê zanistî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[maytêkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[menber]]: nenas beş "Pirrjimar" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[mijxele]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[mêkut]]: nenas beş "Bi Elfabeyên Din" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[mêvanname]]: nenas beş "Bi soranî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[mît]]: nenas beş "Binêre herwiha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[navokî]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[neguhdarî]]: nenas beş "Bi alfabeya erebî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[nexwendewarî]]: nenas beş "Bi soranî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[nexweş]]: nenas beş "Rengêr" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[nezanî]]: nenas beş "Bi soranî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[neçarkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[nîşaste]]: nenas beş "Formûla molekûlî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[nûber]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[nûçename]]: nenas beş "Herwiha binere" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[otokrasî]]: nenas beş "Têkildar" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pandemî]]: nenas beş "Binêre herwiha" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[parçeparçekirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[parîz]]: nenas beş "Têkil" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[peytkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pir]]: nenas beş "Diyarker" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pê]]: nenas beş "Pêşdaçek" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pêbîrhatinok]]: nenas beş "Minak" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pêkanîn]]: nenas beş "2. Mane qowet lê bûn" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pêlîstik]]: nenas beş "Cûnên pêlistikan" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pêmovkî]]: nenas beş "Pirjimarî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pêşbînîkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pîrek]]: nenas beş "3. kesa ne keç" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pîtepêkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[pîvaza nemrûdê]]: nenas beş "Navê zanistî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[qotik]]: nenas beş "Jêrenot û çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[qurtalkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[raberîkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[ranêzîk]]: nenas beş "Jê" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[seat]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[serederîkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[silavkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[sinetkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[tawankirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[têwerkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[waiz]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[wexerkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[windakirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[xanekirin]]: nenas beş "Bi alfabeyên din" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[xaçkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[xelatkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[xirvekirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[xiyar]]: nenas beş "Name" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[xwecihkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[zirbarbûn]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[zirk]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[Îsmaîl]]: nenas beş "Formên alternatîv" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[Ûnis]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[çareserkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[şaşîkirin]]: nenas beş "Çavkanî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[şîrfiroş]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[li]]: nenas beş "Pêşdaçek" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[Perman]]: nenas beş "Lêker (Sorani – Erdelanî)" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[پەرمان]]: nenas beş "Lêker (Sorani – Erdelanî)" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[gula hesretê]]: nenas beş "Navê zanistî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[fižol]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[qerqeşûn]]: nenas beş "Bi soranî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[me]]: nenas beş "Formekê lêkerê" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[şîrkî]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[qilqaldar]]: nenas beş "Jê" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[kanistan]]: nenas beş "Bi soranî" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[bersorik]]: nenas beş "Bilêvkirin" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[nava hefteyê]]: nenas beş "Pirrjimar" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[bi]]: nenas beş "Pêşdaçek" (ne hate rêzkirin, ne pos_section e lê binbeş hene) * [[wer]]: nenas beş "Pêşdaçek" (ne hate rêzkirin, ne pos_section e lê binbeş hene) == Astengî di rêzkirinê de == * [[bariyer]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[bayist]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[bayist]]: astengî di rêzkirinê de ji ber binbeşa "Werger" (ne hate rêzkirin) * [[biyang]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[biyokîmya]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[biyoteknolojî]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[botanîk]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[bêemrî]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[bêfermanî]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[bêjename]]: astengî di rêzkirinê de ji ber binbeşa "Hevmane" (ne hate rêzkirin) * [[bêrîvan]]: astengî di rêzkirinê de ji ber binbeşa "Formên alternatîv" (ne hate rêzkirin) * [[bûk]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[cilxane]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[derbûn]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[derkirin]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[dualîtî]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[gir]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[gir]]: astengî di rêzkirinê de ji ber binbeşa "Werger" (ne hate rêzkirin) * [[gizing]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[hegemonî]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[heste]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[heywannasî]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[hezîran]]: astengî di rêzkirinê de ji ber binbeşa "Binêre herwiha" (ne hate rêzkirin) * [[hiyeroglîf]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[jêkirin]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[kanûna paşîn]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[kefalet]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[komparatîv]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[kronolojî]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[melû]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[meriçîn]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[mexel]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[neqişandin]]: astengî di rêzkirinê de ji ber binbeşa "Bi alfabeyên din" (ne hate rêzkirin) * [[nivistinxane]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[nîlûfer]]: astengî di rêzkirinê de ji ber binbeşa "Bi alfabeyên din" (ne hate rêzkirin) * [[nîsanok]]: astengî di rêzkirinê de ji ber binbeşa "Navê zanistî" (ne hate rêzkirin) * [[peryod]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[petrokîmya]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[peyîz]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[pifdank]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[pismam]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[pol]]: astengî di rêzkirinê de ji ber binbeşa "Binêre herwiha" (ne hate rêzkirin) * [[qap]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[qefa]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[qolanî]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[raber]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[raketinxane]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[rapelîn]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[razang]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[razanxane]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[revandin]]: astengî di rêzkirinê de ji ber binbeşa "Formên alternatîv" (ne hate rêzkirin) * [[rezber]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[rûniştinxane]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[serborî]]: astengî di rêzkirinê de ji ber binbeşa "Werger" (ne hate rêzkirin) * [[surprîz]]: astengî di rêzkirinê de ji ber binbeşa "Formên alternatîv" (ne hate rêzkirin) * [[sûperlatîv]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[tabloîd]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[texe]]: astengî di rêzkirinê de ji ber binbeşa "Formên alternatîv" (ne hate rêzkirin) * [[teyr]]: astengî di rêzkirinê de ji ber binbeşa "Hevmane" (ne hate rêzkirin) * [[tirp]]: astengî di rêzkirinê de ji ber binbeşa "Werger" (ne hate rêzkirin) * [[tîre]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[werkirin]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[weşanxane]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[wuşe]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[xwarin]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[zang]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[zirz]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[zoolojî]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[zêrandin]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[çiriya yekem]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[çîvçîv]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[şepilîn]]: astengî di rêzkirinê de ji ber binbeşa "Tewandin" (ne hate rêzkirin) * [[şor]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[şêl]]: astengî di rêzkirinê de ji ber binbeşa "Bide ber" (ne hate rêzkirin) * [[şêwr]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[paş guhê xwe ve neavêtin]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[paşguh nekirin]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[piştguh nekirin]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[şehde]]: astengî di rêzkirinê de ji ber binbeşa "Jê" (ne hate rêzkirin) * [[nahiye]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[zoolog]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[heywannas]]: astengî di rêzkirinê de ji ber binbeşa "Têkildar" (ne hate rêzkirin) * [[bêdengahî]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) * [[aya]]: astengî di rêzkirinê de ji ber binbeşa "Hevmane" (ne hate rêzkirin) * [[bijîşk]]: astengî di rêzkirinê de ji ber binbeşa "Formên alternatîv" (ne hate rêzkirin) * [[rolyef]]: astengî di rêzkirinê de ji ber binbeşa "Etîmolojî" (ne hate rêzkirin) == Şablona ku-tewîn-nav hat zêdekirin li binbeşa Tewandin ya heyî == * [[dest]]: şablona ku-tewîn-nav hat zêdekirin li binbeşa Tewandin ya heyî, ji kerema xwe kontrol bike, beş: "Navdêr" * [[pestandin]]: şablona ku-tewîn-nav hat zêdekirin li binbeşa Tewandin ya heyî, ji kerema xwe kontrol bike, beş: "Navdêr" * [[vewêrtin]]: şablona ku-tewîn-nav hat zêdekirin li binbeşa Tewandin ya heyî, ji kerema xwe kontrol bike, beş: "Navdêr" * [[xeriqandin]]: şablona ku-tewîn-nav hat zêdekirin li binbeşa Tewandin ya heyî, ji kerema xwe kontrol bike, beş: "Navdêr" * [[şepilîn]]: şablona ku-tewîn-nav hat zêdekirin li binbeşa Tewandin ya heyî, ji kerema xwe kontrol bike, beş: "Navdêr" kbzlx3gq7oova3h05uwqltyq038jcwz Şablon:kategoriya şablona çavkaniyê 10 1358376 6329758 6326665 2026-08-12T21:29:56Z Wikihez 7344 6329758 wikitext text/x-wiki <includeonly>{{#invoke:reference template cat|main|what=çavkanî}}</includeonly><noinclude>{{documentation}}</noinclude> 2t86c9oywnjro54p34s2kmgjf5v46jg 6329763 6329758 2026-08-12T21:38:35Z Wikihez 7344 Wikihezî/ê navê [[Şablon:reference template cat]] weke [[Şablon:kategoriya şablona çavkaniyê]] guhart 6329758 wikitext text/x-wiki <includeonly>{{#invoke:reference template cat|main|what=çavkanî}}</includeonly><noinclude>{{documentation}}</noinclude> 2t86c9oywnjro54p34s2kmgjf5v46jg Şablon:kategoriya şablona çavkaniyê/belge 10 1358377 6329765 6326666 2026-08-12T21:38:35Z Wikihez 7344 Wikihezî/ê navê [[Şablon:reference template cat/belge]] weke [[Şablon:kategoriya şablona çavkaniyê/belge]] guhart 6326666 wikitext text/x-wiki {{documentation subpage}} {{shortcut|Template:refcat}} {{uses lua|Module:reference template cat}} This template categorizes [[Wiktionary:References|reference templates]] into the subcategories of the main "[[:Category:Reference templates by language|Reference templates by language]]" category. ==Parameters== ; {{para|<var>N</var>}} : The language code. Only required if none is present in the page title under which the template has been created starting with <code>R:<var>langcode</var>:</code>. ; {{para|sort}} : Sortkey. If this is not provided, the reference template name after <code>R:<var>language code</var>:</code> or <code>R:</code> is used as a sortkey. ; {{para|title|opt=1}} : Title of the reference template. ==See also== * {{şx|quotation template cat}} <includeonly> [[Category:Documentation templates]] [[Category:Categorization templates]] </includeonly> h0i8ur8qlhdy957wu2jtkazk36mm8pp 6329767 6329765 2026-08-12T21:39:03Z Wikihez 7344 6329767 wikitext text/x-wiki {{documentation subpage}} {{shortcut|Template:refcat|Şablon:çavkkat}} {{uses lua|Module:reference template cat}} This template categorizes [[Wiktionary:References|reference templates]] into the subcategories of the main "[[:Category:Reference templates by language|Reference templates by language]]" category. ==Parameters== ; {{para|<var>N</var>}} : The language code. Only required if none is present in the page title under which the template has been created starting with <code>R:<var>langcode</var>:</code>. ; {{para|sort}} : Sortkey. If this is not provided, the reference template name after <code>R:<var>language code</var>:</code> or <code>R:</code> is used as a sortkey. ; {{para|title|opt=1}} : Title of the reference template. ==See also== * {{şx|quotation template cat}} <includeonly> [[Category:Documentation templates]] [[Category:Categorization templates]] </includeonly> jrlok1f2nvgmakgsrnko792cmveut5k 6329778 6329767 2026-08-12T21:49:28Z Wikihez 7344 6329778 wikitext text/x-wiki {{documentation subpage}} {{shortcut|Template:refcat|Şablon:çavkkat}} {{uses lua|Module:reference template cat}} This template categorizes [[Wiktionary:References|reference templates]] into the subcategories of the main "[[:Category:Reference templates by language|Reference templates by language]]" category. ==Parameters== ; {{para|<var>N</var>}} : The language code. Only required if none is present in the page title under which the template has been created starting with <code>R:<var>langcode</var>:</code>. ; {{para|sort}} : Sortkey. If this is not provided, the reference template name after <code>R:<var>language code</var>:</code> or <code>R:</code> is used as a sortkey. ; {{para|title|opt=1}} : Title of the reference template. ==See also== * {{şx|quotation template cat}} <includeonly> [[Category:Şablonên kategorîkirinê]] </includeonly> bnc4gue8qeg9eco80912wu8petn4yyh Şablon:kategoriya şablona jêgirtinê 10 1358423 6329762 6327766 2026-08-12T21:36:49Z Wikihez 7344 6329762 wikitext text/x-wiki <includeonly>{{#invoke:reference template cat|main|what=jêgirtin}}</includeonly><noinclude>{{documentation}}</noinclude> q17tvhy2jzc3z5y6za99uh2p3qhsme2 6329769 6329762 2026-08-12T21:39:30Z Wikihez 7344 Wikihezî/ê navê [[Şablon:quotation template cat]] weke [[Şablon:kategoriya şablona jêgirtinê]] guhart 6329762 wikitext text/x-wiki <includeonly>{{#invoke:reference template cat|main|what=jêgirtin}}</includeonly><noinclude>{{documentation}}</noinclude> q17tvhy2jzc3z5y6za99uh2p3qhsme2 Şablon:kategoriya şablona jêgirtinê/belge 10 1358424 6329771 6327767 2026-08-12T21:39:30Z Wikihez 7344 Wikihezî/ê navê [[Şablon:quotation template cat/belge]] weke [[Şablon:kategoriya şablona jêgirtinê/belge]] guhart 6327767 wikitext text/x-wiki {{documentation subpage}} {{shortcut|Template:quotecat}} {{uses lua|Module:reference template cat}} This template works like {{şx|reference template cat}} but is used for [[:Category:Quotation templates by language|quotation templates]]. ==Examples== In {{şx|RQ:it:Canti}} to categorize the template into [[:Category:Italian quotation templates]]: <pre>{{quotecat}}</pre> In {{şx|RQ:Inkeri}} to categorize the template into [[:Category:Ingrian quotation templates]] and [[:Category:Finnish quotation templates]]: <pre>{{quotecat|izh|fi}}</pre> ==See also== * {{şx|reference template cat}} <includeonly> [[Category:Documentation templates]] [[Category:Categorization templates]] </includeonly> h76vw2bji5snl48vq7vsl89a7joa8fc 6329773 6329771 2026-08-12T21:39:46Z Wikihez 7344 6329773 wikitext text/x-wiki {{documentation subpage}} {{shortcut|Template:quotecat|Şablon:jgcat}} {{uses lua|Module:reference template cat}} This template works like {{şx|reference template cat}} but is used for [[:Category:Quotation templates by language|quotation templates]]. ==Examples== In {{şx|RQ:it:Canti}} to categorize the template into [[:Category:Italian quotation templates]]: <pre>{{quotecat}}</pre> In {{şx|RQ:Inkeri}} to categorize the template into [[:Category:Ingrian quotation templates]] and [[:Category:Finnish quotation templates]]: <pre>{{quotecat|izh|fi}}</pre> ==See also== * {{şx|reference template cat}} <includeonly> [[Category:Documentation templates]] [[Category:Categorization templates]] </includeonly> duw8cwpxidpv8387k0r63xyqrlvs9c3 6329779 6329773 2026-08-12T21:49:38Z Wikihez 7344 6329779 wikitext text/x-wiki {{documentation subpage}} {{shortcut|Template:quotecat|Şablon:jgcat}} {{uses lua|Module:reference template cat}} This template works like {{şx|reference template cat}} but is used for [[:Category:Quotation templates by language|quotation templates]]. ==Examples== In {{şx|RQ:it:Canti}} to categorize the template into [[:Category:Italian quotation templates]]: <pre>{{quotecat}}</pre> In {{şx|RQ:Inkeri}} to categorize the template into [[:Category:Ingrian quotation templates]] and [[:Category:Finnish quotation templates]]: <pre>{{quotecat|izh|fi}}</pre> ==See also== * {{şx|reference template cat}} <includeonly> [[Category:Documentation templates]] [[Category:Şablonên kategorîkirinê]] </includeonly> oi0p8b8me8l73mtcy1jhbaems2jvv5x Şablon:Ç:Jaba:1879/belge 10 1358526 6329926 6329534 2026-08-13T11:08:06Z Wikihez 7344 /* Bikaranîn */ 6329926 wikitext text/x-wiki {{belgekirin/binrûpel}} == Bikaranîn == {{şx|Ç:Jaba:1879|<navê madeyê li ferhengê|r=rûpel}} === Nimûne === {{demo|sep=dide<br>|<nowiki>{{Ç:Jaba:1879|تاریخچی<ts:tarikhtchi>|r=92}}</nowiki>}} == TemplateData == {{TemplateData header}} <templatedata> { "params": { "1": { "label": "Navê madeyê li ser ferhengê" }, "pages": {}, "rûpel": { "aliases": [ "r", "page" ] } }, "description": "Auguste Jaba; Ferdinand Justi (1879), Dictionnaire Kurde-Français [Ferhenga Kurdî-Fransî], Saint Petersburg: Imperial Academy of Sciences" } </templatedata> <includeonly> {{refcat|ku}} </includeonly> hqjufd7i3qoj7dgmfi93xf947nnwtzv Modul:jêder 828 1358529 6329629 2026-08-12T14:31:15Z Wikihez 7344 Rûpel bi "local export = {} local parameters_module = "Module:parameters" local usex_module = "Module:usex" --[==[ Adapter for [[Şablon:jêder]]. Reads the template's existing parameter names (2=source, jêgirtin/jg=quotation text, url=/arşîv=, werger/w/tercime/t= translation, nekat=suppress categorization) and calls Modul:usex's format_usex() directly, instead of going through usex_t. usex_t always reads frame:getParent().args — i.e. the calling article's raw {{jêd..." hat çêkirin 6329629 Scribunto text/plain local export = {} local parameters_module = "Module:parameters" local usex_module = "Module:usex" --[==[ Adapter for [[Şablon:jêder]]. Reads the template's existing parameter names (2=source, jêgirtin/jg=quotation text, url=/arşîv=, werger/w/tercime/t= translation, nekat=suppress categorization) and calls Modul:usex's format_usex() directly, instead of going through usex_t. usex_t always reads frame:getParent().args — i.e. the calling article's raw {{jêder|...}} arguments — rather than anything passed on the #invoke line, so it has no way to remap old parameter names to its own scheme (2=text, source=...). This function does that remapping itself, so every existing article using {{jêder|...}} keeps working unchanged. Note: parameter spec keys below are intentionally the existing Kurdish names (they're the literal parameter names used across the wiki already and can't be renamed without a bot rewrite of every article). Once read out of `args`, though, everything is copied into plain-English locals immediately below — never access a non-ASCII key with dot notation (e.g. args.arşîv or args.jêgirtin); Lua identifiers after a "." are restricted to ASCII letters/digits/underscore, so that's a syntax error, not just a style choice. Always use bracket string-key access instead (args["arşîv"]). ]==] function export.jeder_t(frame) local parentArgs = frame:getParent().args local args = require(parameters_module).process(parentArgs, { [1] = {required = true, type = "language"}, [2] = true, -- source citation (author, year, etc.) ["jêgirtin"] = true, -- quotation text ["jg"] = {alias_of = "jêgirtin"}, ["sc"] = {type = "script"}, ["tr"] = true, -- transliteration ["url"] = true, ["arşîv"] = true, -- archive URL ["werger"] = true, -- translation ["w"] = {alias_of = "werger"}, ["tercime"] = {alias_of = "werger"}, ["t"] = {alias_of = "werger"}, ["nekat"] = {type = "boolean"}, -- suppress categorization }) -- Copy everything into English-named locals right away, using bracket -- string-key access for every named (non-numeric) parameter. local lang = args[1] local source = args[2] local quotationText = args["jêgirtin"] local script = args["sc"] local transliteration = args["tr"] local url = args["url"] local archiveUrl = args["arşîv"] local translation = args["werger"] local suppressCategories = args["nekat"] -- Fold the source citation and any URL/archive link into a single "source" -- string, formatted exactly like the current span.jeder output (format_usex -- wraps it in the "jeder" class and adds the leading em dash and parens). if url and url ~= "" then local archiveLink = (archiveUrl and archiveUrl ~= "") and archiveUrl or ("https://web.archive.org/" .. url) source = (source or "") .. "&nbsp;→ [" .. url .. " here lînkê] [" .. archiveLink .. " arşîv]" end if source == "" then source = nil end local data = { lang = lang, sc = script, usex = quotationText, tr = transliteration ~= "" and transliteration or nil, translation = translation, source = source, quote = "1", -- e-quotation (not "quote-meta"/cited-passage, which is for {{quote-*}} / jêder-kitêb etc.) nocat = suppressCategories, inline = true, -- TODO: confirm against how this actually renders on the wiki } return require(usex_module).format_usex(data) end return export fsv8pg7fiuuqre6fis5cq2uu5dorcvy 6329793 6329629 2026-08-12T22:38:41Z Wikihez 7344 6329793 Scribunto text/plain local export = {} local parameters_module = "Module:parameters" local usex_module = "Module:usex" --[==[ Adapter for [[Şablon:jêder]]. Reads the template's existing parameter names (2=source, jêgirtin/jg=quotation text, url=/arşîv=, werger/w/tercime/t= translation, nekat=suppress categorization) and calls Modul:usex's format_usex() directly, instead of going through usex_t. usex_t always reads frame:getParent().args — i.e. the calling article's raw {{jêder|...}} arguments — rather than anything passed on the #invoke line, so it has no way to remap old parameter names to its own scheme (2=text, source=...). This function does that remapping itself, so every existing article using {{jêder|...}} keeps working unchanged. Note: parameter spec keys below are intentionally the existing Kurdish names (they're the literal parameter names used across the wiki already and can't be renamed without a bot rewrite of every article). Once read out of `args`, though, everything is copied into plain-English locals immediately below — never access a non-ASCII key with dot notation (e.g. args.arşîv or args.jêgirtin); Lua identifiers after a "." are restricted to ASCII letters/digits/underscore, so that's a syntax error, not just a style choice. Always use bracket string-key access instead (args["arşîv"]). ]==] function export.jeder_t(frame) local parentArgs = frame:getParent().args local args = require(parameters_module).process(parentArgs, { [1] = {required = true, type = "language"}, [2] = true, -- source citation (author, year, etc.) ["jêgirtin"] = true, -- quotation text ["jg"] = {alias_of = "jêgirtin"}, ["sc"] = {type = "script"}, ["tr"] = true, -- transliteration ["url"] = true, ["arşîv"] = true, -- archive URL ["werger"] = true, -- translation ["w"] = {alias_of = "werger"}, ["tercime"] = {alias_of = "werger"}, ["t"] = {alias_of = "werger"}, ["nekat"] = {type = "boolean"}, -- suppress categorization }) -- Copy everything into English-named locals right away, using bracket -- string-key access for every named (non-numeric) parameter. local lang = args[1] local source = args[2] local quotationText = args["jêgirtin"] local script = args["sc"] local transliteration = args["tr"] local url = args["url"] local archiveUrl = args["arşîv"] local translation = args["werger"] local suppressCategories = args["nekat"] -- Fold the source citation and any URL/archive link into a single "source" -- string, formatted exactly like the current span.jeder output (format_usex -- wraps it in the "jeder" class and adds the leading em dash and parens). if url and url ~= "" then local archiveLink = (archiveUrl and archiveUrl ~= "") and archiveUrl or ("https://web.archive.org/" .. url) source = (source or "") .. "&nbsp;→ [" .. url .. " here lînkê] [" .. archiveLink .. " arşîv]" end if source == "" then source = nil end local data = { lang = lang, sc = script, usex = quotationText, tr = transliteration ~= "" and transliteration or nil, translation = translation, source = source, quote = "1", -- e-quotation (not "quote-meta"/cited-passage, which is for {{quote-*}} / jêder-kitêb etc.) nocat = suppressCategories, inline = false, } return require(usex_module).format_usex(data) end return export f9xmgb5ta9s9ikyqoxxtedfhby1p20f Şablon:Fer:kur-ar:spîrêz 10 1358530 6329724 2026-08-12T20:54:56Z Wikihez 7344 Wikihezî/ê navê [[Şablon:Fer:kur-ar:spîrêz]] weke [[Şablon:Ç:Doskî:2013]] guhart 6329724 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:Ç:Doskî:2013]] cyx5pqebqnrglji8z87rm22ibi2462x 6329740 6329724 2026-08-12T21:09:50Z Wikihez 7344 Hedefa beralîkirinê ji [[Şablon:Ç:Doskî:2013]] ber bi [[Şablon:Ç:Dosikî:2013]] ve guhart 6329740 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:Ç:Dosikî:2013]] dojllz1y003p62p4erbzhrkse0tjtr4 Şablon:Ferhenga Spîrêz Kurdî-Erebî Mihemed Emîn Dosikî 10 1358531 6329725 2026-08-12T20:55:38Z Wikihez 7344 Ji bo [[Şablon:Ç:Doskî:2013]] hat beralîkirin 6329725 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:Ç:Doskî:2013]] cyx5pqebqnrglji8z87rm22ibi2462x 6329726 6329725 2026-08-12T20:55:55Z Wikihez 7344 Wikihez rûpela [[Şablon:Ferhenga Spîrêz Kurdî-Erebî Mihemed Emîn Dosikî]] bêyî beralîkirinek bar kir [[Şablon:Ferhenga Spîrêz Kurdî-Erebî Mihemed Emîn Doskî]] 6329725 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:Ç:Doskî:2013]] cyx5pqebqnrglji8z87rm22ibi2462x 6329734 6329726 2026-08-12T21:07:50Z Wikihez 7344 Hedefa beralîkirinê ji [[Şablon:Ç:Doskî:2013]] ber bi [[Şablon:Ç:Dosikî:2013]] ve guhart 6329734 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:Ç:Dosikî:2013]] dojllz1y003p62p4erbzhrkse0tjtr4 6329735 6329734 2026-08-12T21:07:59Z Wikihez 7344 Wikihezî/ê navê [[Şablon:Ferhenga Spîrêz Kurdî-Erebî Mihemed Emîn Doskî]] weke [[Şablon:Ferhenga Spîrêz Kurdî-Erebî Mihemed Emîn Dosikî]] guhart 6329734 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:Ç:Dosikî:2013]] dojllz1y003p62p4erbzhrkse0tjtr4 Şablon:Ç:Doskî:2013 10 1358532 6329733 2026-08-12T21:07:25Z Wikihez 7344 Wikihezî/ê navê [[Şablon:Ç:Doskî:2013]] weke [[Şablon:Ç:Dosikî:2013]] guhart 6329733 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:Ç:Dosikî:2013]] dojllz1y003p62p4erbzhrkse0tjtr4 Şablon:Ferhenga Spîrêz Kurdî-Erebî Mihemed Emîn Doskî 10 1358533 6329736 2026-08-12T21:07:59Z Wikihez 7344 Wikihezî/ê navê [[Şablon:Ferhenga Spîrêz Kurdî-Erebî Mihemed Emîn Doskî]] weke [[Şablon:Ferhenga Spîrêz Kurdî-Erebî Mihemed Emîn Dosikî]] guhart 6329736 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:Ferhenga Spîrêz Kurdî-Erebî Mihemed Emîn Dosikî]] 39r12u5ld5e4a003zkzfihcqeb1xyhf 6329737 6329736 2026-08-12T21:08:12Z Wikihez 7344 Hedefa beralîkirinê ji [[Şablon:Ferhenga Spîrêz Kurdî-Erebî Mihemed Emîn Dosikî]] ber bi [[Şablon:Ç:Dosikî:2013]] ve guhart 6329737 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:Ç:Dosikî:2013]] dojllz1y003p62p4erbzhrkse0tjtr4 Şablon:Ç:Dosikî:2013/belge 10 1358534 6329741 2026-08-12T21:10:20Z Wikihez 7344 Rûpel bi "{{belgekirin/binrûpel}} == Bikaranîn == === Nimûne === ==TemplateData== {{TemplateData header}} <templatedata> { "params": { "ser": { "aliases": [ "1" ], "label": "navê madeyê" }, "rûpel": { "aliases": [ "1" ] } }, "description": "Çavkanî ji ferhenga Mihemed Emîn Dosikî (2013), قاموس سپیرێز كردي-عربي [Ferhenga Spîrêz Kurdî-Erebî], Duhok: Spîrêz\n", "format": "inline" } </templatedata> <includeo..." hat çêkirin 6329741 wikitext text/x-wiki {{belgekirin/binrûpel}} == Bikaranîn == === Nimûne === ==TemplateData== {{TemplateData header}} <templatedata> { "params": { "ser": { "aliases": [ "1" ], "label": "navê madeyê" }, "rûpel": { "aliases": [ "1" ] } }, "description": "Çavkanî ji ferhenga Mihemed Emîn Dosikî (2013), قاموس سپیرێز كردي-عربي [Ferhenga Spîrêz Kurdî-Erebî], Duhok: Spîrêz\n", "format": "inline" } </templatedata> <includeonly> {{refcat|ar|ku}} </includeonly> 5nmq6x2n3bfogvl037peadv1usve9f5 6329742 6329741 2026-08-12T21:11:33Z Wikihez 7344 6329742 wikitext text/x-wiki {{belgekirin/binrûpel}} == Bikaranîn == {{şx|Ç:Dosikî:2013|r=rûpel|ser=<navê madeyê>}} === Nimûne === {{demo|sep=wisa xuya dike:<br>|<nowiki>{{Ç:Dosikî:2013|r=50}}</nowiki>}} ==TemplateData== {{TemplateData header}} <templatedata> { "params": { "ser": { "aliases": [ "1" ], "label": "navê madeyê" }, "rûpel": { "aliases": [ "1" ] } }, "description": "Çavkanî ji ferhenga Mihemed Emîn Dosikî (2013), قاموس سپیرێز كردي-عربي [Ferhenga Spîrêz Kurdî-Erebî], Duhok: Spîrêz\n", "format": "inline" } </templatedata> <includeonly> {{refcat|ar|ku}} </includeonly> ihyw2mnhu1rbir56rxn0nmexexayxz7 6329751 6329742 2026-08-12T21:16:02Z Wikihez 7344 6329751 wikitext text/x-wiki {{belgekirin/binrûpel}} == Bikaranîn == {{şx|Ç:Dosikî:2013|r=rûpel|ser=<navê madeyê>}} === Nimûne === {{demo|sep=wisa xuya dike:<br>|<nowiki>{{Ç:Dosikî:2013|r=50}}</nowiki>}} ==TemplateData== {{TemplateData header}} <templatedata> { "params": { "ser": { "aliases": [ "1" ], "label": "navê madeyê" }, "rûpel": { "aliases": [ "r" ] } }, "description": "Çavkanî ji ferhenga Mihemed Emîn Dosikî (2013), قاموس سپیرێز كردي-عربي [Ferhenga Spîrêz Kurdî-Erebî], Duhok: Spîrêz\n", "format": "inline" } </templatedata> <includeonly> {{refcat|ar|ku}} </includeonly> pgqjos0f2x9uxe7eatnyb691hlnfzx1 Şablon:Ç:Dosikî:2016/belge 10 1358535 6329746 2026-08-12T21:15:28Z Wikihez 7344 Rûpel bi "{{belgekirin/binrûpel}} == Bikaranîn == {{şx|Ç:Dosikî:2016|r=rûpel|ser=<navê madeyê>}} === Nimûne === {{demo|sep=wisa xuya dike:<br>|<nowiki>{{Ç:Dosikî:2016|r=50}}</nowiki>}} ==TemplateData== {{TemplateData header}} <templatedata> { "params": { "ser": { "aliases": [ "1" ], "label": "navê madeyê" }, "rûpel": { "aliases": [ "r" ] } }, "description": "Çavkanî ji ferhenga Mihemed Emîn Dosikî, (2016), فەرهەنگا..." hat çêkirin 6329746 wikitext text/x-wiki {{belgekirin/binrûpel}} == Bikaranîn == {{şx|Ç:Dosikî:2016|r=rûpel|ser=<navê madeyê>}} === Nimûne === {{demo|sep=wisa xuya dike:<br>|<nowiki>{{Ç:Dosikî:2016|r=50}}</nowiki>}} ==TemplateData== {{TemplateData header}} <templatedata> { "params": { "ser": { "aliases": [ "1" ], "label": "navê madeyê" }, "rûpel": { "aliases": [ "r" ] } }, "description": "Çavkanî ji ferhenga Mihemed Emîn Dosikî, (2016), فەرهەنگا سپیرێز عەرەبی کوردی [Ferhenga Spîrêz Erebî-Kurdî], Dihok: Spîrêz", "format": "inline" } </templatedata> <includeonly> {{refcat|ar|ku}} </includeonly> do4ffe822qfu2fholwmxtb1g3gq8jha 6329749 6329746 2026-08-12T21:15:44Z Wikihez 7344 Wikihezî/ê navê [[Şablon:Fer:ar-kur:spîrêz/belge]] weke [[Şablon:Ç:Dosikî:2016/belge]] guhart 6329746 wikitext text/x-wiki {{belgekirin/binrûpel}} == Bikaranîn == {{şx|Ç:Dosikî:2016|r=rûpel|ser=<navê madeyê>}} === Nimûne === {{demo|sep=wisa xuya dike:<br>|<nowiki>{{Ç:Dosikî:2016|r=50}}</nowiki>}} ==TemplateData== {{TemplateData header}} <templatedata> { "params": { "ser": { "aliases": [ "1" ], "label": "navê madeyê" }, "rûpel": { "aliases": [ "r" ] } }, "description": "Çavkanî ji ferhenga Mihemed Emîn Dosikî, (2016), فەرهەنگا سپیرێز عەرەبی کوردی [Ferhenga Spîrêz Erebî-Kurdî], Dihok: Spîrêz", "format": "inline" } </templatedata> <includeonly> {{refcat|ar|ku}} </includeonly> do4ffe822qfu2fholwmxtb1g3gq8jha 6329753 6329749 2026-08-12T21:17:35Z Wikihez 7344 6329753 wikitext text/x-wiki {{belgekirin/binrûpel}} == Bikaranîn == {{şx|Ç:Dosikî:2016|r=rûpel|ser=<navê madeyê>}} === Nimûne === {{demo|sep=wisa xuya dike:<br>|<nowiki>{{Ç:Dosikî:2016|r=50}}</nowiki>}} ==TemplateData== {{TemplateData header}} <templatedata> { "params": { "ser": { "aliases": [ "1" ], "label": "navê madeyê" }, "rûpel": { "aliases": [ "r" ] } }, "description": "Çavkanî ji ferhenga Mihemed Emîn Dosikî, (2016), فەرهەنگا سپیرێز عەرەبی کوردی [Ferhenga Spîrêz Erebî-Kurdî], Dihok: Spîrêz", "format": "inline" } </templatedata> <includeonly> {{refcat|ar|ku|sortkey=Dosikî:2016}} </includeonly> e1uofmr4rqdi7bk97u9n3ime6f0wc8q 6329754 6329753 2026-08-12T21:18:30Z Wikihez 7344 6329754 wikitext text/x-wiki {{belgekirin/binrûpel}} == Bikaranîn == {{şx|Ç:Dosikî:2016|r=rûpel|ser=<navê madeyê>}} === Nimûne === {{demo|sep=wisa xuya dike:<br>|<nowiki>{{Ç:Dosikî:2016|r=50}}</nowiki>}} ==TemplateData== {{TemplateData header}} <templatedata> { "params": { "ser": { "aliases": [ "1" ], "label": "navê madeyê" }, "rûpel": { "aliases": [ "r" ] } }, "description": "Çavkanî ji ferhenga Mihemed Emîn Dosikî, (2016), فەرهەنگا سپیرێز عەرەبی کوردی [Ferhenga Spîrêz Erebî-Kurdî], Dihok: Spîrêz", "format": "inline" } </templatedata> <includeonly> {{refcat|ar|ku}} </includeonly> do4ffe822qfu2fholwmxtb1g3gq8jha Şablon:Fer:ar-kur:spîrêz 10 1358536 6329748 2026-08-12T21:15:44Z Wikihez 7344 Wikihezî/ê navê [[Şablon:Fer:ar-kur:spîrêz]] weke [[Şablon:Ç:Dosikî:2016]] guhart 6329748 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:Ç:Dosikî:2016]] p2498z8dych2vkj7jsiv0irlymiw791 Şablon:Fer:ar-kur:spîrêz/belge 10 1358537 6329750 2026-08-12T21:15:44Z Wikihez 7344 Wikihezî/ê navê [[Şablon:Fer:ar-kur:spîrêz/belge]] weke [[Şablon:Ç:Dosikî:2016/belge]] guhart 6329750 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:Ç:Dosikî:2016/belge]] e9xj17lyhzkjrw0exrubgng1qleldwm Şablon:Ferhenga Spîrêz Erebî-Kurdî, Mihemed Emîn Dosikî 10 1358538 6329752 2026-08-12T21:16:47Z Wikihez 7344 Ji bo [[Şablon:Ç:Dosikî:2016]] hat beralîkirin 6329752 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:Ç:Dosikî:2016]] p2498z8dych2vkj7jsiv0irlymiw791 Şablon:reference template cat 10 1358539 6329764 2026-08-12T21:38:35Z Wikihez 7344 Wikihezî/ê navê [[Şablon:reference template cat]] weke [[Şablon:kategoriya şablona çavkaniyê]] guhart 6329764 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:kategoriya şablona çavkaniyê]] cc4ipe5yqguzfeila70twf0yk7sban0 Şablon:reference template cat/belge 10 1358540 6329766 2026-08-12T21:38:35Z Wikihez 7344 Wikihezî/ê navê [[Şablon:reference template cat/belge]] weke [[Şablon:kategoriya şablona çavkaniyê/belge]] guhart 6329766 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:kategoriya şablona çavkaniyê/belge]] 01idyazu7hnq2eis8908qnoetrew5f4 Şablon:çavkkat 10 1358541 6329768 2026-08-12T21:39:17Z Wikihez 7344 Ji bo [[Şablon:kategoriya şablona çavkaniyê]] hat beralîkirin 6329768 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:kategoriya şablona çavkaniyê]] cc4ipe5yqguzfeila70twf0yk7sban0 Şablon:quotation template cat 10 1358542 6329770 2026-08-12T21:39:30Z Wikihez 7344 Wikihezî/ê navê [[Şablon:quotation template cat]] weke [[Şablon:kategoriya şablona jêgirtinê]] guhart 6329770 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:kategoriya şablona jêgirtinê]] rffwqzgjeukr6uj94jj25dwa73qdzw6 Şablon:quotation template cat/belge 10 1358543 6329772 2026-08-12T21:39:31Z Wikihez 7344 Wikihezî/ê navê [[Şablon:quotation template cat/belge]] weke [[Şablon:kategoriya şablona jêgirtinê/belge]] guhart 6329772 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:kategoriya şablona jêgirtinê/belge]] au02br5a7wxbxup5fjwxihqc45qrgax Şablon:jgcat 10 1358544 6329774 2026-08-12T21:39:59Z Wikihez 7344 Ji bo [[Şablon:kategoriya şablona jêgirtinê]] hat beralîkirin 6329774 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:kategoriya şablona jêgirtinê]] rffwqzgjeukr6uj94jj25dwa73qdzw6 Şablon:J:ku:Shamdinani Stories I:2026 10 1358545 6329777 2026-08-12T21:41:14Z Wikihez 7344 Wikihezî/ê navê [[Şablon:J:ku:Shamdinani Stories I:2026]] weke [[Şablon:J:Shamdinani Stories I:2026]] guhart 6329777 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:J:Shamdinani Stories I:2026]] e48k2isti5kp45kqpm076yua083r1bk Şablon:switch-url 10 1358546 6329809 2026-08-12T22:58:04Z Wikihez 7344 Wikihezî/ê navê [[Şablon:switch-url]] weke [[Şablon:kovara kurmancî/switch-url]] guhart 6329809 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:kovara kurmancî/switch-url]] 2762i7sirak6v6wiroyo8xcm69x25md Şablon:switch-url/belge 10 1358547 6329811 2026-08-12T22:58:04Z Wikihez 7344 Wikihezî/ê navê [[Şablon:switch-url/belge]] weke [[Şablon:kovara kurmancî/switch-url/belge]] guhart 6329811 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:kovara kurmancî/switch-url/belge]] 2kqb9rjk97iiuohsg3g0wgcfs7nuny7 Şablon:J:Mem û Zîn 10 1358548 6329850 2026-08-12T23:54:16Z Wikihez 7344 Ji bo [[Şablon:J:Mem û Zîn:1692]] hat beralîkirin 6329850 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:J:Mem û Zîn:1692]] ph0dnmbsbgtbxlvh9zwnmg49i2y69i8 Modul:compare 828 1358549 6329855 2026-08-13T00:04:58Z Wikihez 7344 [[:en:Module:compare]] hat kopîkirin ([[Bikarhêner:Wikihez/skrîpt/js/kopi-enWikt.js|kopi-enWikt.js]]) 6329855 Scribunto text/plain local math_compare_module = "Module:math/compare" local string_compare_module = "Module:string/compare" local table_compare_module = "Module:table/compare" local require = require local type = type local types local function get_types() types, get_types = { ["nil"] = "\1", ["boolean"] = "\2", ["number"] = "\3", ["string"] = "\4", }, nil return types end local compare_funcs local function get_compare_funcs() compare_funcs = {} function compare_funcs.boolean(a, b) return a == true and b == false end function compare_funcs.number(...) local math_compare = require(math_compare_module) compare_funcs.number = math_compare return math_compare(...) end function compare_funcs.string(...) local string_compare = require(string_compare_module) compare_funcs.string = string_compare return string_compare(...) end function compare_funcs.table(...) local table_compare = require(table_compare_module) compare_funcs.table = table_compare return table_compare(...) end get_compare_funcs = nil return compare_funcs end --[==[ A general comparison function, which returns {true} if {a} sorts before {b}, or otherwise {false}; it can be used as the sort function with {table.sort}. This function is roughly equivalent to the {<} operator, but is capable of comparing a mix of types, using the following rules: * When items of different types are compared, the type-order is {"nil"}, {"boolean"}, {"number"}, {"string"}, then alphabetical order by type name for all other types. * Numbers are compared with [[Module:math/compare]]. * Strings are compared with [[Module:string/compare]]. * Tables are compared with [[Module:table/compare]]. * Boolean {true} sorts before {false}. * All other types always return {false}.]==] return function(a, b) local type_a, type_b = type(a), type(b) if type_a == type_b then local func = (compare_funcs or get_compare_funcs())[type_a] return func and func(a, b) or false end return ((types or get_types())[type_a] or type_a) < (types[type_b] or type_b) end fs82yur52kblfpa4j6uwsb5dbcxr7em Şablon:Ç:os:Abayev 10 1358550 6329857 2026-08-13T00:08:36Z Wikihez 7344 [[:en:Template:R:os:Abaev]] hat kopîkirin ([[Bikarhêner:Wikihez/skrîpt/js/kopi-enWikt.js|kopi-enWikt.js]]) 6329857 wikitext text/x-wiki {{#invoke:quote|call_template |template=cite-book |ru |last={{xlit|ru|Абаев}} |first={{xlit|ru|В. И.}} |authorlink=Vasily Abaev |title=Историко-этимологический словарь осетинского языка |trans-title=Historical-Etymological Dictionary of the Ossetian Language |entry={{{1|}}} |location=Moscow and Leningrad |publisher=Academy Press |year={{#switch:{{{volume|{{{vol|}}}}}}|I|1=1958|II|2=1973|III|3=1979|IV|4=1989|V|5=1995|#default=1958–1995}} |pageparam=page |volume={{{volume|{{{vol|}}}}}} |allowparams=1,volume,vol }}<noinclude>[[Category:Ossetian reference templates|Abaev]]</noinclude> nvgbk9m8779hkcaaw8vl3r9fjo87aeh 6329858 6067100 2026-08-13T00:09:00Z Wikihez 7344 Wikihezî/ê navê [[Şablon:Abayev]] weke [[Şablon:Ç:os:Abayev]] guhart 6067100 wikitext text/x-wiki {{kitêb|nivîskar={{zim|en|Abaev, V.I.}} (1958–1995)|sernav=Ferhenga dîrokî-etîmolojîkî ya zimanê osetî|sernavê orjînal={{zim|ru|ИСТОРИКО-ЭТИМОЛОГИЧЕСКИЙ СЛОВАРЬ ОСЕТИНСКОГО ЯЗЫКА}} (bi rûsî)|cild=4 cild û [[fihrist]]|rûpel={{{r|{{{rûpel|}}}}}}}}<noinclude>[[Kategorî:Çavkanî]]</noinclude> rzouyrntkiujg59hbsul7rg7gkfntiy 6329860 6329857 2026-08-13T00:09:14Z Wikihez 7344 Wikihezî/ê navê [[Şablon:R:os:Abaev]] weke [[Şablon:Ç:os:Abayev]] guhart 6329857 wikitext text/x-wiki {{#invoke:quote|call_template |template=cite-book |ru |last={{xlit|ru|Абаев}} |first={{xlit|ru|В. И.}} |authorlink=Vasily Abaev |title=Историко-этимологический словарь осетинского языка |trans-title=Historical-Etymological Dictionary of the Ossetian Language |entry={{{1|}}} |location=Moscow and Leningrad |publisher=Academy Press |year={{#switch:{{{volume|{{{vol|}}}}}}|I|1=1958|II|2=1973|III|3=1979|IV|4=1989|V|5=1995|#default=1958–1995}} |pageparam=page |volume={{{volume|{{{vol|}}}}}} |allowparams=1,volume,vol }}<noinclude>[[Category:Ossetian reference templates|Abaev]]</noinclude> nvgbk9m8779hkcaaw8vl3r9fjo87aeh 6329862 6329860 2026-08-13T00:11:06Z Wikihez 7344 6329862 wikitext text/x-wiki {{#invoke:quote|call_template |template=cite-book |ru |last={{xlit|ru|Абаев}} |first={{xlit|ru|В. И.}} |authorlink=Vasily Abaev |title=Историко-этимологический словарь осетинского языка |trans-title=Ferhenga dîrokî-etîmolojîkî ya zimanê osetî |entry={{{1|}}} |location=Moskova û Leningrad |publisher=Academy Press |year={{#switch:{{{volume|{{{vol|{{{cild|}}}}}}}}}|I|1=1958|II|2=1973|III|3=1979|IV|4=1989|V|5=1995|#default=1958–1995}} |pageparam=page,r,rûpel |volume={{{volume|{{{vol|{{{cild|}}}}}}}}} |allowparams=1,volume,vol,cild }}<noinclude>{{çavkkat|os}}</noinclude> lpo2b3z1umbhocz6rv64vdo0bqjxsto Şablon:Abayev 10 1358551 6329859 2026-08-13T00:09:00Z Wikihez 7344 Wikihezî/ê navê [[Şablon:Abayev]] weke [[Şablon:Ç:os:Abayev]] guhart 6329859 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:Ç:os:Abayev]] but7irdrtggcnfdvpt4mls02myp9dk1 Şablon:R:os:Abaev 10 1358552 6329861 2026-08-13T00:09:14Z Wikihez 7344 Wikihezî/ê navê [[Şablon:R:os:Abaev]] weke [[Şablon:Ç:os:Abayev]] guhart 6329861 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:Ç:os:Abayev]] but7irdrtggcnfdvpt4mls02myp9dk1 Şablon:Bailey 10 1358554 6329867 2026-08-13T00:13:43Z Wikihez 7344 Wikihezî/ê navê [[Şablon:Bailey]] weke [[Şablon:Ç:kho:Bailey]] guhart 6329867 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:Ç:kho:Bailey]] fhyrl2wolbo3e90nqlomf17js8xmn0y Şablon:R:kho:Bailey 10 1358555 6329869 2026-08-13T00:13:55Z Wikihez 7344 Wikihezî/ê navê [[Şablon:R:kho:Bailey]] weke [[Şablon:Ç:kho:Bailey]] guhart 6329869 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:Ç:kho:Bailey]] fhyrl2wolbo3e90nqlomf17js8xmn0y